GalalNoaman/RedShadow_V4
GitHub: GalalNoaman/RedShadow_V4
一款基于 Python 的红队侦察框架,通过多阶段流水线实现自动化扫描、CVE 关联与 HTML 报告生成,解决大规模目标的高效侦察与风险梳理问题。
Stars: 0 | Forks: 0
# 🛡️ RedShadow V4 — 红队侦察框架
**RedShadow V4** 是一个使用 Python 构建的专业红队侦察框架。它通过单条命令运行完整的多阶段侦察流水线,涵盖端口扫描、被动 HTTP 侦察、密钥检测、云存储分析、CVE 关联以及自动化报告生成。
## 🚀 主要功能
**两种流水线模式:**
- **域名模式** — 从子域名枚举到 CVE 分析和报告的 15 阶段流水线
- **IP 模式** — 针对原始 IP 和 CIDR 范围的 10 阶段流水线,不依赖域名
**侦察能力:**
- 通过证书透明度(crt.sh)进行子域名枚举
- DNS 暴力破解,包含深度通配符检测与排列生成
- 被动 HTTP 侦察 — 头部、标题、技术栈、IP 解析
- Wayback Machine 扫描,在存档响应中检测密钥
**漏洞检测:**
- 100+ 个活跃 HTTP 探针 — 暴露文件、管理面板、调试端点、Actuator
- CORS 错误配置检测(GET + OPTIONS 预检)
- Cookie 安全审计(HttpOnly、Secure、SameSite)
- 开放重定向检测
- 跨 40 种服务的子域名接管检测
- S3、GCS、Azure Blob 容器发现与错误配置检测
- GraphQL 内省检测
**密钥发现:**
- JavaScript 与 HTML 密钥扫描 — AWS 密钥、GitHub 令牌、Stripe、JWT、数据库 URL 以及 30+ 种模式
- 香农熵验证以过滤占位值
- 针对 GitHub 公共仓库的 30 个定向查询密钥扫描
**CVE 与风险分析:**
- 启用服务与版本检测的 Nmap 端口扫描
- 基于 CPE 的精准搜索与多策略回退的 NVD API v2 查询
- 每个 CVE 的 EPSS 漏洞利用概率补充
- HTTP 指纹补充 — Server 头部与响应体用于版本检测
- 基于版本的 CVE 过滤,分类为 CONFIRMED / POSSIBLY AFFECTED / UNLIKELY
- 上下文标志,用于标识仅支持代理转发或需要非默认组件的 CVE
- 针对 Ubuntu/Debian/RHEL 包的回溯风险警告
- 每个目标的复合风险评分
**关联引擎:**
- 4 个层级上的 13 条检测规则,从确认密钥到侦察线索
- 5 条链式模式,用于多阶段攻击路径检测
- 解释信号如何关联的类型化叙事
- 按置信度(HIGH / MEDIUM / LOW)排序的线索
**报告:**
- 深色主题 HTML 报告,包含执行摘要与优先级操作
- 带 EPSS、版本相关度徽章和上下文标志的版本匹配 CVE 表
- 关联线索与可折叠验证清单
- 折叠部分中的加固差距 — 漏洞优先呈现
- 同时生成 HTML 与 Markdown 报告
**工程实现:**
- 4 个测试文件中的 58 个单元测试
- 所有阶段输出的深度 JSON Schema 验证
- 结构化运行日志输出到 `outputs/logs/`
- 运行质量评分(0-100),涵盖 5 个维度
- 支持断点续传与校验和验证
- 带加权 ETA 的并行阶段执行
## 🛠️ 安装
```
sudo apt update && sudo apt install nmap -y
pip install -r requirements.txt --break-system-packages
```
或使用安装脚本:
```
chmod +x setup.sh && ./setup.sh
```
**API 密钥** — 添加到项目根目录的 `.env` 文件:
```
NVD_API_KEY=your_key_here # https://nvd.nist.gov/developers/request-an-api-key
GITHUB_TOKEN=your_token_here # https://github.com/settings/tokens
```
没有 NVD 密钥时:每 30 秒 5 次请求。拥有密钥时:每 30 秒 50 次请求。
## 🚀 使用
### IP 模式
```
# Triage scan — 跳过重定向和 S3(约快 70%,推荐首次扫描)
sudo python3 main.py scan-ips --ips 192.168.1.1 --triage
# Deep scan — 全部阶段
sudo python3 main.py scan-ips --ips 192.168.1.1 --deep
# Multiple IPs
sudo python3 main.py scan-ips --ips 10.0.0.1,10.0.0.2,10.0.0.3 --triage
# Specific ports only(仅限授权范围)
sudo python3 main.py scan-ips --ips 10.0.0.1 --deep --ports 443,8080,8443
# CIDR range
sudo python3 main.py scan-ips --ips 10.0.0.0/24 --triage
# From a targets file
sudo python3 main.py scan-ips --targets targets.txt --deep
# Custom output directory
sudo python3 main.py scan-ips --ips 10.0.0.1 --triage --output-dir outputs/my_scan
```
### 域名模式
```
# Full 15-stage pipeline
sudo python3 main.py auto --target example.com
# Resume an interrupted scan
sudo python3 main.py auto --target example.com --resume
# Skip DNS bruteforce
sudo python3 main.py auto --target example.com --no-bruteforce
```
### IP 模式标志
| 标志 | 描述 |
|---|---|
| `--triage` / `--fast` | 跳过重定向与 S3 扫描(约提速 70%) |
| `--deep` | 运行所有阶段,包括重定向与 S3 |
| `--ports` | 逗号分隔的端口列表 — 覆盖 config.yaml |
| `--output-dir` | 自定义输出目录 |
| `--debug` | 启用详细调试日志 |
| `--quiet` | 抑制非必要输出 |
| `--resume` | 从上一个已完成阶段恢复 |
| `--format` | 输出格式:`all`、`html`、`md`、`json` |
| `--threads` | 覆盖扫描阶段的线程数 |
| `--timeout` | 覆盖 HTTP 超时时间(秒) |
### 运行测试
```
python3 -m pytest tests/ -v
```
## 🗺️ 流水线阶段
### IP 模式(10 个阶段)
| # | 阶段 | 说明 |
|---|---|---|
| 1 | 端口扫描(Nmap) | 扫描指定端口并检测服务 |
| 2 | 被动 HTTP 侦察 | 对所有开放端口进行 HTTP/HTTPS 探测 |
| 3 | HTTP 探测 | 100+ 路径探测、CORS、Cookie 审计 |
| 4 | 密钥扫描器 | 在 HTTP 响应中扫描凭证 |
| 5 | JS 提取器 | 从 JS 中提取端点与子域名 |
| 6 | 开放重定向 | 在 `--triage` 模式下跳过 |
| 7 | S3 存储桶扫描器 | 在 `--triage` 模式下跳过 |
| 8 | CVE 分析 | 带有 HTTP 指纹补充的 NVD 查询 |
| 9 | 关联引擎 | 13 条规则、5 条链式模式、带置信度的线索 |
| 10 | 报告生成 | 带执行摘要的 HTML 与 Markdown |
### 域名模式(15 个阶段)
| # | 阶段 |
|---|---|
| 1 | 子域名枚举(crt.sh) |
| 2 | DNS 暴力破解 |
| 3 | 子域名接管检查 |
| 4 | 被动 HTTP 侦察 |
| 5–9 | HTTP 探测、重定向、密钥、S3、JS(并行) |
| 10 | Wayback Machine 扫描器 |
| 11 | GitHub 密钥扫描器 |
| 12 | 端口扫描(Nmap) |
| 13 | CVE 分析 |
| 14 | 关联引擎 |
| 15 | 报告生成 |
## 📁 项目结构
```
RedShadow_V4/
├── main.py ← Entry point and CLI
├── config.yaml ← All settings
├── .env ← API keys (never committed)
├── requirements.txt
├── setup.sh
├── data/
│ ├── cve_map.json ← Local CVE fallback map (64 products, 113 CVEs)
│ └── nvd_cache/ ← Auto-generated NVD response cache
├── modules/
│ ├── analyse.py ← CVE analysis, EPSS enrichment, risk scoring
│ ├── bruteforce.py ← DNS bruteforce with wildcard detection
│ ├── correlate.py ← Correlation engine — 13 rules, 5 chain patterns
│ ├── domain.py ← crt.sh subdomain enumeration
│ ├── githubscan.py ← GitHub secret scanner
│ ├── jsextractor.py ← JS endpoint and source map extractor
│ ├── logger.py ← Structured per-run logging
│ ├── matchers.py ← Product normalisation and CVE precision helpers
│ ├── nvd.py ← NVD API v2 with CPE-based lookup
│ ├── passive.py ← Passive HTTP recon
│ ├── pipeline.py ← Domain mode 15-stage orchestrator
│ ├── pipeline_ip.py ← IP mode 10-stage orchestrator
│ ├── probe.py ← 100+ active HTTP probes
│ ├── redirect.py ← Open redirect detection
│ ├── report.py ← HTML and Markdown report generator
│ ├── s3scanner.py ← S3, GCS, and Azure bucket scanner
│ ├── scan.py ← Nmap port scanner
│ ├── schemas.py ← JSON schema validation for stage outputs
│ ├── secret.py ← Secret and credential scanner
│ ├── takeover.py ← Subdomain takeover detection
│ ├── utils.py ← Thread-safe config loader
│ └── wayback.py ← Wayback Machine scanner
├── tests/
│ ├── test_matchers.py ← Normalisation and CVE precision tests
│ ├── test_pipeline_ip_parsers.py
│ ├── test_schemas.py ← Schema validation tests
│ └── test_validators.py ← IP/CIDR/domain validation tests
└── outputs/ ← All scan results written here (git-ignored)
```
## 📋 输出文件
| 文件 | 内容 |
|---|---|
| `scan_results.json` | 带有服务版本的 Nmap 端口扫描结果 |
| `passive_results.json` | 每个主机的 HTTP 状态、标题、技术栈 |
| `probe_results.json` | 带有置信度和证据的主动探测结果 |
| `secret_results.json` | 带有熵分数的暴露凭证 |
| `js_results.json` | 端点、GraphQL、泄露的子域名 |
| `s3_results.json` | 公有/私有云存储桶(AWS/GCP/Azure) |
| `analysis_results.json` | 带有 EPSS、版本相关度和风险分数的 CVE |
| `attack_paths.json` | 按置信度和分数排序的关联线索 |
| `redshadow_report.html` | 深色主题 HTML 报告 — 可在任意浏览器中打开 |
| `redshadow_report.md` | Markdown 报告 |
| `logs/run_.log` | 结构化 JSON 行运行日志 |
## ⚙️ 配置
所有设置位于 `config.yaml`。关键选项:
```
scan:
nmap_ports: "443,8080,8443,..." # Default port list (overridden by --ports flag)
cve_quality:
max_per_service: 15 # Cap CVEs shown per service
min_cvss: 4.0 # Minimum CVSS score
ip_mode:
triage_by_default: true # Recommend --triage for IP scans
s3scanner:
enable_write_check: false # Set true ONLY in a lab environment
correlation:
min_confidence: LOW # Minimum confidence level for leads
```
## 📜 法律声明
版权所有 © 2026 Galal Noaman。保留所有权利。
仅限教育与非商业用途。禁止用于商业用途、再分发或未经明确书面授权的系统使用。完整条款请参见 `LICENSE.txt`。
联系:Jalalnoaman@gmail.com | GitHub:github.com/GalalNoaman/RedShadow_V4
标签:Azure扫描, CIDR扫描, Cookie安全, CORS检测, CTI, CVE, DNS爆破, EPSS, ESC6, GCS扫描, GitHub查询, GraphQL内省, HTML报告, HTTP指纹, Nmap, NVD, Python, S3扫描, Wayback Machine, 专业红队工具, 侦察框架, 前端正则化, 反取证, 反汇编, 子域名接管, 子域名枚举, 安全分析, 安全工具库, 安全评估, 开放重定向, 恶意行为检测, 数字签名, 数据展示, 数据统计, 无后门, 漏洞分析, 熵值检测, 秘密发现, 端口扫描, 系统安全, 红队, 网络安全, 自动化报告, 虚拟驱动器, 被动侦察, 证书透明度, 路径探测, 逆向工具, 通配符检测, 隐私保护