
flowsint v1.2.12
Una plataforma moderna para investigaciones visuales, flexibles y extensibles basadas en grafos. Para analistas e investigadores de ciberseguridad.
Flowsint
Flowsint es una herramienta de exploración de grafos OSINT de código abierto diseñada para la investigación ética, la transparencia y la verificación.
Ética: Por favor, lee ETHICS.md para conocer las pautas de uso responsable.
https://github.com/user-attachments/assets/eaabfa81-d7b3-414d-8cf7-f69b4e37bab6
https://github.com/user-attachments/assets/7457d94a-cf1d-4a97-949f-f9b1d8d92644
https://github.com/user-attachments/assets/65c3f26e-7132-4853-be45-21b8933688bd
Contribuciones
Flowsint aún está en desarrollo temprano y definitivamente necesita la ayuda de la comunidad. No dudes en reportar problemas, proponer funciones, etc.
Primeros pasos
¿No quieres leer? Entendido. Aquí tienes tus instrucciones de instalación:
Linux / macOS
1. Instalar requisitos previos
- Docker
- Make
2. Ejecutar el comando de instalación
git clone https://github.com/reconurge/flowsint.git
cd flowsint
make prod
Windows
No se necesita Make. Funciona tanto en Command Prompt (cmd) como en PowerShell.
1. Instalar requisitos previos
- Docker Desktop (asegúrate de que esté en ejecución antes del siguiente paso)
- Git
2. Clonar y configurar los archivos de entorno
git clone https://github.com/reconurge/flowsint.git
cd flowsint
copy .env.example .env
copy .env.example flowsint-api\.env
copy .env.example flowsint-core\.env
copy .env.example flowsint-app\.env
3. Iniciar
docker compose -f docker-compose.prod.yml up -d
Esto descarga las imágenes precompiladas del GitHub Container Registry — no se necesita compilación local.
Primer inicio de sesión
Luego ve a http://localhost:5173/register y crea una cuenta. No hay credenciales ni cuentas por defecto.
✅ Las investigaciones OSINT requieren un alto nivel de privacidad. Todo se almacena en tu máquina.
Desplegar en una red (equipo / servidor)
La misma configuración funciona directamente en un servidor: el frontend sirve la interfaz y actúa como proxy de todas las llamadas a la API internamente, por lo que no se necesita configuración adicional para los clientes.
git clone https://github.com/reconurge/flowsint.git
cd flowsint
cp .env.example .env
# Edita .env — consulta "Antes de exponer a una red" más abajo
docker compose -f docker-compose.prod.yml up -d
Cualquier persona en la red puede acceder a Flowsint en http://<ip-del-servidor>:5173.
Antes de exponer a una red, cambia los secretos por defecto en .env:
AUTH_SECRET— firma los tokens de autenticación. Genera uno:openssl rand -hex 32MASTER_VAULT_KEY_V1— cifra las claves API almacenadas. Genera una:python3 -c "import os, base64; print('base64:' + base64.b64encode(os.urandom(32)).decode())"NEO4J_PASSWORD— contraseña de la base de datos Neo4j.
También añade el nombre de host/IP de tu servidor a la lista blanca de encabezados Host en flowsint-app/nginx.conf (busca map $http_host $is_flowsint_host). La lista blanca por defecto solo acepta localhost / 127.0.0.1 / [::1], lo que protege las instalaciones de un solo usuario contra el rebinding de DNS; los despliegues en LAN y públicos deben incluir su propio nombre de host. Dos líneas de plantilla comentadas en el mismo bloque del mapa muestran el formato.
Solo el puerto 5173 está expuesto a la red. PostgreSQL, Redis, Neo4j y la API están vinculados a 127.0.0.1 en el servidor y solo son accesibles a través del proxy del frontend.
Para fijar una versión específica en lugar de latest, establece FLOWSINT_VERSION en .env (por ejemplo, FLOWSINT_VERSION=1.2.10).
HTTPS (recomendado más allá de una LAN de confianza): coloca cualquier proxy inverso delante del puerto 5173. Ejemplo con Caddy:
flowsint.example.com {
reverse_proxy 127.0.0.1:5173
}
Al usar un proxy inverso, también vincula el puerto de la aplicación a localhost en docker-compose.prod.yml ("127.0.0.1:5173:8080") para que los clientes solo puedan acceder a través de HTTPS.
¿Qué es?
Flowsint es una herramienta de investigación basada en grafos centrada en el reconocimiento y OSINT (Inteligencia de Fuentes Abiertas). Permite explorar relaciones entre entidades mediante una interfaz visual de grafos y enriquecedores automatizados.
Enriquecedores disponibles
Enriquecedores de Dominio
- Resolución DNS inversa - Encuentra dominios que apuntan a una IP
- Resolución DNS - Resuelve dominios a direcciones IP
- Descubrimiento de subdominios - Enumera subdominios
- Consulta WHOIS - Obtén información de registro de dominios
- Dominio a Sitio Web - Convierte dominio en entidad de sitio web
- Dominio a Dominio Raíz - Extrae el dominio raíz
- Dominio a ASN - Encuentra el ASN asociado al dominio
- Historial de Dominio - Recupera datos históricos del dominio
Enriquecedores de IP
- Información de IP - Obtén geolocalización y detalles de red
- IP a ASN - Encuentra el ASN para una dirección IP
Enriquecedores de ASN
- ASN a CIDRs - Obtén rangos de IP para un ASN
Enriquecedores de CIDR
- CIDR a IPs - Enumera IPs en un rango
Enriquecedores de Redes Sociales
- Maigret - Búsqueda de nombres de usuario en plataformas sociales
Enriquecedores de Organización
- Organización a ASN - Encuentra ASNs propiedad de la organización
- Información de Organización - Obtén detalles de la empresa
- Organización a Dominios - Encuentra dominios propiedad de la organización
Enriquecedores de Criptomonedas
- Cartera a Transacciones - Obtén el historial de transacciones
- Cartera a NFTs - Encuentra NFTs propiedad de la cartera
Enriquecedores de Sitios Web
- Rastreador de Sitios Web - Rastrea y mapea la estructura del sitio web
- Sitio Web a Enlaces - Extrae todos los enlaces
- Sitio Web a Dominio - Extrae el dominio de una URL
- Sitio Web a Rastreadores Web - Identifica scripts de seguimiento
- Sitio Web a Texto - Extrae contenido de texto
Enriquecedores de Correo Electrónico
- Correo a Gravatar - Encuentra el perfil de Gravatar
- Correo a Filtraciones - Consulta bases de datos de filtraciones de datos
- Correo a Dominios - Encuentra dominios asociados
Enriquecedores de Teléfono
- Teléfono a Filtraciones - Consulta el número de teléfono en filtraciones
Enriquecedores de Individuos
- Individuo a Organización - Encuentra afiliaciones organizacionales
- Individuo a Dominios - Encuentra dominios asociados a la persona
Enriquecedores de Integración
- Conector N8n - Conecta con flujos de trabajo N8n
Estructura del proyecto
El proyecto está organizado en módulos autónomos:
Módulos principales
- flowsint-core: Utilidades principales, orquestador, bóveda, tareas celery y clases base
- flowsint-types: Modelos Pydantic y definiciones de tipos
- flowsint-enrichers: Módulos de enriquecedores, lógica de escaneo y herramientas
- flowsint-api: Servidor FastAPI, rutas de API y esquemas únicamente
- flowsint-app: Aplicación frontend
Dependencias entre módulos
flowsint-app (frontend)
↓
flowsint-api (servidor API)
↓
flowsint-core (orquestador, tareas, bóveda)
↓
flowsint-enrichers (enriquecedores y herramientas)
↓
flowsint-types (tipos)
Configuración de desarrollo
Requisitos previos
- Docker
Ejecutar
Linux / macOS (requiere Make):
make dev
Windows (cmd o PowerShell, sin Make — crea primero los archivos .env, consulta Primeros pasos):
docker compose -f docker-compose.dev.yml up -d --build
docker compose -f docker-compose.dev.yml logs -f
Desarrollo
La aplicación es accesible en http://localhost:5173.
Detalles de los módulos
flowsint-core
Utilidades principales y clases base utilizadas por todos los demás módulos:
- Conexiones a bases de datos (PostgreSQL, Neo4j)
- Autenticación y autorización
- Registro de eventos y manejo de eventos
- Gestión de configuración
- Clases base para enriquecedores y herramientas
- Funciones de utilidad
flowsint-types
Modelos Pydantic para todos los tipos de datos:
- Dominio, IP, ASN, CIDR
- Individuo, Organización, Correo, Teléfono
- Sitio web, Perfiles sociales, Credenciales
- Carteras cripto, Transacciones, NFTs
- Y muchos más...
flowsint-enrichers
Módulos de enriquecedores que procesan datos:
- Enriquecedores de dominio (subdominios, WHOIS, resolución)
- Enriquecedores de IP (geolocalización, consulta ASN)
- Enriquecedores de redes sociales (Maigret, Sherlock)
- Enriquecedores de correo (filtraciones, Gravatar)
- Enriquecedores cripto (transacciones, NFTs)
- Y muchos más...
flowsint-api
Servidor FastAPI que proporciona:
- Endpoints de API REST
- Autenticación y gestión de usuarios
- Integración con base de datos de grafos
- Transmisión de eventos en tiempo real
flowsint-app
Aplicación frontend.
- Interfaz moderna y amigable
- Diseñada para el rendimiento (sin retrasos incluso con miles de nodos)
Flujo de trabajo de desarrollo
- Añadir nuevos tipos: Añade al módulo
flowsint-types - Añadir nuevos enriquecedores: Añade al módulo
flowsint-enrichers - Añadir nuevos endpoints de API: Añade al módulo
flowsint-api - Añadir nuevas utilidades: Añade al módulo
flowsint-core
Pruebas
Cada módulo tiene su propio conjunto de pruebas (incompleto):
# Probar el módulo core
cd flowsint-core
uv run pytest
# Probar el módulo de tipos
cd ../flowsint-types
uv run pytest
# Probar el módulo de enriquecedores
cd ../flowsint-enrichers
uv run pytest
# Probar el módulo de API
cd ../flowsint-api
uv run pytest
Contribuciones
- Sigue la estructura modular
- Usa uv para la gestión de dependencias
- Escribe pruebas para la nueva funcionalidad
- Actualiza la documentación según sea necesario
- Consulta CONTRIBUTING.md para las verificaciones que debes ejecutar antes de hacer commit
⚖️ Uso Legal y Ético
Ética: Por favor, lee ETHICS.md para conocer las pautas de uso responsable.
Flowsint está diseñado estrictamente para fines de investigación y análisis legales y éticos.
Fue creado para ayudar a:
- Investigadores y analistas de ciberseguridad
- Periodistas e investigadores OSINT
- Equipos de aplicación de la ley o investigación de fraude
- Organizaciones que realizan inteligencia de amenazas interna o análisis de riesgo digital
Flowsint no debe utilizarse para:
- Intrusión, vigilancia o recopilación de datos no autorizada
- Acoso, doxxing o focalización de individuos
- Manipulación política, desinformación o violación de leyes de privacidad
Cualquier uso indebido de este software está estrictamente prohibido y va en contra de los principios éticos definidos en ETHICS.md.