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

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

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

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

工具目录

分类

查看所有分类
Loading categories
apache_audit_cve-2026-23918 — Python 工具包,用于审计 Apache HTTP Server 是否存在 CVE-2026-23918(HTTP/2 双重释放远程代码执行)及 4 个相关 CVE 漏洞。被动扫描器,包含 ALPN 验证 + 只读本地审计工具。不含漏洞利用。 | Kitploit
工具/GitHubGitHub/sibersan/apache_audit_cve-2026-23918
防御工具漏洞扫描器配置审计Web安全网络安全事件响应
GitHubsibersan/apache_audit_cve-2026-23918

apache_audit_cve-2026-23918

Python 工具包,用于审计 Apache HTTP Server 是否存在 CVE-2026-23918(HTTP/2 双重释放远程代码执行)及 4 个相关 CVE 漏洞。被动扫描器,包含 ALPN 验证 + 只读本地审计工具。不含漏洞利用。

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
113个月前尚未审核

cve-2026-23918

针对 CVE-2026-23918(Apache HTTPD HTTP/2 双重释放 RCE)以及 2026 年 5 月 4 日 Apache 软件基金会安全公告中披露的其他四个相关 CVE 的防御性审计工具。

CVE严重性组件影响受影响版本
CVE-2026-23918高危(CVSS 8.8)HTTP/2双重释放 / RCE仅 2.4.66
CVE-2026-24072中危mod_rewrite(ap_expr)权限提升≤ 2.4.66
CVE-2026-28780低危mod_proxy_ajp堆缓冲区溢出≤ 2.4.66
CVE-2026-29168低危mod_md(OCSP)资源耗尽2.4.30 – 2.4.66
CVE-2026-29169低危mod_dav_lock空指针解引用 / DoS≤ 2.4.66

所有问题已在 Apache HTTP Server 2.4.67 中修复。


⚠️ 授权与范围

这些工具仅供 针对您拥有或已获得明确书面授权进行测试的系统 使用。未经授权的扫描可能在您所在司法管辖区属于违法行为。

该工具包 本质上为防御性设计:

  • 无漏洞载荷、无利用尝试、无侵入性探测。
  • 被动扫描仪仅读取标准的 Server: HTTP 头,并使用标准的 TLS ALPN 协商——这正是每个现代浏览器协商 HTTP/2 所采用的同一机制。
  • 本地审计器为只读;不修改任何文件或配置。

内容

root@kitploit:~
.
├── apache_passive_audit.py    # 外部资产审计(Banner 抓取 + ALPN)
├── apache_local_audit.py      # 主机本地 / SSH 本地审计
├── LICENSE                    # MIT
├── .gitignore
└── README.md

环境要求

  • Python 3.6+ —— 适用于 Ubuntu 18.04 默认的 python3 及之后所有版本。
  • 仅使用标准库 —— 无外部依赖。

安装

root@kitploit:~
git clone https://github.com/sibersan/cve-2026-23918.git
cd cve-2026-23918
chmod +x apache_passive_audit.py apache_local_audit.py

1. 被动审计 —— apache_passive_audit.py

读取 HTTP Server: 头以检测 Apache 版本,并与 CVE 表进行匹配。此外,对于 HTTPS 目标,执行标准的 TLS ALPN 协商以确定是否暴露了 HTTP/2 —— 这是 CVE-2026-23918 可利用的关键前提条件。不发送任何攻击载荷。

HTTP/2 验证(ALPN)

脚本在 TLS 握手的 ALPN 扩展(RFC 7301)中提供 h2 和 http/1.1。服务器的选择是对“是否启用了 HTTP/2?”的标准且明确的回答 —— 每个现代浏览器和 curl 都使用此方式。它不会触发漏洞或任何异常行为。

风险判定随之反映:

  • 版本 2.4.66 + 通过 ALPN 确认 HTTP/2 → VULNERABLE(RCE 向量开放)
  • 版本 2.4.66 + 未协商 HTTP/2 → AT_RISK(仍未修补;其他低/中危 CVE 仍适用,但高危 RCE 向量已关闭)
  • 无法执行 ALPN 测试 → 保守起见,假定已暴露
  • 版本 ≥ 2.4.67 → SAFE

用法

root@kitploit:~
# 单个目标
python3 apache_passive_audit.py -t https://web.example.com

# 多个目标
python3 apache_passive_audit.py -t https://a.example.com -t https://b.example.com

# 目标文件,并行,CSV + JSON 输出
python3 apache_passive_audit.py -f targets.txt -w 20 -o report.csv --json report.json

# CI / 日志友好(无颜色)
python3 apache_passive_audit.py -f targets.txt --no-color

targets.txt 格式(每行一个目标,# 表示注释):

root@kitploit:~
https://www.example.com
intranet.example.local:8443
# 旧测试服务器
http://10.0.5.12

选项

退出码(CI/CD 友好)

代码含义
0所有目标安全
1至少一个目标状态为 UNKNOWN 或 ERROR
2至少一个目标状态为 VULNERABLE 或 AT_RISK

风险等级

局限性

  • 设置 ServerTokens Prod 或 Minimal 的服务器会隐藏版本 —— 脚本会如实返回 UNKNOWN。请使用本地审计确认。
  • 位于反向代理(Cloudflare、F5、nginx 等)后的 Apache 实例可能不会在边缘暴露其版本。
  • ALPN HTTP/2 检测仅对 HTTPS 目标有意义。HTTP/2 明文(h2c)在实际中很少见,且未经测试。

2. 本地审计 —— apache_local_audit.py

在目标主机上运行(或通过 SSH),检查 Apache 二进制文件、版本、已加载模块和 HTTP/2 配置。它还评估 可利用性前提条件:例如,如果版本是 2.4.66 但 HTTP/2 已禁用,则 CVE-2026-23918 的风险相应降低。

用法

root@kitploit:~
sudo python3 apache_local_audit.py

# JSON 报告(用于集中清单)
sudo python3 apache_local_audit.py --json /var/log/apache_audit_$(hostname).json

# 自定义二进制路径
sudo python3 apache_local_audit.py --binary /opt/apache/bin/httpd

检测能力

  • httpd -v / apache2 -v —— 版本
  • httpd -V —— 构建信息,HTTPD_ROOT,SERVER_CONFIG_FILE
  • apache2ctl -M 或 httpd -M —— 已加载模块
  • dpkg-query / rpm -q —— 软件包版本
  • 主配置文件及通过 Include/IncludeOptional 引入的所有文件(包括 Debian 的 sites-enabled/、mods-enabled/)→ Protocols 指令(h2 / h2c / http/1.1)

选项

标志描述
--binaryApache 二进制路径(覆盖自动检测)
--jsonJSON 报告输出
--no-color禁用彩色输出

退出码

代码含义
0SAFE
1PATCH_NEEDED 或 UNKNOWN
2VULNERABLE 或 AT_RISK

风险等级

权限

建议使用 sudo/root 以完整读取配置。没有 root 权限,sites-enabled/、mods-enabled/ 或 /etc/httpd/conf.d/ 中的部分文件可能无法读取。


对资产清单进行批量扫描

要在多台主机上运行本地审计并集中收集报告,以下是一个 Ansible 临时命令示例:

root@kitploit:~
ansible all -i inventory.ini -b -m script \
  -a "apache_local_audit.py --json /tmp/apache_audit.json --no-color"

ansible all -i inventory.ini -b -m fetch \
  -a "src=/tmp/apache_audit.json dest=./reports/ flat=no"

收集的 JSON 文件可以使用 jq 或一个小的 Python 脚本合并。


推荐的缓解措施

针对 CVE-2026-23918(修补前):

  1. 将 Apache HTTP Server 升级至 2.4.67 或更高版本 —— 唯一的永久修复。
  2. 作为临时措施,禁用 HTTP/2:从配置中的 Protocols 指令中移除 h2 和 h2c,或者在 Debian/Ubuntu 上执行 sudo a2dismod http2,然后重新加载服务。
  3. 如果未使用 mod_dav_lock,则卸载该模块(CVE-2026-29169)。
  4. 审计具有 .htaccess 写入权限的用户/虚拟主机(CVE-2026-24072)。

官方安全公告:https://httpd.apache.org/security/vulnerabilities_24.html


贡献

欢迎提交 Pull Request。添加新的 CVE 时,请按照以下步骤操作:

  • 在 CVE_TABLE 中添加一个条目,包含受影响的版本范围和 match lambda 函数。
  • 对于本地脚本,定义相应的 needs 字段以进行前提条件检查(已加载模块、已启用协议等)。
  • 更新 README 表格。
  • 保持 Python 3.6 兼容性:避免使用 f-string、from __future__ import annotations、PEP 585 泛型(list[int])、subprocess.run(capture_output=True) 以及 @dataclass。

维护者

SiberSAN

许可证

MIT © 2026 SiberSAN

免责声明

本软件按“原样”提供,不提供任何形式的担保。请在生产环境中使用前先在测试环境中验证。用户对未经授权系统的任何使用承担全部法律责任。

下载工具
标志描述
-t, --target单个目标(可重复)
-f, --file目标列表文件
-o, --csvCSV 报告输出
--jsonJSON 报告输出
--timeout请求超时秒数(默认 10)
-w, --workers并行工作线程数(默认 10)
--no-color禁用彩色输出
等级含义
VULNERABLE版本匹配公告中 CVE 范围且前提条件满足(例如 HTTP/2 已启用)
AT_RISK未修补版本但高危前提条件不满足;其他 CVE 仍适用
SAFE版本 ≥ 2.4.67
UNKNOWNBanner 被隐藏(ServerTokens Prod)或被反向代理/WAF 遮蔽 —— 请使用本地审计脚本验证
NOT_APACHE非 Apache(nginx、IIS 等)
ERROR连接错误
等级含义
VULNERABLE未修补版本 + 高危 CVE 前提条件满足(例如 HTTP/2 已启用)
AT_RISK未修补版本 + 至少一个 CVE 前提条件满足
PATCH_NEEDED未修补版本但未启用相关模块/协议 —— 仍然需要修补
SAFE版本 ≥ 2.4.67
UNKNOWN无法检测到版本