D0m0x61/ShadowMap

GitHub: D0m0x61/ShadowMap

一款纯被动的基础设施测绘与威胁情报 CLI 工具,通过整合多源公开数据实现域名/IP 资产发现、CVE 优先级评估和凭据泄露检测。

Stars: 0 | Forks: 0

# ShadowMap 被动基础设施测绘、CVE 优先级排序和威胁情报,仅需一个域名或 IP。 给定一个目标,ShadowMap 会测绘其基础设施,分析 DNS 和证书,通过 Shodan 识别暴露的服务,使用三个独立来源对漏洞进行评分,检查 IP 信誉,并在公共代码库中查找凭据泄露 —— 所有这些都无需向目标发送任何数据包。 HTML 报告包含一个交互式基础设施关系图,展示了域名、子域名、IP、ASN、关联证书和关键 CVE 之间的关系。 ![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/3e12f9724f104722.svg) ![Python](https://img.shields.io/badge/python-3.9%2B-blue) ![License](https://img.shields.io/badge/license-MIT-green) ## 模块 | 模块 | 功能 | 数据源 | API key | |---|---|---|---| | `whois` | WHOIS 注册数据 + DNS 记录 | python-whois, dnspython | — | | `subdomains` | 被动子域名枚举 | crt.sh, HackerTarget | — | | `ip` | 地理位置定位, ASN, 上游对等 | IPInfo | 可选 | | `certs` | TLS 证书历史和关联域名 | crt.sh | — | | `shodan` | 开放端口, banners, 检测到的 CVE | Shodan API | 免费 | | `cves` | 综合漏洞评分 | NVD, FIRST.org, CISA | — | | `reputation` | 滥用置信度评分, TOR 节点检测 | AbuseIPDB | 免费 | | `leaks` | 公共仓库中的凭据和机密 | GitHub Search | 可选 | ## 安装说明 ### 前置条件 - Python 3.9 或更高版本 - Git ### macOS ``` # 如果没有安装 Homebrew 请先安装 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install python git git clone https://github.com/D0m0x61/ShadowMap.git cd ShadowMap python3 -m venv venv source venv/bin/activate pip install -r requirements.txt pip install -e . cp .env.example .env nano .env # or: open -e .env to open in TextEdit ``` ### Linux (Debian / Ubuntu) ``` sudo apt update sudo apt install python3 python3-pip python3-venv git -y git clone https://github.com/D0m0x61/ShadowMap.git cd ShadowMap python3 -m venv venv source venv/bin/activate pip install -r requirements.txt pip install -e . cp .env.example .env nano .env # or vim, gedit — whatever you prefer ``` **其他发行版:** 将 `apt` 替换为您的包管理器(`dnf`, `pacman`, `zypper`)。Python 3.9+ 包含在所有主要发行版的标准软件源中。 ### Windows 提供两种选项。如果您打算经常使用此工具,推荐使用 WSL —— 它为您提供一个真正的 Linux 环境而无需双系统。 #### 选项 A — WSL (推荐) 1. 以管理员身份打开 PowerShell: wsl --install 2. 重启。Windows 默认安装 Ubuntu。 3. 从开始菜单打开 **Ubuntu** 应用,并按照上面的 Linux 说明操作。 #### 选项 B — 原生 Windows 1. 从 https://www.python.org/downloads/ 下载 Python —— 安装时勾选 **"Add Python to PATH"** 2. 从 https://git-scm.com/download/win 下载 Git 然后打开 **命令提示符** 或 **PowerShell**: ``` git clone https://github.com/D0m0x61/ShadowMap.git cd ShadowMap python -m venv venv venv\Scripts\activate pip install -r requirements.txt pip install -e . copy .env.example .env notepad .env ``` ## API Keys 四个可选密钥可解锁额外模块。它们都提供免费层级。 | 变量 | 模块 | 免费限制 | 获取地址 | |---|---|---|---| | `SHODAN_API_KEY` | shodan | 1 次请求/秒 | [account.shodan.io](https://account.shodan.io/register) | | `ABUSEIPDB_API_KEY` | reputation | 1,000 次检查/天 | [abuseipdb.com](https://www.abuseipdb.com/register) | | `GITHUB_TOKEN` | leaks | 30 次请求/分钟 | [github.com/settings/tokens](https://github.com/settings/tokens) | | `IPINFO_TOKEN` | ip | 50,000 次请求/月 | [ipinfo.io](https://ipinfo.io/signup) | 这些完全不需要密钥:crt.sh · HackerTarget · NVD · EPSS · CISA KEV 各密钥的详细步骤说明:[docs/api_keys.md](docs/api_keys.md) ## 使用方法 ``` # 首先激活 virtual environment (每个新 terminal session 都必须执行) source venv/bin/activate # macOS / Linux venv\Scripts\activate # Windows # full scan shadowmap example.com # 仅运行特定模块 shadowmap example.com --modules whois subdomains certs ip # 直接扫描 IP shadowmap 203.0.113.42 --modules whois ip shodan reputation cves # 跳过需要 API keys 的模块 shadowmap example.com --no-shodan --no-leaks # 选择输出格式和目录 shadowmap example.com --format json --output ~/Desktop/reports shadowmap --help ``` 报告默认生成在 `./reports/` 目录中: ``` reports/ ├── report_example_com_20241201_143022.html └── report_example_com_20241201_143022.json ``` 打开 HTML 报告:macOS 上使用 `open reports/*.html`,或者在 Windows/Linux 上双击文件。 ## CVE 评分 每个 CVE 都会获得一个综合评分,该评分结合了三个独立信号: ``` score = (CVSS/10 × 0.4) + (EPSS × 0.4) + (0.2 if in CISA KEV) ``` - **CVSS** (NVD) — 漏洞的固有严重程度 - **EPSS** (FIRST.org) — 未来 30 天内被利用的概率 - **CISA KEV** — 已在野外被积极利用(二进制加成) 优先级阈值:`CRITICAL` ≥ 0.7 · `HIGH` ≥ 0.5 · `MEDIUM` ≥ 0.3 · `LOW` < 0.3 ## 项目结构 ``` shadowmap/ ├── modules/ │ ├── dns.py WHOIS + DNS records │ ├── subdomains.py passive enumeration (crt.sh, HackerTarget) │ ├── ip_enrichment.py geolocation + ASN (IPInfo) │ ├── certificates.py TLS certificate pivot (crt.sh) │ ├── shodan.py ports, services, CVEs (Shodan API) │ ├── cve.py CVSS + EPSS + CISA KEV scoring │ ├── reputation.py IP abuse score (AbuseIPDB) │ └── leaks.py credential leak search (GitHub) ├── output/ │ ├── html.py self-contained dark-theme HTML report with D3.js graph │ └── json.py structured JSON report └── utils/ ├── http_client.py shared session with automatic retry ├── rate_limiter.py per-API request spacing ├── logger.py logger factory └── validators.py input normalization and type detection ``` 每个模块均可独立导入 —— 无需 CLI。程序化用法请参见 `examples/`。 ## 运行测试 ``` pytest tests/ -v ``` ## 法律声明 本工具仅查询公开的、已索引的数据。不会向目标系统发送任何数据包。您需自行负责遵守适用法律及各 API 提供商的服务条款。 ## 许可证 MIT — 详见 [LICENSE](LICENSE)。
标签:ASN分析, CVE分析, EPSS评分, ESC4, GitHub, GitHub机密检测, IP信誉检测, OSINT, Python, SSL证书分析, 域名调查, 基础设施映射, 威胁情报, 子域名枚举, 安全工具库, 实时处理, 密码管理, 开发者工具, 数据统计, 无后门, 漏洞优先级评估, 端口扫描, 系统安全, 网络安全, 被动侦察, 资产测绘, 逆向工具, 隐私保护