Skip to content
KitploitKITPLOIT
HerramientasBlog
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
Ledger — Un script de Aggressor que rastrea los cambios operativos realizados durante un ejercicio de red team. Te proporciona un registro de auditoría completo de lo que se cambió y de lo que aún queda por limpiar. | Kitploit
Herramientas/GitHubGitHub/shellkraft/ledger
Scripting y AutomatizaciónPost-ExplotaciónPruebas de PenetraciónComando y ControlUtilidades y FrameworksRed TeamingRespuesta a IncidentesAnálisis de Registros
GitHubshellkraft/ledger

Ledger

Un script de Aggressor que rastrea los cambios operativos realizados durante un ejercicio de red team. Te proporciona un registro de auditoría completo de lo que se cambió y de lo que aún queda por limpiar.

271hace 3 mesesRevisado 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 →
Compartir
Ver Repositorio

Ledger — Script agresor de seguimiento de cambios operativos

Ledger es un script agresor de Cobalt Strike que registra cada cambio operativo realizado durante un compromiso. Cada servicio que habilitas, regla de firewall que abres, cuenta que creas o clave de registro que tocas queda registrada con una puntuación de riesgo, atribución al operador y estado de limpieza. Al final del compromiso tienes un rastro de auditoría completo de lo que se cambió y de lo que aún necesita limpieza.


Por qué

Los compromisos de red team dejan artefactos. Se habilitan servicios, se crean cuentas, se abren reglas de firewall, se modifican claves de registro. Sin un registro estructurado es fácil olvidarlos, especialmente en compromisos largos o cuando varios operadores trabajan simultáneamente.

Ledger te ofrece un diario en curso con:

  • Puntuación de riesgo por entrada y por host
  • Seguimiento de limpieza para que no quede nada atrás
  • Atribución por operador mediante el registro de eventos de Cobalt Strike
  • Exportación a JSON o texto plano para informes posteriores a la acción
  • Avisos automáticos de baliza muerta cuando hay cambios sin limpiar pendientes

Instalación

  1. Copia ledger.cna al directorio de scripts de Cobalt Strike.
  2. En la barra de menús: Cobalt Strike → Script Manager → Load → selecciona ledger.cna.
  3. Aparecerá un menú Ledger en la barra de menús.
  4. El alias dirty ya está disponible en cada consola de Beacon.

Uso

Todos los comandos se ejecutan desde una consola de Beacon usando el alias dirty.


Registrar un cambio (sin ejecución)

root@kitploit:~
dirty <CATEGORY> <command> [comment] [score]

comment y score son opcionales. Si se omiten, se usan valores predeterminados sensatos según la categoría.

root@kitploit:~
dirty RPC "sql-enablerpc lon-db-1 lon-db-2"
dirty DEFENDER "add-exclusion C:\windows\temp" "Payload staging" 8
dirty GROUP "net group 'Domain Admins' svc_backup /add /domain"
dirty USER "net user backdoor P@ssw0rd! /add"
dirty SCHEDULED_TASK "schtasks /create /tn updater /tr C:\temp\beacon.exe /sc onlogon"
image

Ejecutar y registrar en un solo paso

root@kitploit:~
dirty exec <CATEGORY> <command> [comment] [score]

Registra el cambio y ejecuta inmediatamente el comando en el beacon: un solo paso en lugar de dos.

root@kitploit:~
dirty exec RPC "sql-enablerpc lon-db-1 lon-db-2"
dirty exec USER "net user backdoor P@ssw0rd! /add"
dirty exec DEFENDER "sc config WinDefend start= disabled"
dirty exec FIREWALL "netsh advfirewall set allprofiles state off"

Limitaciones de dirty exec

dirty exec usa brun internamente, que ejecuta un binario directamente sin un envoltorio cmd.exe /c. Esto significa:

  • Funciona con ejecutables reales: net, sc, reg, nltest, whoami, ipconfig, etc.
  • No funciona con funciones integradas de Beacon: sleep, cd, ls, pwd, download, upload, execute-assembly, inject, etc. Para esas, ejecuta el comando de Beacon normalmente y usa dirty <CATEGORY> <command> por separado para registrarlo.

Ver el diario

root@kitploit:~
dirty show
dirty show DEFENDER
dirty show DESKTOP-ABC123

Muestra todas las entradas registradas. El filtro opcional coincide con comando, comentario, categoría, nombre de host y nombre de usuario.

image

Resumen de puntuación

root@kitploit:~
dirty score

Muestra un resumen de riesgo por host con puntuación agregada, recuento de limpieza pendiente y una barra visual. Los hosts se ordenan de mayor a menor puntuación.


Marcar entradas como limpiadas

root@kitploit:~
dirty clean <id>
dirty clean all
dirty clean host <hostname>

La coincidencia de nombre de host no distingue mayúsculas y admite coincidencias parciales: DESKTOP coincide con DESKTOP-FGN4LPG.


Exportar

root@kitploit:~
dirty export text
dirty export json
dirty export text DEFENDER
dirty export json DESKTOP-ABC

Las exportaciones se escriben en el directorio que contiene ledger.cna e incluyen un resumen de puntuación por host al principio seguido del registro de cambios completo. Los botones del menú Ledger en la barra de menús activan exportaciones sin filtro directamente.


Ayuda

root@kitploit:~
dirty help

Categorías y puntuaciones predeterminadas

Cualquier categoría no listada se acepta con una puntuación predeterminada de 3.


Umbrales de riesgo

Por entrada

EtiquetaPuntuación
LOW< 5
MEDIUM5 – 7
HIGH8+

Agregado (por host)

EtiquetaPuntuación
LOW< 5
MEDIUM5 – 9
HIGH10 – 14
CRITICAL15+

Aviso de baliza muerta

Cuando una baliza muere con entradas de Ledger sin limpiar pendientes, Ledger envía una advertencia roja al registro de eventos de Cobalt Strike visible para todos los operadores conectados:

image

La advertencia se dispara una vez por baliza y se restablece automáticamente si la baliza se recupera y vuelve a conectarse. Las balizas vinculadas (hijas) y las balizas eliminadas explícitamente por un operador quedan excluidas. El tiempo del aviso se escala con el ajuste de sueño de la baliza: un sueño de 60s se dispara después de ~2 minutos, un sueño de 5m después de ~10 minutos.


Formato de exportación

Texto

root@kitploit:~
LEDGER EXPORT -- 2026-05-21 19:50:34

HOST SCORE SUMMARY
================================================================================
Host  Risk  Score  Pending  Bar
--------------------------------------------------------------------------------
DESKTOP-RLP4KBJ (sally *)  CRITICAL  +21  2 pend  [##########]
DESKTOP-FGN4LPG (Admin)  CRITICAL  +18  0 pend  [#########]
================================================================================

CHANGE LOG
================================================================================

[000002] 2026-05-21 19:22:56 | neo | GROUP | MEDIUM +6 | CLEANED
  Host          : DESKTOP-FGN4LPG
  User          : Admin
  Process       : HTTP Listener_x64.exe (PID 4716)
  Command       : net group 'Domain Admins' svc_backup /add /domain
  Comment       : Added svc_backup to Domain Admins for lateral movement

JSON

root@kitploit:~
{
  "exported":    "2026-05-21 19:53:19",
  "host_summary": [
    {
      "host":    "DESKTOP-FGN4LPG (Admin)",
      "risk":    "CRITICAL",
      "score":   18,
      "pending": 0
    },
    {
      "host":    "DESKTOP-RLP4KBJ (sally *)",
      "risk":    "CRITICAL",
      "score":   21,
      "pending": 2
    }
  ],
  "entries": [
  {
    "id":             "000004",
    "timestamp":      "2026-05-21 19:31:36",
    "operator":       "neo",
    "beacon_id":      "1607712302",
    "computer":       "DESKTOP-RLP4KBJ",
    "beacon_user":    "sally *",
    "beacon_process": "HTTP Listener_x64.exe (PID 11540)",
    "functionality":  "USER",
    "command":        "net user svc_backup P@ssw0rd123! /add /domain",
    "comment":        "Created service account for persistence",
    "score":          7,
    "risk":           "MEDIUM",
    "cleaned":        false
  }

Uso con múltiples operadores

Cada entrada registrada y limpiada se transmite al registro de eventos de Cobalt Strike mediante elog, de modo que todos los operadores conectados ven los cambios de los demás en tiempo real. El diario vive en la memoria del teamserver durante la sesión.


Notas

  • El diario es solo en memoria y no persiste entre reinicios del teamserver. Exporta antes de apagar.
  • Las exportaciones se escriben en el directorio que contiene ledger.cna.
  • Se admiten anulaciones de puntuación: dirty USER "net user ..." "my comment" 9 — el argumento final establece una puntuación explícita.
  • Cargar el script dos veces (por ejemplo, una vez mediante Script Manager y otra manualmente) registrará manejadores de eventos duplicados. Revisa Script Manager si ves salida duplicada.
Descargar herramienta
  • No funciona con funciones integradas del shell que requieren cmd.exe: dir, echo, set, type, tuberías (|), redirecciones (>), etc. Regístralas manualmente con dirty CATEGORY "shell <command>".
  • Los alias BOF personalizados cargados desde otros archivos .cna no se despacharán correctamente a través de dirty exec.
  • CategoríaPuntuación predeterminadaComentario predeterminado
    REGISTRY2Registro modificado
    FIREWALL3Regla de firewall modificada
    SERVICE3Configuración de servicio cambiada
    RPC4Cambios realizados en RPC
    WINRM4WinRM habilitado
    SMB4Firma SMB cambiada
    DCOM4DCOM habilitado
    RDP5RDP habilitado
    SCHEDULED_TASK5Tarea programada creada
    DEFENDER6Configuración de Defender cambiada
    GROUP6Membresía de grupo modificada
    USER7Cuenta de usuario modificada
    ACL8ACL modificada
    SPN8SPN modificado
    DOMAIN_ADMIN9Grupo de administradores de dominio modificado
    TRUST9Relación de confianza modificada