nishu2402/HEAVEN-GeoIntel

GitHub: nishu2402/HEAVEN-GeoIntel

一个开箱即用的 OSINT 情报平台,围绕电话号码和邮箱地址自动完成深度侦察、泄露关联和开放网络情报整合。

Stars: 0 | Forks: 0

# 🌐 HEAVEN-GeoIntel

Node.js Next.js TypeScript Zero API Keys License

Phone Pivots Email Pivots Breach DBs NPA Rate Limit

Stars Forks Issues

## 👾 作者 ### Nisarg Chasmawala · 别名:**HEAVEN**
| | 详情 | |---|---| | 🔗 **LinkedIn** | [linkedin.com/in/nisarg-chasmawala](https://www.linkedin.com/in/nisarg-chasmawala) | | 🐙 **GitHub** | [github.com/nishu2402](https://github.com/nishu2402) | | 🎯 **角色** | 攻击性安全工程师 · 渗透测试员 · OSINT 分析师 |
## 📋 目录 - [👾 作者](#authors) - [🧠 项目概述](#project-summary) - [💡 核心理念](#core-idea) - [🚀 快速开始](#quick-start) - [📞 电话情报](#phone-intelligence) - [📧 邮箱情报](#email-intelligence) - [🔑 可选 API 增强](#api-enrichment) - [⚙️ 工作原理](#how-it-works) - [✅ 数据准确性](#data-accuracy) - [🔒 安全性](#security) - [📁 项目结构](#project-structure) - [⚡ 技术栈](#tech-stack) - [📜 可用脚本](#available-scripts) - [🔧 故障排除](#troubleshooting) - [⚠️ 免责声明](#disclaimer) ## 🧠 项目概述

**HEAVEN-GeoIntel** 是一个针对电话号码和电子邮件地址的生产级 OSINT 情报平台——专为渗透测试人员、安全研究人员和 OSINT 分析师构建。它返回真实、可操作的情报:没有占位符、没有模拟、没有虚假数据。
| 指标 | 数值 | |---|---| | 🎯 **范围** | 电话号码情报 + 电子邮件地址情报 | | 🔑 **核心要求** | 零 API 密钥 —— 完整的离线分析开箱即用 | | 📞 **电话:OSINT 切入点** | 涵盖 6 个类别的 38 个调查链接 | | 📧 **邮箱:OSINT 切入点** | 涵盖 4 个类别的 25 个调查链接 | | 🔍 **电话:Google Dorks** | 18 个预构建的 dorks (LinkedIn · Facebook · Pastebin · 凭证泄露 · PDFs) | | 📊 **电话:格式变体** | 11 种用于数据库/OSINT 搜索的排列组合 | | 🗺️ **NPA 数据库** | 350+ 美国/加拿大区号 → 州 · 大都市 · 时区 (离线) | | 💥 **泄露情报** | XposedOrNot — 1000+ 泄露数据库,无需 API 密钥 | | 🌍 **国家数据集** | 40+ 个国家 — 首都 · 货币 · 语言 · GDP · 紧急电话号码 | | ⚡ **缓存** | 24小时内存 LRU (最多 500 个条目) — 重复查询瞬间完成 | | 🚦 **速率限制** | 10 次请求/分钟/IP — 令牌桶算法 | | 🏗️ **技术栈** | Next.js 15 · TypeScript · Tailwind CSS · Framer Motion · libphonenumber-js | | 🎨 **UI 主题** | 矩阵/终端风格 — Canvas 片假名雨 · CRT 扫描线 · JetBrains Mono |
## 💡 核心理念

在渗透测试或 OSINT 调查期间,分析师需要花费大量时间在 20-30 个独立的工具和浏览器选项卡之间手动切换,以构建围绕电话号码或电子邮件的情报。HEAVEN-GeoIntel 将该工作流集中化: ``` Target phone / email │ ├─ Instant offline analysis (libphonenumber-js · bundled datasets) ├─ Free source fan-out (XposedOrNot · Gravatar · EmailRep) ├─ Optional API enrichment (IPQualityScore · Twilio · Hunter.io) ├─ OSINT pivot matrix (38 phone links · 25 email links) ├─ Google dork generator (18 pre-built dorks) └─ Export (.txt · .html report) ``` ## 🚀 快速开始

### 环境要求 - **Node.js 18+** — [nodejs.org](https://nodejs.org) - **npm 9+** — 随 Node.js 附带 - 无需数据库 · 无需 Docker · 无需 Redis · 无需云账户 ### 一键启动 ``` bash start.sh ``` 该脚本会检查 Node.js、安装依赖、创建 `.env.local`、自动检测可用端口并启动服务器。无需任何手动步骤。 **或者:** ``` npm run setup ``` ### 全局命令 运行一次 `bash start.sh` 后,会在 `~/.zshrc` 中注册一个 `geointel` shell 函数。打开一个新终端并输入: ``` geointel ``` 要在任何时候手动安装它: ``` npm run install-global ``` ## 📞 电话情报

### 零配置下您将获得什么 每次电话查询都会返回从号码结构和捆绑数据集中得出的真实数据——没有模拟,没有占位符。
| 面板 | 显示内容 | |---|---| | **结果标头** | E.164 · 国旗 · 线路类型徽章 · 呼叫者姓名 (API) · 歧义警告 | | **威胁评估** | 欺诈分数 · VoIP/预付费/滥用标志 · 风险等级 | | **渗透测试面板** | 当地实时时间 · 呼叫时段 (工作/晚上/深夜/周末) · NPA 区号情报 · 攻击面分析 | | **号码结构** | 国家代码 · 区号 · 用户号码 · NXX 前缀 — 特定国家的提取 (US/CA · GB · DE · FR · AU) | | **指标卡片** | 仅显示已填充的字段 — 无 N/A 卡片。离线 6-8 个;使用 API 密钥最多可达 16 个 | | **格式交叉参考** | E.164 · 国际格式 · 国内格式 · RFC 3966 — 皆可复制 | | **号码排列组合** | 11 种用于数据库/OSINT 搜索的格式变体(点 · 连字符 · URL编码 · WhatsApp 链接 · 等等) | | **SIM 与运营商情报** | 所有者/CNAM · 运营商 · 预付费状态 · 活跃状态 · MCC/MNC/PLMN · 关联邮箱 | | **国家情报** | 首都 · 大洲 · 地区 · 人口 · 货币 · 语言 · 靠左/靠右行驶 · 紧急号码 · 互联网普及率 · 人均 GDP | | **Dork 生成器** | 18 个预构建的 Google dorks — LinkedIn · Facebook · Twitter · GitHub · Pastebin · 凭证泄露 · PDFs | | **OSINT 切入点** | 涵盖 6 个类别的 38 个调查链接 | | **二维码** | 基于 Canvas 渲染的 `tel:` URI 二维码 · 可下载为 PNG | | **报告导出** | 完整的情报报告,导出为 `.txt` 或 `.html` | | **历史记录抽屉** | 最后 20 次查询保存在浏览器的 localStorage 中 | | **可共享 URL** | `?q=+14155552671` 自动运行查询 |
### NPA 区号数据库 (US/CA) 捆绑了 350+ 个美国和加拿大的区号离线数据,映射到:州/省 · 大都市区/主要城市 · IANA 时区 · 国家。每个美国/加拿大号码都会立即显示当地时间、呼叫时段和地理位置上下文——**零 API 调用**。 ### 电话 OSINT 切入点 — 38 个链接,6 个类别
| 类别 | 服务 | |---|---| | **身份 / 反向查询** | Truecaller · Sync.me · NumLookup · That's Them · Spy Dialer · CallerSmart · TruePeopleSearch · FastPeopleSearch · USPhoneBook · AnyWho · Infobel · PhoneBook.com | | **泄露 / 数据暴露** | Epieos · HaveIBeenPwned · IntelligenceX · Dehashed · LeakCheck | | **社交 / 开放网络** | Google (LinkedIn · Facebook · Instagram · Twitter) · Bing · Google Maps · Pastebin | | **消息平台** | WhatsApp (wa.me/) · Telegram (+前缀) · Signal · Viber · iMessage 检查 | | **运营商 / 电信** | FreeCarrierLookup · HLR-Lookups · TextMagic · MNP 可移植性检查器 | | **情报 / 深度搜索** | IntelligenceX · Dehashed · Epieos 关联 · HIBP · LeakCheck |
### 接受的电话格式 ``` +14155552671 # E.164 (recommended) +44 7911 123456 # International with spaces +33 1 42 86 83 26 # French format +91 98765 43210 # Indian format 001 (415) 555-2671 # US with IDD prefix ``` ## 📧 邮箱情报

### 零配置下您将获得什么 每次邮箱查询都会立即进行离线分析,然后同时扩展到免费数据源。
| 面板 | 显示内容 | |---|---| | **身份标头** | 已确认的姓名 (Gravatar) 或推断的姓名 (用户名模式) · 头像照片 · 位置 · 威胁评分条 | | **威胁评分** | 0-100 风险分数 — 泄露次数 · 密码风险等级 · 时效性 · 信誉信号 | | **泄露数据库** | 来自 XposedOrNot 的真实泄露结果 — 1000+ 个数据库 · 无需 API 密钥 | | **泄露详情** | 每次泄露:名称 · 年份 · 记录数量 · 暴露的数据类型 · 密码风险等级 (明文 / 易破解 / 哈希) | | **风险标志** | 发现明文密码或可破解哈希时出现严重警告横幅 | | **邮箱分类** | 提供商类型 (企业/免费/一次性/隐私/政府/教育) · 一次性邮箱检测 (300+ 个域名) · 角色地址检测 | | **Gravatar 资料** | 显示名称 · 用户名 · 位置 · 关于 · 关联的社交账号 — 免费,无需密钥 | | **信誉** | EmailRep.io 信号:可疑 · 被列入黑名单 · 恶意活动 · 凭证泄露 · 垃圾邮件 · 首次/最近出现时间 · 已注册平台 | | **验证** | AbstractAPI:可投递性 · 质量得分 (0-1) · SMTP 有效性 · MX 记录 · 全局收件检测 | | **可投递性** | Hunter.io:可投递/有风险/不可投递 · 置信度得分 · SMTP 检查 | | **OSINT 矩阵** | 涵盖 4 个类别的 25 个调查链接 | | **报告导出** | 完整的情报报告导出为 `.txt`,包含所有泄露详情 |
### 泄露情报 — XposedOrNot 这是面向渗透测试人员的核心功能。XposedOrNot 聚合了 1000+ 个泄露数据库并返回: - 邮箱具体出现在**哪些泄露事件**中 (例如 LinkedIn 2012,Adobe 2013 等) - 每次泄露中被盗的**数据内容** (密码 · 用户名 · 电话号码 · 信用卡……) - 每次泄露事件的**密码风险等级**: - `PLAINTEXT` — 凭证已完全泄露。假定所有重复使用的密码均已被知晓。 - `EASY CRACK` — MD5/SHA1 哈希,可使用 Hashcat/彩虹表在数小时内破解 - `HASHED` — bcrypt/SHA-256,破解难度显著增加 - **记录数量** — 泄露规模有多大 - **验证状态** — 泄露事件是否已被确认为真实 无需 API 密钥。免费使用。 ### 邮箱 OSINT 切入点 — 25 个链接,4 个类别
| 类别 | 服务 | |---|---| | **泄露 / 凭证暴露** | HaveIBeenPwned · IntelligenceX · Dehashed · LeakCheck · Snusbase · BreachDirectory | | **身份 / OSINT 关联** | Epieos · Gravatar · EmailRep.io · That's Them · Hunter.io 域名搜索 · Pipl | | **社交媒体 / 开放网络** | Google dorks (LinkedIn · Twitter · Facebook · GitHub) · GitHub 提交搜索 · Bing · Pastebin | | **域名 / 基础设施** | MXToolbox · WHOIS · ViewDNS · Spamhaus · SecurityTrails · Shodan |
### 接受的邮箱格式 ``` user@domain.com first.last@corporate.org user+tag@provider.net ``` ## 🔑 可选 API 增强

该应用程序无需任何 API 密钥即可完全运行。在 `..local` 中添加密钥可获取更深度的情报。 ### 电话增强
| 服务 | 增加的功能 | 免费额度 | |---|---|---| | **IPQualityScore** | 欺诈分数 · VoIP 标志 · 近期滥用 · 风险标志 · 预付费 · 活跃状态 · 用户活动 · 城市 · 关联邮箱 | 200次/天 | | **NumVerify** | 运营商名称 · 线路类型 · 位置 | 100次/月 | | **AbstractAPI** (电话) | 运营商 · 线路类型 · 国家 | 250次/月 | | **Twilio Lookup v2** | 运营商名称 · 所有者/CNAM · MCC · MNC | 约 $0.005/次查询 |
### 邮箱增强
| 服务 | 增加的功能 | 免费额度 | |---|---|---| | **Hunter.io** | 邮箱可投递性 · 置信度得分 · SMTP 检查 | 25次/月 | | **AbstractAPI** (邮箱) | SMTP 有效性 · MX 记录 · 质量得分 · 全局收件检测 | 250次/月 | | **EmailRep.io** | 信誉 · 泄露标志 · 平台注册情况 — 即使没有密钥也能工作 | 使用密钥可获得更高配额 |
``` # .env.local — 添加任意或全部,留空以跳过 # Phone sources NUMVERIFY_API_KEY= IPQS_API_KEY= ABSTRACT_API_KEY= TWILIO_ACCOUNT_SID= TWILIO_AUTH_TOKEN= # Email sources HUNTER_API_KEY= EMAILREP_API_KEY= ``` 注册地址:[IPQualityScore](https://www.ipqualityscore.com) · [NumVerify](https://numverify.com) · [AbstractAPI](https://www.abstractapi.com) · [Twilio](https://www.twilio.com) · [Hunter.io](https://hunter.io) · [EmailRep.io](https://emailrep.io) ## ⚙️ 工作原理

### 电话查询 ``` Browser → POST /api/lookup { number: "+14155552671" } │ ├─ libphonenumber-js (always, offline) │ parse · validate · format (E.164 / national / international / RFC3966) │ detect type: mobile / fixed / VoIP / toll-free / premium / pager │ ambiguous type (FIXED_LINE_OR_MOBILE) flagged — never falsely claimed │ IANA timezone derived from 110-country bundled map │ area code extracted per country-specific rules │ NXX central office code from subscriber portion │ ├─ US/CA NPA database (always, offline) │ 350+ area codes → state · region · timezone · country │ ├─ Bundled country dataset (always, offline) │ capital · currency · languages · driving side · emergency number │ population · GDP · internet users · timezones │ └─ Optional API fan-out (Promise.allSettled — one failure ≠ total failure) NumVerify → carrier name, line type, location IPQualityScore → fraud score, prepaid, active, abuse, MCC, city AbstractAPI → carrier, line type Twilio Lookup → carrier, line type, owner/CNAM, MCC/MNC ``` ### 邮箱查询 ``` Browser → POST /api/email-lookup { email: "target@domain.com" } │ ├─ Offline analysis (always, instant) │ disposable domain detection (300+ domains) │ free webmail / privacy provider / role address classification │ username pattern analysis → inferred name (john.smith → "John Smith") │ provider classification: corporate / free / educational / gov / privacy / disposable │ └─ Free source fan-out (Promise.allSettled — parallel, resilient) Gravatar → MD5 hash → real name, avatar, location, linked accounts (free, no key) XposedOrNot → breach database lookup — 1000+ sources (free, no key) EmailRep.io → reputation, breach flags, platform registrations (free, no key) AbstractAPI → SMTP/MX validation, quality score (ABSTRACT_API_KEY) Hunter.io → deliverability check, confidence score (HUNTER_API_KEY) ``` **缓存:** 结果会在内存中缓存 24 小时(最多 500 个条目,LRU 淘汰策略)。重复查询瞬间完成。 **速率限制:** 每个 IP 每分钟 10 次请求。超出限制时返回 HTTP 429。 ## ✅ 数据准确性

### 电话 — 始终准确(离线,零 API) - 国家 · 国家区号 · 国旗 emoji - 号码有效性 (libphonenumber-js 严格验证) - 号码类型 — 手机 / 固话 / VoIP / 免费电话 / 付费电话 / 寻呼机 / 个人号码 - 歧义类型:`FIXED_LINE_OR_MOBILE` 显示为 "TYPE AMBIGUOUS" — 绝不虚假宣称 - IANA 时区 + UTC 偏移量 (110+ 个国家/地区) - 区号 — 仅提取 US/CA · GB · DE · FR · AU · IT · ES · PL · NL - NXX 中心局代码 — 来自用户部分,而非区号 - 所有 4 种号码格式 - 每个国家/地区的预期数字长度 - 州/省 · 大都市区 · US/CA 当地时区 (NPA 数据库) ### 邮箱 — 离线分析(零 API) - 一次性提供商检测 (300+ 个一次性邮箱服务) - 注重隐私的提供商检测 (ProtonMail · Tutanota · Riseup · 等等) - 免费 Web 邮箱检测 (Gmail · Outlook · Yahoo · iCloud · 等等) - 角色地址检测 (admin@ · support@ · info@ · noreply@ · 等等) - 提供商名称解析 (50+ 个已知提供商) - 政府/军事机构检测 (.gov · .mil · .gov.uk · .gov.au) - 教育机构检测 (.edu · .ac.uk · .edu.au · .ac.in) - 基于用户名模式的姓名推断 (`john.smith` → "John Smith") ## 🔒 安全性

| 控制措施 | 实现方式 | |---|---| | **API 密钥隔离** | 所有外部调用均在服务器端 API 路由中进行 — 密钥永远不会离开服务器。已验证:`grep -r "process.env" .next/static/` 不返回任何内容。 | | **安全标头** | `X-Frame-Options: DENY` · `X-Content-Type-Options: nosniff` · `Referrer-Policy` · `Permissions-Policy` (拦截地理位置/摄像头/麦克风) · `Content-Security-Policy` | | **无跟踪** | 仅从号码/电子邮件结构和公共数据库中提取元数据。不进行地理位置定位,不进行设备跟踪。 | | **速率限制** | 10 次请求/分钟/IP — 防止批量抓取和滥用 | | **安全依赖** | `libphonenumber-js` 是 Google 的 libphonenumber 编译为 JS 的版本。不包含遥测包。 |
## 📁 项目结构

``` app/ ├── api/ │ ├── lookup/route.ts ← Phone POST endpoint — parse, analyze, fan-out, aggregate │ └── email-lookup/route.ts ← Email POST endpoint — Gravatar, XON, EmailRep, Abstract, Hunter ├── layout.tsx ← Root layout — JetBrains Mono, meta tags, OG/Twitter cards ├── page.tsx ← Main page — mode switcher, boot sequence, input, results ├── not-found.tsx ← Custom 404 (matrix theme) ├── robots.ts ← robots.txt └── globals.css ← Matrix/terminal theme, CRT scanlines, shadcn overrides components/ │ │ ── Shared ────────────────────────────────────────────────────────── ├── MatrixRain.tsx ← Canvas katakana background animation ├── BootSequence.tsx ← Staggered terminal init (Framer Motion) ├── LoadingSkeletons.tsx ← Matrix-pulsing skeleton loaders │ │ ── Phone ──────────────────────────────────────────────────────────── ├── PhoneInput.tsx ← 250+ country combobox + AsYouType formatter + validation ├── ResultsDashboard.tsx ← All phone result panels — no N/A cards ├── PentesterPanel.tsx ← Live clock, call window, NPA intel, attack surface flags ├── MetricCard.tsx ← Animated metric tile ├── FraudScoreBar.tsx ← Animated 0–100 fraud score bar ├── NumberBreakdown.tsx ← Visual digit structure breakdown ├── NumberPermutations.tsx ← 11 format variants for OSINT database searching ├── DorkGenerator.tsx ← 18 pre-built Google dorks with copy + open buttons ├── OsintPivots.tsx ← 38 investigation links across 6 categories ├── SimIntelPanel.tsx ← SIM intelligence — owner, prepaid, active, MCC/MNC ├── QrCodePanel.tsx ← Canvas QR code for tel: URI ├── CountryPanel.tsx ← Bundled country intelligence display ├── FormatPanel.tsx ← Format cross-reference + validation matrix ├── HistorySidebar.tsx ← localStorage history drawer (last 20 lookups) ├── ShareButton.tsx ← Copies ?q= shareable URL to clipboard ├── SourceTabs.tsx ← Raw JSON per API source └── ReportExport.tsx ← Download report as .txt or .html │ │ ── Email ──────────────────────────────────────────────────────────── ├── EmailInput.tsx ← Email input with regex validation + status line ├── EmailResultsDashboard.tsx ← Full email results — threat score, breach, identity, reputation ├── BreachPanel.tsx ← Per-breach detail, password risk, warnings └── EmailOsintPivots.tsx ← 25 investigation links across 4 categories lib/ ├── phoneAnalysis.ts ← Offline phone engine (110+ country timezone map, area codes, NXX) ├── emailAnalysis.ts ← Offline email engine (classification, name inference) ├── countryIntel.ts ← Bundled dataset for 40+ countries (zero API) ├── usNpaDatabase.ts ← US/CA NPA area code database (350+ entries, offline) ├── disposableEmailDomains.ts ← 300+ disposable domains + webmail + privacy + role prefix sets ├── types.ts ← Full TypeScript interface tree (phone + email) ├── cache.ts ← 24h in-memory Map cache ├── rateLimit.ts ← Token-bucket rate limiter (10/min/IP) ├── flagEmoji.ts ← Country code → emoji flag └── utils.ts ← Tailwind merge helper ``` ## ⚡ 技术栈

| 层级 | 技术 | |---|---| | **框架** | Next.js 15 (App Router) | | **语言** | TypeScript — 为所有数据类型提供完整的接口树 | | **电话解析** | `libphonenumber-js` — Google 的 libphonenumber 编译为 JS 的版本 | | **UI** | Tailwind CSS · shadcn/ui 组件 | | **动画** | Framer Motion (启动序列) · Canvas API (片假名雨 · 二维码) | | **泄露数据** | XposedOrNot (免费 · 无需密钥) | | **资料数据** | Gravatar (免费 · 无需密钥) | | **信誉** | EmailRep.io (免费 · 无需密钥) | | **电话增强** | IPQualityScore · NumVerify · AbstractAPI · Twilio (皆为可选) | | **邮箱增强** | Hunter.io · AbstractAPI (皆为可选) | | **缓存** | 内存 Map · LRU 淘汰 · 24小时 TTL · 最多 500 个条目 | | **速率限制** | 基于 IP 的令牌桶算法 · 10 次请求/分钟 | | **字体** | JetBrains Mono (等宽字体) · 系统无衬线字体用于正文 |
## 📜 可用脚本

| 命令 | 作用 | |---|---| | `bash start.sh` | 一键执行:安装依赖 · 注册全局命令 · 启动开发服务器 | | `npm run setup` | 与上述相同,npm 版本 | | `npm run install-global` | 在 `~/.zshrc` 中注册 `geointel` shell 命令 | | `npm run dev` | 启动开发服务器 (需先执行 `npm install`) | | `npm run build` | 生产环境构建 | | `npm run start` | 启动生产服务器 (需先执行 `npm run build`) | | `npm run lint` | ESLint 检查 |
## 🔧 故障排除

### 端口 3000 已被占用 `start.sh` 会自动检测下一个可用端口并打印正确的 URL。无需任何手动操作。 ### 电话号码显示为 INVALID 请包含完整的国际区号:美国/加拿大使用 `+1`,英国使用 `+44` 等。或者从下拉组合框中选择国家——它将自动格式化号码。 ### 运营商 / 欺诈分数未显示 这些字段需要在 `.env.local` 中配置 API 密钥。国家、类型、时区以及所有格式数据在没有任何密钥的情况下始终会显示。 ### 邮箱泄露面板未显示数据 XposedOrNot 可能会限制频繁的查询请求。请稍候片刻后重试。干净的结果("未发现暴露")也是一种有效且良好的结果。 ### `npm run dev` 失败并提示 MODULE_NOT_FOUND 请改用 `bash start.sh` 或 `npm run setup`。两者都通过 `node node_modules/next/dist/bin/next` 调用 Next.js,从而绕过符号链接问题。 ## ⚠️ 免责声明

⭐ 如果这个项目对您有帮助,请在 GitHub 上给它点个 Star!

Stars Forks Watchers

标签:DInvoke, DNS解析, ESC4, OSINT, TypeScript, 威胁情报, 安全情报, 安全插件, 实时处理, 开发者工具, 开源安全工具, 开源项目, 电话情报, 网络防御分析, 自动化攻击, 谷歌黑客(Google Dork), 逆向工程平台, 邮箱情报, 零API密钥