Egyan07/PhantomEye
GitHub: Egyan07/PhantomEye
一款面向 Windows 的轻量级威胁情报平台,整合多个公开情报源实现本地化的恶意 IP 和域名检测。
Stars: 1 | Forks: 0
# 👁 PhantomEye
**适用于 Windows 的免费威胁情报平台**
自动根据 8 个实时威胁源检查您的网络活动 —— 恶意软件 IP、C2 服务器、钓鱼域名等。
## 截图





## 功能概述
PhantomEye 从 8 个免费的公开源下载威胁情报,并实时对照这些情报检查您的 Windows 网络活动。
它可以检测:
- 连接到已知 **恶意软件 / C2 服务器** 的设备(包括允许和被阻止的连接)
- 对已知 **钓鱼或恶意软件域名** 的 DNS 查询
- **邮件头** 中的恶意 IP 或域名
- 任何您想要 **手动检查** 的 IP 或域名
## 功能特性
| 功能 | 描述 |
|---|---|
| 🔍 IP / 域名查询 | 对 40,000+ 个 IOC 进行即时判定 —— 粘贴任意 IP 或域名即可 |
| 📧 邮件头分析器 | 粘贴原始 Outlook 邮件头 —— 提取并检查所有中继 IP 和发件人域名 |
| 🔥 Firewall 日志扫描器 | 对照威胁源检查 Windows Firewall 日志 —— 标记 ALLOW 和 DROP 条目 |
| 🌐 DNS 缓存扫描器 | 检查您的 Windows DNS 解析缓存中是否存在恶意域名 |
| 📊 警报历史 | 带有时间戳的完整警报日志,支持 CSV 导出 |
| 📡 数据源状态 | 显示每个源的 IOC 数量和最后更新时间戳 |
## 威胁源(均为免费,无需账号)
| 数据源 | 类型 | 覆盖范围 |
|---|---|---|
| Feodo Tracker | IP | 僵尸网络 C2 服务器 |
| Emerging Threats | IP | 被攻陷的主机 |
| CINS Score | IP | 已知的恶意行为者 |
| Abuse.ch SSL Blacklist | IP | 恶意 SSL 证书 |
| URLhaus | Domain | 恶意软件下载 URL |
| OpenPhish | Domain | 活跃的钓鱼网站 |
| Botvrij.eu | Domain | 恶意域名 |
| Botvrij.eu | IP | 恶意 IP |
## 系统要求
- Windows 10 或 11
- Python 3.10 或更新版本 — [python.org](https://www.python.org/downloads/)
- 用于更新数据源的互联网连接
- **无需安装额外的软件包** —— 完全基于 Python 标准库运行
## 安装说明
1. Clone 或下载此 repo
2. 打开 `config.py` 并将 `ADMIN_PC` 设置为您的管理设备名称
3. 右键点击 `Install_PhantomEye.bat` → **以管理员身份运行**
4. 完成 —— PhantomEye 会自动启动并下载数据源
安装程序会创建两个 Windows 计划任务:
- **数据源更新** —— 每 6 小时
- **早晨扫描** —— 每天早上 6:00
两者都以您的用户账户运行,而非 SYSTEM。
## 使用方法
**启动 GUI:**
```
python C:\SecurityLogs\PhantomEye\main.py --gui
```
**仅更新数据源:**
```
python C:\SecurityLogs\PhantomEye\main.py --update-feeds
```
**无界面运行扫描(用于脚本编写):**
```
python C:\SecurityLogs\PhantomEye\main.py --scan
```
**从终端快速查询:**
```
python C:\SecurityLogs\PhantomEye\main.py --lookup 185.234.xx.xx
python C:\SecurityLogs\PhantomEye\main.py --lookup evil-domain.ru
```
## 邮件警报(可选)
在 `config.py` 中设置 `EMAIL_ENABLED = True`。
将您的密码存储为 Windows 环境变量 —— **切勿硬编码**:
```
# 以管理员身份运行 PowerShell
[System.Environment]::SetEnvironmentVariable(
'PHANTOMEYE_EMAIL_PASSWORD', 'your_app_password', 'Machine')
```
## 项目结构
```
PhantomEye/
├── main.py # CLI entry point
├── config.py # All user settings ← edit this
├── logger.py # Rotating log handler
├── database.py # DB schema
├── utils.py # IP/domain validation, whitelist
├── feeds.py # Feed download, parsing, in-memory IOC cache
├── lookup.py # O(1) IOC lookup engine
├── alerts.py # Alert dispatch + 24h deduplication
├── scanner.py # Firewall / DNS / email scan engines
├── gui/
│ ├── app.py # Main window
│ ├── theme.py # Shared colours and widget helpers
│ ├── tab_dashboard.py
│ ├── tab_lookup.py
│ ├── tab_email.py
│ ├── tab_alerts.py
│ └── tab_feeds.py
├── Install_PhantomEye.bat
└── Uninstall_PhantomEye.bat
```
## 启用 Windows Firewall 日志记录
为了使 Firewall 扫描功能正常工作:
1. 打开 **Windows Defender Firewall with Advanced Security**
2. 点击 **Windows Defender Firewall Properties**
3. 在每个配置文件选项卡(域、专用、公用)上:
- 日志记录 → 自定义
- 记录成功的连接:**是**
- 记录丢弃的数据包:**是**
4. 点击确定
## 免责声明
PhantomEye 是一个 **已知恶意检测器** —— 它与公开的威胁情报源进行匹配,这些源通常滞后于新型攻击 24-72 小时。它不能替代完整的 EDR 或托管安全服务。其设计目的是为目前没有自动化威胁监控的小型企业提高安全基线。
## 更新日志
**v1.1** *(当前版本)*
- 重构为 14 个模块(原先是一个 1,512 行的单文件)
- 修复:查询和邮件分析现在在后台线程中运行
- 修复:Firewall 扫描器现在检查 ALLOW *和* DROP 条目
- 修复:警报去重 —— 同一个 IOC 在 24 小时内不会重复报警
- 修复:消除了每个警报的数据库连接开销
- 修复:DNS 扫描器中的变量遮蔽问题
- 修复:数据库为空时查询出现的零数据源警告
- 修复:从环境变量读取邮件密码
- 修复:IPv6 验证和检查
- 修复:查询标签页中自动剥离完整 URL
- 新增:将警报导出为 CSV
**v1.0**
- 初始发布
## 许可证
MIT License —— 可免费使用、修改和分发。
*由 Egyan | Red Parrot Accounting Ltd 构建*
标签:Beacon Object File, C2 服务器检测, DNS 缓存监控, ESC4, IOC 扫描, IP 地址批量处理, masscan, OSINT, Windows 安全工具, 免费安全工具, 威胁情报平台, 安全运营, 恶意 IP 检测, 恶意软件防护, 扫描框架, 网络安全, 逆向工具, 邮件头分析, 钓鱼域名检测, 防火墙日志分析, 隐私保护, 风险可视化