um kit de ferramentas OSINT passivo em python nomes de usuário, e-mails, domínios, ips, telefones, hashes. sem chaves, sem logins.
toolkit de osint passivo em python. sem chaves de api, sem contas, sem fazer login em nada. dê a ele um handle, um email, um domínio, um ip, um número de telefone ou um hash e ele percorre o que já é público.

username varre um handle por cerca de 700 sites, usando a lista comunitária WhatsMyName. cada entrada dessa lista sabe como distinguir um acerto de um erro, então os resultados não são chutes. email verifica a sintaxe e o mx, procura por domínios descartáveis, tenta o gravatar, e então passa a parte antes do @ pela varredura de username. domain puxa os registros dns, o status http e o título, subdomínios a partir do certificate transparency e whois. ip dá geo e asn, dns reverso, e escaneia portas se você pedir. phone faz operadora, região, tipo de linha e fuso horário. hash apenas diz o que provavelmente é.
é tudo dado público. dns, whois, páginas de perfil, logs de cert.
precisa de python 3.9 ou mais novo. então:
pip install -r requirements.txt
isso te dá rich, requests, dnspython e aiohttp. phonenumbers vem junto também mas só o módulo phone o utiliza, então você pode removê-lo do arquivo se quiser. sem aiohttp a varredura de username cai para threads e fica muito mais lenta, então mantenha.
no windows, se o python ainda não estiver no seu path:
winget install --id Python.Python.3.13 -e
git clone https://gitlab.com/vqkro/higernes
cd higernes
pip install -r requirements.txt
python higernes.py
linux e mac são a mesma coisa com python3 no lugar:
git clone https://gitlab.com/vqkro/higernes
cd higernes
python3 -m pip install -r requirements.txt
python3 higernes.py
no freebsd faça pkg install -y python3 primeiro.
se o pip reclamar de um ambiente gerenciado externamente, ou crie um venv
python3 -m venv .venv && . .venv/bin/activate && pip install -r requirements.txt
ou passe --break-system-packages e siga em frente.
sem argumentos e você recebe o menu. ou vá direto a algo:
python higernes.py username vqkro
python higernes.py username vqkro --cat coding
python higernes.py email [email protected]
python higernes.py domain example.com
python higernes.py ip 1.1.1.1 --ports
python higernes.py phone +14155552671
python higernes.py hash 5f4dcc3b5aa765d61d8327deb882cf99
python higernes.py scan example.com
python higernes.py scan example.com --all
uma categoria apenas restringe a varredura de username. deixe de fora e ele atinge todos os 700.
data/wmn-data.json é o conjunto de dados do WhatsMyName. substitua por uma cópia mais nova a qualquer momento, ele é lido na inicialização. se o arquivo não estiver lá, ele cai para uma lista curta embutida no script para que as coisas ainda funcionem.
o scanner de portas em python é lento, então essa parte fica em core/hcore.cpp e compila para um pequeno binário. higernes o procura ao lado de si mesmo, em core/, ou no path, e o executa. se não estiver lá, ip --ports cai para a versão python mais lenta. você só precisa compilá-lo se estiver rodando a partir do código-fonte e quiser o caminho rápido:
# windows
g++ -O2 -std=c++17 -static -o core/hcore.exe core/hcore.cpp -lws2_32
# linux / mac
g++ -O2 -std=c++17 -o core/hcore core/hcore.cpp -pthread
ele também funciona sozinho:
hcore dns github.com
hcore ports example.com --banners
hcore ports example.com --all --threads 1024
o exe na página de releases já o tem embutido.
dnspython e requests valem a pena ter. sem dnspython apenas o registro A resolve, todo o resto é simplesmente ignorado. o endpoint gratuito do ip-api limita em torno de 45 consultas por minuto. crt.sh é lento ou fica fora do ar metade do tempo, e quando está o scan de domínio apenas avisa e segue em frente.
pip install pyinstaller
pyinstaller --onefile --name higernes --console higernes.py
foi assim que o da página de releases foi construído.
MIT, veja LICENSE.