本地优先、键盘驱动的终端 OSINT 工作台,包含 28 个模块,涵盖用户名、域名、IP、邮箱、泄露和地理位置查询,并支持 SQLite 案件存储。
h-osint)一个本地优先、键盘驱动的终端 OSINT 工作台 —— Neovim 风格键位、Lua 配置、12 款主题,以及本地 SQLite 案件 存储。无账号、无云后端、无遥测。
kitty ~ » h-osint
仓库:
h-osint· 二进制:h-osint· 网站:https://t-beckett.gitlab.io/h-osint/
h-osint 完全在你的机器上运行。案件笔记、马甲账号 追踪,以及每次查询的发现结果都存放在一个本地 SQLite 文件中 —— 没有服务器组件、没有同步,这个工具所做的任何事情都不会将你的 案件数据上传到任何地方。每个与第三方服务通信的模块 (HaveIBeenPwned、Shodan、WiGLE、Nominatim、RDAP、crt.sh、NVD、Team Cymru、 ip-api.com)在需要时都使用你自己的 API 密钥,并且 仅因为你运行了那次特定查询才会通信。
因为优秀的 OSINT 技术参考资料(TCM Security 的 OSINT Fundamentals、 TCM OSINT 资源列表) 并不附带任何软件,而现有的软件要么是一堆 单一用途的 CLI 脚本(Sherlock、theHarvester……),要么是重量级 GUI(Maltego)。h-osint 借鉴了终端应用 生态中那些已经显得高级的部分,并围绕这些知名技术 构建了一个连贯的工作台:
| 借鉴自 | 我们采用的部分 |
|---|---|
| lazydocker | 基于面板的布局、底部键位提示栏、完全可主题化 |
| tuicr | Vim 原生模态导航、Rust、单一静态二进制文件 |
| superfile | 多标签模型、12 款内置主题、“一切都显得精雕细琢”的质感 |
| Sherlock / Maigret | 跨平台用户名扫描技术(在此重新实现,而非内嵌) |
| SpiderFoot / recon-ng | 在统一一致的界面 + 自动化流水线背后编排众多被动 OSINT API/工具 |
它不是为以下用途构建的,并有意省略了任何其唯一
现实用途是跟踪、骚扰、未经授权入侵,或处理
被盗凭据转储的功能 —— 关于这些界限具体划在哪里以及
为什么,请参见 docs/ETHICS.md。
git clone https://gitlab.com/t-beckett/h-osint.git
cd h-osint
# Build prerequisites: a C compiler + linker (for the bundled SQLite and
# vendored Lua) and pkg-config. On Debian/Ubuntu:
sudo apt install build-essential pkg-config
cargo build --release
./target/release/h-osint # launches the TUI
./target/release/h-osint --help # see the scriptable subcommands
可选的外部工具可解锁 Tools 屏幕的更多功能:whois
(RDAP 不支持的 TLD 回退)、dig(DNS 记录 + AXFR 检查)、
exiftool、nmap、openssl、curl。没有它们应用也能正常运行 —— 它会
告诉你缺少什么,而不是静默失败。
首次运行时,h-osint 会为你将一份带完整注释的默认配置写入
~/.config/h-osint/init.lua(如果那里还没有的话)——
无需手动复制任何内容。打开该文件即可设置你的主题、API
密钥、自定义主题和键位映射覆盖。其中没有任何内容是必需的;
每个字段都有合理的默认值,每个需要密钥的模块都会告诉你
而不是静默失败。(本仓库中附带的 config/init.lua 就是所使用的
确切模板 —— 如果你不想先启动应用,可以在这里阅读它。)
全部 22 项最初规划的 OSINT 能力,外加 6 个扩展工具 —— 完整
状态/模块映射见 docs/FEATURES.md:
笔记与案件文件 · 马甲账号 / 人设管理器 · 搜索引擎 dork 构建器 · 反向图片搜索交接 · 带 Kitty 协议内联预览的 EXIF 查看器 · 物理位置与地理定位工具 · 电子邮件 OSINT (格式/MX/Gravatar)· 泄露数据 OSINT(HaveIBeenPwned 泄露 + 粘贴)· 人物 OSINT · 电话号码 OSINT · Sherlock 风格用户名 OSINT · 网站 OSINT(DNS、RDAP、crt.sh、Wayback、SPF/DMARC/DKIM、 robots.txt/sitemap)· 社交媒体 OSINT · 无线网络 OSINT(WiGLE) · IP OSINT(地理定位、反向 DNS、通过 Team Cymru 的 ASN/BGP、RDAP)· MAC OSINT · 外部工具编排 · 自动化流水线 · Markdown 报告撰写 · 底层安全 OSINT(TLS 证书、安全头)· 外加 Shodan 主机情报、哈希识别器、URL 重定向 展开器、CVE/NVD 查询、抢注/仿冒域名扫描器,以及 DNS 区域传送(AXFR)配置错误检查。
三种模式,Neovim 风格 —— 完整表格见
KEYBINDINGS.md:
| 按键 | 普通模式 |
|---|---|
j/k、↑/↓ | 在列表内移动 |
i | 进入插入模式(在聚焦字段中输入) |
Esc | 返回普通模式 |
: | 命令模式(:theme nord、:open username、:case new "Acme intake"、:q)—— 按 Tab 循环补全命令名或其参数 |
r / Enter | 运行当前屏幕的操作 |
Tab / Shift-Tab | 切换标签页 |
ctrl-t / ctrl-w | 新建标签页(Home)/ 关闭标签页 |
[ / ] | 上一个 / 下一个主题 |
? | 切换帮助 |
:q | 退出(这是唯一的退出方式 —— 没有裸 q 绑定,因此它永远不会是误按的键) |
以上所有内容都可以从 init.lua 覆盖。随时按 ? 查看
应用内速查表。
:theme <name> 或在 init.lua 中设置 theme —— 完整调色板表和
自定义主题格式见 THEMES.md:
ocean-depths · forest-canopy · modern-minimalist · arctic-frost ·
botanical-garden · midnight-galaxy · nord · catppuccin-frappe ·
everforest · gruvbox · onedark · tokyonight (默认)
每个主题都映射相同的 12 个语义角色(bg/fg/accent/danger/……)
—— 没有任何屏幕会按名称对某个主题做特殊处理 —— 而且你可以完全在 init.lua 中
定义自己的主题,无需触碰 Rust 代码。
每个模块的核心逻辑都可以无头访问,因此你可以将其管道传输到 其他工具,或从 cron 运行:
h-osint username johndoe
h-osint domain example.com
h-osint ip 8.8.8.8
h-osint asn 8.8.8.8
h-osint email [email protected]
h-osint mac AA:BB:CC:DD:EE:FF
h-osint phone "+1 555 0100"
h-osint dork --site example.com --filetype pdf "quarterly report"
h-osint breach [email protected] --api-key YOUR_HIBP_KEY
h-osint shodan 1.2.3.4 --api-key YOUR_SHODAN_KEY
h-osint hash 5f4dcc3b5aa765d61d8327deb882cf99
h-osint expand https://bit.ly/example
h-osint cve CVE-2024-3094
h-osint typosquat example.com
h-osint security example.com
h-osint axfr example.com ns1.example.com
h-osint pipeline example.com --steps domain,ip --case 1
h-osint report 1 --out case-1.md
src/
main.rs, cli.rs entry point + headless CLI
app.rs tab/mode state machine, :command execution
config.rs, keymap.rs Lua config loading, modal keybind resolution
themes/mod.rs 12 built-in themes + custom-theme support
db.rs SQLite case/notes/findings/personas storage
ui/ tab bar, status bar (mode pill), help popup
modules/
notes.rs, sockpuppet.rs full modules (state + DB + UI)
dork.rs, exif.rs, username.rs full modules (logic + UI)
domain.rs, network.rs, pure OSINT logic (no UI — see
identity.rs, geo.rs lookup.rs for the shared screen)
lookup.rs generic single-input screen used by
Domain/IP/MAC/Email/Phone/Breach/Geo/
Wireless/People/Social/Shodan/Hash/
UrlExpand/Cve/Typosquat/Security/Axfr/
ReverseImage
tools.rs, automation.rs, report.rs full modules
docs/
ARCHITECTURE.md how it's wired together + where to extend it
FEATURES.md every requested + extended feature -> module mapping
ETHICS.md responsible-use scope and why some modules are limited
THEMES.md full palette table + how to define a custom theme
KEYBINDINGS.md the complete keybind + command reference
CONTRIBUTING.md dev setup, how to add a module, commit style
SECURITY.md responsible-disclosure policy for this tool itself
CODE_OF_CONDUCT.md
CHANGELOG.md
config/init.lua example config
site/ source for the project website (published via GitLab Pages)
.gitlab-ci.yml build/lint/test + Pages deploy
site/ 存放静态项目主页;.gitlab-ci.yml 在每次推送时构建并
检查,并在默认分支上将 site/ 发布到 GitLab Pages,
地址为 https://t-beckett.gitlab.io/h-osint/。
本项目最初是在一个无法访问网络、无法针对 crates.io 运行
cargo build 的环境中搭建的。每一行都经过了人工审查以确保
正确性(类型、借用检查器形态、对照文档化 crate 版本的 API 签名),
但请将全新克隆后的首次 cargo build 视为真正的验证步骤 —— CI 流水线会在每次推送时运行它、cargo clippy
和 cargo test,因此 main 分支上的绿色流水线才是实际的
保证。关于最值得再看一眼的具体位置(MAC OUI 表覆盖范围、电话
解析精度、ASN 响应解析),请参见 docs/ARCHITECTURE.md 的
“Known gaps”部分。
MIT —— 见 LICENSE。© T. Beckett。