Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Ledger — Uno script aggressor che tiene traccia delle modifiche operative effettuate durante un engagement red team. Fornisce una traccia di audit completa di ciò che è stato modificato e di ciò che deve ancora essere ripulito. | Kitploit
Strumenti/GitHubGitHub/shellkraft/ledger
Scripting e AutomazionePost-ExploitPenetration TestingCommand and ControlUtilità e FrameworkRed TeamingRisposta agli IncidentiAnalisi dei Log
GitHubshellkraft/ledger

Ledger

Uno script aggressor che tiene traccia delle modifiche operative effettuate durante un engagement red team. Fornisce una traccia di audit completa di ciò che è stato modificato e di ciò che deve ancora essere ripulito.

2713 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

Ledger — Script Aggressor per il Tracciamento delle Modifiche Operative

Ledger è uno script Aggressor per Cobalt Strike che traccia ogni modifica operativa effettuata durante un engagement. Ogni servizio che abiliti, regola firewall che apri, account che crei o chiave di registro che tocchi viene registrato con un punteggio di rischio, l'attribuzione dell'operatore e lo stato di pulizia. Al termine dell'engagement disponi di una traccia di audit completa di ciò che è stato modificato e di ciò che deve ancora essere ripulito.


Perché

Gli engagement di red team lasciano artefatti. I servizi vengono abilitati, gli account creati, le regole firewall aperte, le chiavi di registro modificate. Senza un log strutturato è facile dimenticarsene — soprattutto negli engagement lunghi o quando più operatori lavorano contemporaneamente.

Ledger ti offre un journal in continuo aggiornamento con:

  • Punteggio di rischio per voce e per host
  • Tracciamento del cleanup per non lasciare nulla indietro
  • Attribuzione per operatore tramite l'event log di Cobalt Strike
  • Esportazione in JSON o testo semplice per i report post-azione
  • Avvisi automatici di beacon morti quando ci sono modifiche non ripulite in sospeso

Installazione

  1. Copia ledger.cna nella directory degli script di Cobalt Strike.
  2. Nella barra dei menu: Cobalt Strike → Script Manager → Load → seleziona ledger.cna.
  3. Nella barra dei menu apparirà un menu Ledger.
  4. L'alias dirty è ora disponibile in ogni console Beacon.

Utilizzo

Tutti i comandi vengono eseguiti da una console Beacon utilizzando l'alias dirty.


Registra una modifica (senza esecuzione)

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

comment e score sono opzionali. Se omessi, vengono utilizzati valori predefiniti sensati in base alla categoria.

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"
immagine

Esegui e registra in un unico passaggio

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

Registra la modifica ed esegue immediatamente il comando sul beacon — un passaggio invece di due.

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"

Limiti di dirty exec

dirty exec usa brun internamente, che esegue un binario direttamente senza un wrapper cmd.exe /c. Ciò significa:

  • Funziona per eseguibili reali: net, sc, reg, nltest, whoami, ipconfig, ecc.
  • Non funziona per i comandi integrati di Beacon: sleep, cd, ls, pwd, download, upload, execute-assembly, inject, ecc. Per questi, esegui normalmente il comando Beacon e usa dirty <CATEGORY> <command> separatamente per registrarlo.

Visualizza il journal

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

Mostra tutte le voci registrate. Il filtro opzionale cerca in comando, commento, categoria, hostname e nome utente.

immagine

Riepilogo dei punteggi

root@kitploit:~
dirty score

Mostra un riepilogo del rischio per host con punteggio aggregato, conteggio dei cleanup in sospeso e una barra visiva. Gli host sono ordinati dal punteggio più alto al più basso.


Segna le voci come ripulite

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

La corrispondenza dell'hostname non fa distinzione tra maiuscole e minuscole e supporta corrispondenze parziali — DESKTOP corrisponde a DESKTOP-FGN4LPG.


Esportazione

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

Le esportazioni vengono scritte nella directory che contiene ledger.cna e includono un riepilogo dei punteggi per host in cima, seguito dal log completo delle modifiche. I pulsanti della barra dei menu Ledger avviano direttamente esportazioni senza filtri.


Aiuto

root@kitploit:~
dirty help

Categorie e punteggi predefiniti

Qualsiasi categoria non elencata viene accettata con un punteggio predefinito di 3.


Soglie di rischio

Per voce

EtichettaPunteggio
LOW< 5
MEDIUM5 – 7
HIGH8+

Aggregato (per host)

EtichettaPunteggio
LOW< 5
MEDIUM5 – 9
HIGH10 – 14
CRITICAL15+

Avviso di beacon morto

Quando un beacon muore con voci del ledger non ripulite ancora in sospeso, Ledger emette un avviso rosso nell'Event Log di Cobalt Strike visibile a tutti gli operatori connessi:

immagine

L'avviso viene emesso una volta per beacon e si azzera automaticamente se il beacon si riprende e effettua nuovamente il check-in. I beacon collegati (figli) e i beacon terminati esplicitamente da un operatore sono esclusi. La tempistica dell'avviso scala con l'impostazione di sleep del beacon — uno sleep di 60s attiva l'avviso dopo ~2 minuti, uno sleep di 5m dopo ~10 minuti.


Formato di esportazione

Testo

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
  }

Utilizzo multi-operatore

Ogni voce registrata e ripulita viene trasmessa all'Event Log di Cobalt Strike tramite elog, così tutti gli operatori connessi vedono in tempo reale le modifiche degli altri. Il journal risiede nella memoria del teamserver per l'intera durata della sessione.


Note

  • Il journal è solo in memoria e non persiste tra i riavvii del teamserver. Esporta prima di spegnere.
  • Le esportazioni vengono scritte nella directory che contiene ledger.cna.
  • Gli override del punteggio sono supportati: dirty USER "net user ..." "my comment" 9 — l'argomento finale imposta un punteggio esplicito.
  • Caricare lo script due volte (ad es. una volta tramite Script Manager e una volta manualmente) registrerà gestori di eventi duplicati. Controlla Script Manager se vedi un output raddoppiato.
Scarica lo strumento
  • Non funziona per i comandi integrati della shell che richiedono cmd.exe: dir, echo, set, type, pipe (|), reindirizzamenti (>), ecc. Registra questi manualmente con dirty CATEGORY "shell <command>".
  • Gli alias BOF personalizzati caricati da altri file .cna non verranno gestiti correttamente tramite dirty exec.
  • CategoriaPunteggio PredefinitoCommento Predefinito
    REGISTRY2Registro modificato
    FIREWALL3Regola firewall modificata
    SERVICE3Configurazione del servizio modificata
    RPC4Modifiche apportate a RPC
    WINRM4WinRM abilitato
    SMB4Firma SMB modificata
    DCOM4DCOM abilitato
    RDP5RDP abilitato
    SCHEDULED_TASK5Attività pianificata creata
    DEFENDER6Configurazione di Defender modificata
    GROUP6Appartenenza al gruppo modificata
    USER7Account utente modificato
    ACL8ACL modificata
    SPN8SPN modificato
    DOMAIN_ADMIN9Gruppo Domain Admin modificato
    TRUST9Relazione di trust modificata