
Эксплойт-скрипт для CVE-2026-41940, обход аутентификации в cPanel/WHM с использованием CRLF-инъекции для получения доступа администратора и смены root-пароля, с многопоточным сканированием и уведомлениями в Telegram.
CVE-2026-41940 – Обход аутентификации cPanel/WHM + смена пароля root Этот скрипт эксплуатирует уязвимость обхода аутентификации в cPanel/WHM (CVE-2026-41940), используя технику CRLF-инъекции для подделки сессии администратора. После успешного взлома скрипт может изменить пароль пользователя root в WHM и отправить уведомление через Telegram.
Предупреждение: Используйте только для тестирования безопасности на системах, которыми вы владеете или на которые имеете письменное разрешение. Злоупотребление этим скриптом для незаконного доступа нарушает закон.
📦 Установка зависимостей (PIP) Для работы скрипта требуется Python 3.6+ и две внешние библиотеки. Выполните следующую команду:
pip install requests urllib3 requests – для отправки гибких HTTP-запросов
urllib3 – используется для отключения предупреждений SSL (самоподписанный сертификат)
Остальные библиотеки (argparse, json, re, threading, concurrent.futures и др.) уже входят в стандартную библиотеку Python.
🚀 Способ использования
(Необязательно) Если нужны уведомления Telegram, отредактируйте две строки в разделе HARDCODE TELEGRAM внутри скрипта:
python TELEGRAM_BOT_TOKEN = 'token_bot_dari_BotFather' TELEGRAM_CHAT_ID = 'chat_id_anda_atau_group' Оставьте как есть (: и -), если уведомления не нужны.
Базовый синтаксис bash python cve-2026-41940.py --target https://ip:2087 --password root123 python cve-2026-41940.py --targets-file targets.txt --password rahasia --threads 20 --output hasil.json python cve-2026-41940.py --target https://ip:2087 --check-only
Доступные аргументы Аргумент Обязательный? Описание --target один из Одиночная цель, например https://192.168.1.100:2087 или 192.168.1.100 (порт по умолчанию 2087) --targets-file один из Текстовый файл со списком целей (по одной на строку, формат ip:port или полный URL) --password если не --check-only Новый пароль для пользователя root в WHM --check-only нет Только проверка уязвимости цели, без смены пароля --threads нет (по умолчанию 10) Количество потоков для параллельного выполнения --timeout нет (по умолчанию 15) Таймаут HTTP-соединения (секунды) --output нет Сохранить результаты (JSON) в файл Примечание: Порт 2087 для WHM (SSL) будет добавлен автоматически, если он не указан.
Примеры использования Проверка уязвимости одной цели (только тест):
bash python cve-2026-41940.py --target https://203.0.113.10:2087 --check-only Эксплуатация и смена пароля root на p4ssw0rd!:
bash python cve-2026-41940.py --target https://203.0.113.10:2087 --password p4ssw0rd! Сканирование множества целей из файла list.txt с 20 потоками, сохранение результатов в sukses.json:
bash python cve-2026-41940.py --targets-file list.txt --password MyNewPass123 --threads 20 --output sukses.json Пример содержимого list.txt:
text 192.168.1.1:2087 https://cpanel.example.com 203.0.113.99 5. Вывод и уведомления Для каждой цели на экран выводится её статус: [+] успех, [-] неудача, [!] ошибка, [*] процесс.
Если указан --output, все результаты сохраняются в формате JSON.
Если заполнены учётные данные Telegram, успешная эксплуатация отправит сообщение вида:
text ✅ SUCCESSFUL EXPLOIT ✅ ┌ Target: 203.0.113.10:2087 ├ Username: root ├ Password: MyNewPass123 ├ WHM Version: 122.0.19 └ Time: 2025-03-20 10:15:30 UTC ⚙️ Краткий принцип работы Pre‑auth – Отправка неудачного входа для получения cookie whostmgrsession.
CRLF-инъекция – Добавление payload Basic в заголовок Authorization для вставки поддельной строки сессии.
Распространение – Обращение к /scripts2/listaccts для подтверждения возможности эксплуатации уязвимости.
Проверка – Вызов json-api/version; при успехе появляется доступ к WHM как root.
Смена пароля – Вызов API passwd с параметрами user=root и новым паролем.
Уведомление – Отправка результата в Telegram (если указан токен).
⚠️ Важные примечания Скрипт не определяет версию cPanel/WHM напрямую, но отобразит версию, если она доступна.
Некоторые цели могут иметь mod_security или WAF, блокирующие payload. Не используйте слишком высокое значение --threads, чтобы избежать обнаружения.
Всегда используйте с разрешения и моральной ответственностью.
Автор: dennisec (github.com/dennisec) Лицензия: Только для образовательного использования