ELC1657/OSINTMeridian
GitHub: ELC1657/OSINTMeridian
面向渗透测试人员的被动侦察聚合器,通过实时TUI界面同时从多个OSINT来源获取目标情报并生成攻击简报。
Stars: 1 | Forks: 0
# Meridian `v0.82.0`
面向渗透测试人员的攻击性侦察聚合器。输入目标,同时从多个来源获取结果,在实时标签页终端UI中展示——无需浏览器标签页,无需复制粘贴,无需切换上下文。包含集成的漏洞利用参考和执行终端。
五种目标模式让您无需更换工具即可从域名、IP地址、电子邮件地址、组织和指定个人之间进行切换。
```
Network Web Offensive Brief Exploit
+--------------------+--------------------+--------------------+
| Attack Brief (12) | Playbook (18) | JS Secrets (3) |
| | | |
| MERIDIAN BRIEF | ATTACK PLAYBOOK | Found 12 JS URLs |
| Risk: CRITICAL | target.com | No secrets found |
| | +--------------------+
| CRITICAL | STEP 1 PHISHING | URL Params (9) |
| 1. PHISHING READY | CRITICAL | |
| Spoofable +42 | Basis: spoofable | SSRF candidates |
| emails (Hunter)| + 42 emails | url= (14 URLs) |
| 2. SUBDOMAIN | | redirect= (8) |
| TAKEOVER: 2 | swaks --from | |
| candidates | ceo@target.com | Interesting paths |
| | --to victim@... | Admin (3) |
| HIGH | | /.env (1) [!] |
| 1. BREACH DATA | STEP 2 CRED STUFF | /api/v1/ (14) |
| 3 breaches | HIGH | |
| in HIBP | hydra -L ... | |
+--------------------+--------------------+--------------------+
```
## 标签页
| 标签页 | 快捷键 | 面板 |
|---|---|---|
| 网络 | `1` | DNS记录、WHOIS、可欺骗性评估、Shodan、ASN/IP范围、端口扫描、DNS历史、CVE关联 |
| Web | `2` | 子域名(crt.sh)、Wayback Machine、URLScan.io、云存储桶 |
| 攻击 | `3` | VirusTotal、GitHub、Hunter.io、员工目标、接管、泄露情报、暗网、邮件情报 |
| 简报 | `4` | 攻击简报、 playbook、JS密钥、URL参数 |
| 漏洞利用 | `5` | 漏洞利用参考、执行终端 |
## 数据源
| 面板 | 功能 | API密钥 |
|---|---|---|
| DNS记录 | A、AAAA、MX、NS、TXT、CNAME、SOA、CAA通过 `8.8.8.8` / `1.1.1.1` + AXFR尝试 | - |
| WHOIS | 注册商、组织、日期、名称服务器、DNSSEC、联系邮箱 | - |
| 可欺骗性评估 | 解析SPF + DMARC,给出 SPOOFABLE / PARTIAL / PROTECTED 判定 | - |
| 子域名 | [crt.sh](https://crt.sh) 证书透明日志 | - |
| Wayback Machine | CDX API - 归档URL,标记 `.env`、`.bak`、`/admin`、`/api` | - |
| URLScan.io | 技术栈、安全头、IP、恶意判定 | - |
| Shodan | 主机搜索、开放端口、CVE、DNS子域名 | `SHODAN_API_KEY` |
| 端口扫描 | 主动nmap扫描——两个阶段:快速top-1000 TCP,然后对开放端口执行 `-sV -sC`。用红色标记高风险服务(RDP、SMB、Redis等)。需要安装 `nmap`。 | - |
| ASN / IP范围 | BGPView - ASN编号、组织名称、所有拥有的IPv4/IPv6前缀 | - |
| VirusTotal | 检测统计、信誉、历史IP、子域名 | `VT_API_KEY` |
| GitHub | 10个dork查询 - 密码、密钥、`.env`、私钥、配置 | `GITHUB_TOKEN` |
| Hunter.io | 邮箱发现、组织信息、邮箱模式、置信度分数。邮箱模式下:还运行邮箱验证器端点(可投递性、MX、一次性/临时邮箱标记)。 | `HUNTER_API_KEY` |
| 员工目标 | Hunter.io + Apollo.io + GitHub组织成员,按攻击价值排名 | `HUNTER_API_KEY` / `APOLLO_API_KEY` / `GITHUB_TOKEN` |
| 接管 | 检查所有crt.sh子域名是否存在20个已知服务上的悬空CNAME | - |
| 泄露情报 | HIBP公开泄露列表 - 域名+名称匹配、泄露次数、数据类型。邮箱模式下:搜索提取的域名。 | - |
| 暗网 | IntelligenceX、BreachDirectory、Dehashed —— 泄露凭据、暗网提及。邮箱模式下:三个源都直接查询完整邮箱地址。 | `INTELX_API_KEY` / `RAPIDAPI_KEY` / `DEHASHED_API_KEY` |
| 邮箱情报 | EmailRep.io信誉+泄露标记+社交档案;Gravatar档案、关联账户、简介、位置。仅在邮箱模式下激活。 | - |
| JS密钥 | 获取归档JS文件,扫描AWS密钥、令牌、JWT、密码 | - |
| URL参数 | 挖掘8000个归档URL以寻找SSRF候选、注入参数、敏感路径 | - |
| DNS历史 | SecurityTrails —— 所有历史A、MX、NS记录及日期范围 | `SECTRAILS_API_KEY` |
| 云存储桶 | 探测78个组合,涵盖AWS S3、GCP Storage、Azure Blob的开放/存在存储桶 | - |
| CVE关联 | 将检测到的技术栈与NVD交叉比对,查找HIGH/CRITICAL CVE | `NVD_API_KEY`(可选) |
| 漏洞利用参考 | 从CVE、可欺骗性评估、泄露凭据、SSRF、存储桶自动生成漏洞利用命令 | - |
| 攻击简报 | 等待所有模块完成,将发现结果综合为 CRITICAL / HIGH / MEDIUM / INFO | - |
| Playbook | 根据实际发现生成编号的、工具就绪的攻击计划 | - |
| 个人信息 | GitHub档案、邮箱变体、Dehashed名称搜索、代码提及。仅在人员模式下激活。 | `GITHUB_TOKEN` / `DEHASHED_API_KEY` |
## 安装
```
git clone https://github.com/ELC1657/OSINTMeridian
cd OSINTMeridian
./install.sh
```
该脚本创建 `.venv`,安装所有依赖项,并将 `meridian` 符号链接到 `~/.local/bin`。如果该目录不在您的 `$PATH` 中,脚本会告诉您需要在shell配置中添加什么。
**要求:** Python 3.11+、端口扫描面板需要 `nmap`(`brew install nmap`)、`pyfiglet`(通过pip自动安装)
## 使用方法
```
meridian example.com
```
Meridian会在开始前提示您确认已获得书面授权。要跳过提示(例如在脚本中):
```
meridian example.com -y
```
```
# 传递密钥 inline
meridian example.com -y --shodan-key=xxx --vt-key=yyy --github-token=zzz
# 来自 environment 的密钥
export SHODAN_API_KEY=xxx
meridian example.com -y
```
## 目标模式
Meridian支持五种目标类型,每种只加载与该目标相关的模块。位置参数始终是域名模式,以保持向后兼容。
| 标志 | 模式 | 运行内容 |
|---|---|---|
| *(位置参数)* 或 `-d` / `--domain` | 域名 | 所有模块 |
| `-ip` / `--ip` | IP地址 | DNS、WHOIS、Shodan、ASN、Nmap、VirusTotal、URLScan + 综合分析 |
| `-e` / `--email` | 电子邮件地址 | 对域名部分运行所有域名模块;对完整邮箱运行Hunter验证器 + EmailRep + Gravatar + 泄露 + 暗网 |
| `-or` / `--org` | 组织 | 通过Clearbit解析域名 → DuckDuckGo;对该域名运行所有域名模块 |
| `-p` / `--person` | 人名 | GitHub档案、邮箱变体、Dehashed名称搜索、GitHub代码提及 |
```
meridian example.com # domain (positional — default)
meridian -d example.com # domain (explicit)
meridian -ip 192.168.1.1 # IP address
meridian -e user@example.com # email address
meridian -or "Acme Corp" # organisation name
meridian -p "John Smith" # person name
```
状态栏显示活动模式和适用的解析域名提示:
```
> user@example.com EMAIL → example.com 8/25
> Acme Corp ORG → acme.com ✓ 25/25
> 192.168.1.1 IP ✓ 25/25
```
一次只能使用一个模式标志。它们是互斥的。
### 监视模式
按计时器自动重新扫描目标。新发现会用黄色 `◆` 高亮显示。
```
meridian example.com --watch # re-scan every 30 minutes
meridian example.com --watch --interval 15 # re-scan every 15 minutes
```
状态栏显示 `◉ WATCH` 表示激活。每次重新扫描前会发出通知。
### 快捷键
| 按键 | 操作 |
|---|---|
| `1` / `2` / `3` / `4` / `5` | 切换标签页(网络/Web/攻击/简报/漏洞利用) |
| `n` | 跳转到下一个有发现结果的标签页 |
| `t` | 循环切换所有可用主题 |
| `s` | 将纯文本报告保存到 `meridian_<目标>_<时间戳>.txt` |
| `j` | 将JSON报告保存到 `meridian_<目标>_<时间戳>.json` |
| `r` | 对同一目标重新运行所有模块 |
| `?` | 显示快捷键帮助叠加层 |
| `p` | 将最近的漏洞利用参考命令粘贴到终端输入中(漏洞利用标签页) |
| `q` | 退出 |
**点击任意面板标题**可一次性复制该面板的所有发现结果。点击任意单行可仅复制该行。在漏洞利用参考面板中,点击命令行会自动去除 `$ ` 前缀。
### 状态栏
状态栏显示实时扫描进度 — `8/25` 模块完成,完成后变为绿色 `✓ 25/25`。如果任何模块失败,会显示红色 `✗ N errors`。在非域名模式下,模式徽章和解析的域名会显示在目标旁边。
### 面板标题
每个面板标题显示模块状态图标、发现数量,以及完成后经过的时间(例如 `✓ Shodan (12) 3.2s`)。这使得发现慢速或超时的模块变得容易。
## 主题
按 `t 循环切换所有已安装的Textual主题。自定义主题 —— Matrix和Blood —— 始终排在前面。通知显示您的位置:`Theme: Dracula (4/14)`。
## 漏洞利用标签页
**漏洞利用** 标签页(按 `5`)分为两个面板:
**左侧 — 漏洞利用参考**(侦察完成后自动填充):
- CVE → Metasploit `use exploit/...` 命令 + Nuclei模板 + ExploitDB链接
- 开放端口(nmap)→ 针对每个服务的攻击命令:RDP喷洒、SMB/EternalBlue、SSH暴力破解、Redis/Elasticsearch/MongoDB未授权访问、WinRM、SNMP枚举、FTP匿名登录
- 可欺骗域名 → 使用DNS面板中真实MX服务器的 `swaks` 钓鱼命令
- 开放S3/GCP/Azure存储桶 → `aws s3 ls` + 同步转储命令
- 泄露的明文密码 → `hydra` 喷洒命令用于SSH、Web登录、OWA/Exchange
- SSRF候选 → `curl` AWS元数据探测命令
- 子域名接管 → 认领服务的说明
**右侧 — 执行终端**:
- 输入任意命令,按Enter——输出实时流式传输
- `↑` / `↓` 循环遍历命令历史(shell风格)
- 输入 `clear` 清除终端输出
- 在漏洞利用标签页时按 `p` 可将参考面板中最近的命令直接粘贴到终端输入中
- 失败时:提供上下文修复建议(绕过黑名单、缺少工具、认证错误)
- 命令未找到时:立即显示安装命令(`brew install ...`)
- 点击任意输出行可复制该行
## 攻击简报和Playbook
**简报** 和 **Playbook** 面板静默等待所有其他模块完成,然后综合所有结果。
**简报** 生成风险分层摘要:
- `CRITICAL` —— 可钓鱼的可欺骗域名及邮箱、子域名接管、硬编码的JS密钥
- `HIGH` —— 泄露数据、重大GitHub暴露、SSRF候选
- `MEDIUM` —— SPF软失败、缺失安全头、敏感归档路径
- `INFO` —— 子域名数量、ASN、技术栈
**Playbook** 生成编号的攻击步骤及具体CLI命令:
```
STEP 1 PHISHING CAMPAIGN CRITICAL
swaks --from ceo@target.com --to victim@target.com \
--server mx1.target.com \
--header "Subject: Urgent wire transfer"
STEP 2 CREDENTIAL STUFFING HIGH
hydra -L emails.txt -P passwords.txt \
-s 443 target.com https-post-form \
"/login:username=^USER^&password=^PASS^:Invalid"
```
## 邮箱模式
使用 `-e` 运行以针对特定邮箱地址。所有域名模块对提取的域名运行,以下面板接收完整邮箱地址:
| 面板 | 对邮箱的处理 |
|---|---|
| 邮箱情报 | EmailRep.io信誉、泄露标记、社交档案;Gravatar档案、关联账户 |
| Hunter.io | 邮箱验证器 —— 可投递性、MX主机、一次性/临时邮箱/乱码检测 |
| 泄露情报 | HIBP对邮箱域名的泄露查询 |
| 暗网 | IntelX、BreachDirectory和Dehashed都查询精确的邮箱地址 |
```
meridian -e ceo@example.com -y
```
## 个人信息
**个人信息** 面板(使用 `-p "全名"` 激活)收集指定个人的OSINT:
| 来源 | 查找内容 | 密钥 |
|---|---|---|
| GitHub用户搜索 | 匹配档案 —— 登录名、URL、相关性分数 | `GITHUB_TOKEN` |
| 邮箱变体 | 常见模式:`first.last`、`flast`、`firstl`、`first_last` | - |
| Dehashed | 名称匹配的泄露 —— 邮箱、明文密码、数据库 | `DEHASHED_EMAIL` / `DEHASHED_API_KEY` |
| GitHub代码搜索 | 提及该人名的源文件 | `GITHUB_TOKEN` |
```
meridian -p "John Smith" -y
```
人员模式使用专注的两面板布局(个人信息 + 执行终端),而非标准的多标签页视图。
## 员工目标
**员工目标** 面板(攻击标签页,域名模式)查询三个来源并合并/去重结果:
| 来源 | 返回内容 | 密钥 |
|---|---|---|
| Hunter.io | 邮箱、姓名、职位、置信度分数 | `HUNTER_API_KEY` |
| Apollo.io | 姓名、头衔、邮箱、LinkedIn URL、位置 | `APOLLO_API_KEY` |
| GitHub组织 | 公共组织成员 —— 姓名、简介、邮箱、GitHub URL | `GITHUB_TOKEN` |
每个员工按攻击价值(0-10)评分,基于职位关键词匹配:
- 9-10分(红色 `HIGH VALUE`):CEO、CFO、CTO、CISO、总裁、创始人
- 7-8分(黄色 `MED VALUE`):IT总监、系统管理员、财务、devops、云
- 3-6分:工程、销售、支持
## 暗网
**暗网** 面板(攻击标签页)查询多达三个泄露情报来源:
| 来源 | 查找内容 | 密钥 |
|---|---|---|
| IntelligenceX | 暗网论坛帖子、Tor网站提及、勒索软件组织泄露、粘贴站点 | `INTELX_API_KEY` |
| BreachDirectory | 邮箱:密码和邮箱:哈希对,来自公开泄露 | `RAPIDAPI_KEY` |
| Dehashed | 150亿+条记录 —— 明文密码、哈希密码、用户名、数据库名 | `DEHASHED_API_KEY` |
在邮箱模式下(`-e`),三个来源都接收完整邮箱地址。Dehashed查询 `email:<地址>` 而非 `domain:<域名>`。
## DNS历史
**DNS历史** 面板(网络标签页)查询SecurityTrails获取每个历史A、MX和NS记录及首次发现和最后发现日期。查找已停用的基础设施、旧邮件服务器和之前的托管提供商。
## 云存储桶
**云存储桶** 面板(Web标签页)探测78个名称组合,涵盖AWS S3、GCP Cloud Storage和Azure Blob Storage——无需API密钥:
- `PUBLIC`(HTTP 200)—— 开放读取访问
- `EXISTS (private)`(HTTP 403/400)—— 存储桶存在但已锁定
## CVE关联
**CVE关联** 面板(网络标签页)等待URLScan.io和Shodan完成,提取技术栈,然后查询NVD获取HIGH/CRITICAL CVE。`NVD_API_KEY`是可选的,但会显著提高速率限制。
## JSON导出
按 `j` 保存机器可读报告:
```
jq '.modules.crtsh.findings[]' meridian_example_com_*.json # subdomains
jq '.modules.dnshistory.findings[]' meridian_example_com_*.json # DNS history
jq '.modules.buckets.findings[]' meridian_example_com_*.json # cloud buckets
jq '.modules.cve.findings[]' meridian_example_com_*.json # CVE matches
jq '.modules.darkweb.findings[]' meridian_example_com_*.json # dark web
jq '.modules.exploits.findings[]' meridian_example_com_*.json # exploit commands
jq '.modules.brief.findings[]' meridian_example_com_*.json # attack brief
jq '.modules.email_intel.findings[]' meridian_example_com_*.json # email intel
jq '.modules.person.findings[]' meridian_example_com_*.json # person intel
jq -r '.modules.crtsh.findings[]' meridian_example_com_*.json | ffuf ...
```
## API密钥
| 密钥 | 获取位置 | 费用 | 解锁内容 |
|---|---|---|---|
| `SHODAN_API_KEY` | [account.shodan.io](
标签:CDN识别, DNS枚举, DNS查询, ESC4, GitHub, OSINT, reconnaissance, Talos规则, TUI工具, WHOIS查询, 主动扫描, 云存储桶发现, 代码生成, 协议探测, 子域名枚举, 安全工具库, 实时处理, 密码管理, 数据统计, 渗透测试工具, 端口扫描, 系统安全, 终端界面, 网络安全工具, 被动侦察