Quand les gens discutent des dernières techniques d’attaques, ils assument souvent que ces techniques sont la prérogative exclusive des attaquants sophistiqués. Toutefois, ces attaques sont démocratisées très rapidement. Pour illustrer ceci, cette semaine nous allons analyser un logiciel classé « potentiellement non-désiré » qui utilise une chaîne de techniques « vivre de la terre » pour éviter d’être bloqué par les AVs. 

Vivre de quoi exactement? 

Un attaque « vivant de la terre » (living-off-the-land or LoL) est une attaque qui utilise les ressources qui sont déjà présentes sur l’ordinateur victime pour réaliser ses actions malicieuses au lieu de charger des logiciels additionnels. Par exemple, pour téléchargement la composante principale du maliciel, au lieu d’utiliser un binaire comme étage de téléchargement, une attaque LoL peut plutôt passer une série de commande au logiciel Powershell qui est déjà présent sur le système et utiliser dans le cadre de l’administration normale. De ce sens, lorsque l’attaquant est en terre étrangère (c.a.d. la machine victime), il se nourrit de ce que la terre peut offrir (c.a.d. utilise les programmes déjà présents) au lieu d’apporte sa propre nourriture (c.a.d. charger des outils d’attaques/binaires malicieux). 

Cette méthodologie d’attaque est souvent utilisée dans les attaques avancées puisque c’est une manière de contourner les défenses1. Pour faire une histoire couter, les programmes présents sur l’ordinateur pouvant être abusés (connus sous le nom de LoLbins) sont des programmes connus pour être légitimes. Par exemple, plusieurs des LoLbins les plus dangereux sont des composantes du systèmes d’exploitation utilisés pour l’administration système. De ce fait, les programmes pouvant être abuses ne sont pas détectés comme malicieux par les programmes anti-virus et ne seront pas non plus bloqués par les systèmes de liste d’applications permises. Il est nécessaire d’ajouter des couches de protections supplémentaires (comme le service de surveillance de sécurité de CYDEF2) pour détecter et ultimement stopper ces menaces. 

Chaîne LoL 

Pendant notre processus de surveillance quotidien, nous avons détecté la présence de DriverPackNotifier. Ce programme est un logiciel « potentiellement non-désiré » générique de type « optimisation de pilotes ». Le modèle d’affaire de ce type de logiciel est de présenter aux usagers des messages d’alarmes leur disant que leur ordinateur a besoin de mises à jour et que, en payant l’opérateur du logiciel, ces (fausses) erreurs seront corrigées.  Dans l’absolu, ce type de menace est plutôt bénin. Malgré cela, le logiciel est identifié par un assez grand nombre de solutions de cyber sécurité : 

https://www.virustotal.com/gui/file/0659388dba26d26eada6d82ed38f22fb2b0a264d1cc4667cce7f4523c72d59be/detection 

Donc, ils doivent quand même travailler fort pour éviter la détection et mettre en œuvre leur modèle d’affaires. Voici la séquence de techniques LoL utilisées (les identifiants de processus ont été identifiés par couleur pour rendre la lecture plus facile). 

Process Creation  

Child 

PID:14080  

Image:mshta.exe  

Path:C:\Windows\SysWOW64  

CommandLine:“C:\WINDOWS\System32\mshta.exe” “C:\Users\[CONFIDENTIEL]\AppData\Roaming\DriverPack Notifier\bin\Tools\run.hta” “–relaunch” “true” “–run” “startup”  

Company:Microsoft Corporation  

Product:Internet Explorer  

Description:Microsoft (R) HTML Application host  

Parent 

PID:13996  

Image:DriverPackNotifier.exe  

Path:C:\Users\[CONFIDENTIEL]\AppData\Roaming\DriverPack Notifier  

Command:“C:\Users\[CONFIDENTIEL]\AppData\Roaming\DriverPack Notifier\DriverPackNotifier.exe” –relaunch true –run startup  

  

La première étape est l’utilisation de l’engin d’application HTML pour Windows. C’est essentiellement une manière de créer des applications complètes en utilisant du HTML dynamique ainsi que les différents langages de script web pouvant être interprétés par Internet Explorer. Ceci peut être utile pour la création d’interface d’aide HTML, ou, apparemment, pour exécuter du code qui serait bloqué par l’AV. 

Process Creation  

Child 

PID:14888  

Image:cmd.exe  

Path:C:\Windows\SysWOW64  

CommandLine:“C:\Windows\System32\cmd.exe” /C powershell -NonInteractive -NoLogo -NoProfile -ExecutionPolicy Bypass “Get-Content ‘C:\Users\[CONFIDENTIEL]\AppData\Roaming\DriverPack Notifier\temp\ps.kl651x9e.mp0tj.cmd.txt’ -Wait | Invoke-Expression” > “C:\Users\[CONFIDENTIEL]\AppData\Roaming\DriverPack Notifier\temp\ps.kl651x9e.mp0tj.stdout.log” 2> “C:\Users\[CONFIDENTIEL]\AppData\Roaming\DriverPack Notifier\temp\ps.kl651x9e.mp0tj.stderr.log”  

Company:Microsoft Corporation  

Product:Microsoft® Windows® Operating System  

Description:Windows Command Processor  

Version:10.0.18362.449 (WinBuild.160101.0800)  

Parent 

PID:14080  

Image:mshta.exe  

Path:C:\Windows\SysWOW64  

Command:“C:\WINDOWS\System32\mshta.exe” “C:\Users\[REDACTED]\AppData\Roaming\DriverPack Notifier\bin\Tools\run.hta” “–relaunch” “true” “–run” “startup”  

 

Process Creation  

Child 

PID:8420  

Image:powershell.exe  

Path:C:\Windows\SysWOW64\WindowsPowerShell\v1.0  

CommandLine:powershell -NonInteractive -NoLogo -NoProfile -ExecutionPolicy Bypass “Get-Content ‘C:\Users\[CONFIDENTIEL]\AppData\Roaming\DriverPack Notifier\temp\ps.kl651x9e.mp0tj.cmd.txt’ -Wait | Invoke-Expression”  

Company:Microsoft Corporation  

Product:Microsoft® Windows® Operating System  

Description:Windows PowerShell  

Version:10.0.18362.1 (WinBuild.160101.0800)  

Parent 

PID:14888  

Image:cmd.exe  

Path:C:\Windows\SysWOW64  

Command:“C:\Windows\System32\cmd.exe” /C powershell -NonInteractive -NoLogo -NoProfile -ExecutionPolicy Bypass “Get-Content ‘C:\Users\[CONFIDENTIEL]\AppData\Roaming\DriverPack Notifier\temp\ps.kl651x9e.mp0tj.cmd.txt’ -Wait | Invoke-Expression” > “C:\Users\[CONFIDENTIEL]\AppData\Roaming\DriverPack Notifier\temp\ps.kl651x9e.mp0tj.stdout.log” 2> “C:\Users\[CONFIDENTIEL]\AppData\Roaming\DriverPack Notifier\temp\ps.kl651x9e.mp0tj.stderr.log”  

La deuxième étape est de lancer cmd à partir du programme mshta pour appeler une exécution Powershell. De manière notable, la liste de commande qui est exécutée n’est pas sous la forme d’un fichier script .PS1, ce qu’on s’attendrait d’un usager normal, mais provient d’un fichier .txt passé à la méthode invoke-expression. 

Process Creation  

Child 

PID:12256  

Image:csc.exe  

Path:C:\Windows\Microsoft.NET\Framework\v4.0.30319  

CommandLine:“C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe” /noconfig /fullpaths @”C:\Users\[CONFIDENTIEL]\AppData\Local\Temp\ltgfk0hg.cmdline”  

Company:Microsoft Corporation  

Product:Microsoft® .NET Framework  

Description:Visual C# Command Line Compiler  

Version:4.8.3752.0 built by: NET48REL1  

Parent 

PID:8420  

Image:powershell.exe  

Path:C:\Windows\SysWOW64\WindowsPowerShell\v1.0  

Command:powershell -NonInteractive -NoLogo -NoProfile -ExecutionPolicy Bypass “Get-Content ‘C:\Users\[CONFIDENTIEL]\AppData\Roaming\DriverPack Notifier\temp\ps.kl651x9e.mp0tj.cmd.txt’ -Wait | Invoke-Expression”  

 

File Creation  

PID:12256  

Image:csc.exe  

Path:C:\Windows\Microsoft.NET\Framework\v4.0.30319  

Target File 

Extension:dll  

Name:ltgfk0hg.dll  

Path:C:\Users\[CONFIDENTIEL]\AppData\Local\Temp

Finalement, le code Powershell appelle le compilateur de ligne de commande .NET pour générer un nouveau composant malicieux sous la forme d’une DLL. 

Conclusion 

En résumé, pour vendre leur service de fausse maintenance Windows, les opérateurs du logiciel ont utilisés les techniques MITRE ATT&CK T1218.005 (Signed Binary Proxy Execution: Mshta), T1059.003 (Command and Scripting Interpreter: Windows Command Shell), T1059.001 (Command and Scripting Interpreter: PowerShell) et T1027.004 (Obfuscated Files or Information: Compile After Delivery). Que pensez-vous qu’un attaquant ayant des motivations plus fortes serait prêt à faire? 

Si vous êtes préoccupé du fait que votre arsenal actuel de solutions de cyber sécurité ne pourrait pas attraper ce type d’attaque, contactez-nous3 et demandez comment CYDEF peut vous aider à attraper des activités malicieuses qui contournes les outils de sécurité traditionnels.