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查询, 内容分析, 协议探测, 合规风控, 同形异义词, 品牌保护, 品牌冒用, 域名监控, 威胁情报, 开发者工具, 开源安全工具, 抢注域名检测, 文档结构分析, 无后门, 无服务器架构, 网络安全, 逆向工具, 逆向工程平台, 钓鱼检测, 防欺诈, 隐私保护