En el contexto de pruebas de penetración ofensiva y evaluaciones de adversarios simulados (red teaming), acceder a credenciales en memoria es una táctica clave para movernos lateralmente dentro de un entorno Windows. Sin embargo, muchas organizaciones emplean defensas robustas basadas en EDR (Endpoint Detection & Response) y AV (Antivirus) que detectan activamente el uso de herramientas tradicionales como Mimikatz.
Uno de los procedimientos menos intrusivos y más efectivos para extraer credenciales en memoria sin levantar banderas rojas es la extracción sigilosa de LSASS utilizando técnicas nativas de Windows junto con pypykatz. En este post, desglosaremos cómo funciona, por qué es útil y cómo puedes implementarla de forma efectiva en tus ejercicios de pentesting. No hace falta que te diga que el uso de estás técnicas debe realizarse únicamente con autorización expresa y bajo entornos controlados dentro de un contexto ético.
¿Qué es LSASS?
El proceso lsass.exe (Local Security Authority Subsystem Service) es un componente crítico en Windows encargado de gestionar políticas de seguridad locales, autenticación y control de acceso. En este proceso se almacenan activamente los hashes de contraseñas, tickets Kerberos, claves de sesión y otras credenciales sensibles útiles para usuarios autenticados en el sistema.
Extraer contenido de este proceso —llamado “dumping”— permite analizar posteriormente su contenido con herramientas especializadas como Mimikatz o alternativas en Python, como pypykatz.
¿Por qué usar comsvcs.dll y evitar Mimikatz?
Problemas comunes con Mimikatz:
- Firmado por “Benjamin Delpy”, bien conocido por AVs/EDRs.
- Altamente firmado y analizado por firmas heurísticas.
- Requiere permisos elevados (seDebugPrivilege) y frecuentemente bloqueado por políticas de defensa.
- Detectable incluso en su versión obfuscada o mediante shellcodes.
Para sortear estos obstáculos sin perder funcionalidad, se utilizan alternativas mucho menos sospechosas, como los servicios integrados de Windows.
Introducimos comsvcs.dll + RPC
La biblioteca comsvcs.dll es parte del sistema y contiene funciones no documentadas como MiniDumpW. Su potencial radica en que no es inherentemente maliciosa, pero puede invocarse para volcar procesos con fines legítimos —exactamente como lo hace el binario MiniDump.
Por otro lado, pypykatz es una reimplementación en Python pura de Mimikatz capaz no solo de parsear dumps de LSASS, sino también de conectarse directamente a un proceso LSASS en ejecución desde Linux/MacOS. Es ideal porque:
- No requiere cargar binarios maliciosos localmente.
- Posee soporte amplio para múltiples formatos y métodos de conexión (SMB, memory dump local, etc.).
- Compatible con técnicas de defensa pasivas basadas en firma.
Cómo funciona internamente
El truco reside en engañar al servidor RPC (Remote Procedure Call) para que invoque una función pública de comsvcs.dll llamada MiniDumpW, que normalmente sirve para volcar procesos como parte de operaciones del sistema.
Este es el flujo típico:
- Se conecta al servicio “Remote Registry” o “Distributed COM” (mediante WMI o PowerShell).
- Se llama a MiniDumpW pasando el PID de lsass.exe y una ruta temporal para guardar el .dmp.
- Se descarga dicho archivo del objetivo.
- Se procesa en ambiente seguro con pypykatz u otro parser offline.
No se necesita escribir nada en disco ni inyectar código para lograr esto. Todo ocurre a través de mecanismos totalmente legítimos.
Comandos prácticos para Pentesting autorizado
Ejemplo 1: Generar un dump mediante rundll32 + comsvcs.dll
Primero, identificamos el PID de LSASS:
powershell
tasklist /fi "imagename eq lsass.exe"
Suponiendo que el PID es 1234, lanzamos el volcado:

powershell
rundll32.exe C:\windows\system32\comsvcs.dll, MiniDump 1234 C:\temp\lsass.dmp full
Luego copiamos el archivo generado (lsass.dmp) a tu máquina atacante.

Nota: Si el directorio destino no existe o no tienes permisos, fallará silenciosamente. Usa carpetas como C:\Windows\Tasks o C:\Users\Public cuando sea posible.
Ejemplo 2: Uso de pypykatz para parsear el archivo DMP
Instala pypykatz si aún no lo tienes:
bash
pip3 install pypykatz
Parseamos el volcado directamente:
bash
pypykatz lsa minidump lsass.dmp
Esto mostrará las credenciales y tickets de Kerberos encontrados.

Alternativamente, puedes cargar manualmente el DMP en una sesión de pypykatz:
python
from pypykatz.pypykatz import pypykatz
mimi = pypykatz.parse_minidump_file('lsass.dmp')
print(mimi.get_logon_info())
¿Por qué funciona como técnica de evasión?
Motivo 1: Evita firmas por comportamiento de Mimikatz
Mientras tú y el endpoint sigan usando herramientas completamente diferentes al verdadero Mimikatz, es improbable que salte una alerta.
Motivo 2: Invocación remota indirecta
Usar rundll32 ya sea directamente o a través de un proxy como PowerShell hace que tu acto parezca una acción administrativa corriente realizada por personal autorizado o scripts internos.
Motivo 3: No hay persistencia ni instalación de payloads
Como no se copia ningún binario adicional, esta técnica deja escaso rastro, especialmente en sistemas auditable o donde las alertas sobre cambios en archivos son monitoreadas proactivamente.
Aplicaciones Profesionales en Pentesting y Red Teaming
Esta técnica es comúnmente empleada para:
- Moverse lateralmente sin llamar la atención.
- Obtener credenciales de sesiones activas o tickets Kerberos (silver/golden tickets).
- Recuperar credenciales de cuentas privilegiadas que fueron usadas recientemente.
- Bypassear mecanismos como Credential Guard si se ejecutan desde proceso no privilegiado (previo al escalado).
También forma parte de herramientas automatizadas modernas como:
- Empire
- Covenant
- Sliver
- CS/Cobalt Strike (usando BOF/DLL reflectively cargados posteriormente)
Recomendación de Mitigación para Defensores (Blues Team)
Si tú eres un defensor, considera las siguientes estrategias preventivas:
- Restringir el acceso al servicio DCOM/RPC.
- Implementar protección en memoria de LSASS (RunAsPPL).
- Supervisar solicitudes inusuales de herramientas de volcado de procesos.
- Reemplazar privilegios altos para todos los usuarios excepto SOLO los que verdaderamente los necesitan.
Conclusión
Extracción Sigilosa de LSASS mediante comsvcs.dll representa una técnica avanzada y altamente efectiva para eludir motores de detección clásicos. Aprendiendo y aplicando estos principios durante tus laboratorios y pentests, desarrollarás habilidades que te permitirán simular ataques sofisticados que se asemejan a los técnicas que utilizan adversarios avanzados persistentes (APT).
Espero que este artículo haya aclarado el cómo y porqué usar esta táctica. Próximamente continuaré explorando otras formas de bypass moderno, por ahora: happy hacking!

