
Banco de trabajo OSINT local-first controlado por teclado para la terminal con 28 módulos que cubren búsquedas de nombre de usuario, dominio, IP, correo electrónico, filtraciones y geolocalización, además de almacenamiento de casos en SQLite.
h-osint)Un banco de trabajo OSINT local-first, controlado por teclado, para la terminal — keybinds estilo Neovim, configuración en Lua, 12 temas y un almacén local de casos en SQLite. Sin cuenta, sin backend en la nube, sin telemetría.
kitty ~ » h-osint
Repositorio:
h-osint· Binario:h-osint· Sitio web: https://t-beckett.gitlab.io/h-osint/
h-osint se ejecuta completamente en tu máquina. Las notas de casos, el seguimiento de sock-puppets y los hallazgos de cada búsqueda viven en un único archivo SQLite local — no hay componente servidor, no hay sincronización, y nada de lo que hace esta herramienta sube los datos de tu caso a ningún sitio. Cada módulo que habla con un servicio de terceros (HaveIBeenPwned, Shodan, WiGLE, Nominatim, RDAP, crt.sh, NVD, Team Cymru, ip-api.com) lo hace con tu propia API key cuando se requiere una, y solo porque tú ejecutaste esa búsqueda concreta.
Porque las buenas referencias de técnicas OSINT (el OSINT Fundamentals de TCM Security, la lista de recursos OSINT de TCM) no incluyen ningún software, y el software que existe es o un montón de scripts CLI de un solo propósito (Sherlock, theHarvester, ...) o una GUI pesada (Maltego). h-osint toma prestadas las partes del ecosistema de aplicaciones de terminal que ya se sienten premium y coloca un banco de trabajo coherente alrededor de las técnicas conocidas:
| Tomado de | Qué tomamos |
|---|---|
| lazydocker | Diseño basado en paneles, barra inferior de pistas de keybinds, totalmente tematizable |
| tuicr | Navegación modal nativa de Vim, Rust, binario estático único |
| superfile | Modelo multi-pestaña, 12 temas incluidos, pulido de "todo parece cuidado al detalle" |
| Sherlock / Maigret | La técnica de barrido de nombres de usuario multiplataforma (reimplementada aquí, no vendorizada) |
| SpiderFoot / recon-ng | Orquestar muchas APIs/herramientas OSINT pasivas tras una interfaz consistente + pipelines de automatización |
No está construido para, y omite deliberadamente, cualquier cosa cuyo único
uso realista sea el acecho, el acoso, la intrusión no autorizada o el trabajo
con volcados de credenciales robadas — consulta docs/ETHICS.md para ver
exactamente dónde se trazan esas líneas y por qué.
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
Herramientas externas opcionales que desbloquean más de la pantalla Tools: whois
(fallback para TLDs no soportados por RDAP), dig (registros DNS + comprobación AXFR),
exiftool, nmap, openssl, curl. La aplicación funciona bien sin ellas — te
dice qué falta en lugar de fallar silenciosamente.
En la primera ejecución, h-osint escribe una configuración por defecto totalmente
comentada en ~/.config/h-osint/init.lua por ti (si aún no hay nada ahí) —
no hay nada que copiar a mano. Abre ese archivo para configurar tu tema, API
keys, temas personalizados y anulaciones de keymap. Nada en él es obligatorio;
cada campo tiene un valor por defecto sensato y cada módulo que necesita una key te lo
dice en lugar de fallar silenciosamente. (El config/init.lua incluido en este
repo es la plantilla exacta utilizada — léelo aquí si prefieres no lanzar
la aplicación primero.)
Las 22 capacidades OSINT originalmente previstas más 6 herramientas extendidas — mapeo
completo de estado/módulo en docs/FEATURES.md:
Notas y archivos de casos · gestor de sock puppets / personas · constructor de dorks de motores de búsqueda · transferencia a búsqueda inversa de imágenes · visor EXIF con vista previa inline por protocolo Kitty · herramientas de ubicación física y geolocalización · OSINT de email (formato/MX/Gravatar) · OSINT de datos filtrados (breaches + pastes de HaveIBeenPwned) · OSINT de personas · OSINT de números de teléfono · OSINT de nombres de usuario estilo Sherlock · OSINT de sitios web (DNS, RDAP, crt.sh, Wayback, SPF/DMARC/DKIM, robots.txt/sitemap) · OSINT de redes sociales · OSINT de redes inalámbricas (WiGLE) · OSINT de IP (geolocalización, DNS inverso, ASN/BGP vía Team Cymru, RDAP) · OSINT de MAC · orquestación de herramientas externas · pipelines de automatización · redacción de informes en Markdown · OSINT de seguridad de bajo nivel (certificados TLS, cabeceras de seguridad) · además inteligencia de hosts Shodan, un identificador de hashes, un expansor de redirecciones de URL, una búsqueda de CVE/NVD, un escáner de typosquat/dominios look-alike y una comprobación de mala configuración de transferencia de zona DNS (AXFR).
Tres modos, con sabor a Neovim — tabla completa en
KEYBINDINGS.md:
| Tecla | Modo Normal |
|---|---|
j/k, ↑/↓ | moverse dentro de una lista |
i | entrar en modo Insert (escribir en el campo enfocado) |
Esc | volver al modo Normal |
: | modo Comando (:theme nord, :open username, :case new "Acme intake", :q) — pulsa Tab para ciclar las completaciones del nombre del comando o su argumento |
r / Enter | ejecutar la acción de la pantalla actual |
Tab / Shift-Tab | cambiar de pestaña |
ctrl-t / ctrl-w | nueva pestaña (Home) / cerrar pestaña |
[ / ] | tema anterior / siguiente |
? | alternar ayuda |
:q | salir (esta es la única forma de salir — no hay binding para q a secas, así que nunca puede ser una tecla mal pulsada) |
Todo lo anterior es anulable desde init.lua. Pulsa ? en cualquier momento para
ver la chuleta dentro de la aplicación.
:theme <name> o establece theme en init.lua — tabla completa de paletas y el
formato de temas personalizados en THEMES.md:
ocean-depths · forest-canopy · modern-minimalist · arctic-frost ·
botanical-garden · midnight-galaxy · nord · catppuccin-frappe ·
everforest · gruvbox · onedark · tokyonight (por defecto)
Cada tema mapea los mismos 12 roles semánticos (bg/fg/accent/danger/...)
— ninguna pantalla trata nunca un tema como caso especial por su nombre — y puedes definir el
tuyo propio enteramente en init.lua sin tocar código Rust.
La lógica central de cada módulo es accesible sin interfaz, para que puedas canalizarla hacia otras herramientas o ejecutarla desde cron: