un kit de herramientas OSINT pasivo en python: nombres de usuario, correos electrónicos, dominios, ips, teléfonos, hashes. sin claves, sin inicios de sesión.
kit de herramientas osint pasivo en python. sin claves api, sin cuentas, sin iniciar sesión en nada. dale un handle, un correo, un dominio, una ip, un número de teléfono o un hash y revisa lo que ya es público.

username barre un handle por unos 700 sitios, usando la lista comunitaria WhatsMyName. cada entrada de esa lista sabe cómo distinguir un acierto de un fallo, así que los resultados no son conjeturas. email comprueba la sintaxis y el mx, busca dominios desechables, prueba gravatar y luego pasa la parte anterior a la @ por el barrido de username. domain extrae los registros dns, el estado http y el título, subdominios de certificate transparency y whois. ip da geo y asn, dns inverso, y escanea puertos si se lo pides. phone hace operador, región, tipo de línea y zona horaria. hash solo te dice qué es probablemente.
todo son datos públicos. dns, whois, páginas de perfil, registros de certificados.
necesita python 3.9 o superior. luego:
pip install -r requirements.txt
eso te instala rich, requests, dnspython y aiohttp. phonenumbers también viene pero solo el módulo phone lo toca, así que puedes quitarlo del archivo si quieres. sin aiohttp el barrido de username recurre a hilos y se vuelve mucho más lento, así que déjalo.
en windows, si python aún no está en tu 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 y mac son lo mismo con python3 en su lugar:
git clone https://gitlab.com/vqkro/higernes
cd higernes
python3 -m pip install -r requirements.txt
python3 higernes.py
en freebsd haz pkg install -y python3 primero.
si pip se queja de un entorno gestionado externamente, o crea un venv
python3 -m venv .venv && . .venv/bin/activate && pip install -r requirements.txt
o pasa --break-system-packages y sigue adelante.
sin argumentos y obtienes el menú. o ve directo 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
una categoría solo acota el barrido de username. déjala fuera y recorre los 700.
data/wmn-data.json es el conjunto de datos de WhatsMyName. cambia por una copia más nueva cuando quieras, se lee al arrancar. si el archivo no está, recurre a una lista corta integrada en el script para que las cosas sigan funcionando.
el escáner de puertos en python es lento, así que esa parte vive en core/hcore.cpp y compila a un pequeño binario. higernes lo busca junto a sí mismo, en core/, o en el path, y lo ejecuta. si no está, ip --ports recurre a la versión python más lenta. solo necesitas compilarlo si ejecutas desde el código fuente y quieres la vía rápida:
# 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
también funciona por sí solo:
hcore dns github.com
hcore ports example.com --banners
hcore ports example.com --all --threads 1024
el exe de la página de releases ya lo lleva dentro.
dnspython y requests vale la pena tenerlos. sin dnspython solo resuelve el registro A, todo lo demás se omite. el endpoint gratuito de ip-api limita a unas 45 consultas por minuto. crt.sh es lento o está caído la mitad del tiempo, y cuando lo está el escaneo de dominio simplemente lo dice y continúa.
pip install pyinstaller
pyinstaller --onefile --name higernes --console higernes.py
así se compiló el de la página de releases.
MIT, ver LICENSE.