Stealing Windows Credentials
Mimikatz per rubare le credenziali
Trova altre funzionalità che Mimikatz può eseguire in questa pagina.
Invoke-Mimikatz
Scopri qui alcune possibili protezioni per le credenziali. Queste protezioni potrebbero impedire a Mimikatz di estrarre alcune credenziali.
Credenziali con Meterpreter
Utilizza il Plugin Credenziali che ho creato per cercare password e hash all'interno della vittima.
Bypassare l'AV
Procdump + Mimikatz
Poiché Procdump di SysInternalsè uno strumento legittimo di Microsoft, non viene rilevato da Defender. Puoi utilizzare questo strumento per eseguire il dump del processo lsass, scaricare il dump ed estrarre le credenziali localmente dal dump.
Questo processo viene eseguito automaticamente con SprayKatz: ./spraykatz.py -u H4x0r -p L0c4L4dm1n -t 192.168.1.0/24
Nota: Alcuni AV possono rilevare come malizioso l'uso di procdump.exe per eseguire il dump di lsass.exe, questo perché rilevano la stringa "procdump.exe" e "lsass.exe". Pertanto, è più furtivo passare come argomento il PID di lsass.exe a procdump anziché il nome lsass.exe.
Estrarre lsass con comsvcs.dll
Una DLL chiamata comsvcs.dll trovata in C:\Windows\System32
è responsabile per l'estrazione della memoria del processo in caso di crash. Questa DLL include una funzione chiamata MiniDumpW
, progettata per essere invocata utilizzando rundll32.exe
.
I primi due argomenti sono irrilevanti, ma il terzo è diviso in tre componenti. L'ID del processo da estrarre costituisce la prima componente, la posizione del file di dump rappresenta la seconda e la terza componente è strettamente la parola full. Non esistono opzioni alternative.
Dopo aver analizzato queste tre componenti, la DLL si impegna a creare il file di dump e a trasferire la memoria del processo specificato in questo file.
L'utilizzo della comsvcs.dll è fattibile per estrarre il processo lsass, eliminando così la necessità di caricare ed eseguire procdump. Questo metodo è descritto in dettaglio su https://en.hackndo.com/remote-lsass-dump-passwords/.
Il seguente comando viene utilizzato per l'esecuzione:
Puoi automatizzare questo processo con lssasy.
Dumping di lsass con Task Manager
Fai clic con il pulsante destro del mouse sulla barra delle applicazioni e fai clic su Task Manager
Fai clic su Altre informazioni
Cerca il processo "Local Security Authority Process" nella scheda Processi
Fai clic con il pulsante destro del mouse sul processo "Local Security Authority Process" e fai clic su "Crea file di dump".
Dumping di lsass con procdump
Procdump è un file binario firmato da Microsoft che fa parte della suite sysinternals.
Dumpin lsass con PPLBlade
PPLBlade è uno strumento di dumping di processi protetti che supporta l'oscuramento del dump di memoria e il trasferimento su workstation remote senza depositarlo sul disco.
Funzionalità chiave:
Bypass della protezione PPL
Oscuramento dei file di dump di memoria per eludere i meccanismi di rilevamento basati su firme di Defender
Caricamento del dump di memoria con metodi di caricamento RAW e SMB senza depositarlo sul disco (dump senza file)
CrackMapExec
Dump delle hash SAM
Dump delle credenziali LSA
Per ottenere le credenziali memorizzate nel Local Security Authority (LSA) di un sistema Windows, è possibile utilizzare il tool lsadump
. Questo strumento consente di estrarre le informazioni sensibili, come le password degli account utente, dal database LSA.
Esecuzione del dump delle credenziali LSA
Scaricare il tool
lsadump
da qui.Eseguire il comando seguente per eseguire il dump delle credenziali LSA:
Opzioni disponibili per il dump delle credenziali LSA
-sam
: Esegue il dump delle credenziali SAM (Security Account Manager).-secrets
: Esegue il dump delle credenziali LSA Secrets.-cache
: Esegue il dump delle credenziali LSA Cache.-system
: Specifica il percorso del file SYSTEM da utilizzare per il dump delle credenziali LSA.-security
: Specifica il percorso del file SECURITY da utilizzare per il dump delle credenziali LSA.
Esempio di dump delle credenziali LSA
Questo comando eseguirà il dump delle credenziali LSA Secrets e mostrerà le informazioni sensibili, come le password degli account utente, nel terminale.
Estrarre il file NTDS.dit dal DC di destinazione
Per ottenere le credenziali degli utenti dal controller di dominio di destinazione, è necessario estrarre il file NTDS.dit. Questo file contiene il database Active Directory, che include le informazioni sugli account degli utenti e le relative password hash.
Per eseguire questa operazione, è possibile utilizzare strumenti come ntdsutil
o mimikatz
. Questi strumenti consentono di accedere al controller di dominio di destinazione e copiare il file NTDS.dit in un percorso accessibile.
Una volta ottenuto il file NTDS.dit, è possibile utilizzare strumenti come hashcat
o John the Ripper
per decifrare le password hash e ottenere le credenziali degli utenti.
È importante notare che l'estrazione del file NTDS.dit da un controller di dominio richiede privilegi di amministratore o accesso fisico al server. Inoltre, questa operazione potrebbe essere considerata illegale senza il consenso del proprietario del sistema.
Estrarre la cronologia delle password NTDS.dit dal DC di destinazione
Per ottenere la cronologia delle password dal file NTDS.dit su un controller di dominio di destinazione, è possibile utilizzare il seguente metodo:
Ottenere l'accesso al controller di dominio di destinazione.
Eseguire il dump del file NTDS.dit utilizzando strumenti come
ntdsutil
omimikatz
.Analizzare il file NTDS.dit per estrarre la cronologia delle password.
È importante notare che l'accesso al controller di dominio di destinazione potrebbe richiedere privilegi elevati e potrebbe essere necessario bypassare le misure di sicurezza per ottenere l'accesso. Si consiglia di utilizzare queste informazioni solo per scopi legittimi, come test di sicurezza o per scopi di amministrazione di sistema.
Mostra l'attributo pwdLastSet per ciascun account NTDS.dit
Per visualizzare l'attributo pwdLastSet per ciascun account NTDS.dit, esegui i seguenti passaggi:
Apri un prompt dei comandi come amministratore.
Esegui il comando seguente per accedere all'interfaccia di Active Directory:
Successivamente, esegui il comando seguente per passare alla modalità "Activate Instance NTDS":
Infine, esegui il comando seguente per visualizzare l'attributo pwdLastSet per ciascun account NTDS.dit:
Una volta eseguiti questi passaggi, verranno mostrati i valori dell'attributo pwdLastSet per ciascun account NTDS.dit.
Rubare SAM & SYSTEM
Questi file dovrebbero essere posizionati in C:\windows\system32\config\SAM e C:\windows\system32\config\SYSTEM. Ma non puoi semplicemente copiarli in modo normale perché sono protetti.
Dal Registro di sistema
Il modo più semplice per rubare questi file è ottenere una copia dal registro di sistema:
Scarica quei file sulla tua macchina Kali e estraine gli hash utilizzando:
Volume Shadow Copy
È possibile eseguire una copia dei file protetti utilizzando questo servizio. È necessario essere Amministratore.
Utilizzando vssadmin
Il binario vssadmin è disponibile solo nelle versioni di Windows Server.
Ma è possibile fare lo stesso da Powershell. Questo è un esempio di come copiare il file SAM (l'unità disco rigido utilizzata è "C:" e viene salvato in C:\users\Public), ma è possibile utilizzarlo per copiare qualsiasi file protetto:
Codice dal libro: https://0xword.com/es/libros/99-hacking-windows-ataques-a-sistemas-y-redes-microsoft.html
Invoke-NinjaCopy
Infine, è possibile utilizzare lo script Invoke-NinjaCopy PS script Invoke-NinjaCopy per fare una copia di SAM, SYSTEM e ntds.dit.
Credenziali di Active Directory - NTDS.dit
Il file NTDS.dit è conosciuto come il cuore di Active Directory, che contiene dati cruciali sugli oggetti utente, i gruppi e le loro appartenenze. È qui che vengono memorizzati gli hash delle password degli utenti di dominio. Questo file è un database di Extensible Storage Engine (ESE) e si trova in %SystemRoom%/NTDS/ntds.dit.
All'interno di questo database, vengono mantenute tre tabelle principali:
Tabella dei dati: Questa tabella è incaricata di memorizzare i dettagli sugli oggetti come utenti e gruppi.
Tabella dei collegamenti: Tiene traccia delle relazioni, come l'appartenenza ai gruppi.
Tabella SD: Qui vengono conservati i descrittori di sicurezza per ogni oggetto, garantendo la sicurezza e il controllo degli accessi per gli oggetti memorizzati.
Ulteriori informazioni su questo: http://blogs.chrisse.se/2012/02/11/how-the-active-directory-data-store-really-works-inside-ntds-dit-part-1/
Windows utilizza Ntdsa.dll per interagire con quel file ed è utilizzato da lsass.exe. Quindi, parte del file NTDS.dit potrebbe essere situata all'interno della memoria di lsass
(è possibile trovare i dati più recentemente accessati probabilmente a causa del miglioramento delle prestazioni mediante l'utilizzo di una cache).
Decrittazione degli hash all'interno di NTDS.dit
L'hash è cifrato 3 volte:
Decrittare la Password Encryption Key (PEK) utilizzando il BOOTKEY e RC4.
Decrittare l'hash utilizzando PEK e RC4.
Decrittare l'hash utilizzando DES.
PEK ha lo stesso valore in ogni controller di dominio, ma è cifrato all'interno del file NTDS.dit utilizzando il BOOTKEY del file SYSTEM del controller di dominio (che è diverso tra i controller di dominio). Ecco perché per ottenere le credenziali dal file NTDS.dit è necessario avere i file NTDS.dit e SYSTEM (C:\Windows\System32\config\SYSTEM).
Copiare NTDS.dit utilizzando Ntdsutil
Disponibile da Windows Server 2008.
È possibile utilizzare anche il trucco del volume shadow copy per copiare il file ntds.dit. Ricorda che avrai bisogno anche di una copia del file SYSTEM (di nuovo, estrailo dal registro o usa il trucco del volume shadow copy).
Estrazione degli hash da NTDS.dit
Una volta che hai ottenuto i file NTDS.dit e SYSTEM, puoi utilizzare strumenti come secretsdump.py per estrarre gli hash:
Puoi anche estrarli automaticamente utilizzando un utente di dominio amministratore valido:
Per i file NTDS.dit di grandi dimensioni, si consiglia di estrarli utilizzando gosecretsdump.
Inoltre, è possibile utilizzare il modulo metasploit: post/windows/gather/credentials/domain_hashdump o mimikatz lsadump::lsa /inject
Estrazione degli oggetti di dominio da NTDS.dit in un database SQLite
Gli oggetti NTDS possono essere estratti in un database SQLite utilizzando ntdsdotsqlite. Non solo vengono estratti i segreti, ma anche l'intero oggetto e i relativi attributi per ulteriori informazioni quando il file NTDS.dit grezzo è già stato recuperato.
L'alveare SYSTEM
è opzionale ma consente la decrittazione delle informazioni segrete (hash NT e LM, credenziali supplementari come password in testo normale, chiavi di Kerberos o di trust, cronologia delle password NT e LM). Oltre ad altre informazioni, vengono estratti i seguenti dati: account utente e macchina con i loro hash, flag UAC, timestamp dell'ultimo accesso e del cambio password, descrizione degli account, nomi, UPN, SPN, gruppi e appartenenze ricorsive, albero delle unità organizzative e appartenenze, domini fidati con tipo di trust, direzione e attributi...
Lazagne
Scarica il file binario da qui. Puoi utilizzare questo binario per estrarre le credenziali da diversi software.
Altri strumenti per estrarre le credenziali da SAM e LSASS
Windows credentials Editor (WCE)
Questo strumento può essere utilizzato per estrarre le credenziali dalla memoria. Scaricalo da: http://www.ampliasecurity.com/research/windows-credentials-editor/
fgdump
Estrai le credenziali dal file SAM
PwDump
Estrae le credenziali dal file SAM
PwDump7
Scaricalo da: http://www.tarasco.org/security/pwdump_7 e semplicemente eseguilo e le password saranno estratte.
Difese
Last updated