Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
NativeBypassCredGuard — Bypassa Credential Guard applicando una patch a WDigest.dll utilizzando solo funzioni NTAPI | Kitploit
Strumenti/GitHubGitHub/ricardojoserf/nativebypasscredguard
Attacchi alle PasswordEvasione IDS/IPSPost-ExploitRed Teaming
GitHubricardojoserf/nativebypasscredguard

NativeBypassCredGuard

Bypassa Credential Guard applicando una patch a WDigest.dll utilizzando solo funzioni NTAPI

Vedi Repository

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
Sito web
27034101 anno faRevisionato da Kitploit

NativeBypassCredGuard

NativeBypassCredGuard è uno strumento progettato per bypassare Credential Guard applicando una patch a WDigest.dll utilizzando esclusivamente funzioni NTAPI (esportate da ntdll.dll). È disponibile in due versioni: C# e C++.

Lo strumento individua il pattern "39 ?? ?? ?? ?? 00 8b ?? ?? ?? ?? 00" nel file WDigest.dll su disco (come spiegato nel primo post della sezione References, il pattern è presente in questo file in tutte le versioni di Windows), quindi calcola gli indirizzi di memoria necessari e infine applica una patch al valore di due variabili all'interno di WDigest.dll: g_fParameter_UseLogonCredential (a 1) e g_IsCredGuardEnabled (a 0).

Questo forza la memorizzazione delle credenziali in chiaro in memoria, garantendo che da quel momento in poi le credenziali vengano salvate in testo chiaro ogni volta che gli utenti accedono. Di conseguenza, la prossima volta che il processo LSASS viene dumpato, potrebbe contenere password in chiaro.

Le funzioni NTAPI utilizzate sono:

poc

  • NtOpenProcessToken e NtAdjustPrivilegesToken per abilitare il privilegio SeDebugPrivilege
  • NtCreateFile e NtReadFile per aprire un handle al file DLL su disco e leggere i suoi byte
  • NtGetNextProcess e NtQueryInformationProcess per ottenere un handle al processo lsass
  • NtReadVirtualMemory e NtQueryInformationProcess per ottenere l'indirizzo di base di WDigest.dll
  • NtReadVirtualMemory per leggere i valori delle variabili
  • NtWriteProcessMemory per scrivere nuovi valori nelle variabili

Utilizzando solo funzioni NTAPI, è possibile rimappare la libreria ntdll.dll per bypassare gli hook in modalità utente e i meccanismi di sicurezza, che è una funzionalità opzionale dello strumento. Se utilizzata, una versione pulita di ntdll.dll viene ottenuta da un processo creato in modalità sospesa.


Utilizzo

NativeBypassCredGuard.exe <OPTION> <REMAP-NTDLL>

Opzione (obbligatoria):

  • check: Legge i valori correnti
  • patch: Scrive i nuovi valori

Remap ntdll (opzionale):

  • true: Rimappa la libreria ntdll
  • false (o omesso): Non rimappa la libreria ntdll

Esempi

Leggere i valori (senza rimappatura di ntdll):

NativeBypassCredGuard.exe check

img1

Applicare la patch ai valori (con rimappatura di ntdll):

NativeBypassCredGuard.exe patch true

img2


Note

  • Lo strumento è progettato per sistemi a 64 bit, quindi deve essere compilato come binario a 64 bit

  • Non funzionerà se non è possibile aprire un handle a lsass o se la struttura PEB non è leggibile. Per quanto riguarda quest'ultimo punto, puoi optare per l'uso di kernel32!LoadLibrary per caricare WDigest.dll nel tuo processo e ottenere il suo indirizzo di base, invece di usare ntdll!NtReadVirtualMemory e ntdll!NtQueryInformationProcess per ottenerlo dal processo lsass (trovi il codice per questa soluzione commentato nella versione C). Tuttavia useresti una funzione non esportata da ntdll.dll ma da kernel32.dll, e probabilmente sarebbe strano che un processo carichi quella DLL :)

  • 0x3rhy ha creato un file BOF basato su questo progetto: BypassCredGuard-BOF


Riferimenti

  • Revisiting a Credential Guard Bypass di itm4n - Una grande analisi da cui ho preso il pattern per cercare la sezione .text della DLL

  • WDigest: Digging the dead from the grave di neuralhax - Un blog sorprendente che dimostra che è possibile usare altri valori per g_fParameter_UseLogonCredential; non l'ho ancora testato, ma puoi giocare con la variabile useLogonCredential_Value

  • Exploring Mimikatz - Part 1 - WDigest di xpn - Fantastico post sul reverse-engineering e la spiegazione della cache delle credenziali WDigest

Scarica lo strumento