alialsartawi7-sketch/ghosttrace

GitHub: alialsartawi7-sketch/ghosttrace

一款本地运行的模块化 OSINT 与攻击面分析平台,聚合多款安全工具并提供风险评分与报告生成。

Stars: 24 | Forks: 2

Screenshot_2026-04-13_09_04_03 ![Python 3.10+](https://img.shields.io/badge/Python-3.10%2B-blue?logo=python&logoColor=white) ![License MIT](https://img.shields.io/badge/License-MIT-green) ![Version 6.3](https://img.shields.io/badge/Version-6.3-ff6b35) ![Platform Linux](https://img.shields.io/badge/Platform-Linux%20(Kali%20recommended)-orange?logo=linux&logoColor=white) ![Tools 9](https://img.shields.io/badge/Tools-9%20Integrated-purple) ![Routes 36](https://img.shields.io/badge/API%20Routes-36-blue) ![Themes 12](https://img.shields.io/badge/Themes-12-ff6b35) ![Tests 9](https://img.shields.io/badge/Tests-9%20Files-success) ``` ██████╗ ██╗ ██╗ ██████╗ ███████╗████████╗████████╗██████╗ █████╗ ██████╗███████╗ ██╔════╝ ██║ ██║██╔═══██╗██╔════╝╚══██╔══╝╚══██╔══╝██╔══██╗██╔══██╗██╔════╝██╔════╝ ██║ ███╗███████║██║ ██║███████╗ ██║ ██║ ██████╔╝███████║██║ █████╗ ██║ ██║██╔══██║██║ ██║╚════██║ ██║ ██║ ██╔══██╗██╔══██║██║ ██╔══╝ ╚██████╔╝██║ ██║╚██████╔╝███████║ ██║ ██║ ██║ ██║██║ ██║╚██████╗███████╗ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚══════╝ v6.3 by Alsartawi ``` **让 OSINT 变得简单 —— 从初学者到专业人士。** GhostTrace 是一个模块化的 OSINT 情报平台,它将 9 款 Linux 工具封装在一个单一的 Web 界面中,提供实时流式传输、主动侦察、风险评分、攻击路径分析以及专业的 PDF 报告。无云端依赖。无遥测。完全在您的本地机器上运行。 ## 🆕 v6.3 的新功能 前端安全加固 —— 无破坏性变更,全部 153 个测试通过。 | 领域 | 修复 | |------|-----| | 🛡️ **DOM-XSS 防护** | 扫描获取的值(WHOIS 字段、证书 SANs/CN、页面标题、原始工具输出)现在会在每个 UI 注入点(控制台、结果列表、历史记录和图表提示框)进行转义。一个失败即关闭的白名单净化器保留了 `hl`/`muted`/`val` 样式跨度,同时中和了任何其他注入的标记。 | ## 🆕 v6.2 的新功能 报告质量与电子邮件安全版本。 | 领域 | 改进 | |------|-------------| | 🌐 **子域名分组** | 解析到多个 IP 的主机被折叠成一个包含所有聚合 IP 的单行 —— 计数现在反映的是*唯一*主机,这在报告、实体时间线和图表中均保持一致 | | 📧 **DMARC 检测** | DNS 扫描会自动检查 `_dmarc.` —— 如果存在策略则报告,如果缺失则标记为**“易受电子邮件欺骗攻击”** | | 🎯 **更智能的关键发现** | 域名验证 TXT token(Zoom、Google、MS 等)的权重被降低,因此它们不再会挤占真正的发现结果 | | 🧹 **源头数据更纯净** | 子域名在存储时即进行去重,而不仅仅是在显示时 | ## 🆕 v6.1 的新功能 稳定性与安全加固版本 —— 无破坏性变更,全部 201 个测试通过。 | 领域 | 修复 | |------|-----| | ⏱️ **卡死防护** | 一个挂钟看门狗现在会终止不产生任何输出的工具(扫描不再无限期冻结);stderr 在单独的线程中被排空,以防止管道缓冲区死锁 | | 🔑 **会话持久化** | Flask 密钥现在被持久化,因此您在重启后依然保持登录状态(以前每次启动都会重新生成) | | 🛡️ **CSRF / 驱动式攻击防护** | 通过 Sec-Fetch-Site 标头拒绝指向 API 的跨站点 GET 请求 | | 📄 **CSV 注入防护** | CSV 导出中的电子表格公式注入已被中和 | | 🗄️ **数据完整性** | 强制执行外键(级联删除有效),原子化结果去重,并修复了中止/完成的竞态条件 | | 🧹 **加固与清理** | 配置文件被锁定为模式 600,导出文件自动清理,上传文件添加时间戳前缀以避免覆盖 | ## 🆕 v6.0 的新功能 | 功能 | 描述 | |---------|-------------| | ⭐ **星标扫描** | 将重要的扫描固定在历史记录的顶部 —— 它们会受到保护,免受自动清理的影响 | | ⌨️ **键盘快捷键** | 为高级用户提供 Enter、Esc、Ctrl+K/H/L/,, 1-9、Ctrl+/ 快捷键 | | 🔗 **深链接** | 加载扫描时更新 URL —— 与同事分享 `?scan=` | | 🗑️ **数据库清理** | 自动删除超过 N 天的扫描(保留已星标的),执行 vacuum 回收空间 | | 📊 **数据库信息** | 通过 API 查看数据库大小、扫描次数、星标次数 | | 📦 **批量操作** | 通过 API 一次删除多个扫描 | | 💾 **导出所有历史记录** | 完整备份为 JSON,用于存档或传输 | | 📝 **更好的日志** | 扫描生命周期在日志中被跟踪 —— 开始、完成、错误 | | 🔒 **CSRF 修复** | 修复了 3 个安全漏洞 —— null token 拒绝、正确流程、jsonify 导入 | | 🐛 **AttackPath 崩溃修复** | 修复了不完整管理面板数据上的 `KeyError: 'status'` | ## ⚡ GhostTrace 的独特之处 - 🔍 **9 款集成工具** —— 不仅仅是简单的包装,而是完整的情报 pipeline - 🛡️ **主动侦察** —— DNS 验证、HTTP 探测、带有 **banner grabbing** 的端口扫描 - 📊 **风险评分引擎** —— 0-100 的动态评分,并附带具有指导意义的评分原因 - 🗺️ **攻击路径生成器** —— 5 条映射真实漏洞利用路径的规则 - 🧠 **智能置信度** —— 基于结果质量的评分,而不仅仅是来源 - 🔬 **智能元数据分析** —— 自动检测 WhatsApp/Telegram 移除元数据的行为 - 📄 **专业报告** —— 包含关键发现、SVG 图表、实体时间线、风险评估的 PDF - 🌐 **交互式图表** —— Quadtree O(n log n) 力导向布局,PNG 导出,全屏显示 - 🔐 **身份验证 + CSRF** —— bcrypt 密码,基于会话,所有 POST/DELETE 请求均带有 CSRF token - 🎨 **12 款高级主题** —— 包括皇家金和午夜银 - 🔄 **跨扫描差异对比** —— 比较两次扫描以检测新的暴露面 - 📤 **文件上传 + 拖拽** —— 提取元数据时无需手动输入路径 ## 🧰 集成工具 (9) | # | 工具 | 标签页 | 发现内容 | |---|------|-----|---------------| | 1 | **theHarvester** | Email / Subs | 来自 13 个免费来源的电子邮件、子域名、IP | | 2 | **Maigret** | Username | 跨越 2500+ 个站点的社交媒体资料 | | 3 | **Sherlock** | Username | 跨越 400+ 个站点的用户名搜索 | | 4 | **ExifTool** | Metadata | 隐藏的元数据 —— GPS、作者、设备(智能分类) | | 5 | **PhoneInfoga** | Phone | 电话号码运营商、国家(已过滤搜索引擎干扰) | | 6 | **Whois** | Auto/CLI | 域名注册信息、注册商、过期时间、域名服务器 | | 7 | **dig** | DNS | MX、TXT (SPF/DKIM/DMARC)、NS、SOA、A、AAAA、CNAME 记录 | | 8 | **openssl** | SSL | 证书 SANs(隐藏的子域名)、颁发者、过期时间 | | 9 | **Google Dorks** | Dorks | 28 个有针对性的可点击查询 | ## 🎛️ 10 个扫描模块 | 模块 | 输入 | 使用工具 | 示例 | |--------|-------|-----------|---------| | **Auto** | 任意内容 | 自动检测,为域名链接 DNS+SSL | `microsoft.com` → 3 阶段 pipeline | | **Email** | 域名 | theHarvester | `example.com` | | **Username** | 用户名 | Maigret / Sherlock | `johndoe` | | **Metadata** | 文件路径或上传(拖放) | ExifTool(智能分类) | 拖拽文件或浏览 | | **Phone** | 电话号码 | PhoneInfoga(已过滤干扰) | `+1234567890` | | **Subdomain** | 域名 | theHarvester | `google.com` | | **DNS** | 域名 | dig(7 种记录类型) | `example.com` | | **SSL** | 域名 | openssl | `example.com` | | **Dorks** | 域名 | 生成器(可点击) | `example.com` | | **Recon** | 域名 | 内置 | 包含 banner grabbing 的完整 pipeline | ## ⌨️ 键盘快捷键 | 快捷键 | 操作 | |----------|--------| | `Enter` | 开始扫描 | | `Esc` | 中止扫描 | | `Ctrl + K` | 聚焦过滤器 | | `Ctrl + /` | 显示帮助 | | `Ctrl + H` | 打开历史记录 | | `Ctrl + ,` | 设置 | | `Ctrl + L` | 清空控制台 | | `1` – `9` | 切换标签页 | ## 🛡️ 主动侦察 Pipeline 在被动的 OSINT 之后,GhostTrace 会对结果进行验证和丰富: ``` 📡 DNS Resolution → Remove dead domains, validate alive hosts 🌐 HTTP Probing → Status codes, technology detection, security headers 🔌 Port Scanning → Top 25 ports + banner grabbing (OpenSSH, Apache, nginx...) 🎯 Attack Surface → Admin panels, login pages, API endpoints 📊 Risk Scoring → 0-100 dynamic score with explanations 🗺️ Attack Paths → 5 rules: Brute Force, Admin Panel, API, Legacy, Chained ``` ### 风险评分 | 因素 | 分数 | 示例 | |--------|--------|---------| | 存活主机 | +10 | 可达目标的基础分数 | | RDP 暴露 | +25 | 3389 端口开放 | | 发现管理面板 | +20 | `/admin` 返回 200/401/403 | | 缺失 HSTS | +10 | 没有 Strict-Transport-Security 标头 | | 预发布/开发环境暴露 | +18 | `staging.example.com` 可公开访问 | | 检测到 WordPress | +10 | 已知的漏洞历史 | ### 攻击路径规则 | 规则 | 触发条件 | 严重程度 | |------|---------|----------| | 暴力破解候选目标 | 登录页面 + SSH/FTP/RDP 开放 | 高 | | 管理面板暴露 | 发现任何管理面板 | 严重 (分数≥65) | | API 枚举 | 检测到 API endpoint | 高 | | 遗留服务 | FTP (21) 或 Telnet (23) 开放 | 严重 | | 链式风险 | 分数≥65 + 3 个促成因素 | 严重 | ## 🧠 智能置信度系统 | 结果 | 旧分数 | 智能分数 | 原因 | |--------|-----------|-------------|-----| | `john.doe@example.com` | 72% | **90%** | 个人电子邮件 (firstname.lastname) | | `info@example.com` | 72% | **60%** | 通用别名 | | `admin.example.com` | 70% | **90%** | 管理子域名 + DNS 已解析 | | `blog.example.com` | 70% | **60%** | 无 IP 确认 | | `0.0.0.0` | 70% | **15%** | 私有 IP —— 噪音 | | `*.example.com` | 70% | **20%** | 通配符条目 | ## 🔬 智能元数据分析 ExifTool 结果按情报价值分类: | 分类 | 置信度 | 示例 | |---------------|-----------|----------| | 📍 **GPS** | 98% | 纬度、经度、海拔 | | 👤 **作者** | 95% | 所有者姓名、版权、艺术家 | | 📱 **设备** | 92% | iPhone 14 Pro、Samsung、Canon | | 💻 **软件** | 85% | iOS 17.2、Photoshop、GIMP | | 📅 **日期** | 85% | 原始拍摄日期/时间 | | 📄 **基本** | 40% | 文件大小、尺寸、类型 | **自动检测移除元数据**的行为来自:WhatsApp、Telegram、Signal、Facebook、Twitter、屏幕截图。 ## 📄 专业 PDF 报告 报告包含**所有 9 种结果类型**,具有: - 🎯 **关键发现** —— 优先级最高的前 10 个结果(仅限置信度 ≥50%) - 📊 **SVG 图表** —— 按类型划分的结果柱状图 - 🕐 **实体时间线** —— 包含 first_seen/last_seen/count 的重复发现 - 📈 置信度分布柱状图(高//低) - 📝 执行摘要(自动生成) - 🛡️ 风险评估部分(如果执行了侦察) - 🗺️ 带有严重程度和步骤的攻击路径 - ⚠️ 建议 ## ✨ 功能 | 功能 | 描述 | |---------|-------------| | 🔐 **身份验证** | bcrypt 密码配合 `--setup`,基于会话 | | 🔒 **CSRF 防护** | 每个会话一个 token,自动注入到所有 POST/DELETE 请求中 | | 🎨 **12 款高级主题** | Ghost Blue、Matrix、Cyberpunk、Ocean、Sunset、Toxic、Blood、Stealth、Arctic、Light、**皇家金**、**午夜银** | | 🌙 **深色/浅色切换** | 导航栏中的快速切换按钮 | | ⭐ **星标扫描** | 固定重要的扫描 —— 受保护,免受自动清理 | | 🔗 **深链接** | 加载扫描时更新 URL —— 可分享的链接 | | 📤 **文件上传 + 拖拽** | 直接将文件拖放到 metadata 标签页中 | | 📋 **复制按钮** | 将鼠标悬停在任何结果上 → 点击 ⎘ 进行复制 | | 📝 **扫描笔记** | 从历史记录中为任何扫描添加笔记 | | 🗑️ **删除 / 批量删除** | 逐个或批量删除旧的扫描 | | 🧹 **自动清理** | 删除超过 N 天的扫描(保留已星标的) | | 💾 **完整数据库备份** | 将整个历史记录导出为 JSON | | 🔄 **跨扫描差异对比** | 比较两次扫描:添加/删除/未更改 | | 🌐 **交互式图表** | Quadtree O(n log n)、聚类、形状、PNG 导出 | | ⛶ **全屏图表** | 专用的全屏模式 | | 🔎 **结果搜索** | 实时过滤结果 | | 💾 **扫描历史** | 基于 SQLite,支持星标排序 | | 🔌 **Tor 集成** | 一键切换 —— 通过 Tor 路由流量 | | 📦 **导出** | JSON、CSV、TXT、HTML、PDF | | 🖥️ **CLI 模式** | 在终端栏中直接输入命令 | | ⌨️ **键盘快捷键** | 高级用户工作流 | ## 🧪 质量保证 | 类别 | 详情 | |----------|---------| | ✅ **9 个测试文件** | validators、harvester、correlator、risk_engine、recon、new_tools、database、report、integration | | ✅ **代码检查** | flake8 检查语法错误和未定义的名称 | | ✅ **API 文档** | 完整参考位于 [`docs/API.md`](docs/API.md) —— 全部 36 个 endpoint | | ✅ **贡献指南** | [`CONTRIBUTING.md`](CONTRIBUTING.md) —— 如何添加工具、运行测试、代码风格 | | ✅ **类型提示** | 关键模块已类型化:base、risk_engine、correlator、validators | 在本地运行测试: ``` pytest tests/ -v ``` ## 架构 ``` GhostTrace v6.3 ┌──────────┐ ┌────────────┐ ┌──────────────┐ ┌──────────┐ │ Web UI │───→│ Validators │───→│ Tool Adapters │───→│ Execution│ │ 10 tabs │ │ whitelist │ │ 9 tools │ │ Engine │ └──────────┘ └────────────┘ └──────────────┘ └────┬─────┘ ↑ │ │ SSE ┌────────────┐ ┌──────────────┐ subprocess │←─────────│ Scanner │←───│ Parser │←───────┘ │ └─────┬──────┘ └──────────────┘ │ │ │ ┌─────↓──────┐ ┌──────────────┐ │ │ Correlator │───→│ SQLite DB │ │ │ + Scorer │ │ WAL + starred│ │ └─────┬──────┘ └──────────────┘ │ │ │ ┌─────↓──────┐ ┌──────────────┐ │ │ Active Recon│───→│ Risk Engine │ │ │ DNS+HTTP+ │ │ Score 0-100 │ │ │ Ports+Attack│ │ Attack Paths │ │ └────────────┘ └──────────────┘ ``` ## 安装说明 **目标环境:** Kali Linux 2025+ / Ubuntu 22.04+ ### 1. 克隆并安装 Python 依赖 ``` git clone https://github.com/alialsartawi7-sketch/ghosttrace.git cd ghosttrace pip install -r requirements.txt --break-system-packages ``` ### 2. 安装 OSINT 工具 ``` # 必需 sudo apt update sudo apt install -y pipx dnsutils whois libimage-exiftool-perl \ openssl git libcairo2-dev pkg-config python3-dev build-essential # pipx PATH pipx ensurepath # OSINT tools pipx install maigret sherlock-project # PhoneInfoga wget https://github.com/sundowndev/phoneinfoga/releases/latest/download/phoneinfoga_Linux_x86_64.tar.gz -O /tmp/phoneinfoga.tar.gz tar xzf /tmp/phoneinfoga.tar.gz -C /tmp/ sudo mv /tmp/phoneinfoga /usr/local/bin/ # 克隆并运行 git clone https://github.com/alialsartawi7-sketch/ghosttrace.git cd ghosttrace pip install -r requirements.txt --break-system-packages python3 app.py # 可选 — 用于 Tor 路由 sudo apt install tor -y sudo service tor start ``` ### 3. 验证工具 ``` theHarvester -h sherlock --version maigret --version exiftool -ver phoneinfoga version dig -v openssl version ``` ### 4. 设置密码(推荐) ``` python3 app.py --setup ``` ## 用法 ``` python3 app.py # 打开 http://127.0.0.1:5000 ``` ### Tor | 工具 | Tor 方法 | |------|-----------| | Maigret | `--tor-proxy socks5://127.0.0.1:9050` | | Sherlock | `--tor` | | theHarvester | `proxychains4 -q` 包装器 | | ExifTool | 不适用(本地文件处理) | ### CLI 模式 ``` ghost $ maigret johndoe --site Instagram --site GitHub ghost $ theHarvester -d example.com -b crtsh -l 100 ghost $ whois example.com ghost $ dig example.com MX ``` ## 📸 截图 **主题:** theme1 theme2 theme3 所有主题 —— 试试看 😉 themes **扫描:** scan **图表:** graph1 graph2 **PDF 报告:** image ## 安全模型 | 层级 | 实现 | |-------|---------------| | 身份验证 | bcrypt 密码哈希,基于会话的身份验证 | | **CSRF 防护** | 每个会话一个 token,在所有 POST/DELETE 请求上进行验证 | | 输入验证 | 按字段的正则表达式:域名、电子邮件、用户名、文件路径、电话 | | CLI 验证 | 每个工具的**白名单**正则表达式(非黑名单) | | 路径遍历 | 阻止 `..`、`/etc/shadow`、`/root`、`.ssh`(上传目录被列入白名单) | | 输出净化 | 剥离 ANSI 代码 + 控制字符 | | 频率限制 | 60 秒内 20 次扫描 | | 进程隔离 | 超时/中止时使用 `os.setsid` + 进程组终止 | | 文件上传 | 净化文件名、安全目录、16MB 限制 | ## 已知限制 - Instagram/Facebook 阻止自动化检查 —— 即使使用 Tor - 在所有 2500+ 个站点上运行 Maigret + Tor 速度很慢 —— 请使用 `--site` 进行定向 - Google Dorks 仅生成查询 —— 用户必须手动搜索 - PhoneInfoga 需要从 GitHub releases 单独安装 - PDF 需要 `weasyprint`(推荐)或 `wkhtmltopdf` - WhatsApp/Telegram/Signal 会按设计从共享图片中移除元数据 - 仅支持 Linux —— 不支持 Windows | ## 免责声明 GhostTrace 仅供**授权的安全研究、渗透测试和教育目的**使用。 作者不对滥用行为承担责任。在对您不拥有的目标执行 OSINT 操作之前,请务必获得适当的授权。 **负责任地使用。尊重隐私。遵守您所在国家的法律。** ## 许可证 MIT 许可证 —— 见 [LICENSE](LICENSE) **由 Alsartawi 用 ❤️ 构建**
标签:API, ESC4, GitHub, OSINT, Python, 安全研究报告, 实时处理, 攻击面管理, 无后门, 风险评估