Come eseguire il dump del file SAM di Windows mentre il sistema è in esecuzione?


14

Ho sfruttato le macchine di prova usando metasploit e sono stato in grado di ottenere gli hash dal file SAM; Ho provato a eseguire comandi SYSTEMper ottenerli, ma non riesco a farlo. Qual è un metodo più portatile per estrarre gli hash dal file SAM?

Risposte:


12

Non è un problema di autorizzazione - Windows mantiene un blocco esclusivo sul file SAM (che, per quanto ne so, è un comportamento standard per gli hive di registro caricati), quindi è impossibile per qualsiasi altro processo aprirlo.

Tuttavia, le versioni recenti di Windows hanno una funzione chiamata "Copia shadow del volume", progettata per creare istantanee di sola lettura dell'intero volume, principalmente per i backup. I blocchi dei file sono lì per garantire la coerenza dei dati, quindi non sono necessari se viene creata un'istantanea dell'intero file system. Ciò significa che è possibile creare un'istantanea di C:, montarla, copiare il SAMfile, quindi scartare l'istantanea.

Come esattamente ciò dipende dalla versione di Windows: XP ha bisogno di un programma esterno, Vista e 7 hanno vssadmin create shadow, e Server 2008 ha il diskshadowcomando. La pagina Dump sicuro degli hash dai controller di dominio live contiene ulteriori dettagli su questo processo, nonché istruzioni e script.

In alternativa, esistono strumenti come l' samdumpabuso del processo LSASS da varie direzioni per estrarre tutti gli hash delle password direttamente dalla memoria. Potrebbero essere molto più veloci delle istantanee VSS, ma hanno un rischio maggiore di crash del sistema.

Infine, Google mette in evidenza questo frammento, la cui utilità non posso valutare non avendo mai usato metasploit da solo:

meterpreter> use priv
meterpreter> hashdump

Qual è la differenza tra i file SAM \ SYSTEM e le sottochiavi del registro SAM \ SYSTEM (mi riferisco alla risposta di Vmarquet )? I contenuti sono gli stessi?
GordonAitchJay

1
Sì, quei file sono effettivamente dove è archiviato il database del registro - il file "SYSTEM" contiene i dati di HKLM \ SYSTEM. (Voglio dire, deve essere archiviato in qualche file da qualche parte, non è vero?) Puoi guardare HKLM\SYSTEM\CurrentControlSet\Control\HiveListper vedere quali sottochiavi corrispondono a quali file.
user1686

12

Esiste una soluzione più semplice che non richiede la gestione di volumi shadow o l'utilizzo di strumenti esterni. Puoi semplicemente copiare SAM e SYSTEM con il regcomando fornito da microsoft (testato su Windows 7 e Windows Server 2008):

reg save hklm\sam c:\sam
reg save hklm\system c:\system

(l'ultimo parametro è la posizione in cui si desidera copiare il file)


È quindi possibile estrarre gli hash su un sistema Linux con il pacchetto samdump2 (disponibile su Debian:) apt-get install samdump2:

$ samdump2 system sam
Administrator:500:aad3b435b51404eeaad3b435b51404ee:c0e2874fb130015aec4070975e2c6071:::
*disabled* Guest:501:aad3b435b51404eeaad3b435b51404ee:d0c0896b73e0d1316aeccf93159d7ec0:::

su quali sapori di Windows funziona (o meglio su quale no)? provato a dirlo dal sito Web MSDN ma non lo elenca (almeno non l'ho visto)
n00b

questo scarica solo gli account locali. per ottenere i crediti di dominio memorizzati nella cache è necessario ottenere SICUREZZA anche dal registro. quindi è possibile eseguire: python /usr/share/doc/python-impacket/examples/secretsdump.py -sam SAM -security SECURITY -system SYSTEM LOCAL per scaricare tutti i crediti memorizzati nella cache.
n00b,

5

Modifica: ho deciso di modificare dopo molti anni di abbandono.


Il file SAM di Windows è bloccato dalla copia / lettura a differenza dei /etc/shadow sistemi Linux. Invece, per aggirare questo strumento estrarrà gli hash dalla memoria.

Ci sono modi per aggirare questo che tratterò di seguito:

Mimikatz

Esegui mimikatz con sekurlsa::logonpasswords.

fgdump

Funzionalità simile a mimikatz. Eseguilo e gli hash verranno scaricati in file locali.

hashdump

Costruito in meterpreter; estrae gli hash dalla memoria.

Registro

È anche possibile estrarre dal registro (se si ha SYSTEMaccesso):

  1. reg save hklm\sam %tmp%/sam.reg e reg save hklm\system %tmp%/system.reg
  2. Copia i file, quindi esegui: samdump2 system sam

I backup

Il file SAM può anche essere archiviato in una posizione di backup: C:\Windows\Repair\SAM

Vorrei anche menzionare che gli strumenti richiederanno almeno Administratorprivilegi; e la maggior parte non otterrà tutti gli hash a meno che non SYSTEMvenga raggiunto l'accesso.


Forse ho frainteso, ma in che modo gli strumenti sono Mimikatzo fgdumppiù portatili di C&A o diversi da esso? Per quanto ne so, sono tutti strumenti di terze parti che non sono forniti con Windows e devono essere caricati separatamente. Inoltre, per mia curiosità, qual è il caso d'uso degli strumenti di hash-dumping quando esistono strumenti come Ophcrack?
Hashim,

Mimikatz può essere utilizzato per rompere gli hash locali su un sistema spento tramite un disco di avvio o è progettato solo per funzionare su un sistema acceso?
Hashim,

1

Il metodo Obscuresec supera le difficoltà locali su qualsiasi macchina abilitata per Windows PowerShell 1.0. Lascia fuori alcuni obiettivi che conosco, ma hey, bel lavoro! (grazie Chris).

Nota: i privilegi di amministratore sono sempre necessari per eseguire tale operazione

Puoi usare

http://gallery.technet.microsoft.com/scriptcenter/Get-PasswordFile-4bee091d

o da un'altra fonte (più recente potrei aggiungere)

https://github.com/obscuresec/PowerShell/blob/master/Get-PasswordFile

Lettura consigliata:

Per afferrare i sistemi remoti, gli alveari SAM e SYSTEM usano congiuntamente quanto sopra


1

Vorrei specificare un metodo aggiuntivo che non è descritto qui, poiché molto tempo in Red Teaming / Penetration Test i modi più ovvi non sono accessibili (negati, sono monitorati da Blue Team, ecc.) Ed è bello conoscere tutte le tecniche disponibili.

Una delle soluzioni alternative per l'accesso ai file, su cui il sistema ha gli handle (impossibile copiare / rimuovere come al solito), è vssshadow.exedescritta sopra.

Secondo - esentutil.exe.

Comando esatto per eseguire una copia del file con handle:

esentutl.exe /y /vss c:\windows\ntds\ntds.dit /d c:\folder\ntds.dit

Questo vale per SAM, SYSTEM, SECURITY, NTDS.DIT ​​ecc.

PS C'è esentutl.pynel pacchetto di impacket: https://github.com/SecureAuthCorp/impacket/blob/master/examples/esentutl.py

PSS esentutl immagine PoC

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.