shinchxn/VOIP-OAINT
GitHub: shinchxn/VOIP-OAINT
面向执法与网络安全人员的命令行威胁情报工具,专注于VoIP通信欺诈场景下的号码、IP、域名和SIP流量的自动化采集、关联分析与取证报告生成。
Stars: 0 | Forks: 0
```
__ __ ___ ___ ___ __ _ _ _____
\ \ / /__ |_ _| _ \ / _ \/ _\| \| ||_ _|
\ V / _ \ | || _/ | (_) \__ \ .` | | |
\_/\___/|___|_| \___/|___/_|\_| |_|
VoIP OSINT APEX v2.0 | LEA EDITION
```
[](https://www.python.org/downloads/)
[]()
[]()
[]()
**面向执法人员与网络安全专家的高级 CLI 威胁情报工具**
## ✨ 核心功能
### 核心模块
| 模块 | 描述 |
| :--- | :--- |
| 📞 **号码情报** | 电话号码解析、一次性/VOIP检测、运营商查询和欺诈评分 (IPQualityScore, Numverify)。 |
| 🌍 **IP 情报** | 关联来自 IP-API、AbuseIPDB、Shodan、VirusTotal、ProxyCheck 和 Tor 出口节点的 IP 数据。 |
| 🔍 **域名侦察** | 收集 WHOIS、DNS记录、证书透明度日志 (`crt.sh`),并集成 `theHarvester`。 |
| 📡 **SIP & RTP 分析** | 实时网络嗅探和 PCAP 解析,以提取 SIP 头部、用户代理、转发轨迹和媒体服务器 IP。 |
| 🧠 **威胁关联** | 自动化证据链构建、置信度评分、归因,并生成结构化的传票目标。 |
### 升级模块 (v2.0)
| 模块 | 描述 |
| :--- | :--- |
| 🛰️ **WebRTC/STUN 追踪器** | 通过 STUN 绑定请求捕获从 WhatsApp、Telegram 和 Google Meet 泄露的真实 IP —— 绕过 VPN 掩护。 |
| 📶 **HLR / 运营商情报** | IMSI/SS7 感知 —— 使用 HLR 查询 API 检查号码是否处于漫游、已携号转网或活跃状态,而无需真实的 SS7 访问权限。 |
| 🛡️ **威胁情报源** | 自主黑名单集成 —— 结合本地缓存,根据 6 个以上的 VoIP/滥用情报源 (Emerging Threats、Blocklist.de VoIP/SIP、Spamhaus DROP 等) 检查 IP。 |
| 🌳 **呼叫图可视化** | 使用 Rich 从 SIP 数据包数据构建 ASCII 呼叫流程树,并导出用于 HTML 报告的 Mermaid 序列图。 |
| 🗄️ **案例管理** | 基于 SQLite 的持久化案例存储 —— 保存、搜索、重新加载和导出过往调查,无需 PostgreSQL。 |
| 🔢 **号码排列器** | 生成诈骗团伙使用的相邻/相关号码变体(尾号、连续、区号交换模式)。 |
| 🌐 **被动 DNS** | 使用 HackerTarget、SecurityTrails 和 crt.sh 追踪域名的 IP 历史变更。 |
| 📜 **传票生成器** | 生成格式正确的法律 PDF 文档(执法记录请求)及 SHA-256 完整性哈希值。 |
## 🚀 快速开始
在几分钟内启动并运行环境:
```
# 克隆仓库
git clone https://github.com/shinchxn/VOIP-OAINT.git
cd VOIP-OAINT/voip-osint-apex
```
## 🖥️ 高级 CLI 体验
VOIP-OAINT 采用高保真命令行界面 (CLI),使用 **`rich`** 库为调查人员提供复杂数据清晰且具可操作性的视图:
* **📊 实时进度监控**:在多线程 API 查询和网络扫描期间提供实时状态指示。
* **🎨 颜色编码情报**:提供风险级别的即时视觉反馈(绿色 = 低,黄色 = 中,红色 = 高,深红色 = 严重)。
* **📋 结构化数据面板**:格式整洁的表格和面板,用于展示 SIP 数据包头部、WHOIS 记录和归因提示。
* **📑 交互式审计日志**:样式化控制台日志,将调查发现与系统状态消息区分开。
## 🛠️ 环境设置
### 1️⃣ 系统前提条件
在干净的 **Ubuntu 22.04** 环境中运行以下命令:
```
sudo apt update && sudo apt upgrade -y
sudo apt install -y asterisk nmap sngrep tshark wireshark \
sipp redis-server masscan whois \
python3.11 python3-pip python3-venv \
git curl jq net-tools
```
### 2️⃣ 外部工具集成
```
# SIPVicious
pip install sipvicious
# theHarvester
cd /opt && sudo git clone https://github.com/laramies/theHarvester
cd theHarvester && pip install -r requirements/base.txt
# DNSRecon
sudo git clone https://github.com/darkoperator/dnsrecon /opt/dnsrecon
pip install -r /opt/dnsrecon/requirements.txt
```
## 📞 ASTERISK 实验室设置 — 完整命令
为分析实时 SIP 流量,请配置本地 Asterisk 实验室以模拟非法 VoIP 转发:
### 1️⃣ 配置 PJSIP 端点
编辑 `/etc/asterisk/pjsip.conf`:
```
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
[6001]
type=endpoint
context=from-internal
disallow=all
allow=ulaw
auth=6001
aors=6001
[6001]
type=auth
auth_type=userpass
password=unsecurepassword
username=6001
[6001]
type=aor
max_contacts=1
```
### 2️⃣ 配置拨号方案(转发模拟)
编辑 `/etc/asterisk/extensions.conf`:
```
[from-internal]
exten => 100,1,NoOp(VOIP OSINT TEST CALL)
same => n,Dial(PJSIP/6001,20)
same => n,Hangup()
exten => 200,1,NoOp(FORWARDING TRACE TEST)
same => n,Set(CALLERID(num)=+14155552671)
same => n,Dial(PJSIP/6001,,b(handler^s^1))
```
### 3️⃣ 初始化服务与嗅探
```
# 重启 Asterisk
sudo systemctl restart asterisk
# 验证 endpoints
sudo asterisk -rx "pjsip show endpoints"
# 启动 VOIP-OAINT live sniffer
sudo python3 main.py live --iface lo --alert
```
## ⚙️ 项目配置
### 1️⃣ Python 虚拟环境
强烈建议使用虚拟环境来管理依赖项:
```
# 创建环境
python3.11 -m venv venv
# 在 Linux/macOS 上激活
source venv/bin/activate
# 在 Windows (PowerShell) 上激活
# .\venv\Scripts\Activate.ps1
```
### 2️⃣ 依赖安装
导航至项目目录并安装所需的取证库:
```
cd voip-osint-apex
pip install --upgrade pip
pip install -r requirements.txt
```
### API 密钥 (`.env`)
为了保护您的凭据,我们使用被 Git 忽略的 `.env` 文件。
1. 复制模板文件:`cp .env.example .env`
2. 打开 `.env` 并添加您的密钥:
| 密钥 | 服务 | 用途 |
| :--- | :--- | :--- |
| `IPQS_KEY` | [IPQualityScore](https://www.ipqualityscore.com/) | 欺诈评分与运营商检测 |
| `SHODAN_KEY` | [Shodan.io](https://www.shodan.io/) | 基础设施与端口扫描 |
| `ABUSEIPDB_KEY` | [AbuseIPDB](https://www.abuseipdb.com/) | IP 信誉与报告 |
| `VIRUSTOTAL_KEY` | [VirusTotal](https://www.virustotal.com/) | 恶意软件与域名分析 |
| `NUMVERIFY_KEY` | [Numverify](https://numverify.com/) | 号码验证与 HLR 回退 |
| `SECURITYTRAILS_KEY` | [SecurityTrails](https://securitytrails.com/) | 被动 DNS 历史查询(可选) |
## 🚀 使用指南
查看全局帮助菜单和所有 18 个可用命令:
```
python main.py --help
```
### 1️⃣ 号码分析
分析电话号码的运营商数据、欺诈评分和线路类型。
```
python main.py number +14155552671 --save --pdf
```
### 2️⃣ IP 情报
深入挖掘 IP 信誉、VPN/Tor 检测和开放端口。
```
python main.py ip 104.21.45.67 --ports --save
```
### 3️⃣ 域名侦察
收集 WHOIS、DNS 和证书透明度数据。
```
python main.py domain target-voip.com --harvest --save
```
### 4️⃣ 电子邮件与域名 OSINT
将电子邮件与泄露的数据库和社交平台进行交叉比对。
```
# 分析电子邮件
python main.py osint --email investigator@example.com
# 运行域名侦察 (Harvester + DNSRecon)
python main.py osint --domain target-voip.com
```
### 5️⃣ 网络扫描
对 VoIP 基础设施执行高速扫描。
```
python main.py scan 192.168.1.0/24
```
### 6️⃣ SIP 指纹识别
识别媒体服务器类型并追踪网络路径。
```
python main.py fingerprint 104.21.45.67
```
### 7️⃣ PCAP 取证
解析现有的网络捕获文件以获取 SIP 和 RTP 元数据。
```
python main.py pcap evidence.pcap --rtp --save
```
### 8️⃣ 实时调查嗅探
监控实时网络接口的 SIP 流量。
```
sudo python main.py live --iface eth0 --alert
```
### 9️⃣ 全情报流水线
将多个实体(号码 + IP + 域名)关联到一个单一的取证报告中。
```
python main.py full --number +14155552671 --ip 1.1.1.1 --domain example.com --save --pdf
```
### 🔟 报告关联
对现有的调查报告进行关联。
```
python main.py correlate --report outputs/reports/investigation_123.json
```
## 🆕 升级模块命令 (v2.0)
### 1️⃣ WebRTC/STUN 检测
检测通过 WebRTC STUN 绑定请求从 WhatsApp、Telegram、Google Meet 等应用泄露的真实 IP。
```
# 在 eth0 上嗅探 60 秒
sudo python main.py stun --iface eth0 --duration 60
# 嗅探 120 秒,保存结果
sudo python main.py stun --iface wlan0 --duration 120 --save
```
### 2️⃣ HLR 运营商查询
查询运营商情报 —— 漫游状态、携号转网标志、线路类型。
```
python main.py hlr +14155552671
```
### 3️⃣ 威胁情报源检查
根据 6 个以上的 VoIP/滥用黑名单检查 IP,并进行加权评分。
```
# 标准检查 (使用 6 小时缓存)
python main.py feeds 104.21.45.67
# 首先强制刷新所有 feeds
python main.py feeds 104.21.45.67 --refresh
```
### 4️⃣ 呼叫图可视化
将 SIP 呼叫流程渲染为 ASCII 树,并可选导出 Mermaid 图表。
```
# 从 PCAP 文件
python main.py graph --pcap evidence.pcap
# 从已保存的 case,导出 Mermaid
python main.py graph --case-id 5 --mermaid
```
### 5️⃣ 案例管理
用于所有调查的持久化 SQLite 案例存储。
```
# 列出所有过去的调查
python main.py cases
# 重新加载特定的 case
python main.py cases --id 5
# 按号码、IP 或域名搜索 cases
python main.py cases --search "14155"
# 将所有 cases 导出为 CSV
python main.py cases --export
```
### 6️⃣ 号码排列
生成诈骗团伙使用的相邻号码变体。
```
# 默认模式 (last_digit + sequential)
python main.py permute +14155552671
# 自定义模式
python main.py permute +14155552671 --modes "last_digit,sequential,swap_area"
```
### 7️⃣ 被动 DNS 历史
追踪任何域名的 IP 历史变更。
```
# 完整聚合查询
python main.py pdns target-voip.com
# Timeline 视图 (按时间顺序排序)
python main.py pdns target-voip.com --timeline
```
### 8️⃣ 传票 PDF 生成
生成格式规范的法律记录请求文档。
```
python main.py subpoena \
--case-id CASE-2026-001 \
--number "+14155552671" \
--platform "TextNow" \
--ip "104.21.45.67" \
--officer "Det. John Smith" \
--badge "B-4521" \
--agency "Cyber Crime Division"
```
## 📊 输出与证据
所有输出均整理在 `outputs/` 目录下:
| 目录 | 内容 |
| :--- | :--- |
| `outputs/reports/` | 带有 SHA-256 完整性哈希的 JSON、PDF、CSV 调查报告 |
| `outputs/logs/` | 带有时间戳的审计跟踪日志 |
| `outputs/pcaps/` | 捕获的网络流量文件 |
| `outputs/subpoenas/` | 生成的法律请求 PDF |
| `outputs/feed_cache/` | 本地缓存的威胁情报源数据(6 小时 TTL) |
| `outputs/cases.db` | 所有已保存调查的 SQLite 数据库 |
| `outputs/stun_events.json` | 捕获的 WebRTC/STUN 泄露事件 |
## 📁 项目结构
```
voip-osint-apex/
├── main.py # CLI entry point (18 commands)
├── requirements.txt # Python dependencies
├── .env.example # API key template
├── .env # Your API keys (git-ignored)
├── realtime.py # Realtime streaming placeholder
├── modules/
│ ├── number_lookup.py # Phone number intelligence
│ ├── ip_intel.py # IP reputation & geolocation
│ ├── domain_lookup.py # WHOIS, DNS, crt.sh
│ ├── sip_parser.py # SIP/RTP packet parsing
│ ├── port_scan.py # Nmap, Masscan, SIPVicious
│ ├── osint_engine.py # Holehe, theHarvester, DNSRecon
│ ├── network_mapper.py # VoIP path tracing & fingerprinting
│ ├── threat_correlator.py # Evidence correlation engine
│ ├── report.py # JSON/PDF/CSV report generation
│ ├── webrtc_tracker.py # WebRTC/STUN IP leak detection
│ ├── carrier_intel.py # HLR / carrier intelligence
│ ├── threat_feeds.py # Autonomous blacklist checking
│ ├── call_graph.py # SIP call flow visualizer
│ ├── number_permutator.py # Phone number variant generator
│ ├── passive_dns.py # Historical DNS tracking
│ └── subpoena_generator.py # Legal document PDF builder
├── utils/
│ ├── logger.py # Audit logging
│ ├── cache.py # Redis caching layer
│ └── case_db.py # SQLite case management
└── outputs/ # All generated files
```
标签:Ask搜索, CTI, DNS记录, ESC4, GitHub, HLR查询, HTTP/HTTPS抓包, IMSI, IP归因, OSINT, PCAP分析, Python, RTP, SIP协议分析, SOC, SS7信令安全, STUN, VirusTotal, VoIP安全, VPN穿透去匿名化, WebRTC, WHOIS查询, 协议探测, 反欺诈, 号码情报, 域名字符串, 域渗透, 威胁情报, 实时处理, 开发者工具, 态势感知, 执法机构工具, 搜索引擎查询, 数据泄露, 无后门, 电子数据取证, 网络嗅探, 网络安全, 网络流量分析, 证书透明度, 防御绕过, 隐私保护, 隐私绕过, 黑灰产溯源