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
dumpguard_bof — Porting di DumpGuard come Beacon Object File (BOF) per l'estrazione degli hash NTLMv1 dalle sessioni sui moderni sistemi Windows. | Kitploit
Strumenti/GitHubGitHub/0xedh/dumpguard_bof
Attacchi alle PasswordExploitPost-ExploitPenetration TestingAutenticazioneRed Teaming
GitHub0xedh/dumpguard_bof

dumpguard_bof

Porting di DumpGuard come Beacon Object File (BOF) per l'estrazione degli hash NTLMv1 dalle sessioni sui moderni sistemi Windows.

Vedi Repository
222247 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

DumpGuard BOF

Porting Beacon Object File (BOF) di DumpGuard per l'estrazione di hash NTLMv1 dalle sessioni su sistemi Windows moderni.

Demo

Informazioni su questo progetto

Questo repository contiene un'implementazione Beacon Object File (BOF) di DumpGuard, trasferita dall'implementazione originale C#/.NET in C puro per l'uso con Havoc e altri framework C2 che supportano l'esecuzione di BOF.

Questa è una Proof of Concept (PoC) e un esercizio di apprendimento.

Questo porting BOF è stato creato come parte del mio percorso personale per comprendere i dettagli del protocollo Remote Credential Guard, i flussi di autenticazione Kerberos e i meccanismi di sicurezza Windows sottostanti. Il processo di porting di questo strumento da C# a C puro per l'esecuzione come BOF è stato principalmente un'attività educativa.

Tieni presente che:

  • Questo codice potrebbe contenere bug, errori o implementazioni incomplete.
  • Non è stato testato estensivamente su tutte le versioni o configurazioni di Windows.
  • Alcuni casi limite o sfumature del protocollo potrebbero non essere gestiti correttamente.
  • L'implementazione potrebbe differire dall'originale in modi che influiscono sull'affidabilità.
  • Questo non è codice pronto per la produzione. Usalo a tuo rischio Ü.

Se trovi problemi o hai miglioramenti, i contributi sono i benvenuti. Per un'implementazione robusta e ben testata, fai riferimento allo strumento DumpGuard originale.

Ricerca originale

Questo BOF si basa sulla ricerca e sugli strumenti di @bytewreck presso SpecterOps:

  • Strumento originale: github.com/bytewreck/DumpGuard
  • Post del blog: Catching Credential Guard Off Guard

Panoramica

DumpGuard sfrutta Windows Remote Credential Guard (RCG) per estrarre hash NTLMv1 degli utenti con sessione attiva senza toccare la memoria di LSASS e senza richiedere privilegi di amministratore. Funziona anche quando Credential Guard è abilitato.

Come funziona

  1. Simula localmente un server CredSSP/RDP. Il BOF agisce come un falso server RDP.
  2. Inganna Windows SSPI per eseguire un'autenticazione Kerberos + CredSSP completa.
  3. Riceve le credenziali dell'utente avvolte in TSRemoteGuardCreds.
  4. Chiama il pacchetto TSSSP di LSA per calcolare una risposta NTLMv1 con una sfida nota.

La danza CredSSP a 4 round

Dopo il Round 4, abbiamo il blob di credenziali crittografato. La magia avviene quando chiamiamo LsaCallAuthenticationPackage con il pacchetto TSSSP. LSA instrada la nostra richiesta attraverso RDPEAR -> TSRemoteGuard -> MSV1_0, che decripta i segreti e calcola per noi la risposta NTLMv1.

Contesto

Credential Guard isola i segreti NTLM e Kerberos in uno spazio VBS sicuro (LsaIso.exe), prevenendo attacchi di accesso diretto alla memoria come Mimikatz. Tuttavia, Credential Guard deve comunque usare quei segreti per l'autenticazione legittima. È questa l'interfaccia che questa tecnica sfrutta.

Per un'analisi tecnica approfondita, vedi: Catching Credential Guard Off Guard

Implementazione

Questo porting BOF implementa solo la modalità "Self" dello strumento DumpGuard originale. Le modalità "All" non sono implementate in questa versione.

Modalità Self

Estrae l'hash NTLMv1 dell'utente del processo corrente tramite il protocollo Remote Credential Guard.

  • Requisiti di privilegio: Nessuno (viene eseguito nel contesto dell'utente corrente)
  • Stato di Credential Guard: Funziona indipendentemente dal fatto che Credential Guard sia abilitato
  • Requisiti: Credenziali per un account con un SPN registrato

Estrazione degli hash di altri utenti

Sebbene questo BOF implementi solo la modalità "self", puoi comunque estrarre gli hash NTLMv1 di altri utenti, ad esempio iniettandolo in un processo che gira come quell'utente. Per esempio, se hai privilegi di amministratore, puoi iniettare il BOF in un processo di proprietà di un altro utente con sessione attiva per ottenere il suo hash.

Prerequisiti

Account con SPN abilitato

Questa tecnica richiede le credenziali di un account con un Service Principal Name (SPN) registrato. Un modo per ottenere questo è creare un account macchina e aggiungervi un SPN.

Passaggio 1: Creare un account macchina

Usando Impacket:

root@kitploit:~
python3 addcomputer.py -computer-name 'YOURCOMPUTER$' domain.local/user:password -dc-ip <DC_IP>

Esempio di output:

root@kitploit:~
[*] Successfully added machine account YOURCOMPUTER$ with password <random_password>.

Passaggio 2: Aggiungere un SPN all'account macchina

Usando addspn.py di krbrelayx:

root@kitploit:~
python3 addspn.py -u domain.local\\YOURCOMPUTER\$ -p '<password>' -s host/yourspn.domain.local --target-type samname <DC_IP>

Passaggio 3: Verificare l'SPN (se vuoi)

Usando pywerview:

root@kitploit:~
python3 pywerview.py get-adobject -d domain.local -u YOURCOMPUTER\$ -p '<password>' -t <DC_IP> --sam-account-name YOURCOMPUTER\$

Cerca serviceprincipalname: host/yourspn.domain.local nell'output.

Utilizzo

Havoc C2

root@kitploit:~
inline-execute /path/to/dumpguard.x64.o x <domain> <username> <password> <spn>

Nota: Il parametro x è un argomento segnaposto/fittizio richiesto prima del dominio. Questo potrebbe essere risolto nelle versioni future (se ci saranno).

Esempio:

root@kitploit:~
inline-execute /tmp/dumpguard.x64.o x sevenkingdoms.local EVIL_COMPUTER$ MXj070PQpCkNmZiYsRbIu8YYwgDKPD2r host/EVILSPN.sevenkingdoms.local

Esempio di output:

root@kitploit:~
[DG] Domain: sevenkingdoms.local
[DG] User: EVIL_COMPUTER$
[DG] SPN: host/EVILSPN.sevenkingdoms.local
[DG] checkpoint 1: init APIs
[DG] SSPI init OK
[DG] checkpoint 2: acquire creds
[DG] checkpoint 3: starting SSPI loop
[DG] Round 1
[DG] AS-REQ: LTK derived, etype=18 len=32
[DG] AS-REQ: sending to KDC...
[DG] Round 2
[DG] Round 3
[DG] NTLMv1: SEVENKINGDOMS\EVIL_COMPUTER$::GOAD-WIN2025::6D270E39AD2DE48B561895C3257D7123FE84F1438B147E2A:1122334455667788

Importante: L'hash NTLMv1 estratto appartiene all'utente che esegue il processo BOF, non all'account macchina usato per l'autenticazione (EVIL_COMPUTER$). Le credenziali dell'account macchina vengono usate solo per autenticarsi al KDC e stabilire la sessione Remote Credential Guard.

L'output è in formato NTLMv1 compatibile con hashcat:

root@kitploit:~
DOMAIN\user::HOSTNAME::NTRESPONSE:CHALLENGE

Compilazione

root@kitploit:~
make clean && make

Output: build/dumpguard.x64.o

Requisiti

  • Il target deve essere una macchina Windows appartenente al dominio
  • Servono le credenziali di un account con SPN abilitato (vedi Prerequisiti)
  • Il BOF viene eseguito nel contesto dell'utente del processo corrente

Riferimenti

Documentazione Microsoft

  • Panoramica di Credential Guard
  • Remote Credential Guard
  • AcquireCredentialsHandle
  • InitializeSecurityContext
  • AcceptSecurityContext
  • LsaRegisterLogonProcess
  • LsaConnectUntrusted
  • LsaCallAuthenticationPackage

Protocolli Microsoft

  • MS-RDPEAR - Remote Desktop Protocol: Authentication Redirection Virtual Channel Protocol
  • MS-CSSP - Credential Security Support Provider Protocol

Articoli di ricerca e post del blog

  • Catching Credential Guard Off Guard - Valdemar Caroe, SpecterOps (2025)
  • Pass the Challenge: Defeating Windows Defender Credential Guard - Oliver Lyak (2022)
  • Windows Exploitation Tricks: Exploiting Arbitrary File Writes for Local Elevation of Privilege - James Forshaw, Project Zero (2018)
  • The LSA Whisperer Project - Evan McBroom, SpecterOps

Licenza

BSD 3-Clause License

Lo strumento DumpGuard originale è concesso in licenza BSD 3-Clause, Copyright (c) 2025 Valdemar Carøe. Questo porting BOF mantiene gli stessi termini di licenza.


Per domande, segnalazioni di bug o contributi, apri una issue su GitHub.

Scarica lo strumento
RoundClient -> ServerServer -> Client
1SPNEGO + TGT-REQTGT-REPLY (dal KDC reale)
2AP-REQ (ticket di servizio)AP-REP + MIC
3PubKeyAuth (hash di binding)Hash di binding del server
4AuthInfo (TSRemoteGuardCreds)N/A