
Una aplicación simple que extrae tus IoCs de entrada basura y verifica su reputación utilizando múltiples servicios CTI.

Una aplicación simple que extrae tus IoCs de datos basura y verifica su reputación usando múltiples servicios.
🌐 demo.cyberbro.net
Inspirado en Cybergordon e IntelOwl.
Este proyecto tiene como objetivo proporcionar una forma simple y eficiente de verificar la reputación de tus observables usando múltiples servicios, sin tener que desplegar una solución compleja. Lee la documentación en https://docs.cyberbro.net/
[!TIP] Para crear informes personalizados, usa Cyberbro con tu LLM favorito (Claude, OpenAI gpt-5…) a través de MCP (Model Context Protocol).
Consulta Cyberbro MCP para más información.

[!TIP] Si eres perezoso, necesitas Docker.
Haz ungit clone; copia.env.samplea.env;docker compose upy luego ve alocalhost:5000. ¡Sí, así de simple!
git clone https://github.com/stanfrbd/cyberbro
cd cyberbro
cp .env.sample .env
[!NOTE] ¿No tienes claves API? No hay problema, simplemente copia
.env.samplea.envy deja los valores opcionales vacíos. Ten cuidado si se usa un proxy.
¡Podrás usar todos los motores gratuitos!
.env.[!WARNING]
.envcontiene secretos sensibles y nunca debe ser versionado. Para despliegues en producción/equipo, usa SOPS, Vault o un flujo de trabajo equivalente con gestor de secretos.
ABUSEIPDB=token_aqui
ALIENVAULT=token_aqui
CRIMINALIP_API_KEY=token_aqui
CROWDSTRIKE_CLIENT_ID=client_id_aqui
CROWDSTRIKE_CLIENT_SECRET=client_secret_aqui
DFIR_IRIS_API_KEY=token_aqui
DFIR_IRIS_URL=https://dfir-iris.local
GOOGLE_CSE_CX=cx_aqui
GOOGLE_CSE_KEY=key_aqui
GOOGLE_SAFE_BROWSING=token_aqui
HISTER_TOKEN=token_aqui
HISTER_BASE_URL=https://hister.example.com
IPAPI=token_aqui
IPINFO=token_aqui
MDE_CLIENT_ID=client_id_aqui
MDE_CLIENT_SECRET=client_secret_aqui
MDE_TENANT_ID=tenant_aqui
MISP_API_KEY=token_aqui
MISP_URL=https://misp.local
MISP_FEEDBACK_SERVER_URL=https://misp-feedback.local
MISP_FEEDBACK_TOKEN=token_aqui
OPENCTI_API_KEY=token_aqui
OPENCTI_URL=https://demo.opencti.io
PROXY_URL=
RANSOMWARE_LIVE_API_KEY=token_aqui
RL_ANALYZE_API_KEY=token_aqui
RL_ANALYZE_URL=https://spectra_analyse_url_aqui
ROSTI_API_KEY=token_aqui
SHODAN=token_aqui
SPUR_US=token_aqui
THREATFOX=token_aqui
VIRUSTOTAL=token_aqui
WEBSCOUT=token_aqui
[!IMPORTANT] A partir de la versión
v0.13.0, Cyberbro ya no soportasecrets.jsonni la página/config. Cf. discusión 165.
Si ya tienes unsecrets.jsonlegacy, conviértelo a.envcon:python3 scripts/secrets_json_to_env.py
Consulta Opciones avanzadas para despliegue en la documentación.
[!WARNING] Asegúrate de instalar el plugin
composecomodocker composey nodocker-compose. En Docker, la aplicación se vincula a0.0.0.0dentro del contenedor incluso si tu.envlocal estableceFLASK_HOST=127.0.0.1.
docker compose up # usa -d para ejecutar en segundo plano y --build para reconstruir la imagen
No olvides editar
.envantes de construir la imagen.
Consulta Opciones avanzadas para despliegue en la documentación para obtener todas las opciones de despliegue con Docker.
Quizás quieras crear un venv antes de instalar las dependencias.
pip install -r requirements.txt
gunicorn (modo limpio).gunicorn -c prod/gunicorn.conf.py app:app
python3 app.py
[!CAUTION] Si planeas usar esto en un entorno de producción, utiliza un Proxy Inverso bien configurado + WAF para evitar problemas de seguridad.
/api/ y se puede acceder a través de la GUI o la línea de comandos.Actualmente hay 3 endpoints:
/api/analyze - Analiza un texto y devuelve el ID del análisis (JSON)./api/is_analysis_complete/<analysis_id> - Verifica si el análisis está completo (JSON)./api/results/<analysis_id> - Recupera los resultados de un análisis anterior (JSON).curl -X POST "http://localhost:5000/api/analyze" -H "Content-Type: application/json" -d '{"text": "cyberbro.net", "engines": ["reverse_dns", "rdap_whois"]}'
{
"analysis_id": "e88de647-b153-4904-91e5-8f5c79174854",
"link": "/results/e88de647-b153-4904-91e5-8f5c79174854"
}
curl "http://localhost:5000/api/is_analysis_complete/e88de647-b153-4904-91e5-8f5c79174854"
{
"complete": true
}
curl "http://localhost:5000/api/results/e88de647-b153-4904-91e5-8f5c79174854"
[
{
"observable": "cyberbro.net",
"rdap_whois": {
"abuse_contact": "[email protected]",
"creation_date": "2024-12-20",
"data_source": "rdap",
"emails": [
"[email protected]"
],
"expiration_date": "2026-12-20",
"link": "https://rdap.verisign.com/net/v1/domain/CYBERBRO.NET",
"name_servers": [
"anderson.ns.cloudflare.com",
"lisa.ns.cloudflare.com"
],
"organization": null,
"registrant": null,
"registrant_country": null,
"registrant_email": null,
"registrar": "Cloudflare, Inc.",
"update_date": "2025-11-20"
},
"reverse_dns": {
"reverse_dns": [
"172.67.197.226",
"104.21.42.7"
]
},
"reversed_success": true,
"type": "FQDN"
}
]
[!NOTE] La página de documentación dedicada proporciona todos los nombres de motores utilizables.
[!NOTE] ¿Alguna pregunta? Consulta https://docs.cyberbro.net o abre una incidencia
Para la configuración avanzada (ajuste desupervisord.confantes del despliegue, selección de motores visibles, cambio del prefijo/api/...), consulta la página de documentación dedicada.
Un enorme agradecimiento a todos los increíbles colaboradores que hicieron pull requests y ayudaron a mejorar este proyecto:
¡Tus contribuciones son muy apreciadas!
Licencia MIT
Copyright (c) 2024-2026 stanfrbd
Por la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia
de este software y los archivos de documentación asociados (el "Software"), para tratar
el Software sin restricción, incluidos, sin limitación, los derechos
de uso, copia, modificación, fusión, publicación, distribución, sublicencia y/o venta
de copias del Software, y para permitir a las personas a quienes se les proporcione el
Software a hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán
en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA
O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD,
IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO
LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑOS U OTRAS
RESPONSABILIDADES, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA
DE, O EN CONEXIÓN CON, EL SOFTWARE O EL USO U OTRO TIPO DE ACCIONES EN EL
SOFTWARE.
El logo utilizado en este proyecto es gratuito para uso personal y comercial y se puede encontrar aquí.