GAURAVMOYNAK/shadowscan

GitHub: GAURAVMOYNAK/shadowscan

一款基于 Python 的非侵入式 Web 安全侦察与评估 CLI 工具,可对目标域名执行 15 项自动化安全检查并生成专业报告。

Stars: 0 | Forks: 0

# 🕵️ ShadowScan Pro ``` ========================================== SHADOWSCAN PRO - RECON INTELLIGENCE TOOL ========================================== CLI Security & OSINT Assessment Utility ``` ## ⚠️ 法律与道德警告 ## 📋 目录 - [什么是 ShadowScan Pro?](#what-is-shadowscan-pro) - [它能做什么?](#what-can-it-do) - [系统要求](#system-requirements) - [安装说明](#installation) - [使用方法](#how-to-use) - [所有模块详解](#all-modules-explained) - [解读输出结果](#understanding-the-output) - [风险评分系统](#risk-scoring-system) - [生成的报告](#reports-generated) - [合法实践目标](#legal-practice-targets) - [发现 ID 参考](#finding-ids-reference) - [故障排除](#troubleshooting) - [项目结构](#project-structure) ## 什么是 ShadowScan Pro? ShadowScan Pro 是一款**基于 Python 的命令行安全评估工具**,专为 Web 信息收集和漏洞评估而设计。它对目标域名执行 **15 项不同的安全检查**——所有过程均不发送任何恶意 payload 或进行漏洞利用。 它是安全专业人员在渗透测试的**信息收集阶段**会使用的那种工具——用于收集信息、识别配置错误、检测暴露情况,并生成专业报告。 **是什么让它“非侵入式”?** - 它不发送漏洞利用 payload - 它不暴力破解登录页面 - 它不执行 SQL 注入或 XSS 攻击 - 它只读取公开可用的信息并检查常见的配置错误 - 所有检查都类似于搜索引擎和合法爬虫已经在做的事情 ## 它能做什么? ShadowScan Pro 只需一条命令即可执行以下操作: | # | 功能 | 发现内容 | |---|-----------|---------------| | 1 | 域名解析 | IP 地址、反向 DNS | | 2 | WHOIS 情报 | 注册商、组织、创建日期、到期日期、年龄 | | 3 | DNS 分析 | A、MX、TXT 记录,SPF 和 DMARC 验证 | | 4 | SSL/TLS 分析 | 证书有效性、过期时间、自签名检查、TLS 版本 | | 5 | HTTP 安全标头 | CSP、HSTS、X-Frame-Options、X-Content-Type-Options | | 6 | HTTP 方法 | 危险方法,如 PUT、DELETE、TRACE | | 7 | 端口扫描 | 通过多线程并行扫描 13 个常见端口 | | 8 | 技术指纹识别 | CMS、框架、CDN、WAF 检测 | | 9 | 文件与目录发现 | .env、.git、robots.txt、备份文件、管理后台 | | 10 | 子域名枚举 | 并行解析 14 个常见子域名 | | 11 | 路由跟踪 | 带自动超时的网络跃点映射 | | 12 | 数字足迹 | 邮箱、社交媒体、外部链接、API 路径、统计分析 | | 13 | Cookie 安全性 | Secure、HttpOnly、SameSite 标志分析 | | 14 | CORS 策略 | 通配符或反射来源配置错误 | | 15 | 信息泄露检测 | 暴露的 .env、.git/config、数据库转储、备份文件 | **在完成所有扫描后,它会:** - 计算 **安全评分**、**暴露评分** 和 **信任评分**(0–100) - 列出所有发现及其严重程度(高 / 中 / 低) - 生成一份**专业的 PDF 报告**和一份**纯文本报告** ## 系统要求 ### 操作系统 | 操作系统 | 支持情况 | |----|---------| | **Kali Linux** | ✅ 主要平台 / 完全支持 | | Ubuntu / Debian | ✅ 完全支持 | | Parrot OS | ✅ 完全支持 | | macOS | ✅ 支持(traceroute 原生运行) | | Windows 10/11 | ⚠️ 支持(使用 tracert 代替 traceroute) | | 任何 Linux 发行版 | ✅ 支持 | ### Python 版本 | 版本 | 支持情况 | |---------|---------| | Python 3.8+ | ✅ 必需 | | Python 3.10+ | ✅ 推荐 | | Python 2.x | ❌ 不支持 | 检查你的 Python 版本: ``` python3 --version ``` ### 网络要求 - 活跃的互联网连接(用于 DNS 解析、WHOIS、SSL 检查) - 出站端口访问:**80、443、53**(最低要求) - Traceroute 要求防火墙未阻止 **ICMP 或 UDP** ## 安装说明 ### 步骤 1 — 克隆仓库 ``` git clone https://github.com/yourusername/shadowscan-pro.git cd shadowscan-pro ``` 或者直接下载 `shadowscan_pro.py` 文件。 ### 步骤 2 — 安装 Python 依赖 **在 Kali Linux / Ubuntu / Debian 上:** ``` pip install requests dnspython rich reportlab python-whois ``` 如果在较新的系统上遇到系统包冲突错误: ``` pip install requests dnspython rich reportlab python-whois --break-system-packages ``` 或者使用虚拟环境(推荐): ``` python3 -m venv venv source venv/bin/activate pip install requests dnspython rich reportlab python-whois ``` **在 Windows 上:** ``` pip install requests dnspython rich reportlab python-whois ``` **在 macOS 上:** ``` pip3 install requests dnspython rich reportlab python-whois ``` ### 步骤 3 — 安装系统工具 **Traceroute(Linux/macOS —— 通常已预装):** ``` # Kali / Ubuntu / Debian sudo apt install traceroute # macOS brew install traceroute ``` ### 步骤 4 — 验证安装 ``` python3 shadowscan_pro.py --help ``` 你应该会看到: ``` usage: shadowscan_pro [-h] domain ShadowScan Pro v3 — Advanced Web Recon & VAPT Tool positional arguments: domain Target domain (e.g. example.com) ``` ### 完整依赖表 | 库 | 用途 | 安装命令 | |---------|---------|-----------------| | `requests` | HTTP 请求、标头分析 | `pip install requests` | | `dnspython` | DNS 记录解析 | `pip install dnspython` | | `rich` | 彩色 CLI 输出、表格、面板 | `pip install rich` | | `reportlab` | PDF 报告生成 | `pip install reportlab` | | `python-whois` | WHOIS 域名情报 | `pip install python-whois` | | `socket` | 端口扫描、DNS 解析 | 内置(无需安装) | | `ssl` | SSL/TLS 证书分析 | 内置(无需安装) | | `subprocess` | Traceroute 执行 | 内置(无需安装) | | `threading` | 并行端口扫描 | 内置(无需安装) | | `concurrent.futures` | 并行子域名枚举 | 内置(无需安装) | ## 使用方法 ### 基本用法 ``` python3 shadowscan_pro.py example.com ``` ### 使用完整域名格式 该工具会自动去除协议和路径: ``` python3 shadowscan_pro.py https://example.com python3 shadowscan_pro.py http://example.com/path/page python3 shadowscan_pro.py www.example.com ``` 以上所有输入都是等价的——该工具会将输入标准化为 `example.com`。 ### 输出 该工具将: 1. 显示横幅和道德警告 2. 逐一运行所有 15 个模块,并提供实时状态更新 3. 显示完整的风险分析摘要 4. 在 `reports/` 文件夹中生成两个报告文件 ``` reports/ └── example_com_report.txt ← Plain text report └── example_com_report.pdf ← Professional PDF report ``` ### 完整运行示例 ``` $ python3 shadowscan_pro.py testphp.vulnweb.com ========================================== SHADOWSCAN PRO - RECON INTELLIGENCE TOOL ========================================== ⚠ ETHICAL & LEGAL WARNING Use only on authorized systems... Target : testphp.vulnweb.com Started : 2025-01-15 14:32:10 ──────────────── [1] DOMAIN INFORMATION ───────────────── [*] Resolving domain... ✔ Resolved IP : 44.228.249.3 ✔ Reverse DNS : ec2-44-228-249-3.us-west-2.compute.amazonaws.com ──────────────── [2] WHOIS / DOMAIN INTELLIGENCE ──────── [*] Querying WHOIS data... ... [continues through all 15 modules] ──────────────── RISK ANALYSIS SUMMARY ────────────────── [HIGH] SS-010 — Missing SPF Record [HIGH] SS-011 — Missing DMARC Record [MEDIUM] SS-030 — Missing Content-Security-Policy ... ╭─────────────── SCAN SUMMARY ───────────────────╮ │ Total Issues : 18 │ │ HIGH : 5 │ │ MEDIUM : 9 │ │ LOW : 4 │ ╰─────────────────────────────────────────────────╯ ✔ Text report : reports/testphp_vulnweb_com_report.txt ✔ PDF report : reports/testphp_vulnweb_com_report.pdf ``` ## 所有模块详解 ### 模块 1 — 域名信息 **功能:** 将目标域名解析为其 IP 地址,并执行反向 DNS 查找,以找出映射回该 IP 的主机名。 **检测内容:** - 正向 DNS 解析(域名 → IP) - 反向 DNS(IP → 主机名)——揭示托管提供商或 CDN **重要性:** 反向 DNS 可以揭示网站是托管在 AWS、Cloudflare、共享主机还是专用服务器上——为后续的扫描提供有用的上下文。 **触发的发现:** - `SS-000` — 域名无法解析(高)——扫描无法继续 ### 模块 2 — WHOIS / 域名情报 **功能:** 查询 WHOIS 数据库以检索有关该域名的注册信息。 **检测内容:** - 注册商(GoDaddy、Namecheap 等) - 组织名称 - 注册国家 - 域名创建日期 - 域名过期日期 - 域名服务器 **重要性:** 近期注册的域名(少于 1 年)是网络钓鱼或欺诈网站的常见指标。过期日期临近今天可能表示该域名已被废弃或无人管理。 **触发的发现:** - `SS-002` — 近期注册的域名(中)——如果域名年龄少于 365 天 ### 模块 3 — DNS 分析 **功能:** 查询域名的 DNS 记录——A 记录(IP 映射)、MX 记录(邮件服务器)和 TXT 记录(SPF、DMARC、验证 token)。 **检测内容:** - **A 记录:** 哪些 IP 为此域名提供服务 - **MX 记录:** 邮件服务器配置 - **TXT 记录:** SPF 策略、DMARC 策略、Google/Microsoft 验证 token - **缺失的 SPF:** 没有电子邮件防伪造保护 - **缺失的 DMARC:** 没有强制执行电子邮件身份验证 **重要性:** 缺失 SPF 和 DMARC 记录会允许攻击者发送看起来像来自您域名的电子邮件——这是网络钓鱼攻击的基础。 **触发的发现:** - `SS-010` — 缺失 SPF 记录(高) - `SS-011` — 缺失 DMARC 记录(高) ### 模块 4 — SSL/TLS 分析 **功能:** 连接到端口 443 并检索分析 SSL/TLS 证书以及协商的协议版本。 **检测内容:** - HTTPS 是否完全可用 - 证书通用名称 (CN) —— 颁发给哪个域名 - 证书颁发者 —— 谁签署了它(Let's Encrypt、DigiCert 等) - 证书是否为自签名 - 距离过期的剩余天数 - 正在使用的 TLS 版本(TLS 1.3、1.2、1.1、1.0、SSLv3) **重要性:** 过期或自签名的证书会导致用户在浏览器中看到安全警告。脆弱的 TLS 版本(1.0、1.1、SSLv3)存在已知漏洞,能够引发中间人攻击。缺乏 HTTPS 意味着所有流量均为明文。 **触发的发现:** - `SS-020` — 自签名证书(高) - `SS-021` — 证书已过期(高) - `SS-022` — 证书即将过期(中) - `SS-023` — 脆弱的 TLS 版本(高) - `SS-024` — SSL 验证失败(高) - `SS-025` — SSL 配置错误(高) - `SS-026` — HTTPS 不可用(高) ### 模块 5 — HTTP 安全标头 **功能:** 向域名发出 HTTP/HTTPS 请求,并分析响应标头中是否存在安全标头。 **检查的标头:** | 标头 | 用途 | 缺失风险 | |--------|---------|--------------| | `Content-Security-Policy` | 防止 XSS、数据注入 | 可能发生 XSS 攻击 | | `Strict-Transport-Security` | 强制使用 HTTPS | 浏览器可能回退到 HTTP | | `X-Frame-Options` | 防止点击劫持 | 网站可被嵌入到 iframe 中 | | `X-Content-Type-Options` | 防止 MIME 嗅探 | 可能发生内容类型攻击 | | `Referrer-Policy` | 控制 referrer 数据 | 数据泄露给第三方 | | `Permissions-Policy` | 控制浏览器功能访问 | 摄像头/麦克风 API 失控 | **重要性:** 这些标头是免费添加的,可以防止大量的常见 Web 攻击。缺失标头是实际安全审计中最常见的发现之一。 **触发的发现:** - `SS-030` 到 `SS-035` —— 每个缺失的标头对应一个中级发现 ### 模块 6 — HTTP 方法检查 **功能:** 发送 HTTP OPTIONS 请求,以发现服务器允许哪些 HTTP 方法。 **检查的方法:** | 方法 | 风险等级 | 危险原因 | |--------|-----------|---------------| | GET | 正常 | 标准读取操作 | | POST | 正常 | 标准表单提交 | | PUT | 有风险 | 可以上传或覆盖文件 | | DELETE | 有风险 | 可以删除服务器端资源 | | TRACE | 有风险 | 可能暴露身份验证标头(XST 攻击) | | CONNECT | 有风险 | 可以通过服务器创建隧道 | | PATCH | 有风险 | 可以部分修改服务器资源 | **重要性:** 如果在没有身份验证的情况下启用了 PUT 或 DELETE,攻击者可能会直接修改或删除 Web 内容。 **触发的发现:** - `SS-060` — 启用了危险的 HTTP 方法(中) ### 模块 7 — 开放端口扫描(多线程) **功能:** 使用 Python 线程并行尝试与 13 个常见端口建立 TCP 连接,以实现快速扫描。 **扫描的端口:** | 端口 | 服务 | 意外开放的风险 | |------|---------|--------------------------| | 21 | FTP | 明文传输 —— 高风险 | | 22 | SSH | 远程访问 —— 监控暴力破解 | | 23 | Telnet | 明文远程访问 —— 高风险 | | 25 | SMTP | 邮件中继 —— 检查开放中继 | | 53 | DNS | DNS 服务器 —— 检查区域传送 | | 80 | HTTP | Web 服务器 —— 预期之中 | | 110 | POP3 | 电子邮件检索 | | 143 | IMAP | 电子邮件访问 | | 443 | HTTPS | 安全 Web —— 预期之中 | | 3306 | MySQL | 数据库直接暴露 —— 高风险 | | 5432 | PostgreSQL | 数据库直接暴露 —— 高风险 | | 8080 | HTTP-Alt | 备用 Web 端口 | | 8443 | HTTPS-Alt | 备用安全 Web 端口 | **重要性:** 面向互联网的服务器上开放的数据库端口(3306、5432)是严重的配置错误——数据库绝对不应直接从互联网访问。Telnet 和 FTP 以明文形式传输凭证。 **触发的发现:** - 端口的高风险:21 (FTP)、23 (Telnet)、3306 (MySQL)、5432 (PostgreSQL) - 非标准开放端口的中风险 ### 模块 8 — 技术指纹识别 **功能:** 分析 HTTP 响应标头和 HTML 内容,以识别服务器上运行的技术。 **检测到的技术:** | 类别 | 检测到的技术 | |----------|----------------------| | CMS | WordPress、Drupal、Joomla | | 框架 | Laravel、Django | | 前端 | React、Angular、Vue.js、jQuery、Bootstrap | | CDN/WAF | Cloudflare、AWS CloudFront、Fastly | | Web 服务器 | Nginx、Apache、IIS | | 语言 | PHP(通过 X-Powered-By) | **重要性:** 了解网站运行的是 WordPress 5.2 或 PHP 7.1,攻击者就可以查找这些特定版本的已知 CVE。服务器版本披露是直接的攻击推手。 **触发的发现:** - `SS-080` — 服务器版本已披露(中) - `SS-081` — X-Powered-By 已暴露(中) ### 模块 9 — 文件与目录发现 **功能:** 通过发出 HTTP 请求并检查响应代码,来检查常见敏感文件和目录的存在。 **检查的文件:** | 文件/路径 | 敏感原因 | |-----------|--------------| | `/robots.txt` | 可能暴露隐藏的路径和目录 | | `/sitemap.xml` | 列出所有站点 URL | | `/admin` | 管理后台 —— 不应公开访问 | | `/login` | 登录页面发现 | | `/backup` | 备份文件可能包含源代码或数据 | | `/test` | 测试页面通常启用了调试信息 | | `/.env` | **严重** —— 包含 API key、数据库密码 | | `/.git/config` | **严重** —— 暴露源代码仓库 | | `/wp-admin` | WordPress 管理面板 | | `/phpinfo.php` | 完整的服务器配置披露 | | `/config.php` | 应用程序配置 | **重要性:** 暴露的 `.env` 文件可能包含数据库密码、API key 和 secret token —— 实际上是向攻击者交出了完整的系统访问权限。这是现实环境中最严重的配置错误之一。 **触发的发现:** - 敏感路径(`.env`、`.git`、`phpinfo.php`)的高严重性 - 信息性路径(`robots.txt`、`sitemap.xml`)的低严重性 ### 模块 10 — 子域名枚举 **功能:** 通过使用线程池并行尝试对每一个进行 DNS 查找,来尝试解析 14 个常见的子域名。 **检查的子域名:** `www`、`mail`、`api`、`dev`、`staging`、`beta`、`ftp`、`vpn`、`admin`、`portal`、`app`、`test`、`secure`、`cdn` **重要性:** 开发和测试子域名(`dev.`、`staging.`、`beta.`)的安全控制通常比生产环境更弱——有时甚至开启了调试模式、使用了默认凭证或完全没有身份验证。每一个被发现的子域名都扩大了攻击面。 **触发的发现:** - `SS-100` — 发现活跃子域名(低) ### 模块 11 — 网络路由跟踪 **功能:** 运行系统 traceroute(在 Linux/macOS 上为 `traceroute`,在 Windows 上为 `tracert`)以映射从您的机器到目标服务器的网络路径——最多 10 个跃点。 **揭示内容:** - 到目标有多少个网络跃点 - 是否有 CDN(Cloudflare、Akamai)位于真实服务器之前 - 沿途的 ISP 基础设施 - 地理路由模式 **自动跳过行为:** 如果 traceroute 未能在 **15 秒**内完成,它将自动跳过并继续扫描。这可以防止在阻止 ICMP 的防火墙网络上挂起。 **重要性:** 如果网站声称使用 Cloudflare,但 traceroute 显示直接连接到了原始 IP,则可能暴露了源站服务器——完全绕过了 WAF 保护。 ### 模块 12 — 数字足迹分析 **功能:** 抓取主页 HTML 并执行深度分析以提取 OSINT(开源情报)数据。 **提取内容:** | 数据 | 发现方式 | 重要原因 | |------|-----------|--------------| | 电子邮件地址 | 对 HTML 使用正则表达式 | 钓鱼/垃圾邮件目标 | | 社交媒体链接 | 域名匹配 | 确认组织身份 | | 外部域名 | `href` 属性解析 | 第三方依赖 | | API endpoint | 路径模式匹配(`/api/`、`/v1/`、`/graphql`) | 未经身份验证的 API 暴露 | | 统计分析追踪器 | Script src 匹配 | 隐私/追踪披露 | | HTML 注释 | `` 提取 | 开发者备注、内部路径 | **检测到的社交平台:** LinkedIn、Twitter/X、Facebook、Instagram、YouTube、GitHub、TikTok **检测到的统计分析:** Google Analytics、Google Tag Manager、Hotjar、Facebook Pixel、Mixpanel **触发的发现:** - `SS-120` — 电子邮件地址已暴露(中) - `SS-121` — 检测到 API endpoint(中) - `SS-122` — 发现 HTML 注释(低) ### 模块 13 — Cookie 安全性分析 **功能:** 读取服务器设置的所有 cookie,并检查每个 cookie 是否具有正确的安全属性。 **检查的属性:** | 标志 | 用途 | 缺失风险 | |------|---------|----------------| | `Secure` | 仅通过 HTTPS 发送 | Cookie 通过 HTTP 发送 —— 可能被拦截 | | `HttpOnly` | 无法被 JavaScript 读取 | 容易受到基于 XSS 的 cookie 盗窃 | | `SameSite` | 控制跨站发送 | 可能发生 CSRF 攻击 | **重要性:** 没有 `Secure` 标志的会话 cookie 可能会被网络窃听者盗取。没有 `HttpOnly`,单个 XSS 漏洞就可能导致完整的会话被劫持。 **触发的发现:** - `SS-130` — 不安全的 Cookie(中)—— 针对每个缺失 Secure 标志的 cookie ### 模块 14 — CORS 策略检查 **功能:** 发送带有伪造的 `Origin: https://attacker-test.com` 标头的请求,并检查服务器在其 CORS(跨源资源共享)标头中的响应方式。 **检测内容:** | 响应 | 风险等级 | 含义 | |----------|-----------|---------| | `Access-Control-Allow-Origin: *` | 高 | 任何网站都可以发起跨站请求 | | `Access-Control-Allow-Origin: https://attacker-test.com` | 高 | 服务器反射了任意来源 —— CORS 配置错误 | | 特定的受信任来源 | 安全 | 配置正确 | | 未设置 | 安全 | 禁用了 CORS —— 无跨源访问 | **重要性:** 如果处理经过身份验证请求的 API 使用了通配符 CORS 策略,将允许恶意网站代表已登录用户发出请求并窃取其数据。 **触发的发现:** - `SS-140` — 通配符 CORS 策略(高) - `SS-141` — 反射来源 CORS(高) ### 模块 15 — 信息泄露检测 **功能:** 探测 Web 服务器上通常意外暴露的 10 个敏感文件。 **探测的文件:** | 文件 | 包含内容 | 严重性 | |------|-----------------|---------| | `.env` | API key、数据库密码、密钥 | 高 | | `.git/config` | Git 仓库配置 | 高 | | `.htaccess` | Apache Web 服务器规则 | 高 | | `backup.zip` | 完整的站点备份 | 高 | | `backup.sql` | 完整的数据库转储 | 高 | | `database.sql` | 数据库转储 | 高 | | `config.bak` | 配置备份 | 高 | | `web.config` | IIS 服务器配置 | 高 | | `composer.json` | 带有版本的 PHP 依赖列表 | 中 | | `package.json` | 带有版本的 Node.js 依赖列表 | 中 | **重要性:** 暴露的 `.env` 文件是现实环境中最严重的发现之一。它直接提供数据库凭证、第三方 API key 和应用程序 secret,从而赋予完整的系统访问权限。 **所有触发的发现:** 每个暴露文件对应高严重性 ## 解读输出结果 ### 严重性级别 | 颜色 | 严重性 | 含义 | 行动 | |-------|---------|---------|--------| | 🔴 红色 | 高 | 严重的安全风险 | 立即修复 | | 🟡 黄色 | 中 | 重大风险 | 30 天内修复 | | 🟢 绿色 | 低 | 轻微 / 信息性 | 在维护期间修复 | ### 发现 ID 格式 ``` SS-XXX │ └── 3-digit number identifying the specific check └── ShadowScan prefix ``` 示例:`SS-026` = ShadowScan 发现 #026 = HTTPS 不可用 ## 风险评分系统 在所有模块完成后,ShadowScan Pro 会计算三个分数: ### 安全评分 (0–100) 分数越高 = 越安全 ``` 100 - (HIGH findings × 15) - (MEDIUM findings × 7) - (LOW findings × 2) ``` | 分数 | 解读 | |-------|---------------| | 80–100 | 安全态势良好 | | 60–79 | 平均水平 —— 需要改进 | | 40–59 | 较差 —— 存在重大问题 | | 0–39 | 严重 —— 需要立即采取行动 | ### 暴露评分 (0–100) 分数越高 = 越容易暴露给攻击者 ``` (HIGH findings × 10) + (open ports × 5) + (exposed files × 15) + (subdomains × 2) ``` | 分数 | 解读 | |-------|---------------| | 0–20 | 极小暴露 | | 21–40 | 中度暴露 | | 41–60 | 高度暴露 | | 61–100 | 严重暴露 | ### 信任评分 (0–100) 分数越高 = 越值得信赖 基于正面信号构建:存在 HTTPS (+15)、有效证书 (+10)、网站上有邮件 (+5)、存在社交媒体 (+5),减去针对高/中级发现的扣分。 | 分数 | 解读 | |-------|---------------| | 70–100 | 高信任度 | | 50–69 | 中等信任度 | | 30–49 | 低信任度 | | 0–29 | 极低信任度 | ## 生成的报告 两份报告都会自动保存在 `reports/` 目录中。 ### 文本报告 (`reports/domain_report.txt`) 纯文本 —— 可在任何终端或文本编辑器中阅读。 **部分:** 1. 执行摘要(目标、日期、发现总数、评分) 2. 扫描范围(所有运行的模块) 3. 详细发现(包含完整细节的每项发现) 4. 数字足迹(邮件、社交媒体、API、统计分析) 5. 风险评分 6. 技术细节(原始扫描数据) 7. 结论 ### PDF 报告 (`reports/domain_report.pdf`) 专业且格式化的 PDF,适合作为安全评估报告提交。 **结构:** 1. **封面** —— 目标、日期、IP、严重性摘要框、评分框 2. **执行摘要** —— 带有彩色严重性计数的叙述性概述 3. **扫描范围** —— 列出所有 15 个模块 4. **详细发现** —— 每项发现都在格式化的卡片中,显示 ID、标题、严重性、描述、影响和建议 5. **数字足迹** —— OSINT 数据表 6. **风险评分** —— 带有解读的评分表 7. **技术细节** —— 等宽字体的原始扫描数据 8. **结论** —— 修复优先级指导 ## 合法实践目标 使用这些**故意存在漏洞**且**经过授权**的目标来练习使用 ShadowScan Pro: ###意存在漏洞的 Web 应用(可合法扫描) | 目标 | URL | 您将发现的内容 | |--------|-----|-----------------| | **ACME Corp (Vulnweb)** | `testphp.vulnweb.com` | 缺失标头、开放端口、信息泄露 | | **Vulnweb ASP** | `testasp.vulnweb.com` | Windows IIS 标头、ASP.NET 暴露 | | **Vulnweb HTML5** | `testhtml5.vulnweb.com` | 存在各种配置错误的 HTML5 应用 | | **DVWA** | `dvwa.co.uk` | 故意存在漏洞的 Web 应用 | | **HackTheBox** | `hackthebox.com` | 运行他们的 VPN 实验室靶机 | | **TryHackMe** | `tryhackme.com` | 部署他们的漏洞机器 | | **PortSwigger Labs** | `portswigger.net/web-security` | Web 安全实验室环境 | ### 您自己的测试环境 最佳实践 —— 启动一个本地存在漏洞的 VM: ``` # 使用 Docker 的 DVWA docker run -d -p 80:80 vulnerables/web-dvwa # 然后扫描您的本地实例 python3 shadowscan_pro.py localhost python3 shadowscan_pro.py 127.0.0.1 ``` ### 为安全测试提供的公共测试域名 | 域名 | 备注 | |--------|-------| | `scanme.nmap.org` | 由 Nmap 团队正式授权进行扫描 | | `testphp.vulnweb.com` | Acunetix 的测试 PHP 站点 —— 授权扫描 | | `testasp.vulnweb.com` | Acunetix 的测试 ASP 站点 —— 授权扫描 | ## 发现 ID 参考 | ID 范围 | 模块 | |----------|--------| | SS-000 | 域名解析 | | SS-002 | WHOIS 情报 | | SS-010–011 | DNS / SPF / DMARC | | SS-020–026 | SSL/TLS | | SS-030–035 | HTTP 安全标头 | | SS-060 | HTTP 方法 | | SS-07x | 端口扫描 | | SS-080–081 | 技术检测 | | SS-09x | 文件发现 | | SS-100 | 子域名枚举 | | SS-120–122 | 数字足迹 | | SS-130 | Cookie 安全 | | SS-140–141 | CORS 策略 | | SS-15x | 信息泄露 | ## 故障排除 ### `ModuleNotFoundError: No module named 'dns'` ``` pip install dnspython ``` ### `ModuleNotFoundError: No module named 'whois'` ``` pip install python-whois ``` ### `error: externally-managed-environment` (Kali Linux 2024+) ``` pip install requests dnspython rich reportlab python-whois --break-system-packages ``` ### Traceroute 显示 `⚠ Not available on this system` ``` # 安装它 sudo apt install traceroute # Linux brew install traceroute # macOS # Windows 使用 tracert — 内置,无需安装 ``` ### SSL 检查在所有域名上均失败 您的系统的 CA 证书存储库可能已过时: ``` sudo apt update && sudo apt install ca-certificates pip install --upgrade certifi ``` ### 端口扫描显示一切都是 CLOSED 某些防火墙或 VPN 会阻止出站连接。请尝试: - 暂时禁用 VPN - 更换网络运行 - 检查出站 TCP 是否受到限制 ### WHOIS 对所有内容返回 `N/A` 某些 TLD(`.io`、`.ai`、较新的 gTLD)限制了 WHOIS。这是正常的。 ### 未生成 PDF / reportlab 错误 ``` pip install --upgrade reportlab ``` ## 项目结构 ``` shadowscan-pro/ │ ├── shadowscan_pro.py ← Main tool (single file) │ ├── reports/ ← Auto-created on first scan │ ├── example_com_report.txt │ └── example_com_report.pdf │ └── README.md ← This file ``` 该工具被刻意设计为**单一的 Python 文件**——没有复杂的项目结构,也不需要配置文件。只需一个文件和 pip 依赖即可。 ## 完整扫描逐步预览 ``` 1. Input: python3 shadowscan_pro.py testphp.vulnweb.com 2. Banner + ethical warning displayed 3. [1] Domain → Resolves IP, reverse DNS 4. [2] WHOIS → Registrar, age, org info 5. [3] DNS → A/MX/TXT records, SPF/DMARC check 6. [4] SSL → Certificate details, expiry, TLS version 7. [5] Headers → 6 security headers checked 8. [6] Methods → OPTIONS request, risky methods flagged 9. [7] Ports → 13 ports scanned in parallel threads 10. [8] Tech → CMS, server, CDN, framework detection 11. [9] Files → 10 sensitive paths probed 12. [10] Subdomains → 14 subdomains resolved in parallel 13. [11] Traceroute → Network hops mapped (auto-skips at 15s) 14. [12] Footprint → Emails, social, APIs, analytics extracted 15. [13] Cookies → Security flags per cookie 16. [14] CORS → Origin reflection test 17. [15] Leaks → .env/.git/backup files probed 18. Scoring → Security / Exposure / Trust scores calculated 19. Summary → All findings listed with severity 20. Reports → TXT + PDF generated in reports/ ``` 总扫描时间:通常为 **30–90 秒**,具体取决于网络速度和 traceroute 响应。 ## 版本历史 | 版本 | 变更 | |---------|---------| | v1.0 | 基础域名、DNS、SSL、标头、端口 | | v2.0 | 添加了 WHOIS、多线程、富文本输出、PDF 报告 | | v3.0 Pro | 添加了 HTTP 方法、技术指纹识别、数字足迹、cookie、CORS、信息泄露、traceroute、3 评分风险引擎、扩展的端口列表、14 个子域名 | ## 许可证 本项目仅出于**教育和授权测试目的**发布。 - ✅ 您可以在自己拥有或获得授权测试的系统上使用此工具 - ✅ 您可以出于学习目的对其进行修改和扩展 - ❌ 您不得将此工具用于未经授权的扫描 - ❌ 您不得将此工具用于任何非法活动 ## 免责声明
标签:ESC4, GitHub, OSINT, Python, 实时处理, 无后门, 逆向工具