
Bancada de trabalho OSINT local-first, orientada por teclado, para o terminal, com 28 módulos que cobrem consultas de nome de usuário, domínio, IP, e-mail, vazamentos e geolocalização, além de armazenamento de casos em SQLite.
h-osint)Um ambiente de trabalho OSINT local-first, orientado por teclado, para o terminal — atalhos estilo Neovim, configuração em Lua, 12 temas e um armazenamento local de casos em SQLite. Sem conta, sem backend na nuvem, sem telemetria.
kitty ~ » h-osint
Repositório:
h-osint· Binário:h-osint· Website: https://t-beckett.gitlab.io/h-osint/
O h-osint é executado inteiramente na sua máquina. Notas de caso, rastreamento de sock-puppet e os resultados de cada consulta vivem num único ficheiro SQLite local — não há componente servidor, nem sincronização, e nada que esta ferramenta faça envia os dados do seu caso para algum lado. Todos os módulos que comunicam com um serviço de terceiros (HaveIBeenPwned, Shodan, WiGLE, Nominatim, RDAP, crt.sh, NVD, Team Cymru, ip-api.com) fazem-no com a sua própria chave de API quando esta é necessária, e apenas porque executou essa consulta específica.
Porque as boas referências de técnicas OSINT (o OSINT Fundamentals da TCM Security, a lista de recursos OSINT da TCM) não incluem qualquer software, e o software que existe é ou um conjunto de scripts CLI de propósito único (Sherlock, theHarvester, ...) ou uma GUI pesada (Maltego). O h-osint vai buscar as partes do ecossistema de aplicações de terminal que já parecem premium e coloca um ambiente de trabalho coerente em torno das técnicas bem conhecidas:
Não foi construído para, e omite deliberadamente, tudo cujo único uso realista seja stalking, assédio, intrusão não autorizada, ou trabalhar com despejos de credenciais roubadas — consulte docs/ETHICS.md para saber exatamente onde essas linhas são traçadas e porquê.
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
Ferramentas externas opcionais que desbloqueiam mais do ecrã Tools: whois
(fallback para TLDs não suportados por RDAP), dig (registos DNS + verificação AXFR),
exiftool, nmap, openssl, curl. A aplicação funciona bem sem elas — diz-lhe o que
está em falta em vez de falhar silenciosamente.
Na primeira execução, o h-osint escreve uma configuração padrão totalmente comentada em
~/.config/h-osint/init.lua por si (se ainda não existir nada lá) —
não há nada para copiar à mão. Abra esse ficheiro para definir o seu tema, chaves de
API, temas personalizados e substituições de atalhos. Nada nele é obrigatório;
cada campo tem um valor padrão sensato e cada módulo que precisa de uma chave diz-lhe
isso em vez de falhar silenciosamente. (O config/init.lua incluído neste
repositório é o modelo exato usado — leia-o aqui se preferir não iniciar
a aplicação primeiro.)
Todas as 22 capacidades OSINT originalmente previstas mais 6 ferramentas estendidas — mapeamento completo de estado/módulo em docs/FEATURES.md:
Notas e ficheiros de caso · gestor de sock puppet / persona · construtor de dorks de motores de busca · encaminhamento para pesquisa reversa de imagens · visualizador EXIF com pré-visualização inline via protocolo Kitty · ferramentas de localização física e geolocalização · OSINT de email (formato/MX/Gravatar) · OSINT de dados comprometidos (violações + pastes do HaveIBeenPwned) · OSINT de pessoas · OSINT de números de telefone · OSINT de nomes de utilizador estilo Sherlock · OSINT de websites (DNS, RDAP, crt.sh, Wayback, SPF/DMARC/DKIM, robots.txt/sitemap) · OSINT de redes sociais · OSINT de redes sem fios (WiGLE) · OSINT de IP (geolocalização, DNS reverso, ASN/BGP via Team Cymru, RDAP) · OSINT de MAC · orquestração de ferramentas externas · pipelines de automação · escrita de relatórios em Markdown · OSINT de segurança de baixo nível (certificados TLS, cabeçalhos de segurança) · mais inteligência de hosts Shodan, um identificador de hashes, um expansor de redirecionamentos de URL, uma consulta CVE/NVD, um scanner de typosquat/domínios semelhantes, e uma verificação de má configuração de transferência de zona DNS (AXFR).
Três modos, com sabor a Neovim — tabela completa em
KEYBINDINGS.md:
Tudo o que está acima pode ser substituído a partir do init.lua. Prima ? a qualquer momento para
a folha de referência dentro da aplicação.
:theme <name> ou defina theme no init.lua — tabela completa de paletas e o formato de tema personalizado em THEMES.md:
ocean-depths · forest-canopy · modern-minimalist · arctic-frost ·
botanical-garden · midnight-galaxy · nord · catppuccin-frappe ·
everforest · gruvbox · onedark · tokyonight (padrão)
Cada tema mapeia os mesmos 12 papéis semânticos (bg/fg/accent/danger/...)
— nenhum ecrã trata um tema como caso especial pelo nome — e pode definir o seu
próprio inteiramente no init.lua sem tocar em código Rust.
A lógica central de cada módulo é acessível sem interface, para que possa encaminhá-la para outras ferramentas ou executá-la a partir do 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/ contém a página inicial estática do projeto; .gitlab-ci.yml compila e
faz lint em cada push e publica site/ no GitLab Pages no ramo padrão, em https://t-beckett.gitlab.io/h-osint/.
Este projeto foi originalmente estruturado num ambiente sem acesso à rede
para cargo build contra crates.io. Cada linha foi revista manualmente quanto à
correção (tipos, forma do borrow-checker, assinaturas de API face às
versões documentadas das crates), mas trate o primeiro cargo build de um clone novo
como o verdadeiro passo de verificação — o pipeline de CI executa-o, cargo clippy,
e cargo test em cada push, por isso um pipeline verde em main é a garantia
real. Consulte a secção "Known gaps" de docs/ARCHITECTURE.md para os
pontos específicos que mais merecem uma segunda análise (cobertura da tabela MAC OUI, precisão
da análise de números de telefone, análise de respostas ASN).
MIT — consulte LICENSE. © T. Beckett.
| Emprestado de | O que retirámos |
|---|
| lazydocker | Layout baseado em painéis, barra de dicas de atalhos no fundo, totalmente tematizável |
| tuicr | Navegação modal nativa de Vim, Rust, binário estático único |
| superfile | Modelo multi-abas, 12 temas incluídos, polimento "tudo parece cuidado ao detalhe" |
| Sherlock / Maigret | A técnica de varrimento de nomes de utilizador entre plataformas (reimplementada aqui, não incluída de terceiros) |
| SpiderFoot / recon-ng | Orquestração de muitas APIs/ferramentas OSINT passivas por trás de uma interface consistente + pipelines de automação |
| Tecla | Modo Normal |
|---|
j/k, ↑/↓ | mover dentro de uma lista |
i | entrar no modo Insert (escrever no campo focado) |
Esc | voltar ao modo Normal |
: | Modo Comando (:theme nord, :open username, :case new "Acme intake", :q) — prima Tab para percorrer as conclusões do nome do comando ou do seu argumento |
r / Enter | executar a ação do ecrã atual |
Tab / Shift-Tab | alternar entre abas |
ctrl-t / ctrl-w | nova aba (Home) / fechar aba |
[ / ] | tema anterior / seguinte |
? | alternar ajuda |
:q | sair (esta é a única forma de sair — não há atalho q isolado, por isso nunca pode ser uma tecla mal pressionada) |