
CVE-2023-21554 PoC
Этот репозиторий содержит готовое к запуску доказательство концепции (PoC), нацеленное на службу Microsoft Message Queuing, прослушивающую TCP-порт 1801. Работа основана на материалах оригинального проекта и использует их: https://github.com/leongxudong/MSMQ-Vulnerability
В этом репозитории используются бинарные артефакты, предоставленные указанным проектом. Бинарные файлы, включённые в PoC и упоминаемые в нём:
establish_connection.binconnection_parameters.binuser_message.binДанный PoC пытается воспроизвести условие, описанное в CVE 2023 21554, путём отправки последовательности кадров протокола MSMQ на целевой хост через порт 1801. Скрипты PoC выполняют только действия на сетевом уровне и не выполняют никаких действий после эксплуатации. Этот проект предназначен исключительно для анализа и проверки защитных механизмов в изолированной лабораторной среде.
CVE-2023-21554.py — оригинальный скрипт PoC, который отправляет три бинарных блоба последовательноCVE-2023-21554.py — вспомогательный скрипт на стороне атакующего, который записывает ответы, hexdumps, временные метки и ошибки сокетного уровня. Используйте этот скрипт для получения более полезных доказательств на стороне атакующегоestablish_connection.bin — бинарная полезная нагрузка первого этапа из оригинального репозиторияconnection_parameters.bin — бинарная полезная нагрузка второго этапа из оригинального репозиторияuser_message.bin — бинарная полезная нагрузка третьего этапа из оригинального репозиторияREADME.md — этот файлПоместите три бинарных файла в ту же папку, где находится скрипт PoC
Отредактируйте скрипт PoC или CVE-2023-21554.py, чтобы задать IP-адрес цели
Запустите захват сетевого трафика на машине атакующего для целевого IP и порта. Пример команды в отдельном терминале (замените IP на адрес вашей цели):
sudo tcpdump -i eth0 host 10.0.2.15 and port 1801 -w msmq_test.pcap
Запустите расширенный проверочный скрипт, чтобы получить журналы с временными метками и hexdumps
python3 CVE-2023-21554.py
Сохраните вывод PoC и файл захвата сетевого трафика для анализа
CVE-2023-21554.py сообщает connection_reset или orderly_close сразу после одного из этапов полезной нагрузки (это явные статусы, выводимые вспомогательным скриптом).mqsvc.exe аварийно завершается или перезапускается в момент теста.mqsvc.exe.mqsvc.Замените <TARGET> на IP вашей цели в каждом фильтре.
Показать весь трафик между атакующим и целью на порту MSMQ:
ip.addr == <TARGET> && tcp.port == 1801
Показать только TCP RST, исходящие от сервера:
ip.src == <TARGET> && tcp.port == 1801 && tcp.flags.reset == 1
Показать пакеты, содержащие данные приложения (ненулевые TCP-полезные нагрузки):
ip.addr == <TARGET> && tcp.port == 1801 && tcp.len > 0
Показать сегменты нулевой длины или FIN:
ip.addr == <TARGET> && tcp.port == 1801 && (tcp.len == 0 || tcp.flags.fin == 1)
Показать повторные передачи и аномалии TCP:
tcp.analysis.retransmission || tcp.analysis.fast_retransmission || tcp.analysis.duplicate_ack
tcp.len или пакет непосредственно перед RST.server_reply.hex).CVE-2023-21554.py в текстовый файлmsmq_test.pcap)mqsvc.exe с помощью procdump и сохраните его для анализаЭтот код может вызывать аварийные завершения служб и нестабильность на целевых хостах. Не запускайте его против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения. Всегда тестируйте в изолированной лабораторной среде и делайте снимок виртуальной машины перед запуском тестов. Оригинальная работа принадлежит вышестоящему проекту:
https://github.com/leongxudong/MSMQ-Vulnerability
Этот репозиторий является производным от оригинального проекта:
https://github.com/leongxudong/MSMQ-Vulnerability
Если вы добавляете вспомогательные средства обнаружения или скрипты сбора доказательств, пожалуйста, документируйте их и включайте инструкции по безопасному использованию в лаборатории
Обратитесь к вышестоящему репозиторию по указанной выше ссылке за оригинальным контекстом и бинарными артефактами. Для получения рекомендаций по защите обращайтесь к бюллетеням вендора и опубликованным разборам CVE 2023 21554