
CVE-2023-21554 PoC
该仓库包含一个即用型概念验证,针对在 TCP 端口 1801 上监听的 Microsoft 消息队列。本工作基于并使用了原始项目的材料,原始项目位于: 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 — 攻击方辅助脚本,记录响应、十六进制转储、时间戳和套接字级别错误。使用此脚本获取更有用的攻击方证据establish_connection.bin — 来自原始仓库的第一阶段二进制载荷connection_parameters.bin — 来自原始仓库的第二阶段二进制载荷user_message.bin — 来自原始仓库的第三阶段二进制载荷README.md — 本文件将三个二进制文件放在与 PoC 脚本相同的文件夹中
编辑 PoC 脚本或 CVE-2023-21554.py 以设置目标 IP 地址
在攻击端机器上启动针对目标 IP 和端口的网络抓包。在另一个 shell 中执行示例命令(将 IP 替换为你的目标):
sudo tcpdump -i eth0 host 10.0.2.15 and port 1801 -w msmq_test.pcap
运行增强检查脚本以获取带时间戳的日志和十六进制转储:
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 的完整 stdout 日志保存为文本文件msmq_test.pcap)mqsvc.exe 的崩溃转储并保存以供分析此代码可能导致目标主机上的服务崩溃和不稳定。请勿在你不拥有或未获得明确测试权限的系统上运行。始终在隔离的实验室环境中测试,并在运行测试前获取 VM 快照。原始工作归功于上游项目: https://github.com/leongxudong/MSMQ-Vulnerability
本仓库派生自原始项目: https://github.com/leongxudong/MSMQ-Vulnerability
如果你添加了检测辅助工具或证据收集脚本,请记录它们并包含安全实验室使用的说明
有关原始上下文和二进制工件,请参阅上面链接的上游仓库。有关防御指南,请查阅供应商公告和关于 CVE‑2023‑21554 的已发布分析文章。