¿Qué es VulnInventory?
Plataforma open source de gestión de vulnerabilidades pensada específicamente para consultores de ciberseguridad y equipos de pentesting. Centraliza hallazgos, activos y escaneos entre múltiples clientes.
🆓
Gratis y open source
Sin licencias ni vendor lock-in. Código disponible en GitHub.
🏢
Multi-tenant
Gestión segura de múltiples organizaciones y proyectos desde una sola instancia.
📥
Importación fácil
Nessus, Qualys, Burp Suite, SARIF, CSV y JSON — desde cualquier escáner.
🎯
Enfocado en pentesters
Hecho por pentesters para pentesters. CVE-aware con integración NVD y CVSS.
Características Principales
Módulos integrados para cubrir el ciclo de vida completo de una auditoría de seguridad, desde el descubrimiento hasta el reporting.
| Categoría | Detalles |
|---|---|
| 🐛 Hallazgos | Ciclo de vida completo, CVSS scoring, CWE/OWASP mapping, comentarios, asignaciones por analista |
| 🖥️ Activos | Tracking por proyecto, tags de ambiente y criticidad, asociaciones entre activos y hallazgos |
| 🔍 Escaneos | Cola integrada con Wapiti, Nuclei, OSV Scanner y VulnAPI |
| 📤 Import/Export | CSV, JSON, Nessus XML, Burp Suite XML, SARIF — compatibilidad con el ecosistema completo |
| 📚 VulnDB | Diccionario CVE integrado, autocompletado inteligente y plantillas de hallazgos propias |
| 👥 Multi-Tenant | Organizaciones, proyectos y tres roles: Admin / Analista / Viewer |
| 🔒 Seguridad | Cookies httpOnly, protección CSRF, API keys, rate limiting integrado |
| 📋 Auditoría | Trazabilidad completa de acciones de usuarios — quién hizo qué y cuándo |
Capturas de la Interfaz
Dashboard, gestión de hallazgos, cola de escaneos y administración de usuarios.
📊 Dashboard — resumen de vulnerabilidades y proyectos
🐛 Hallazgos — ciclo de vida con CVSS / CWE / OWASP
🔍 Escaneos — cola integrada con Nuclei y Wapiti
👥 Usuarios — roles Admin / Analista / Viewer
Prerequisitos — Docker en Kali/Ubuntu
VulnInventory funciona 100% en contenedores. Solo necesitas Docker y Docker Compose instalados.
bash — verificar si ya están instalados
docker --version
docker compose version
A
Actualizar el sistema
sudo apt updateB
Instalar Docker
sudo apt install -y docker.io — la versión de los repositorios de Kali funciona perfectamente para este laboratorio. Para producción, se puede usar el repositorio oficial de Docker.C
Instalar Docker Compose V2
sudo apt install docker-compose-v2 — la versión V2 es necesaria para usar docker compose (sin guión).D
Habilitar e iniciar el servicio Docker
sudo systemctl enable docker --now — el flag --now lo habilita y lo inicia en el mismo comando (doble guión).bash — instalación completa de Docker en Kali/Ubuntu
# Actualizar e instalar Docker
sudo apt update
sudo apt install -y docker.io
# Instalar Docker Compose V2
sudo apt install docker-compose-v2
# Habilitar e iniciar Docker
sudo systemctl enable docker --now
# (Recomendado) Añadir tu usuario al grupo docker para evitar sudo
sudo usermod -aG docker $USER
# Reinicia la sesión o el terminal para que el cambio surta efecto
💡 Sin sudo en docker: Añade tu usuario al grupo
docker con sudo usermod -aG docker $USER y reinicia la sesión. Así puedes usar docker directamente sin prefixar sudo en cada comando.Instalación Paso a Paso
Cuatro comandos para tener VulnInventory funcionando: clonar, configurar el
.env con un JWT secret seguro, y levantar los contenedores.1
Clonar el repositorio
git clone https://github.com/CrisorHacker/vulninventory.git y entrar en el directorio.2
Configurar variables de entorno
Copiar
.env.example a .env y cambiar el JWT_SECRET por una cadena aleatoria de mínimo 32 caracteres. Usa Python para generarla.3
Levantar los contenedores
sudo docker compose up -d — descarga las imágenes y levanta todos los servicios en segundo plano.4
Abrir en el navegador
Ir a
http://localhost:5173, registrar un usuario y comenzar.bash — instalación completa de VulnInventory
# 1. Clonar el repositorio
git clone https://github.com/CrisorHacker/vulninventory.git
cd vulninventory
# 2. Configurar variables de entorno
cp .env.example .env
# Generar un JWT_SECRET seguro (mínimo 32 chars)
python3 -c "import secrets; print(secrets.token_urlsafe(48))"
# Copia el resultado y pégalo como valor de JWT_SECRET en .env
nano .env
# 3. Levantar los contenedores en segundo plano
sudo docker compose up -d
# Verificar que todos los servicios están activos
docker compose ps
🔑 JWT_SECRET obligatorio: Debes cambiar el valor por defecto de
JWT_SECRET en el archivo .env antes de cualquier uso real. Usa el comando Python de arriba para generar una cadena criptográficamente segura de 48 caracteres.Puertos y Acceso
VulnInventory expone dos servicios por defecto: la interfaz web (React) y la API REST (FastAPI).
:5173
Interfaz Web — UI React
http://localhost:5173
:8001
API REST — FastAPI
http://localhost:8001
ℹ️ Documentación de la API: FastAPI genera automáticamente documentación interactiva en
http://localhost:8001/docs (Swagger UI) y http://localhost:8001/redoc.Datos de Demo
Carga datos de ejemplo para explorar todas las funcionalidades sin tener que crear hallazgos desde cero.
bash — cargar datos de demo
# Ejecutar el seed de datos de demostración
docker compose exec -T api python -m app.seed_demo
Una vez cargados los datos demo, accede con estas credenciales:
Email
demo@example.com
Password
DemoSegura123
URL
http://localhost:5173
✅ Exploración rápida: Los datos de demo incluyen proyectos de ejemplo, hallazgos con distintos niveles de severidad CVSS y activos de muestra — perfectos para familiarizarse con el flujo de trabajo antes de usar datos reales.
Formatos de Importación Soportados
Importa hallazgos directamente desde los escáneres más populares del sector.
📄 CSV
🔧 JSON
🛡️ Nessus XML
🔍 Burp Suite XML
📋 SARIF
🌐 Qualys
Escáneres integrados en la cola
VulnInventory puede lanzar escaneos directamente desde la interfaz web a través de su cola integrada:
🔬
Nuclei
Escaneo de vulnerabilidades por plantillas YAML
🌊
Wapiti
Escáner de vulnerabilidades web (OWASP)
📦
OSV Scanner
Dependencias vulnerables en código fuente
🔌
VulnAPI
Análisis de seguridad de APIs REST
🔗 Repositorio: github.com/CrisorHacker/vulninventory — open source, sin licencias ni vendor lock-in.