Tutoriales

Dumper PIC Lsass con asas clonadas

GriffKatz se implementó como parte de nuestra charla en la conferencia Brucon2021 y demuestra el uso de asas clonadas para Lsass para crear un volcado de memoria disfrazado del mismo.

Está compilado en un archivo ejecutable. vivir plenamente en su segmento de texto. Por lo tanto, el segmento .text extraído del archivo PE es un código completamente independiente de la posición (= PIC), lo que significa que puede tratarse como cualquier código de shell.

La ejecución de HandleKatz en memoria ocupa muy poco espacio, ya que ya no asigna ninguna memoria ejecutable por sí misma y, por lo tanto, se puede combinar de manera eficiente con conceptos como el hueco de DLL (fantasma) como lo describe @_ForrestOrr. Esto contrasta con los cargadores PIC-PE como Donut, SRDI o Reflective Loaders, que asignan más memoria ejecutable durante la carga de PE. También utiliza una versión modificada de ReactOS MiniDumpWriteDumpA con llamadas directas al sistema para escribir un volcado disfrazado en el disco.

Consulte el archivo PDF para obtener información detallada. PICYourMalware.pdf en este repositorio.

propósito de uso

  • hacer todo para crear HandleKatzPIC.exe, HandleKatz.bin y loader.exe

tenga en cuenta que diferentes compiladores (versiones) producen resultados diferentes. Esto puede resultar en un archivo PE con desviaciones.

Todas las pruebas se realizaron con x86_64-w64-mingw32-gcc mingw-gcc version 11.2.0 (GCC). El PIC producido se ha probado con éxito en: Windows 10 Pro 10.0.17763. Los hash de la API pueden diferir para otras versiones de Windows.

Para usar el PIC, lanza un puntero al código de shell en la memoria ejecutable y llámalo como se define:

DWORD handleKatz(BOOL b_only_recon, char* ptr_output_path, uint32_t pid, char* ptr_buf_output);
  • b_only_recon Si se establece, HandleKatz solo enumerará los identificadores coincidentes sin volcar
  • ptr_output_path Determina dónde se escribe el volcado ofuscado
  • pid A partir de qué PID se va a clonar un identificador
  • ptr_buf_output Un puntero char en el que HandleKatz escribe su salida interna

El script se utiliza para revelar el archivo de volcado. Decoder.py puede ser usado.

Cargador implementa un cargador de muestra para HandleKatz:

loader.exe –pid: 7331 –outfile: C: Temp dump.obfuscated

reconocimiento

Dado que los identificadores clonados se utilizan junto con el código ReactOS modificado, no se pueden observar eventos de ProcessAccess en Lsass. Sin embargo, se pueden observar eventos de ProcessAccess en programas que contienen un identificador para Lsass.

Los defensores pueden usar set. supervisar las máscaras de acceso al proceso PROCESS_DUP_HANDLE (0x0040) para identificar el uso de esta herramienta.

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