Spinicle/sentinel
GitHub: Spinicle/sentinel
一款开源CLI品牌保护工具,通过生成域名变体并检测已注册的仿冒域名,结合多维度信号进行钓鱼风险评估。
Stars: 0 | Forks: 0
# Sentinel 🔍
一款用于扫描针对您品牌的仿冒域名(Typosquatting)的 CLI 工具 —— 在攻击者利用它们之前发现已注册的相似域名。
## 这是什么?
品牌冒充是一个真实存在的问题。攻击者注册像 `razorpay-login.com` 或 `raz0rpay.com` 这样的域名,在上面放置伪造的登录页面,然后开始对您的用户进行钓鱼攻击。具备此类监控功能的商业工具每月费用高达数千美元。
Sentinel 免费完成同样的核心工作。您提供一个域名,它会生成所有合理的拼写错误和外观相似的变体,检查哪些实际上已被注册,并根据其危险程度对每一个进行评分。
## 功能特性
- **变体生成** —— 字符省略、置换、同形字(homoglyphs)、键盘邻位键、TLD 替换,以及常见的单词插入,如 `-login`、`-secure`、`-pay`
- **DNS 解析** —— 并发检查所有变体,筛选出仅已注册的域名
- **MX 记录检测** —— 标记可以发送钓鱼邮件的域名
- **内容分析** —— 访问活跃域名并检查登录表单、品牌提及和停放页面指标
- **SSL 检查** —— 检测自签名证书、过期证书以及模仿您品牌的证书
- **WHOIS 年龄检查** —— 标记近期注册的域名(90天以内)
- **IP 信誉** —— 对照 AbuseIPDB 的社区威胁数据库交叉引用 IP
- **风险评分** —— 将所有信号综合为 0-100 的分数,并给出 LOW / MEDIUM / HIGH 判定
- **多种输出格式** —— 终端报告、JSON 导出、CSV 导出
- **监控模式** —— 按计划运行,仅对新发现的域名发出警报
- **批量扫描** —— 从文本文件扫描多个域名
## 安装
```
# 克隆 repo
git clone https://github.com/Spinicle/sentinel.git
cd sentinel
# 创建并激活 virtual environment
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # Mac/Linux
# 安装 dependencies
pip install -r requirements.txt
# 设置你的 AbuseIPDB API key(在 abuseipdb.com 免费获取)
cp .env.example .env
# 编辑 .env 并添加你的 key
```
## 使用方法
```
# 基本扫描
python main.py --domain razorpay.com
# 快速扫描(跳过内容检查)
python main.py --domain razorpay.com --skip-content
# 仅显示计数
python main.py --domain razorpay.com --count
# 导出为 JSON 和 CSV
python main.py --domain razorpay.com --output all
# 仅显示中等风险及以上
python main.py --domain razorpay.com --min-score 30
# 每 24 小时监控一个域名
python main.py --domain razorpay.com --monitor --interval 24
# 从文件扫描多个域名
python main.py --domain placeholder.com --bulk domains.txt
```
## 架构
Sentinel 由按顺序运行的四层结构构建:
**生成层 (Generation Layer)** —— 获取您的域名,使用七种变异类型生成所有合理的拼写错误和外观相似的变体。对于一个典型的域名,这会产生 150-200 个候选。
**分析层 (Analysis Layer)** —— 对每个活跃域名运行 DNS 解析、内容获取、SSL 检查、WHOIS 查询和 IP 信誉检查。每项检查都为风险评分提供信号。
**评分引擎 (Scoring Engine)** —— 将所有信号综合为单一的 0-100 风险评分。MX 记录权重最大(+30),因为它们表明具备电子邮件能力 —— 这是钓鱼攻击的主要工具。
**输出层 (Output Layer)** —— 将结果呈现为丰富的终端报告、机器可读的 JSON 或对利益相关者友好的 CSV。
## 已知限制
- 重度依赖 JavaScript 的页面无法被完全分析 —— `requests` 不执行 JS。集成 Selenium 是未来的改进方向。
- WHOIS 数据对于某些 TLD 不可靠,尤其是印度的 TLD,如 `.in` 和 `.co.in`。失败的查询会记录到 `sentinel.log`。
- IP 信誉检查需要免费的 AbuseIPDB API 密钥。如果没有,IP 检查将被优雅地跳过。
- 该工具提供的是风险评分,而非确定性裁决。人工审查始终是最后一步。
## 路线图
- `--whitelist` 标志,用于排除公司已拥有的域名
- `--verbose` 标志,用于显示带有分值的详细信号细分
- WHOIS 所有权转移检测 —— 标记近期有更新的旧域名
- 监控模式的邮件警报
- 集成 VirusTotal API 作为额外的信誉来源
- 支持 Selenium 以处理重度依赖 JavaScript 的页面
## 免责声明
Sentinel 专为防御性安全研究和品牌保护而构建。仅扫描与您拥有或拥有明确书面测试许可的品牌相关的域名。作者不对滥用行为负责。
## 许可证
MIT
标签:DNS分析, IP信誉, Python, SSL证书检查, WHOIS查询, 内容分析, 协议探测, 合规风控, 同形异义词, 品牌保护, 品牌冒用, 域名监控, 威胁情报, 开发者工具, 开源安全工具, 抢注域名检测, 文档结构分析, 无后门, 无服务器架构, 网络安全, 逆向工具, 逆向工程平台, 钓鱼检测, 防欺诈, 隐私保护