
Passa l'hash a un pipe con nome per l'impersonazione del token
Questo progetto è un codice PoC per utilizzare Pass-the-Hash per l'autenticazione su un Named Pipe locale con impersonificazione dell'utente. C'è anche un post sul blog per spiegazioni:
https://s3cur3th1ssh1t.github.io/Named-Pipe-PTH/
Si basa fortemente sul codice dei progetti Invoke-SMBExec.ps1 e RoguePotato.
In passato mi sono trovato in situazioni di progetti Offensive Security in cui avevo già l'NTLM-Hash di un account utente a bassi privilegi e avevo bisogno di una shell per quell'utente sul sistema compromesso corrente, ma ciò non era possibile con gli strumenti pubblici attuali. Immaginate altri due fatti per una situazione del genere: l'NTLM Hash non poteva essere craccato e non esisteva alcun processo dell'utente vittima in cui iniettare shellcode o in cui migrare. Questo potrebbe sembrare un caso limite assurdo per alcuni di voi. Tuttavia, l'ho sperimentato diverse volte. Non solo in un singolo impegno ho passato molto tempo a cercare lo strumento/tecnica giusto in quella situazione specifica.
I miei obiettivi personali per uno strumento/tecnica erano:
a bassi privilegi – a seconda degli obiettivi dell'impegno potrebbe essere necessario accedere a un sistema con un utente specifico come il CEO, account HR, amministratori SAP o altriL'utente impersonato purtroppo non può eseguire autenticazioni di rete, poiché il nuovo processo utilizza un Token di Impersonificazione che è ristretto. Quindi puoi utilizzare questa tecnica solo per azioni locali con un altro utente.
Ci sono due modi per utilizzare questa tecnica. Puoi compilare \Resources\PipeServerImpersonate.sln e rilasciare l'eseguibile sull'host remoto e connetterti al Named Pipe tramite \Resources\Invoke-NamedPipePTH.ps1:
Oppure puoi utilizzare lo script standalone per rimanere in memoria:
Se non vuoi rilasciare un binario per l'esecuzione, passa semplicemente argomenti per binari Windows nativi come Powershell
Invoke-ImpersonateUser-PTH -Username USERNAME -Hash NTLMHASH -Domain DOMAIN -PipeName mypipe -binary "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -argument "-nop -w 1 -sta -enc BASEBLOB"