Estrai gli hash delle password da LDAP di Active Directory

7

Attualmente stiamo lavorando a un test di sicurezza interno mensile che, tra l'altro, dovrebbe contenere una verifica della reale forza della password scelta dagli utenti. Per questo motivo voglio estrarre gli hash delle password di tutti gli utenti tramite LDAP. Tutto quello che ho trovato è stato questa discussione tecnica che mi dice che non posso estrarre gli hash anche se non come amministratore che davvero non posso (non voglio) credere.

Esiste un modo per estrarre gli hash delle password da un server Active Directory?

Ciò che vogliamo fare è estrarre gli hash anche se possiamo eseguire un attacco di sillaba contro di loro per verificare se le password sono realmente o solo tecnicamente buone.

    
posta davidb 14.09.2015 - 19:53
fonte

4 risposte

6

Devi ottenere il file binario NTDS.DIT da %SystemRoot%\ntds .

Puoi usare ntdsutil per creare un'istantanea del database AD in modo che tu possa copiare NTDS.DIT .

Quindi puoi usare qualcosa come lo strumento Windows Password Recovery per estrarre gli hash.

link

link

link

    
risposta data 14.09.2015 - 21:28
fonte
13

Non è necessario elaborare il file DIT per acquisire gli hash da AD o AD LDS, esiste anche l'accesso al protocollo.

Anche se un normale LDAP-legge sull'attributo "userpassword" (come è possibile fare su altri prodotti di directory) sarà sempre bloccato completamente in AD, c'è un altro modo ufficiale per leggere gli hash da AD o AD LDS ed è ufficialmente presente da almeno Server 2003. È necessario utilizzare una speciale autorizzazione di accesso AD (DS-Replication-Get-Changes-All) e un protocollo Microsoft documentato ufficialmente (il protocollo di replica AD). Questo non è un segreto interno di Microsoft, esistono anche implementazioni di terze parti, ad esempio: link (anche se questo collegamento lo stravolge un po ', sostenendo che si tratta di un hack) - Non stai hackerando il protocollo AD o LDAP con questo, stai concedendo manualmente un privilegio AD in anticipo che non è lì per impostazione predefinita.

Un uso legittimo di questo privilegio DS-Replication-Get-Changes-All è ad es. la sincronizzazione delle password di Microsoft Asure AD: sincronizza le password di AD dell'azienda con le password del cloud di Azure trasferendo gli hash. è necessario uno speciale privilegio LDAP assegnato a un account AD per questo, che viene chiamato "DS-Replication-Get-Changes-All" link

Differenciation: il controllo DIRSYNC può anche essere usato con un altro privilegio leggermente diverso chiamato "DS-Replication-Get-Changes" (senza "-All" alla fine). Il privilegio senza "-All" alla fine non può estrarre dati sensibili sull'hash della password (esistono prodotti di sincronizzazione dei dati di directory commerciali, come Microsoft MIIS / ILM / FIM / MIM che si basano su tale privilegio.) Anche i controller di dominio di tipo READONLY per l'utilizzo DMZ il privilegio senza "-All")

Le DLL del filtro password o le installazioni PCNS sui controller di dominio non utilizzano questi due privilegi e non concedono l'accesso agli hash AD memorizzati. Permettono solo di inoltrare una password (nel momento in cui viene modificata dall'utente) a un target di elaborazione esterno che imposterà la stessa password su sistemi di terze parti all'interno dell'azienda.

Mentre un filtro password DLL / PCNS sarà in grado di sincronizzare solo le password modificate dall'utente dopo che la soluzione filtro / PCNS è stata distribuita, la Relication insieme a DS-Replication-Get-Changes-All può anche essere sincronizzata Gli hash delle password AD che sono stati lì prima della distribuzione della soluzione di sincronizzazione.

Né i due privilegi sono malvagi. Potrebbe naturalmente essere molto problematico, se usato con noncuranza. Ma lo stesso vale per le modifiche negligenti di ACL nel tuo annuncio, garantendo un accesso remoto completo al tuo annuncio pubblicitario, consentendo agli amministratori di domini e schemi a chiunque e così via ...... È una porta aperta, se la apri. Non ne hai bisogno, non aprire quella porta. E se apri quella porta, indurila correttamente, in modo che solo l'ospite pianificato possa entrare in quella porta per toccare le tue parti preziose.

Quindi, i normali casi aziendali di questo meccanismo read-password-hashes-from-AD consistono nel sincronizzare gli hash degli AD con altri sistemi di autenticazione legittimi o nella migrazione degli hash degli AD dell'azienda in un'altra directory di autenticazione di terze parti. (In entrambi i casi, l'altro sistema deve essere in grado di comprendere gli hash a scopo di autenticazione)

    
risposta data 08.07.2016 - 01:06
fonte
3

Quindi, questo intero ragionamento è un po 'folle. Controllare la correttezza della password dopo che il fatto è una cattiva idea (perché o avete bisogno della password originale, o di un hash debole che può essere effettivamente mostrato in una finestra) e scrivere servizi o strumenti per estrarre gli hash deboli è soggetto a un grave errore o pericolo. Meno importante, è eccessivo e uno spreco di cicli e risorse.

La soluzione migliore è utilizzare semplicemente un filtro password e verificare che le modifiche alla password soddisfino i requisiti minimi prima di consentire all'utente di apportare effettivamente le modifiche. Quindi, fai scadere tutte le password se sei seriamente intenzionato a garantire la complessità (anche se ciò potrebbe disturbare alcune persone).

    
risposta data 01.09.2017 - 15:21
fonte
1

Per estrarre le password da remoto, la soluzione migliore è utilizzare le tecniche DC SYNC (DRSUAPI). I controller di dominio utilizzano questo protocollo per sincronizzare le informazioni avanti e indietro. Se si dispone di credenziali di amministratore di dominio, è possibile utilizzare questo protocollo per prelevare tutti gli hash dal controller di dominio. Ci sono due semplici strumenti per fare questo:

Per Windows: Mimikatz ( link )

Istruzioni su come usarlo e più panoramica: link

Per Linux: Impacket, in particolare lo script di esempio secretsdump.py ( link )

Istruzioni su come usarlo: link

    
risposta data 31.08.2017 - 19:23
fonte

Leggi altre domande sui tag