
Lokale, tastaturgesteuerte OSINT-Workbench für das Terminal mit 28 Modulen für Username-, Domain-, IP-, E-Mail-, Breach- und Geolocation-Abfragen sowie SQLite-Fallspeicherung.
h-osint)Eine lokale, tastaturgesteuerte OSINT-Werkbank für das Terminal — Neovim-artige Tastenkürzel, Lua-Konfiguration, 12 Themes und ein lokaler SQLite-Fall-Speicher. Kein Account, kein Cloud-Backend, keine Telemetrie.
kitty ~ » h-osint
Repository:
h-osint· Binary:h-osint· Website: https://t-beckett.gitlab.io/h-osint/
h-osint läuft vollständig auf deiner Maschine. Fallnotizen, Sock-Puppet-Tracking und die Ergebnisse jeder Suche liegen in einer einzigen lokalen SQLite-Datei — es gibt keine Serverkomponente, keine Synchronisierung, und nichts, was dieses Tool tut, lädt deine Falldaten irgendwohin hoch. Jedes Modul, das mit einem Drittanbieterdienst kommuniziert (HaveIBeenPwned, Shodan, WiGLE, Nominatim, RDAP, crt.sh, NVD, Team Cymru, ip-api.com), tut dies mit deinem eigenen API-Schlüssel, wo einer erforderlich ist, und nur, weil du genau diese Suche ausgeführt hast.
Weil die guten OSINT-Technik-Referenzen (TCM Securitys OSINT Fundamentals, die TCM OSINT-Ressourcenliste) keine Software mitliefern, und die existierende Software entweder ein Haufen zweckgebundener CLI-Skripte (Sherlock, theHarvester, ...) oder eine schwergewichtige GUI (Maltego) ist. h-osint leiht sich die Teile des Terminal-App-Ökosystems, die sich bereits hochwertig anfühlen, und legt eine kohärente Werkbank um die bekannten Techniken herum:
| Übernommen von | Was wir übernommen haben |
|---|---|
| lazydocker | Panel-basiertes Layout, untere Tastenkürzel-Hinweisleiste, vollständig themebar |
| tuicr | Vim-native modale Navigation, Rust, einzelnes statisches Binary |
| superfile | Multi-Tab-Modell, 12 mitgelieferte Themes, „alles sieht bis ins Detail durchdacht aus"-Politur |
| Sherlock / Maigret | Die plattformübergreifende Username-Sweep-Technik (hier neu implementiert, nicht eingebunden) |
| SpiderFoot / recon-ng | Orchestrierung vieler passiver OSINT-APIs/Tools hinter einer konsistenten Oberfläche + Automatisierungspipelines |
Es ist nicht dafür gebaut und lässt bewusst alles weg, dessen einzige
realistische Verwendung Stalking, Belästigung, unbefugtes Eindringen oder die
Arbeit mit gestohlenen Credential-Dumps ist — siehe docs/ETHICS.md für
genau die Grenzen und deren Begründung.
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
Optionale externe Tools, die mehr vom Tools-Bildschirm freischalten: whois
(RDAP-nicht-unterstützter-TLD-Fallback), dig (DNS-Records + AXFR-Check),
exiftool, nmap, openssl, curl. Die App läuft auch ohne sie — sie
sagt dir, was fehlt, statt still zu scheitern.
Beim ersten Start schreibt h-osint eine vollständig kommentierte
Standardkonfiguration nach ~/.config/h-osint/init.lua für dich (falls dort
noch nichts ist) — es gibt nichts, was du von Hand kopieren müsstest. Öffne
diese Datei, um dein Theme, API-Schlüssel, eigene Themes und
Tastenzuordnungs-Überschreibungen festzulegen. Nichts darin ist
erforderlich; jedes Feld hat einen vernünftigen Standardwert und jedes Modul,
das einen Schlüssel benötigt, sagt dir das, statt still zu scheitern. (Die
mitgelieferte config/init.lua in diesem Repo ist genau die verwendete
Vorlage — lies sie hier, wenn du die App lieber nicht zuerst starten
möchtest.)
Alle 22 ursprünglich vorgesehenen OSINT-Fähigkeiten plus 6 erweiterte Tools —
vollständige Status-/Modul-Zuordnung in docs/FEATURES.md:
Notizen & Falldateien · Sock-Puppet-/Persona-Manager · Suchmaschinen-Dork- Builder · Reverse-Image-Search-Übergabe · EXIF-Viewer mit Kitty-Protokoll- Inline-Vorschau · Werkzeuge für physische Standorte & Geolokalisierung · E-Mail-OSINT (Format/MX/Gravatar) · OSINT zu geleakten Daten (HaveIBeenPwned Breaches + Pastes) · Personen-OSINT · Telefonnummern-OSINT · Sherlock-artiges Username-OSINT · Website-OSINT (DNS, RDAP, crt.sh, Wayback, SPF/DMARC/DKIM, robots.txt/sitemap) · Social-Media-OSINT · WLAN-OSINT (WiGLE) · IP-OSINT (Geolokalisierung, Reverse DNS, ASN/BGP via Team Cymru, RDAP) · MAC-OSINT · Orchestrierung externer Tools · Automatisierungspipelines · Markdown- Berichtserstellung · Low-Level-Security-OSINT (TLS-Zertifikate, Security Headers) · plus Shodan-Host-Intelligence, einen Hash-Identifier, einen URL-Redirect-Expander, eine CVE/NVD-Suche, einen Typosquat-/Look-alike- Domain-Scanner und eine DNS-Zonentransfer-(AXFR)-Fehlkonfigurationsprüfung.
Drei Modi, im Neovim-Stil — vollständige Tabelle in
KEYBINDINGS.md:
| Taste | Normalmodus |
|---|---|
j/k, ↑/↓ | innerhalb einer Liste bewegen |
i | Insert-Modus betreten (in das fokussierte Feld tippen) |
Esc | zurück zum Normalmodus |
: | Kommandomodus (:theme nord, :open username, :case new "Acme intake", :q) — Tab drücken, um Vervollständigungen für den Befehlsnamen oder sein Argument zu durchlaufen |
r / Enter | die Aktion des aktuellen Bildschirms ausführen |
Tab / Shift-Tab | Tabs wechseln |
ctrl-t / ctrl-w | neuer Tab (Home) / Tab schließen |
[ / ] | vorheriges / nächstes Theme |
? | Hilfe umschalten |
:q | beenden (dies ist der einzige Weg zu beenden — keine bloße q-Bindung, damit es nie eine vertippte Taste sein kann) |
Alles oben Genannte ist über init.lua überschreibbar. Drücke jederzeit ?
für den In-App-Spickzettel.
:theme <name> oder setze theme in init.lua — vollständige Palettentabelle
und das Format für eigene Themes in THEMES.md:
ocean-depths · forest-canopy · modern-minimalist · arctic-frost ·
botanical-garden · midnight-galaxy · nord · catppuccin-frappe ·
everforest · gruvbox · onedark · tokyonight (Standard)
Jedes Theme bildet dieselben 12 semantischen Rollen ab (bg/fg/accent/danger/...)
— kein Bildschirm behandelt ein Theme jemals namentlich als Sonderfall — und du
kannst dein eigenes vollständig in init.lua definieren, ohne Rust-Code
anzufassen.
Die Kernlogik jedes Moduls ist headless erreichbar, sodass du sie in andere Tools pipen oder aus cron heraus ausführen kannst: