adamsec-dev/phaas-hunter

GitHub: adamsec-dev/phaas-hunter

一套用于穿透 CDN 代理、去匿名化并报告钓鱼即服务基础设施的防御性威胁情报工具集。

Stars: 0 | Forks: 0

# phaaS-hunter ![Go](https://img.shields.io/badge/Go-1.22-00ADD8?style=flat&logo=go) ![Python](https://img.shields.io/badge/Python-3.11-blue?style=flat&logo=python) ![Bash](https://img.shields.io/badge/Bash-Linux-green?style=flat&logo=gnubash) ![License](https://img.shields.io/badge/license-MIT-green) ## 这是什么 这是一组用于识别、分析和报告网络钓鱼即服务基础设施的防御性安全工具。这些工具是在一次真实的调查过程中开发出来的,该调查成功去匿名化了一个在全球范围内针对 Fiverr、Depop、Upwork 和 Airbnb 用户的活跃犯罪团伙。 所有工具均严格用于防御目的。所有研究均在道德和法律边界内进行。 ## 真实调查结果 使用这些工具,我成功地: - 绕过了 **Cloudflare 代理**,识别出真实的 AWS 源站服务器 - 利用 HTTP OPTIONS 配置错误提取了**泄露的会话 cookie** - 匹配了 **SSL 证书序列号**,通过加密方式验证了源站 IP - 确认了 **Google Analytics ID** 是一个去匿名化向量 - 映射了位于 AWS Dublin、DigitalOcean 和 Hostinger 的 **7 台源站服务器** - 向 **FBI IC3**(提交了 3 次)、**AWS Trust & Safety**、**Cloudflare** 和 **Fiverr Security** 进行了举报, ## 工具套件 ``` phaaS-hunter/ ├── origin_hunter.py # Maps true origin IPs behind CDN proxies ├── v10_dynamic_sniffer.go # Intercepts C2 traffic via headless browser ├── v10_header_leaker.go # Extracts backend headers via HTTP OPTIONS ├── v10_origin_hunter.py # SSL certificate serial matching ├── v10_path_fuzzer.go # Admin panel discovery via directory fuzzing ├── jarm.py # JARM hash fingerprinting for server ID ├── favicon_hunter.py # Cross-domain favicon hash matching ├── v10_global_intel.py # Multi-platform intelligence aggregator ├── abuse_hunter.sh # Automated abuse report email finder └── master_hunter.sh # Full pipeline orchestration ``` ## 核心技术 ### 1. 通过 Host Header 注入绕过 Cloudflare 剥离 CDN 代理并迫使源站服务器暴露自身的核心技术: ``` // Send request directly to raw IP with spoofed Host header // Forces the origin server to respond even behind Cloudflare req, _ := http.NewRequest("GET", fmt.Sprintf("https://%s/", rawIP), nil) req.Host = "fiverr-gigs.help" // The domain hidden behind the CDN client := createUnsafeClient() // Skip TLS verification for raw IP resp, err := client.Do(req) // If origin responds with HTTP 200 — we found the real server if resp.StatusCode == 200 { fmt.Printf("[CONFIRMED ORIGIN] %s is hosting: %s\n", rawIP, domain) } ``` ### 2. 通过 HTTP OPTIONS 进行管理面板发现 标准的 GET 请求会返回 403,但 OPTIONS 请求会显示该端点处于活跃状态: ``` // Probe admin endpoints — OPTIONS leaks headers even when GET is blocked req, _ := http.NewRequest("OPTIONS", "https://target.com/api/admin", nil) resp, _ := client.Do(req) // Extract leaked session data fmt.Println("Cf-Ray:", resp.Header.Get("Cf-Ray")) // Reveals CDN node fmt.Println("Set-Cookie:", resp.Header.Get("Set-Cookie")) // Leaks session cookie fmt.Println("X-Powered-By:", resp.Header.Get("X-Powered-By")) // Backend tech ``` **调查中的真实输出:** ``` Cf-Ray: 9ed3f990bd326650-AMS ← Amsterdam routing confirmed X-Powered-By: Express ← Node.js backend confirmed Set-Cookie: connect.sid=s%3AsK2oN1... ← Live session cookie leaked ``` ### 3. SSL 证书序列号匹配 通过加密方式验证裸 IP 是否托管了特定域名: ``` import ssl import socket def get_ssl_serial(ip, port=443): context = ssl.create_default_context() context.check_hostname = False context.verify_mode = ssl.CERT_NONE with socket.create_connection((ip, port), timeout=10) as sock: with context.wrap_socket(sock) as ssock: cert = ssock.getpeercert(binary_form=True) # Extract serial number for matching return extract_serial(cert) # 已验证:52.212.234.4 SSL 序列号与 kerentolow.com 证书匹配 # 序列号:041980A636F4E2E7400B3088F36C4BF0 ``` ### 4. JARM 指纹识别 通过 TLS 握手行为进行服务器指纹识别,以确定服务器软件: ``` # JARM 在不发送任何 payload 的情况下识别服务器技术 # 调查的实际结果: JARM: 29d29d00029d29d21c29d29d29d29dab965d4179316d1f3a3c5dbe7d8829db # 此 JARM 匹配 AWS 基础设施上的 Node.js/Express ``` ### 5. Google Analytics 去匿名化 该犯罪团伙在其钓鱼工具包中使用 Google Analytics 时犯了一个严重的 OPSEC 失误: ``` Measurement ID: G-WZSBC7FK9S This GA ID is linked to the administrator's real Google Account. A subpoena to Google LLC for this ID directly identifies the criminals. Action: Law enforcement should request account registration data, billing information, and access logs for this GA ID. ``` ## 已确认的基础设施(来自真实调查) | 服务器 | 服务商 | 角色 | 证据 | |--------|----------|------|---------| | 52.212.234.4 | AWS Dublin | 主 C2 | SSL 序列号匹配 | | 52.18.10.130 | AWS Dublin | 次要节点 | Host header 响应 | | 69.62.86.90 | Hostinger | 存在漏洞的后端 | 开放目录 | | 157.230.39.117 | DigitalOcean | 代理节点 | JARM 匹配 | **已确认的域名:** `kerentolow.com`、`fiverr-gigs.help`、`depop-community.com`、`glg-creator.ink` ## 协调披露 所有发现均已通过正规渠道进行了报告: | 机构 / 平台 | 报告 ID | 日期 | |------------------|-----------|------| | FBI IC3 | `8a7a550f58d44287b96b6df04e559ddd` | 2026年4月16日 | | FBI IC3 (更新) | `84a8bd9417934cde811ef79953b779e2` | 2026年4月17日 | | FBI IC3 (最终) | `b571a7d07a824e5a809045ed3e7ee7c0` | 2026年4月20日 | | Cloudflare Abuse | `42515051abe68574` | 2026年4月16日 | | AWS Trust & Safety | 多个 | 2026年4月16-20日 | | Fiverr Security | 与 Ethan Benhamou 协调处理 | 2026年4月16日 | | Dutch National Police | `260416-000249` | 2026年4月16日 | ## 仅限防御性使用 这些工具专为以下对象构建: - 调查活跃威胁的安全研究人员 - 保护其用户的平台安全团队 - 执法协调和证据收集 它们**不**适用于攻击性用途。所有使用的手段均为被动侦察方法,不会修改、访问或破坏任何系统。 ## 关于 由来自摩洛哥的安全研究员 **Adam El Outtassi** 构建。 | 平台 | 链接 | |----------|------| | Fiverr | [fiverr.com/adam_c9](https://fiverr.com/adam_c9) | | Upwork | [upwork.com/freelancers](https://www.upwork.com/freelancers/~01709ce34b086c899e) |
标签:Bash, C2拦截, CDN绕过, Cloudflare绕过, ESC4, Favicon哈希, GitHub, Go, IP定位, JARM指纹, OSINT, PhaaS, Python, Ruby工具, SSL证书分析, TLS, 去匿名化, 威胁情报, 安全调查, 实时处理, 密码管理, 应用安全, 开发者工具, 攻击基础设施分析, 数字取证, 无后门, 日志审计, 溯源, 滥用举报, 目录模糊测试, 网络安全, 网络攻防, 网络钓鱼即服务, 自动化报告, 自动化脚本, 逆向工具, 防御工具, 隐私保护