Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
aggrokatz — Aggrokatz es una extensión de plugin agresor para Cobalt Strike que permite que pypykatz interactúe con los beacons de forma remota y permite analizar archivos de volcado de LSASS y archivos de hive del registro para extraer credenciales y otros secretos almacenados sin descargar el archivo y sin subir ningún código sospechoso al beacon. | Kitploit
Herramientas/GitHubGitHub/sec-consult/aggrokatz
Frameworks de ExploitsPost-ExplotaciónPruebas de PenetraciónRed TeamingDesarrollo de Payloads
GitHubsec-consult/aggrokatz

aggrokatz

Ver Repositorio
1552614hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

Aggrokatz es una extensión de plugin agresor para Cobalt Strike que permite que pypykatz interactúe con los beacons de forma remota y permite analizar archivos de volcado de LSASS y archivos de hive del registro para extraer credenciales y otros secretos almacenados sin descargar el archivo y sin subir ningún código sospechoso al beacon.

Compartir

aggrokatz

aggro_card

¿Qué es esto?

aggrokatz es una extensión de plugin Aggressor para CobaltStrike que permite que pypykatz interactúe con los beacons de forma remota.
La versión actual de aggrokatz permite que pypykatz analice archivos de volcado LSASS y archivos de Hives del Registro para extraer credenciales y otros secretos almacenados sin descargar el archivo y sin subir ningún código sospechoso al beacon (Cobalt Strike ya está allí de todas formas). En el futuro, este proyecto pretende proporcionar características adicionales para operaciones encubiertas, como la búsqueda y descifrado de todos los secretos de DPAPI/kerberoasting, etc.

Hemos publicado un breve blog post para el lanzamiento de esta herramienta, que también incluye algunas capturas de pantalla.

NOTAS IMPORTANTES - POR FAVOR, LEA ESTO

El volcado de LSASS/Registro no es el objetivo de este proyecto, solo el análisis. Razones:

  1. Ya existen múltiples técnicas de volcado implementadas desde Cobalt Strike (CS) y ampliamente disponibles para el público. Recientemente cambiamos a una versión modificada de CredBandit que vuelca los bytes sin procesar al disco en lugar de base64. Herramienta genial, échale un vistazo.
  2. Queremos mantener nuestra técnica de volcado en privado.

En el cliente de CS, no use "reload" ni intente descargar y volver a cargar manualmente el script si lo ha modificado. DEBE descargarlo, cerrar el cliente y abrirlo de nuevo, luego cargar el script modificado. ¡De lo contrario, tendrá varias versiones ejecutándose simultáneamente y se producirán un montón de errores y comportamientos extraños!
Mientras analiza archivos LSASS/registro en el extremo remoto, no interactúe con el beacon específico en el que inició el script. Normalmente no causaría problemas, pero no puedo dar garantías.

Instalación

  • Necesitará tener pycobalt instalado y configurado. Hay un readme en su página de github.
  • Necesitará instalar pypykatz versión >=0.4.8
  • Necesitará Cobalt Strike

Configuración

  • Asegúrese de que el archivo aggressor.cna de pycobalt esté configurado y conozca la ubicación de su intérprete de Python
  • Cambie la ruta pycobalt_path en aggrokatz.cna para que apunte a pycobalt.cna
  • En CS use las ventanas View > Script Console y Cobalt Strike > Script Manager. Usando Script Manager cargue el script aggkatz.cna.

Uso

  • Si el script aggkatz.cna se cargó correctamente, tendrá un nuevo elemento de menú pypykatz al hacer clic derecho en un beacon.
  • Durante el análisis, verá mensajes de depuración en la ventana Script Console.
  • Una vez finalizado el análisis, los resultados se mostrarán tanto en la ventana Script Console como en la propia ventana del Beacon.

Parámetros del menú de análisis de volcado LSASS

  • LSASS file: La ubicación del archivo lsass.dmp en la computadora remota. También puede usar rutas UNC para acceder a archivos lsass.dmp compartidos a través de SMB
  • chunksize : La cantidad máxima que se leerá de una sola vez
  • BOF file : El archivo BOF (Beacon Object File) que permite lecturas fragmentadas. Este archivo se cargará y ejecutará (en memoria) cada vez que se lea un nuevo fragmento.
  • (module) : Especifica qué módulos se analizarán. Por defecto: all
  • Output : Especifica el/los formato(s) de salida
  • Populate Credential tab : Después de un análisis exitoso, todas las credenciales obtenidas estarán disponibles en la pestaña de Credenciales de Cobalt Strike. Esta característica está en beta
  • Delete remote file after parsing : Después de un análisis exitoso, el archivo de volcado LSASS se eliminará del destino

Parámetros del menú de análisis de volcado de registro

  • SYSTEM file: La ubicación del archivo SYSTEM.reg en la computadora remota. También puede usar rutas UNC para acceder a archivos compartidos a través de SMB
  • SAM file (optional): La ubicación del archivo SAM.reg en la computadora remota. También puede usar rutas UNC para acceder a archivos compartidos a través de SMB
  • SECURITY file (optional): La ubicación del archivo SECURITY.reg en la computadora remota. También puede usar rutas UNC para acceder a archivos compartidos a través de SMB
  • SOFTWARE file (optional): La ubicación del archivo SOFTWARE.reg en la computadora remota. También puede usar rutas UNC para acceder a archivos compartidos a través de SMB
  • chunksize : La cantidad máxima que se leerá de una sola vez
  • BOF file : El archivo BOF (Beacon Object File) que permite lecturas fragmentadas. Este archivo se cargará y ejecutará (en memoria) cada vez que se lea un nuevo fragmento.
  • Output : Especifica el/los formato(s) de salida

Limitaciones

El BOF de lectura de archivos actualmente admite lecturas de archivos de hasta 4Gb. Esto se puede ampliar con algunas modificaciones, pero hasta ahora no se han observado archivos tan grandes.

Cómo funciona

TL;DR

Normalmente, el analizador de pypykatz realiza una serie de operaciones de lectura de archivos en el disco, pero con la ayuda de aggrokatz, estas operaciones de lectura se canalizan al beacon utilizando un BOF (Beacon Object File) especialmente diseñado que permite leer el contenido del archivo remoto en fragmentos. Esto permite que pypykatz extraiga todos los secretos de los archivos remotos sin leer todo el archivo, solo tomando los fragmentos necesarios donde se encuentran los secretos.

En profundidad

Para tener una visión completa de todo el proceso, debemos resaltar dos partes:

  1. cómo se integra pypykatz con CobaltStrike
  2. cómo pypykatz realiza la extracción de credenciales sin leer todo el archivo

Integración de pypykatz con CobaltStrike

CobaltStrike (agente) está escrito en Java, pypykatz está escrito en Python. Esto es un problema. Por suerte para nosotros, una entidad desconocida creó pycobalt que proporciona una interfaz ordenada entre ambos mundos, completa con APIs útiles que se pueden invocar directamente desde Python. A pesar de que pycobalt es una pieza de ingeniería maravillosa, hay algunos problemas/inconvenientes que debemos señalar:

  1. Sobre la confianza en el proyecto pycobalt:
  • Intentamos contactar al autor pero no obtuvimos respuesta.
  • No podemos garantizar que el proyecto pycobalt se mantendrá en el futuro.
  • No controlamos ningún aspecto del desarrollo de pycobalt.
  1. Sobre problemas técnicos observados:
  • En general, hay algunos problemas de codificación entre pycobalt y CobaltStrike. Esto da como resultado que algunas llamadas a la API devuelvan bytes que no se pueden usar porque algunos bytes se alteran por el codificador. Al revisar el código, concluimos que la mayoría de los problemas de codificación/descodificación se deben a que pycobalt usa STDOUT/STDIN para comunicarse con el proceso de Java.
  • Específicamente, la llamada a la API bof_pack, que es crucial para este proyecto, tuvo que ser implementada como un script puramente Aggressor e invocada solo desde Python usando estructuras de datos básicas (string e int) y no usando bytes.
  • Solo se proporcionan APIs bloqueantes del paquete pycobalt sin soporte de subprocesos (threading). Bueno, al menos observamos que los subprocesos se rompen aleatoriamente, pero algo esperábamos esto.
  • API bloqueante + sin subprocesos + dependencia de callbacks = tuvimos que emplear algunos hacks extraños para que funcionara correctamente.
Descargar herramienta