Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2023-21554 — CVE-2023-21554 PoC | Kitploit
工具/GitHubGitHub/shootweb/cve-2023-21554
Vulnerability AnalysisExploitationNetwork SecurityPenetration TestingLearning & EducationLabs & Practice
GitHubshootweb/cve-2023-21554

CVE-2023-21554

CVE-2023-21554 PoC

查看仓库
210个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

MSMQ 漏洞概念验证

该仓库包含一个即用型概念验证,针对在 TCP 端口 1801 上监听的 Microsoft 消息队列。本工作基于并使用了原始项目的材料,原始项目位于: https://github.com/leongxudong/MSMQ-Vulnerability

本仓库使用了该项目提供的二进制工件。PoC 包含和引用的二进制文件如下:

  1. establish_connection.bin
  2. connection_parameters.bin
  3. user_message.bin

描述

本 PoC 尝试复现 CVE‑2023‑21554 中描述的情况,方法是将一系列 MSMQ 协议帧发送到目标主机的 1801 端口。PoC 脚本仅执行网络层面的活动,不执行任何后渗透操作。本项目仅用于在隔离的实验室环境中进行分析和防御性验证。

包含的文件

  1. CVE-2023-21554.py — 原始 PoC 脚本,按顺序发送三个二进制块
  2. CVE-2023-21554.py — 攻击方辅助脚本,记录响应、十六进制转储、时间戳和套接字级别错误。使用此脚本获取更有用的攻击方证据
  3. establish_connection.bin — 来自原始仓库的第一阶段二进制载荷
  4. connection_parameters.bin — 来自原始仓库的第二阶段二进制载荷
  5. user_message.bin — 来自原始仓库的第三阶段二进制载荷
  6. README.md — 本文件

前提条件

  1. 攻击主机上安装了 Python 3
  2. 能够网络访问目标主机的 1801 端口,并拥有明确测试权限
  3. 目标虚拟机的快照,以便测试后还原更改
  4. 用于捕获证据的工具(例如 Wireshark 或 tcpdump)以及 Windows 上的 Sysinternals procdump

如何在实验室环境中运行 PoC

  1. 将三个二进制文件放在与 PoC 脚本相同的文件夹中

  2. 编辑 PoC 脚本或 CVE-2023-21554.py 以设置目标 IP 地址

  3. 在攻击端机器上启动针对目标 IP 和端口的网络抓包。在另一个 shell 中执行示例命令(将 IP 替换为你的目标):

    sudo tcpdump -i eth0 host 10.0.2.15 and port 1801 -w msmq_test.pcap

  4. 运行增强检查脚本以获取带时间戳的日志和十六进制转储:

    python3 CVE-2023-21554.py

  5. 保存 PoC 输出和网络抓包文件以供分析

如何判断 PoC 是否成功

1. 攻击方指标

  1. CVE-2023-21554.py 在某个载荷阶段后立即报告 connection_reset 或 orderly_close(辅助脚本打印的显式状态)。
  2. PoC 从目标收到非平凡回复(短小、异常的回复字节)。保存该回复并进行十六进制转储以便比较。
  3. 网络抓包显示在攻击包之后立即出现 TCP 重置 (RST) 或其他异常终止。

2. 目标方指标

  1. 消息队列服务进程 mqsvc.exe 在测试时崩溃或重启。
  2. Windows 事件查看器包含引用访问冲突或故障应用程序名称 mqsvc.exe 的应用程序或系统事件。
  3. 在测试时使用 procdump 捕获的转储显示 mqsvc 进程中存在异常。

实用的 Wireshark 步骤和过滤器(可直接复制粘贴)

将 <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

提取服务器回复字节(原始十六进制转储)的步骤

  1. 在数据包列表窗格中定位感兴趣的服务器数据包。寻找较小的 tcp.len 值,或 RST 之前立即出现的数据包。
  2. 右键单击数据包 → Follow → TCP Stream。
  3. 在“Follow TCP Stream”对话框中选择 Show data as: Raw,然后 Save As 导出准确的字节。
  4. 或者,选中数据包并从 Packet Bytes 窗格复制字节。将原始字节/十六进制转储保存为证据(例如 server_reply.hex)。

如何判断重置来自目标还是中间设备

  1. 确认 RST 的 Source IP 与目标匹配。如果是,则强烈表明目标主机或其内核关闭了套接字。
  2. 如果 RST 源是路径上的其他设备,通常表明中间设备或防火墙丢弃了连接。TTL 差异和接口 IP 有助于诊断。

时序关联(重要)

  1. 注意攻击数据包与服务器反应之间的时间戳差异。崩溃或突然的 RST 通常发生在违规数据包后的几十到几百毫秒内。记录这些时间作为证据的一部分。

对比测试

  1. 对已知已修补的主机捕获相同序列,比较 RST、FIN 或短服务器回复的存在与否。差异可加强你的结论。

证据收集清单

  1. 将 CVE-2023-21554.py 的完整 stdout 日志保存为文本文件
  2. 保存网络抓包文件(例如 msmq_test.pcap)
  3. 从事件查看器中导出与测试时间对应的应用程序和系统事件
  4. 如果可能,使用 procdump 捕获 mqsvc.exe 的崩溃转储并保存以供分析

安全与法律声明

此代码可能导致目标主机上的服务崩溃和不稳定。请勿在你不拥有或未获得明确测试权限的系统上运行。始终在隔离的实验室环境中测试,并在运行测试前获取 VM 快照。原始工作归功于上游项目: https://github.com/leongxudong/MSMQ-Vulnerability

归属

本仓库派生自原始项目: https://github.com/leongxudong/MSMQ-Vulnerability

贡献

如果你添加了检测辅助工具或证据收集脚本,请记录它们并包含安全实验室使用的说明

联系与进一步阅读

有关原始上下文和二进制工件,请参阅上面链接的上游仓库。有关防御指南,请查阅供应商公告和关于 CVE‑2023‑21554 的已发布分析文章。

下载工具