
Getarnte PHP-Webshell als 404-Fehlerseite mit AJAX-Konsole, versteckter Befehlsausführung über den Referrer-Header und vorkonfigurierten Aktionen für den Zugriff auf entfernte Server.
Klonen oder herunterladen des Projekts:
git clone --depth=1 https://github.com/CosasDePuma/SecurityNotFound.git
Die Datei src/404.php sollte sich auf dem Zielserver befinden und dieser muss in der Lage sein, .php-Dateien auszuführen.
Hier ist ein Beispiel für einige der häufigsten Pfade, auf denen Server liegen:
# 🏁 Windows
C:\Xampp\htdocs\ # Xampp
# 🐧 Linux
/var/www/html/ # Apache
/usr/share/nginx/html/ # Nginx
👮 Offensichtlich wissen wir beide, dass du legitimen Zugriff auf diesen Server hast.
Jetzt kannst du über den Browser darauf zugreifen:
https://www.example.com/404.php

💡 Du kannst die 404-Fehler-Vorlage des Servers ersetzen, um von jeder ungültigen URL aus zuzugreifen.
Um auf das Bedienfeld zuzugreifen, drücke die TAB-Taste oder suche das Passwortfeld mit den Werkzeugen deines Browsers:

Das Standardpasswort lautet: cosasdepuma.
🥚 Du kannst die Variable
$passphraseim Skript als leeren String belassen, um direkt auf das Bedienfeld zuzugreifen.
🔒 Um einen benutzerdefinierten Wert festzulegen, füge dein Passwort in die Variable
$passphraseein, nachdem du denMD5-Algorithmus dreimal hintereinander angewendet hast.
Nach dem Einloggen zeigt die Webshell ihr wahres Erscheinungsbild:
Das Bedienfeld verfügt über eine AJAX-Konsole und mehrere vorkonfigurierte Aktionen:
| Name | Beschreibung |
|---|---|
| PHP Info | Zeigt die phpinfo();-Seite an. |
| Geolocate | Zeigt auf Google Maps den Ort, an dem der Server physisch steht. |
| Exploit-DB (...) | Sucht nach kompatiblen Exploits auf exploit-db.com. |
| Log out | Verlässt das Dashboard. |
Es ist zu beachten, dass die Ausführung von Befehlen über den "Referrer"-Header erfolgt, dessen Inhalt die ausgeführte Nutzlast ist.
Dies hat zwei Vorteile: größere Tarnung in der Logdatei und die Möglichkeit, Befehle auszuführen, ohne auf die Weboberfläche zugreifen zu müssen.
172.18.0.1 - - [25/Jul/2022:04:52:17 +0000] "GET /404.php HTTP/1.1" 404 771 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:21 +0000] "POST /404.php HTTP/1.1" 404 3560 "http://localhost/404.php" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:27 +0000] "GET /404.php HTTP/1.1" 404 375 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:31 +0000] "GET /404.php HTTP/1.1" 404 470 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:37 +0000] "GET /404.php?p HTTP/1.1" 404 75790 "http://localhost/404.php" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:41 +0000] "GET /404.php HTTP/1.1" 404 3560 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:43 +0000] "GET /404.php?c HTTP/1.1" 302 373 "http://localhost/404.php" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:43 +0000] "GET /404.php HTTP/1.1" 404 771 "http://localhost/404.php" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
# Zeilen in access.log | Aktion |
|---|---|
| 1 | Zugriff ohne Anmeldung |
| 1 | Zugriff mit bereits gestarteter Sitzung |
| 1 | Anmelden |
| 2 | Abmelden |
| 1 | Befehl über die Konsole ausführen |
| 1 | Plugin: PHP Info |
| 0 | Plugin: Geolocate |
| 0 | Plugin: Exploit-DB (...) |
Alles, was ich mache und veröffentliche, darf kostenlos genutzt werden, solange ich die entsprechende Anerkennung erhalte.
Wenn du mich auf direktere Weise unterstützen möchtest, kannst du mir einen Trinkgeld hinterlassen, indem du auf dieses Badge klickst: