Print
Category: Penetration testing
Hits: 5949

Im folgenden Beitrag spielen wir wieder einmal ein Walkthrough durch. Die zugrundeliegende VM besitzt den Namen HackathonCTF. Ziel ist es, root Rechte am Zielsystem zu erlangen. Der Schwierigkeitsgrad dieser Challenge ist als leicht einzustufen.

Reconnaissance:

1) Zu Beginn müssen wir in Erfahrung bringen, welche IP Adresse unser Zielsystem hat. Da netdiscover oftmals nicht die gewünschten Resultate liefert, nutzen wir die Ping Funktion von nmap. Der entsprechende Befehl lautet wie folgt:

sudo nmap -sn 10.0.2.1/24

Die Option -sn erlaubt es uns, einen einfachen Ping durchzuführen und gleichzeitig die Portscanfunktion deaktivieren.

Portscanning / Vulnerability Scanning:

2) Als nächsten Schritt führen wir einen Portscan mit der im vorherigen Schritt ermittelten IP-Adresse durch. Die Option -A ist gleichbedeutend mit der Option -sV und bedeutet, dass ein aggressiverer Scan samt Versionsbestimmung und weiterer Optionen durchgeführt wird.

sudo nmap -A -p- 10.0.2.4

Der Scan liefert die folgenden Ergebnisse:
  
21/tcp ftp
23/tcp telnet
80/tcp http
7223/tcp ssh


3) Der Aufruf der Webseite bringt uns zunächst keine neuen Erkenntnisse. Oftmals befinden sich jedoch weitere Verzeichnisse und Dateien auf dem Webserver die nur direkt aufgerufen werden können. Dazu nutzen wir einen nikto scan, welcher uns Aufschluss über die Datei- und Verzeichnisstruktur gibt.

nikto -h http://10.0.2.4

Alternativ bietet es sich an, per dirbuster den Webserver mit einer Suchliste zu brutforcen:

dirb http://10.0.2.4 /usr/share/wordlists/dirb/big.txt

Beide Tools weisen uns auf eine robots.txt Datei auf dem Webserver hin, welche wir sogleich im Webbrowser öffnen werden.

4) Am unterem Ende der Datei finden wir eine base64 verschlüsselte Textzeile, welche uns nach dem decoding folgenden Inhalt präsentiert:

ssh-bruteforce-sudoit

Diese Zeile enthält also den Hinweis, dass wir uns mit einer Brutforce Attacke auf den ssh Server beschäftigen sollten.

5) Neben der verschlüsselten Textzeile, finden sich zusätzlich einige Disallow Verzeichnisse. Ein Aufruf im Browser mit .html als Endung bringt uns jedoch weiter. Nachdem wir folgende URL in unseren Webbrowser eingeben und uns den Quellcode ausgegeben haben lassen, erhalten wir einen Benutzernamen "test", der uns später zum einloggen per ssh behilflich seien wird.

http://10.0.2.4/sudo.html

Exploitation:

6) Als nächstens beginnen wir also per hydra einen ssh bruteforce auf unser Zielsystem und setzen dabei unseren Benutzernamen ein, den wir im vorangegangen Schritt herausgefunden haben.

hydra -l test -P /usr/share/wordlists/rockyou.txt ssh://10.0.2.4:7223 -f

Die Option -l gibt lediglich an, ein vordefinierten Benutzernamen einzusetzen und die Option -p benutzt die nachfolgende Passwortliste. Die Verwendung der Option -f beendet den Angriff nachdem ein gültiges Passwort gefunden wurde.

7) Der Hydra Angriff ist erfolgreich und wir erhalten das Passwort jordan23. Mit diesem loggen wir uns per ssh an unserem Zielrechner ein:

ssh test@10.0.2.4 -p 7223

8) Um zu prüfen, ob wir anhand der Historie der Bash-Befehle weitere Hinweise finden, geben wir folgenden Befehl ein:

history

Privilege Escalation:

9) Die Liste zeigt uns am unteren Ende den folgenden Befehl, welcher uns Root Rechte verschafft

sudo -u#-1 /bin/bash