Rahulkohlii/osint-tool
GitHub: Rahulkohlii/osint-tool
一个基于React和Flask的全栈OSINT Web应用,整合多个情报模块到交互式仪表板,用于高效收集域名和用户信息。
Stars: 1 | Forks: 0
```
██████╗ ███████╗██╗███╗ ██╗████████╗ ██████╗ ██████╗ ██╗
██╔═══██╗██╔════╝██║████╗ ██║╚══██╔══╝██╔═══██╗██╔═══██╗██║
██║ ██║███████╗██║██╔██╗ ██║ ██║ ██║ ██║██║ ██║██║
██║ ██║╚════██║██║██║╚██╗██║ ██║ ██║ ██║██║ ██║██║
╚██████╔╝███████║██║██║ ╚████║ ██║ ╚██████╔╝╚██████╔╝███████╗
╚═════╝ ╚══════╝╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝
```
### ⚡ 道德黑客 OSINT 侦察仪表板 ⚡
https://osintthunt.vercel.app/
---
## 🎬 什么是 OSINTool?
**OSINTool** 是一个全栈的**开源情报(OSINT)**Web 应用,它将 **9 个域名调查模块**和 **2 个用户/邮箱调查模块**整合到一个美观的仪表板中。它采用了**网络指挥中心**的美学设计,配有矩阵雨动画、毛玻璃效果 UI 以及实时扫描进度显示。
```
┌──────────────────────────────────────────────────────────────┐
│ │
│ Enter target ───► Scan 11 modules ───► View results │
│ │
│ 📡 WHOIS │ 🌐 DNS │ 📍 GeoIP │ 🔒 SSL │
│ 🛡️ Headers │ 🧩 Subdomains │ 🖥️ Tech Stack │
│ 📄 Robots.txt │ 📡 Port Scan │ 🚨 Breach Check │
│ 🐙 GitHub Profile │
│ │
│ ───► Generate PDF Report ───► Copy any value with 1 click │
│ │
└──────────────────────────────────────────────────────────────┘
```
## ✨ 功能
### 🔎 域名/IP 调查(9 个模块)
| 模块 | 描述 | 来源 |
|:---:|---|---|
| 🌐 **WHOIS 查询** | 注册商、创建/过期日期、所有者、名称服务器 | `python-whois` |
| 📡 **DNS 记录** | A, AAAA, MX, TXT, NS, CNAME, SOA 记录 | `dnspython` |
| 📍 **IP 地理位置** | 国家、城市、ISP、坐标 + 交互式地图 | `ip-api.com` |
| 🔒 **SSL 证书** | 颁发者、有效期、SANs、序列号 | Python `ssl` 标准库 |
| 🛡️ **安全头信息** | CSP, HSTS, X-Frame-Options + 评分图表 | `requests` |
| 🧩 **子域名枚举** | 基于字典的子域名暴力破解(100+ 条目) | `dnspython` |
| 🖥️ **技术栈检测** | 服务器、CMS、框架、分析工具检测 | 头信息/HTML 指纹识别 |
| 📄 **Robots.txt** | 禁止路径、站点地图、高亮显示的有趣路径 | `requests` |
| 📡 **端口扫描器** | 前 23 个常见端口(FTP, SSH, HTTP, MySQL, RDP 等) | Python `socket` |
### 👤 用户名/邮箱调查(2 个模块)
| 模块 | 描述 | 来源 |
|:---:|---|---|
| 🚨 **泄露检查** | 通过 k-匿名 API 进行邮箱泄露查询 | HaveIBeenPwned |
| 🐙 **GitHub 个人资料** | 头像、简介、统计数据、仓库、语言图表 | GitHub REST API |
| 🖼️ **Gravatar** | 通过邮箱 MD5 哈希获取的个人资料图片 | Gravatar API |
### 🎨 高级 UI/UX
| 功能 | 详情 |
|:---:|---|
| 🌧️ **矩阵雨** | 带有日文字符的动画画布背景 |
| 💎 **毛玻璃效果** | 带有背景模糊的磨砂玻璃卡片 |
| 📑 **标签页导航** | 在模块间即时切换——无需滚动 |
| 📋 **一键复制** | 单击复制任何 IP、域名、哈希值、邮箱 + 提示信息 |
| ⌨️ **Ctrl+K** | 键盘快捷键可从任何位置聚焦搜索框 |
| 📜 **扫描历史** | 最近 15 次扫描保存在 localStorage 中——点击可重新运行 |
| 📊 **PDF 报告** | 生成包含所有发现的全面 PDF 报告 |
| 🗺️ **暗色地图** | 使用反转暗色瓦片的 Leaflet 地图 |
## 📸 截图
### 🏠 着陆页
```
╔══════════════════════════════════════════════════════╗
║ ║
║ ⚡ OSINT RECON ⚡ ║
║ ║
║ ┌──────────────────────────────┐ ┌────────┐ ║
║ │ 🔍 Enter domain or IP... │ │ ⚡SCAN │ ║
║ └──────────────────────────────┘ └────────┘ ║
║ ║
║ [ DOMAIN/IP ] [ USER/EMAIL ] ║
║ ║
║ ⏱ Recent: google.com · example.com ║
║ ║
╚══════════════════════════════════════════════════════╝
```
### 📊 扫描结果与标签页导航
```
╔══════════════════════════════════════════════════════╗
║ ALL │ WHOIS✓ │ DNS✓ │ GeoIP✓ │ SSL✓ │ Headers✓ ║
║ Subdomains✓ │ Tech✓ │ Robots✓ │ Ports✓ │ PDF📥 ║
╠══════════════════════════════════════════════════════╣
║ ║
║ ● WHOIS LOOKUP ▾ ║
║ ───────────────────────────────────────── ║
║ Domain GOOGLE.COM 📋 ║
║ Registrar MarkMonitor, Inc. ║
║ Created Sep 15, 1997 ║
║ Expires Sep 14, 2028 ║
║ Organization Google LLC 📋 ║
║ ║
║ ● DNS RECORDS [21 records] ▾ ║
║ ───────────────────────────────────────── ║
║ A (1) 142.251.222.78 📋 ║
║ AAAA (1) 2404:6800:4009:803::200e 📋 ║
║ MX (1) [10] smtp.google.com. 📋 ║
║ ║
╚══════════════════════════════════════════════════════╝
```
## 🏗️ 架构
```
graph TB
subgraph Frontend["🖥️ Frontend — React + Vite + Tailwind"]
A[App.jsx] --> B[MatrixBackground]
A --> C[HeroInput + Tabs]
A --> D[11 Result Components]
A --> E[PDF Report Generator]
A --> F[Toast + Copy System]
end
subgraph Backend["⚙️ Backend — Python Flask"]
G["/api/whois"] --> H[python-whois]
I["/api/dns"] --> J[dnspython]
K["/api/geoip"] --> L[ip-api.com]
M["/api/ssl"] --> N[ssl stdlib]
O["/api/headers"] --> P[requests]
Q["/api/subdomains"] --> R[wordlist brute]
S["/api/techstack"] --> T[header fingerprint]
U["/api/robots"] --> V[robots.txt parse]
W["/api/portscan"] --> X[socket scan]
Y["/api/breach"] --> Z[HIBP API]
AA["/api/github"] --> AB[GitHub API]
end
Frontend -->|HTTP Proxy| Backend
style Frontend fill:#0a1018,stroke:#00ff41,color:#00ff41
style Backend fill:#0a1018,stroke:#0abdc6,color:#0abdc6
```
### 📁 项目结构
```
osint/
├── backend/
│ ├── app.py # Flask API — 11 endpoints
│ ├── requirements.txt # Python dependencies
│ ├── wordlist.txt # Subdomain wordlist (100+ entries)
│ └── venv/ # Python virtual environment
│
├── frontend/
│ ├── index.html # Entry HTML with SEO meta
│ ├── vite.config.js # Vite + Tailwind + API proxy
│ ├── public/
│ │ └── favicon.svg # Terminal-style SVG icon
│ └── src/
│ ├── main.jsx # App entry + ToastProvider
│ ├── App.jsx # Main layout + scan logic
│ ├── api.js # API client (11 functions)
│ ├── index.css # Cyber Command Center theme
│ └── components/
│ ├── MatrixBackground.jsx # Animated canvas rain
│ ├── ToastNotification.jsx # Toast context system
│ ├── CopyButton.jsx # Click-to-copy + CopyWrap
│ ├── ScanHistory.jsx # localStorage history
│ ├── ResultCard.jsx # Glassmorphism collapsible
│ ├── LoadingTerminal.jsx # Typewriter loading
│ ├── ReportButton.jsx # jsPDF report generator
│ ├── Footer.jsx # Social links
│ ├── WhoisResult.jsx # WHOIS data table
│ ├── DNSResult.jsx # DNS records display
│ ├── GeoMap.jsx # Leaflet dark map
│ ├── SSLResult.jsx # SSL certificate details
│ ├── SubdomainResult.jsx # Subdomain enumeration
│ ├── HeadersResult.jsx # Security headers + chart
│ ├── TechStackResult.jsx # Tech detection display
│ ├── RobotsResult.jsx # Robots.txt parser
│ ├── PortScanResult.jsx # Port scan results
│ ├── BreachResult.jsx # Email breach check
│ ├── GitHubProfile.jsx # GitHub user card
│ └── GravatarCard.jsx # Gravatar image
│
└── README.md
```
## 🚀 快速开始
### 前置条件
- **Node.js** ≥ 18
- **Python** ≥ 3.10
- **npm** ≥ 9
### 1️⃣ 克隆仓库
```
git clone https://github.com/Rahulkohlii/OSINTool.git
cd OSINTool
```
### 2️⃣ 设置后端
```
cd backend
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# 激活 venv\Scripts\activate # Windows 版
pip install -r requirements.txt
python app.py
```
### 3️⃣ 设置前端
```
# 打开新终端
cd frontend
npm install
npm run dev
```
### 4️⃣ 开始扫描!🎯
在浏览器中打开 `http://localhost:5173` 并输入目标域名。
## 🔧 API 端点
| 端点 | 方法 | 请求体 | 描述 |
|---|:---:|---|---|
| `/api/whois` | POST | `{ "domain": "example.com" }` | WHOIS 查询 |
| `/api/dns` | POST | `{ "domain": "example.com" }` | DNS 记录(A, MX, TXT, NS...) |
| `/api/geoip` | POST | `{ "target": "example.com" }` | IP 地理位置 + 坐标 |
| `/api/ssl` | POST | `{ "domain": "example.com" }` | SSL 证书详情 |
| `/api/headers` | POST | `{ "domain": "example.com" }` | 安全头信息分析 |
| `/api/subdomains` | POST | `{ "domain": "example.com" }` | 子域名枚举 |
| `/api/techstack` | POST | `{ "domain": "example.com" }` | 技术指纹识别 |
| `/api/robots` | POST | `{ "domain": "example.com" }` | Robots.txt 和站点地图解析器 |
| `/api/portscan` | POST | `{ "target": "example.com" }` | 常见端口 TCP 扫描 |
| `/api/breach` | POST | `{ "email": "user@email.com" }` | 邮箱泄露检查 (HIBP) |
| `/api/github` | POST | `{ "username": "octocat" }` | GitHub 个人资料 + 仓库 |
| `/api/health` | GET | — | 健康检查 |
## 🛠️ 技术栈
| ### 前端 | 技术 | 用途 | |:---:|---| | ⚛️ React 19 | UI 框架 | | 🎨 Tailwind CSS 4 | 样式化 | | ⚡ Vite 8 | 构建工具 | | 🗺️ Leaflet | 交互式地图 | | 📊 Recharts | 数据可视化 | | 📄 jsPDF | PDF 报告生成 | | 🔣 MD5 | Gravatar 哈希计算 | | 🎭 React Icons | 图标库 | | ### 后端 | 技术 | 用途 | |:---:|---| | 🐍 Python 3.13 | 运行时 | | 🌶️ Flask 3.1 | Web 框架 | | 🔍 python-whois | WHOIS 查询 | | 📡 dnspython | DNS 解析 | | 🌐 requests | HTTP 客户端 | | 🔒 ssl(标准库) | SSL 检查 | | 🔌 socket(标准库) | 端口扫描 | | 🚀 gunicorn | 生产环境服务器 | |
标签:Flask, meg, Python, React, Syscalls, Tailwind CSS, Vite, 伦理黑客, 侦察仪表板, 信息安全, 后端开发, 情报分析, 攻击路径可视化, 数据可视化, 数据监控, 无后门, 模块化设计, 网络安全, 网络诊断, 自动化修复, 逆向工具, 隐私保护, 黑客工具