
Workbench OSINT local-first, guidato da tastiera, per il terminale con 28 moduli che coprono ricerche di username, dominio, IP, email, violazioni e geolocalizzazione, oltre all'archiviazione dei casi in SQLite.
h-osint)Un workbench OSINT locale-first, guidato da tastiera, per il terminale — keybind in stile Neovim, configurazione Lua, 12 temi e un archivio locale di casi su SQLite. Nessun account, nessun backend cloud, nessuna telemetria.
kitty ~ » h-osint
Repository:
h-osint· Binario:h-osint· Sito web: https://t-beckett.gitlab.io/h-osint/
h-osint gira interamente sulla tua macchina. Note dei casi, tracciamento dei sock-puppet e i risultati di ogni lookup vivono in un unico file SQLite locale — non esiste alcun componente server, nessuna sincronizzazione e nulla di ciò che fa questo strumento carica i dati dei tuoi casi da nessuna parte. Ogni modulo che comunica con un servizio di terze parti (HaveIBeenPwned, Shodan, WiGLE, Nominatim, RDAP, crt.sh, NVD, Team Cymru, ip-api.com) lo fa con la tua chiave API dove richiesta, e solo perché hai eseguito tu quel lookup specifico.
Perché i buoni riferimenti sulla tecnica OSINT (il corso OSINT Fundamentals di TCM Security, la lista di risorse OSINT di TCM) non forniscono alcun software, e il software esistente è o un mucchio di script CLI monoscopo (Sherlock, theHarvester, ...) o una GUI pesante (Maltego). h-osint prende in prestito le parti dell'ecosistema delle applicazioni da terminale che già sembrano premium e costruisce un unico workbench coerente attorno alle tecniche note:
Non è costruito per, e omette deliberatamente, qualsiasi cosa il cui unico
uso realistico sia stalking, molestie, intrusione non autorizzata o lavorare
con dump di credenziali rubate — vedi docs/ETHICS.md per dove esattamente
vengono tracciati quei confini e perché.
git clone https://gitlab.com/t-beckett/h-osint.git
cd h-osint
# Prerequisiti di build: un compilatore C + linker (per SQLite incluso e
# Lua vendorizzato) e pkg-config. Su Debian/Ubuntu:
sudo apt install build-essential pkg-config
cargo build --release
./target/release/h-osint # avvia la TUI
./target/release/h-osint --help # mostra i sottocomandi scriptabili
Strumenti esterni opzionali che sbloccano più funzionalità della schermata Tools: whois
(fallback per TLD non supportati da RDAP), dig (record DNS + controllo AXFR),
exiftool, nmap, openssl, curl. L'app funziona bene senza di essi — ti
dice cosa manca invece di fallire silenziosamente.
Al primo avvio, h-osint scrive per te una configurazione predefinita
completamente commentata in ~/.config/h-osint/init.lua (se non c'è ancora
nulla) — non c'è nulla da copiare a mano. Apri quel file per impostare tema,
chiavi API, temi personalizzati e override delle keymap. Nulla in esso è
obbligatorio; ogni campo ha un default sensato e ogni modulo che necessita di
una chiave te lo dice invece di fallire silenziosamente. (Il file
config/init.lua incluso in questo repo è esattamente il template usato —
leggilo qui se preferisci non avviare prima l'app.)
Tutte le 22 capacità OSINT originariamente previste più 6 strumenti estesi —
mappatura completa stato/modulo in docs/FEATURES.md:
Note e file dei casi · gestore sock puppet / persona · costruttore di dork per motori di ricerca · handoff per reverse image search · visualizzatore EXIF con anteprima inline tramite protocollo Kitty · strumenti di localizzazione fisica e geolocalizzazione · OSINT su email (formato/MX/Gravatar) · OSINT su dati compromessi (violazioni + paste di HaveIBeenPwned) · OSINT su persone · OSINT su numeri di telefono · OSINT su username in stile Sherlock · OSINT su siti web (DNS, RDAP, crt.sh, Wayback, SPF/DMARC/DKIM, robots.txt/sitemap) · OSINT sui social media · OSINT su reti wireless (WiGLE) · OSINT su IP (geolocalizzazione, reverse DNS, ASN/BGP via Team Cymru, RDAP) · OSINT su MAC · orchestrazione di strumenti esterni · pipeline di automazione · scrittura di report Markdown · OSINT di sicurezza di basso livello (certificati TLS, security header) · più intelligence sugli host Shodan, un identificatore di hash, un expander di redirect URL, un lookup CVE/NVD, uno scanner di typosquat/domini look-alike e un controllo di misconfigurazione del trasferimento di zona DNS (AXFR).
Tre modalità, in stile Neovim — tabella completa in
KEYBINDINGS.md:
Tutto quanto sopra è sovrascrivibile da init.lua. Premi ? in qualsiasi
momento per il cheat sheet in-app.
:theme <name> oppure imposta theme in init.lua — tabella completa delle
palette e formato dei temi personalizzati in THEMES.md:
ocean-depths · forest-canopy · modern-minimalist · arctic-frost ·
botanical-garden · midnight-galaxy · nord · catppuccin-frappe ·
everforest · gruvbox · onedark · tokyonight (predefinito)
Ogni tema mappa gli stessi 12 ruoli semantici (bg/fg/accent/danger/...)
— nessuna schermata specializza mai un tema per nome — e puoi definirne uno
tuo interamente in init.lua senza toccare codice Rust.
La logica centrale di ogni modulo è raggiungibile headless, così puoi convogliarla in altri strumenti o eseguirla da 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 punto di ingresso + CLI headless
app.rs macchina a stati tab/modalità, esecuzione :command
config.rs, keymap.rs caricamento config Lua, risoluzione keybind modali
themes/mod.rs 12 temi integrati + supporto temi personalizzati
db.rs archiviazione SQLite di casi/note/risultati/persone
ui/ barra delle schede, barra di stato (pill modalità), popup guida
modules/
notes.rs, sockpuppet.rs moduli completi (stato + DB + UI)
dork.rs, exif.rs, username.rs moduli completi (logica + UI)
domain.rs, network.rs, logica OSINT pura (senza UI — vedi
identity.rs, geo.rs lookup.rs per la schermata condivisa)
lookup.rs schermata generica a input singolo usata da
Domain/IP/MAC/Email/Phone/Breach/Geo/
Wireless/People/Social/Shodan/Hash/
UrlExpand/Cve/Typosquat/Security/Axfr/
ReverseImage
tools.rs, automation.rs, report.rs moduli completi
docs/
ARCHITECTURE.md come è collegato insieme + dove estenderlo
FEATURES.md ogni funzionalità richiesta + estesa -> mappatura moduli
ETHICS.md ambito d'uso responsabile e perché alcuni moduli sono limitati
THEMES.md tabella completa delle palette + come definire un tema personalizzato
KEYBINDINGS.md riferimento completo di keybind + comandi
CONTRIBUTING.md setup di sviluppo, come aggiungere un modulo, stile dei commit
SECURITY.md policy di responsible-disclosure per questo strumento stesso
CODE_OF_CONDUCT.md
CHANGELOG.md
config/init.lua configurazione di esempio
site/ sorgente del sito web del progetto (pubblicato via GitLab Pages)
.gitlab-ci.yml build/lint/test + deploy su Pages
site/ contiene la homepage statica del progetto; .gitlab-ci.yml esegue
build e lint a ogni push e pubblica site/ su GitLab Pages sul branch
predefinito, all'indirizzo https://t-beckett.gitlab.io/h-osint/.
Questo progetto è stato originariamente impostato in un ambiente senza accesso
di rete a cargo build verso crates.io. Ogni riga è stata rivista a mano per
correttezza (tipi, forma del borrow-checker, firme delle API rispetto alle
versioni documentate dei crate), ma considera il primo cargo build di un
clone fresco come il vero passo di verifica — la pipeline CI esegue
cargo build, cargo clippy e cargo test a ogni push, quindi una pipeline
verde su main è la garanzia effettiva. Vedi la sezione "Known gaps" di
docs/ARCHITECTURE.md per i punti specifici che meritano più di una seconda
occhiata (copertura della tabella OUI dei MAC, precisione del parsing dei
numeri di telefono, parsing delle risposte ASN).
MIT — vedi LICENSE. © T. Beckett.
| Preso da | Cosa abbiamo preso |
|---|
| lazydocker | Layout a pannelli, barra dei suggerimenti keybind in basso, completamente tematizzabile |
| tuicr | Navigazione modale nativa Vim, Rust, singolo binario statico |
| superfile | Modello multi-tab, 12 temi inclusi, rifinitura "tutto sembra curato nei minimi dettagli" |
| Sherlock / Maigret | La tecnica dello sweep di username multipiattaforma (reimplementata qui, non vendorizzata) |
| SpiderFoot / recon-ng | Orchestrazione di molte API/strumenti OSINT passivi dietro un'unica interfaccia coerente + pipeline di automazione |
| Tasto | Modalità Normal |
|---|
j/k, ↑/↓ | muoviti all'interno di una lista |
i | entra in modalità Insert (digita nel campo a fuoco) |
Esc | torna alla modalità Normal |
: | Modalità Command (:theme nord, :open username, :case new "Acme intake", :q) — premi Tab per scorrere i completamenti del nome del comando o del suo argomento |
r / Enter | esegui l'azione della schermata corrente |
Tab / Shift-Tab | cambia scheda |
ctrl-t / ctrl-w | nuova scheda (Home) / chiudi scheda |
[ / ] | tema precedente / successivo |
? | attiva/disattiva la guida |
:q | esci (questo è l'unico modo per uscire — nessun binding q nudo, così non può mai essere un tasto digitato per errore) |