
Plataforma de gestión de vulnerabilidades que importa informes de escáneres, los enriquece con inteligencia de CISA KEV y Exploit-DB, y proporciona puntuación de riesgo contextual para una remediación priorizada.
Una plataforma integral de gestión de vulnerabilidades que analiza informes de escaneo de seguridad, enriquece datos de vulnerabilidades con inteligencia de exploits y proporciona puntuación de riesgo procesable para priorizar la remediación.
*** El uso del proceso de enriquecimiento CVE en la primera carga ralentizará el proceso de subida. Solo intentará enriquecer las vulnerabilidades subidas marcadas como explotables en sus escaneos, pero el tiempo puede variar significativamente según el tamaño del archivo subido.***

El panel proporciona una vista general de su postura de seguridad con:
Navegue, filtre y ordene vulnerabilidades por:

Vista detallada que incluye:

Opción A: Usando el instalador
node --version
npm --version
Opción B: Usar una Versión de Node Estable (Recomendado)
nvm install 22.12.0
nvm use 22.12.0
Opción C: Usando winget (Administrador de Paquetes de Windows)
winget install OpenJS.NodeJS.LTS
winget install Git.Git
Opción D: Usando Chocolatey
choco install nodejs-lts
choco install git
Usando Homebrew:
brew install node
brew install git
O descargue el instalador desde https://nodejs.org
Verifique la instalación:
node --version
npm --version
# Usando el repositorio NodeSource para la última LTS
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs git
# Verificar
node --version
npm --version
macOS / Linux:
git clone https://github.com/jrokz2315/exploit-mapper.git
cd exploit-mapper
Windows (Símbolo del sistema):
git clone https://github.com/jrokz2315/exploit-mapper.git
cd exploit-mapper
Windows (PowerShell):
git clone https://github.com/jrokz2315/exploit-mapper.git
cd exploit-mapper
Todas las plataformas:
npm run install:all
O instale manualmente:
macOS / Linux:
npm install
cd server && npm install
cd ../client && npm install
cd ..
Windows (Símbolo del sistema):
npm install
cd server && npm install
cd ..\client && npm install
cd ..
Windows (PowerShell):
npm install
cd server; npm install
cd ..\client; npm install
cd ..
Nota (Windows): Si encuentra errores con
better-sqlite3, es posible que necesite instalar las herramientas de compilación de Windows:npm install --global windows-build-toolsO instale Visual Studio Build Tools con la carga de trabajo "Desarrollo de escritorio con C++" desde https://visualstudio.microsoft.com/visual-cpp-build-tools/
Modo desarrollo (con recarga en caliente) — todas las plataformas:
npm run dev
Esto inicia tanto el servidor backend (puerto 3000) como el servidor de desarrollo frontend (puerto 5173).
Modo producción — todas las plataformas:
# Compilar el cliente
npm run build
# Iniciar el servidor
npm start
Abra su navegador y navegue a:
http://localhost:5173http://localhost:3000En la primera ejecución, se crea una cuenta de administrador por defecto:
adminAdmin123!Se le solicitará cambiar esta contraseña en el primer inicio de sesión.
exploit-mapper/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ └── App.jsx # Main app component
│ ├── package.json
│ └── vite.config.js
├── server/ # Express backend
│ ├── src/
│ │ ├── db/ # Database schema and connection
│ │ ├── middleware/ # Auth middleware
│ │ ├── routes/ # API routes
│ │ └── services/ # Business logic
│ ├── data/ # SQLite database (gitignored)
│ ├── uploads/ # Temporary upload storage (gitignored)
│ └── package.json
├── package.json # Root package with scripts
├── .gitignore
├── LICENSE
├── CONTRIBUTING.md
└── README.md
| Método | Endpoint | Descripción |
|---|---|---|
POST | /api/auth/login | Inicio de sesión de usuario |
POST | /api/auth/logout | Cierre de sesión de usuario |
GET | /api/auth/me | Obtener usuario actual |
POST | /api/auth/change-password | Cambiar contraseña |
| Método | Endpoint | Descripción |
|---|---|---|
GET | /api/dashboard/summary | Métricas del panel |
GET | /api/dashboard/risk | Desglose de riesgo |
GET | /api/dashboard/trends | Tendencias históricas |
GET | /api/dashboard/executive-summary | Resumen ejecutivo |
| Método | Endpoint | Descripción |
|---|---|---|
GET | /api/vulnerabilities | Listar (con filtrado/paginación) |
GET | /api/vulnerabilities/:id | Detalles de vulnerabilidad |
GET | /api/vulnerabilities/exploitable | Solo explotables |
GET | /api/vulnerabilities/stats/summary | Estadísticas |
PATCH | /api/vulnerabilities/:id | Actualizar estado |
PATCH | /api/vulnerabilities | Actualización masiva |
POST | /api/vulnerabilities/manual | Agregar entrada manual |
DELETE | /api/vulnerabilities/:id | Eliminar entrada manual |
| Método | Endpoint | Descripción |
|---|---|---|
GET | /api/devices | Listar dispositivos |
GET | /api/devices/:id | Detalles del dispositivo |
PATCH | /api/devices/:id | Actualizar información del dispositivo |
| Método | Endpoint | Descripción |
|---|---|---|
POST | /api/upload | Subir informe de vulnerabilidades |
GET | /api/upload/info | Estadísticas de carga |
DELETE | /api/upload/clear | Limpiar todos los datos |
| Método | Endpoint | Descripción |
|---|---|---|
GET | /api/reports | Listar informes subidos |
GET | /api/reports/:id/export | Exportar informe |
Exploit Mapper detecta y mapea automáticamente columnas de varios escáneres de vulnerabilidades:
| Escáner | Método de Detección |
|---|---|
| Arctic Wolf | columnas risk_id, asset_category |
| Nessus/Tenable | columna plugin_id |
| Qualys | columna qid |
| OpenVAS | columna nvt |
| Nexpose/Rapid7 | identificador nexpose |
| CSV/Excel Genérico | Coincidencia inteligente de nombres de columna |
El analizador mapea automáticamente nombres de columna comunes:
| Campo | Nombres de Columna Reconocidos |
|---|---|
| CVE | cve, cves, cve_id, vulnerability_id |
| Título | name, title, vulnerability, plugin_name |
| Descripción | description, synopsis, summary |
| Solución | solution, remediation, fix, recommendation |
| Severidad | severity, risk_severity, risk_level |
| Puntuación CVSS | cvss, cvss_score, cvssv3_score |
| Host | hostname, asset_name, host_name, fqdn |
| Dirección IP | ip_address, host_ip, asset_ip |
Risk Score = CVSS Score + Adjustments
Adjustments:
+0.5 si está en CISA KEV (explotado activamente)
+0.3 si hay exploit público disponible
Overall = (Max Risk x 30%) + (Avg Risk x 40%) + (Avg Exploitable x 20%) + (Density x 10%)
Con CISA KEV presente: multiplicar por 1.05
| Componente | Peso | Descripción |
|---|---|---|
| Puntuación de Riesgo Máxima | 30% | Riesgo más alto de una sola vulnerabilidad |
| Puntuación de Riesgo Promedio | 40% | Promedio de todas las vulnerabilidades |
| Riesgo Explotable Promedio | 20% | Promedio solo de vulnerabilidades explotables |
| Factor de Densidad | 10% | log10(total_vulns + 1) x 3 (máx. 10) |
Cree un archivo .env en el directorio server/ (opcional — consulte server/.env.example):
PORT=3000
NODE_ENV=production
SESSION_SECRET=your-secret-key
Exploit Mapper utiliza SQLite para un almacenamiento sin configuración. La base de datos se crea automáticamente en server/data/exploit-mapper.db en la primera ejecución.
Windows:
netstat -ano | findstr :3000
taskkill /PID <pid> /F
macOS / Linux:
lsof -i :3000
kill -9 <pid>
Este módulo nativo requiere herramientas de compilación de C++:
:: Opción 1: Instalar mediante npm
npm install --global windows-build-tools
:: Opción 2: Instalar Visual Studio Build Tools
:: Descargar desde https://visualstudio.microsoft.com/visual-cpp-build-tools/
:: Seleccionar la carga de trabajo "Desarrollo de escritorio con C++"
Después de instalar, elimine node_modules y reinstale:
cd server
rmdir /s /q node_modules
npm install
Asegúrese de que solo una instancia del servidor esté en ejecución. En Windows:
tasklist | findstr node
taskkill /IM node.exe /F
En macOS / Linux:
pkill -f "node.*index.js"
.csv, .xlsx o .xlsSi concurrently falla, intente ejecutar el servidor y el cliente por separado en dos ventanas de terminal:
Terminal 1 (Servidor):
cd server
npm run dev
Terminal 2 (Cliente):
cd client
npm run dev
Consulte CONTRIBUTING.md para obtener pautas detalladas.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENSE para obtener más detalles.