
ターミナル向けのローカルファーストでキーボード駆動のOSINTワークベンチ。ユーザー名、ドメイン、IP、メール、漏洩、位置情報の検索をカバーする28のモジュールとSQLiteケースストレージを備える。
h-osint)ターミナル向けのローカルファースト、キーボード駆動のOSINTワークベンチ — Neovimスタイルのキーバインド、Lua設定、12テーマ、ローカルSQLiteケース ストア。アカウント不要、クラウドバックエンド不要、テレメトリなし。
kitty ~ » h-osint
リポジトリ:
h-osint· バイナリ:h-osint· ウェブサイト: https://t-beckett.gitlab.io/h-osint/
h-osintは完全にあなたのマシン上で動作します。ケースノート、 ソックパペットの追跡、そしてすべてのルックアップの調査結果は1つのローカル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は、すでにプレミアムに感じられる ターミナルアプリエコシステムの部分を取り入れ、よく知られたテクニックの周りに 1つの一貫したワークベンチを構築します:
| 借用元 | 取り入れたもの |
|---|---|
| lazydocker | パネルベースのレイアウト、下部のキーバインドヒントバー、完全にテーマ化可能 |
| tuicr | Vimネイティブのモーダルナビゲーション、Rust、単一の静的バイナリ |
| superfile | マルチタブモデル、12の同梱テーマ、「すべてがこだわり抜かれて見える」洗練 |
| Sherlock / Maigret | クロスプラットフォームのユーザー名スイープ手法 (ここで再実装、ベンダリングはしていない) |
| SpiderFoot / recon-ng | 多数のパッシブOSINT API/ツールを1つの一貫したインターフェース + 自動化パイプラインの背後でオーケストレーション |
これは、ストーキング、ハラスメント、不正侵入、または盗まれた
認証情報ダンプの扱いのみが現実的な用途であるもののために作られておらず、意図的にそれらを省いています —
それらの線引きがどこにあり、なぜそうなのかの正確な説明は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のbreaches + pastes) · 人物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) 設定ミスチェック。
3つのモード、Neovim風 — 完全な表は
KEYBINDINGS.mdにあります:
上記はすべて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/...)
をマッピングします — どの画面もテーマを名前で特別扱いすることはありません — そしてRustコードに触れることなく、
init.luaで完全に独自のテーマを定義できます。
すべてのモジュールのコアロジックはヘッドレスで到達可能なので、他のツールに パイプしたり、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するためのネットワーク
アクセスのない環境でスキャフォールドされました。すべての行は正確性
(型、ボローチェッカーの形、文書化されたクレートバージョンに対するAPIシグネチャ) について手作業でレビューされましたが、
新しくクローンした際の最初のcargo buildを実際の検証ステップとして扱ってください — CIパイプラインはすべてのプッシュでそれを、cargo clippy、
そしてcargo testを実行するので、mainでのグリーンなパイプラインが実際の
保証です。特にもう一度見る価値のある具体的な箇所 (MAC OUIテーブルのカバレッジ、電話
解析の精度、ASNレスポンスの解析) についてはdocs/ARCHITECTURE.mdの「Known gaps」セクションを参照してください。
MIT — LICENSEを参照。© T. Beckett.
| キー | ノーマルモード |
|---|
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バインドはないので、打ち間違いのキーになることは決してない) |