
Herramienta CLI de Python para el análisis rápido de IOC (IPs, dominios, CVEs) mediante 6 API gratuitas de Threat Intel. Salidas: Excel con código de colores, JSON, CSV. Utiliza: VT, Shodan, AbuseIPDB.
Investiga IPs, dominios, hashes y CVE en 6 API gratuitas de inteligencia de amenazas — sin cambiar entre pestañas del navegador.
Inicio rápido · Uso · Arquitectura · Claves de API · Capturas de pantalla · Contribuir
🚀 Con orgullo incluido en el repositorio oficial Awesome OSINT.
ThreatLens es una única herramienta de línea de comandos que unifica las consultas de inteligencia de amenazas a través de las fuentes OSINT gratuitas más confiables. En lugar de pegar una IP en cinco sitios web diferentes, ThreatLens las consulta todas en paralelo, normaliza los resultados y te ofrece un veredicto claro — en la terminal, o en un informe pulido y codificado por colores en Excel/JSON/CSV.
Diseñado para analistas de SOC, respondedores de incidentes, cazadores de amenazas y cualquiera que quiera un enriquecimiento de IOC rápido y confiable sin salir del shell.
|
Por qué ThreatLens
|
No es para
|
| Característica | Detalles |
|---|---|
| 🎯 Tipos de IOC | IP, Dominio, URL, Hash de archivo (MD5 / SHA1 / SHA256), CVE |
| 🔌 APIs integradas | AbuseIPDB, VirusTotal, AlienVault OTX, Shodan, URLScan.io, NVD, CISA KEV, EPSS |
| 📄 Análisis de logs | Extracción automática de IOCs desde texto plano/archivos de log, además de soporte nativo para Zeek, Suricata eve.json, Sysmon (JSON) y JSONL genérico |
| 🧭 Tarjetas de decisión de CVE | Recomendación determinista y explicable de Parchear / Aislar / Monitorizar / No afectado por CVE, basada en CISA KEV, EPSS, CVSS y la exposición correlacionada de activos |
| 🗂️ Inventario de activos | Importa un CSV de hosts/IPs con criticidad y estado de exposición a internet; correlacionado con los resultados de CVE |
| 📤 Exportación a SIEM | Exportación opcional a Splunk HEC, Elastic _bulk y Microsoft Sentinel (API moderna de ingesta de logs) |
| 🧾 Paquetes de evidencia | Exportación ZIP de una investigación con un manifiesto SHA-256 para una cadena de custodia básica |
| 📊 Informes | Excel (con código de colores), JSON, CSV |
| 💾 Caché local | Caché SQLite con TTL configurable — evita reconsultar IOCs conocidos, además de un feed CISA KEV en caché (TTL de 24h) |
| 🛡️ Seguridad | Bloqueo de redirecciones, lista de hosts permitidos, redacción de claves de API en logs, neutralización de fórmulas de hoja de cálculo, límites anti-DoS en CSV/logs |
| 🔒 Lockfile | requirements.lock con hashes SHA-256 para instalaciones reproducibles |
| 💻 Experiencia CLI | Barras de progreso Rich, tablas con colores y un resumen de veredicto claro |
| 🧩 Arquitectura | Enriquecedores/analizadores/exportadores modulares, modelos tipados, separación estricta de responsabilidades |
| ✅ Probado | 155 pruebas unitarias y de integración con pytest; CI mediante GitHub Actions |
| ⚡ Resiliente | Una API o destino SIEM que falle nunca bloquea a los demás — los errores se aíslan y se registran |
# 1. Clone & install
git clone https://github.com/AbdaullahAG/threatlens.git
cd threatlens
pip install -r requirements.txt
# 2. Configure your API keys
cp config/keys.env.example config/keys.env
# → edit config/keys.env and fill in your keys
# 3. Run your first scan
python main.py -i 45.33.32.156
💡 NVD (consultas de CVE) funciona sin configuración adicional y sin clave de API. Todas las demás API ofrecen un nivel gratuito cuyo registro lleva menos de 2 minutos — consulta Claves de API más abajo.
pip install --require-hashes -r requirements.lock
| Consulta básica de un único IOC |
| Combinar y emparejar tipos de IOC en una sola ejecución |
| Investigar de forma masiva directamente desde registros sin procesar |
| Salida legible por máquina para pipelines |
| Restringir el enriquecimiento a las fuentes seleccionadas |
| Excel + JSON + CSV en una sola ejecución |
| Enriquecimiento de CVE mediante NIST NVD (gratuito, sin clave) |
| Registro completo de solicitud/respuesta para la resolución de problemas |
| Recomendación de parchear / aislar / monitorear / no afectado |
| Ingesta de registros del SOC → exportación al SIEM |
| ZIP con un manifiesto SHA-256 para la cadena de custodia |