Comment vider le fichier Windows SAM pendant que le système fonctionne?

14

J'ai exploité des machines de test à l'aide de metasploit et j'ai pu obtenir les hachages du fichier SAM; J'ai essayé d'exécuter des commandes SYSTEMpour les obtenir, mais je ne peux pas le faire. Quelle est une méthode plus portable pour extraire les hachages du fichier SAM?


la source

Réponses:

12

Ce n'est pas un problème d'autorisation - Windows garde un verrou exclusif sur le fichier SAM (qui, à ma connaissance, est un comportement standard pour les ruches de registre chargées), il est donc impossible pour tout autre processus de l'ouvrir.

Cependant, les versions récentes de Windows ont une fonctionnalité appelée "Volume Shadow Copy", qui est conçue pour créer des instantanés en lecture seule de tout le volume, principalement pour les sauvegardes. Les verrous de fichiers sont là pour garantir la cohérence des données, ils ne sont donc pas nécessaires si un instantané de l'ensemble du système de fichiers est créé. Cela signifie qu'il est possible de créer un instantané de C:, de le monter, de copier votre SAMfichier, puis de supprimer l'instantané.

La façon exacte de procéder dépend de votre version de Windows: XP a besoin d'un programme externe, Vista et 7 l'ont vssadmin create shadow, et Server 2008 a la diskshadowcommande. La page Sauvegarde en toute sécurité des hachages des contrôleurs de domaine en direct contient plus de détails sur ce processus, ainsi que des instructions et des scripts.

Alternativement, il existe des outils tels que ceux samdumpqui abusent du processus LSASS dans diverses directions afin d'extraire tous les hachages de mot de passe directement de la mémoire. Ils peuvent être beaucoup plus rapides que les instantanés VSS, mais présentent un risque plus élevé de planter le système.

Enfin, Google fait ressortir cet extrait de code, dont je ne peux évaluer l'utilité de n'avoir jamais moi-même utilisé le métasploit:

meterpreter> use priv
meterpreter> hashdump
user1686
la source
Quelle est la différence entre les fichiers SAM \ SYSTEM et les sous-clés de registre SAM \ SYSTEM (je fais référence à la réponse de vmarquet )? Le contenu est-il le même?
GordonAitchJay
1
Oui, ces fichiers sont en fait là où la base de données du registre est stockée - le fichier "SYSTEM" contient les données de HKLM \ SYSTEM. (Je veux dire, il doit être stocké quelque part dans un fichier , n'est-ce pas?) Vous pouvez regarder HKLM\SYSTEM\CurrentControlSet\Control\HiveListpour voir quelles sous-clés correspondent à quels fichiers.
user1686
12

Il existe une solution plus simple qui n'a pas besoin de gérer les volumes fantômes ni d'utiliser des outils externes. Vous pouvez simplement copier SAM et SYSTEM avec la regcommande fournie par Microsoft (testé sur Windows 7 et Windows Server 2008):

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

(le dernier paramètre est l'emplacement où vous souhaitez copier le fichier)


Vous pouvez ensuite extraire les hachages sur un système Linux avec le paquet samdump2 (disponible sur Debian:) apt-get install samdump2:

$ samdump2 system sam
Administrator:500:aad3b435b51404eeaad3b435b51404ee:c0e2874fb130015aec4070975e2c6071:::
*disabled* Guest:501:aad3b435b51404eeaad3b435b51404ee:d0c0896b73e0d1316aeccf93159d7ec0:::
vmarquet
la source
sur quelle version de Windows cela fonctionne-t-il (ou plutôt lequel ne fonctionne pas)? essayé de dire à partir du site Web MSDN mais il ne le répertorie pas (au moins je ne l'ai pas vu)
n00b
cela vide simplement les comptes locaux. pour obtenir les identifiants de domaine mis en cache, vous devez également obtenir la SÉCURITÉ du registre. alors vous pouvez exécuter: python /usr/share/doc/python-impacket/examples/secretsdump.py -sam SAM -security SECURITY -system SYSTEM LOCAL pour vider toutes les informations en cache.
n00b
5

Edit: j'ai décidé d'éditer après de nombreuses années d'abandon.


Le fichier SAM de Windows est verrouillé contre la copie / lecture contrairement /etc/shadow aux systèmes Linux. Au lieu de cela, pour contourner ces outils, vous extrairez les hachages de la mémoire.

Il existe des moyens de contourner ce problème que je vais aborder ci-dessous:

Mimikatz

Exécutez mimikatz avec sekurlsa::logonpasswords.

fgdump

Fonctionnalité similaire à mimikatz. Exécutez-le et les hachages seront transférés dans des fichiers locaux.

hashdump

Construit en mètre mètre; extrait les hachages de la mémoire.

Enregistrement

Il est également possible d'extraire du registre (si vous y avez SYSTEMaccès):

  1. reg save hklm\sam %tmp%/sam.reg et reg save hklm\system %tmp%/system.reg
  2. Copiez les fichiers, puis exécutez: samdump2 system sam

Sauvegardes

Le fichier SAM peut également être stocké dans un emplacement de sauvegarde: C:\Windows\Repair\SAM

Je dois également mentionner que les outils nécessiteront au minimum des Administratorprivilèges; et la plupart n'obtiendront pas tous les hachages si l' SYSTEMaccès n'est pas atteint.


la source
J'ai peut-être mal compris, mais en quoi les outils sont-ils similaires Mimikatzou fgdumpplus portables que C&A ou différents? Pour autant que je sache, ce sont tous des outils tiers qui ne sont pas fournis avec Windows et doivent être chargés séparément. Aussi, pour ma propre curiosité, quel est le cas d'utilisation des outils de hachage lorsque des outils comme Ophcrack existent?
Hashim
Mimikatz peut-il être utilisé pour casser des hachages locaux sur un système hors tension via un disque de démarrage, ou est-il uniquement conçu pour fonctionner sur un système sous tension?
Hashim
1

La méthode Obscuresec surmonte vos difficultés localement sur n'importe quelle machine compatible Windows PowerShell 1.0. Laisse de côté certains objectifs que je connais, mais bon travail! (merci Chris).

Remarque: les privilèges d'administrateur sont toujours nécessaires pour effectuer une telle opération

Vous pourriez utiliser

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

ou d'une autre source (plus récente je pourrais ajouter)

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

Lecture conseillée:

Pour saisir les systèmes distants, les ruches SAM et SYSTEM utilisent ce qui précède en conjonction avec

Marco Vaz
la source
1

J'aimerais spécifier une méthode supplémentaire qui n'est pas décrite ici, car beaucoup de temps dans Red Teaming / Penetration Testing les moyens les plus évidents ne sont pas accessibles (refusés, surveillés par Blue Team, etc.) et il est agréable de connaître toutes les techniques disponibles.

L'une des solutions de contournement d'accès aux fichiers, sur laquelle le système a des poignées (ne peut pas copier / supprimer comme d'habitude), est vssshadow.exeexpliquée ci-dessus.

Deuxième - esentutil.exe.

Commande exacte pour prendre une copie du fichier avec le handle:

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

Cela s'applique à SAM, SYSTEM, SECURITY, NTDS.DIT ​​etc.

PS Il y a esentutl.pydans le paquet d'impacket: https://github.com/SecureAuthCorp/impacket/blob/master/examples/esentutl.py

PSS Image esentutl PoC

dtrizna
la source