sec-dashboard — Overview
Que es
Dashboard web local-first que unifica 35 herramientas de seguridad en una sola interfaz. Desarrollado por Sammi De Blas como parte del entorno SOC/offensive lab.
- Stack: FastAPI + SQLite + WebSocket + SPA vanilla JS
- Version: 1.0
- Puerto: 8444
- Sin Docker — corre directo en Windows/Linux con Python puro
- Sin binarios externos — no requiere nmap, nuclei, ni binarios Go
- Anonimato — proxy TOR/SOCKS5 integrado con detección automática de instalación
- Ubicacion:
~/sec-dashboard/ - Repo: https://github.com/HOSTNAME/sec-dashboard
- Deploy: Railway + Cloudflare Access en
sec.sammideblas.com
Herramientas (35)
Todas implementadas en Python puro, sin binarios externos.
Network Recon (9)
- Port Scanner — escaneo TCP async con detección de servicios, soporte IPv4/IPv6
- DNS Recon — enumeracion DNS (A, AAAA, MX, NS, TXT, SOA, CNAME, SRV, CAA)
- Subdomain Enum — descubrimiento via DNS brute-force
- HTTP Probe — probing HTTP/HTTPS con detección de tecnologias
- Whois Lookup — información de registro de dominios
- Ping Sweep — verificación ICMP de alcanzabilidad
- Traceroute — trazado de ruta de red
- SSL/TLS Analyzer — Análisis de certificados y cifrado
- CAA Checker — verifica que CAs pueden emitir certificados para el dominio
Web Security (10)
- Header Analyzer — auditoria de headers de seguridad con grading (A+ a F)
- Directory Fuzzer — brute-force de directorios y archivos web
- SQLi Scanner — detección de SQL injection (GET + POST, error-based + boolean-based)
- XSS Scanner — detección de XSS reflejado
- CORS Checker — detección de misconfiguracion CORS (4 tests)
- Tech Detector — fingerprinting de stack tecnologico
- CSP Analyzer — Análisis de Content Security Policy con scoring 0-100
- Open Redirect — detección de vulnerabilidades de redireccion abierta
- HTTP Methods — comprueba métodos HTTP permitidos (PUT, DELETE, TRACE)
- Robots.txt Analyzer — analiza robots.txt en busca de paths sensibles
Vulnerability (3) — Special tools (input custom, no requieren dominio/IP)
- CVE Search — busqueda en NIST NVD por keyword o CVE ID
- Hash Lookup — reputacion de hash via MalwareBazaar + VirusTotal (opcional)
- Password Audit — Análisis de fortaleza + check Have I Been Pwned
System (6) — Special tools (reportan la maquina local o hardware conectado)
- Net Connections — conexiones activas y puertos en escucha
- Process Monitor — procesos en ejecución con correlación de red
- System Info — OS, red, firewall, postura de seguridad, disco, RAM
- PS Security Audit — audit enterprise completo via PowerShell (10 modulos, Windows only). Requiere Auditing_with_PowerShell clonado localmente. Ver Integracion Auditing with PowerShell
- WiFi Marauder Scan — polling de WiFi scans desde wifi-marauder-viewer (M5StickC + Marauder firmware). Input: URL del viewer. Ver Integracion Hardware y Splunk Export
- M5Stick Networks — polling de redes + clientes desde M5Stick Plus 2 viewer (Evil-M5Project firmware). Input: URL del viewer. Ver Integracion Hardware y Splunk Export
OSINT (5) — Reconocimiento pasivo, sin paquetes al target
- ASN/BGP Lookup — operador de red, ASN, prefijo BGP (bgpview.io + fallback ip-api)
- Reverse DNS — PTR records y cadena DNS inversa
- CT Logs — descubrimiento de subdominios via Certificate Transparency (crt.sh)
- Shodan Lookup — puertos, vulnerabilidades, servicios (Shodan InternetDB, gratis sin key)
- IP Geolocation — geolocalizacion, ISP, detección de proxy/hosting (ip-api.com)
Email Security (2)
- DNSSEC Checker — verifica DNSKEY, DS records, y chain of trust
- Email Security — SPF, DKIM, y DMARC analysis con score 0-3
Special Tools
Las herramientas especiales no siguen el flujo normal de seleccionar target (dominio/IP). Cada una pide lo que necesita:
| Herramienta | Input que pide | Tipo |
|---|---|---|
| Hash Lookup | Hash MD5/SHA-1/SHA-256 | text |
| Password Audit | Password a analizar | password |
| CVE Search | Keyword o CVE ID | text |
| Net Connections | Sin input (ejecucion directa) | none |
| Process Monitor | Sin input | none |
| System Info | Sin input | none |
| PS Security Audit | Sin input (Windows only) | none |
| WiFi Marauder Scan | URL del viewer (default http://127.0.0.1:5000) | text |
| M5Stick Networks | URL del viewer (default http://127.0.0.1:5000) | text |
Estas herramientas estan disponibles individualmente desde la pestana Tools, pero NO se ejecutan en el pipeline Nuclear (no tienen sentido contra un dominio remoto).
Pipeline Engine
3 modos de escaneo automatizado. Fases secuenciales, tools en paralelo dentro de cada fase.
Fast (4 tools, ~1 min)
- Recon: whois, dns_recon, http_probe
- Scan: port_scanner
Deep (14 tools, ~3 min)
- Recon: whois, dns_recon, subdomain_enum, http_probe
- Scan: port_scanner, ssl_analyzer
- Web: header_analyzer, tech_detector, dir_fuzzer, cors_checker, csp_analyzer
- OSINT: reverse_dns, ct_logs, ip_geolocation
Nuclear (25 tools, ~7 min)
- Recon: whois, dns_recon, subdomain_enum, http_probe, caa_checker
- Scan: port_scanner, ssl_analyzer
- Web: header_analyzer, tech_detector, dir_fuzzer, sqli_scanner, xss_scanner, cors_checker, csp_analyzer, open_redirect, http_methods, robots_analyzer
- Vuln: cve_search
- OSINT: asn_lookup, reverse_dns, ct_logs, shodan_lookup, ip_geolocation
- Email: dnssec_checker, email_security
Proxy / Anonimato
TOR (SOCKS5)
- Detección automática de TOR Browser instalado (no solo si está corriendo)
- Busca en Desktop, Program Files, Downloads, LocalAppData en Windows
- Busca en /usr/bin/tor, /usr/local/bin/tor en Linux
- Puerto por defecto: 9150 (TOR Browser) o 9050 (expert bundle)
- Configuración desde la interfaz: Proxy > TOR > Save > Test TOR IP
- Las herramientas OSINT y web se enrutan automáticamente
SOCKS5 / SOCKS4 (VPN)
- Compatible con cualquier VPN que proporcione proxy SOCKS5
- Configurar host, puerto, usuario/password opcionales
Notificaciones
Webhooks
- Discord, Slack, y generic HTTP webhooks
- Notifica cuando scans y pipelines completan
- Configuración desde la pestana Webhooks del dashboard
- Test de webhook integrado
Splunk Integration
- Auto-indexing de scans y pipelines via REST API
- Configuración desde la pestana Splunk del dashboard
- URL REST API (default:
https://127.0.0.1:8089) - Indice configurable (default:
sec_dashboard) - Metadata de scan: siempre enviada con
event,timestamp,tool,target,status,elapsed_seconds(sourcetype default_json) - Resultados completos: herramientas con JSON rico (PS Audit, WiFi scans) exportan resultados completos con sourcetypes personalizados:
powershell:audit— 1 evento por modulo del PS audit (busqueda granular por modulo)wifi:marauder— 1 evento con todas las redes detectadas (M5StickC Marauder)m5stick:networks— 1 evento con redes + clientes (M5Stick Plus 2 Evil-M5Project)
- Export All History para sincronizacion inicial
- Test de conexión integrado
- props.conf obligatorio para parsing automático de JSON en Splunk. Crear
C:\Program Files\Splunk\etc\apps\search\local\props.confconKV_MODE = jsonpara los 3 sourcetypes personalizados. Sin esto, los eventos se ven como JSON crudo. Ver Guía de uso y Manual Rapido - Ver Integracion Hardware y Splunk Export
Seguridad
SSRF Protection
- En modo remoto (auto-detectado via
PORTenv var), bloquea:- IPs privadas (10.x, 172.16-31.x, 192.168.x)
- Loopback (127.x, localhost)
- Link-local (169.254.x, metadata endpoints)
- Hostnames internos (.local, .internal, .corp)
- En modo local, todos los targets son permitidos
Reset Protection
DELETE /api/resetrequiere?confirm=true
Cancel de scans/pipelines
POST /api/scans/{id}/cancel— cancela un scan en ejecuciónPOST /api/pipelines/{id}/cancel— cancela un pipeline en ejecución
Exporte de Reportes
JSON (por scan o pipeline)
- Formato Splunk-compatible con campos
event,timestamp,target,result
JSON masivo (Export All)
- Exporta todos los scans y pipelines en un solo archivo
- Campo
events[]listo para ingestion en Splunk, ELK, o cualquier SIEM
PDF (por scan o pipeline)
- Reporte formateado con metadata, resultados, y apendice JSON raw
Arquitectura
~/sec-dashboard/
├── backend/
│ ├── main.py # FastAPI app + REST API + WebSocket
│ ├── config.py # Tool registry + pipeline definitions + SPECIAL_TOOLS
│ ├── scanner.py # Tool dispatcher con timeout handling
│ ├── pipeline.py # Pipeline Engine (fases + modos)
│ ├── models.py # SQLite models (aiosqlite) -- target_id nullable
│ ├── report.py # Generador de reportes JSON/PDF
│ ├── proxy.py # Proxy TOR/SOCKS5 + deteccion instalacion TOR
│ ├── validators.py # SSRF protection / target validation
│ ├── webhooks.py # Discord/Slack/generic webhook notifications
│ ├── splunk.py # Splunk REST API auto-indexing
│ └── tools/
│ ├── network.py # Network recon tools (9)
│ ├── web.py # Web security tools (10)
│ ├── vuln.py # Vulnerability tools (3)
│ ├── system.py # System monitoring tools (3)
│ ├── osint.py # OSINT passive tools (5)
│ ├── emailsec.py # Email security + DNS tools (5)
│ ├── audit.py # PS Security Audit wrapper (Auditing_with_PowerShell)
│ └── wifi.py # WiFi hardware tools (M5Stick Marauder + Evil-M5Project)
├── frontend/
│ └── index.html # Single-file SPA (inline CSS/JS)
├── data/
│ ├── sec.db # SQLite DB
│ └── results/ # Outputs de scans
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
└── README.md
API Endpoints
| Metodo | Ruta | Descripcion |
|---|---|---|
| GET | /api/status | Health check + remote mode |
| GET | /api/dashboard/stats | Dashboard overview stats |
| GET | /api/tools | Lista de herramientas (35) |
| POST | /api/tools/{id}/run | Ejecutar herramienta |
| GET/POST | /api/targets | CRUD targets (SSRF-validated) |
| DELETE | /api/targets/{id} | Borrar target + sus scans |
| GET | /api/scans | Listar scans (paginado: offset, limit) |
| POST | /api/scans | Crear y ejecutar scan (direct_input para special) |
| DELETE | /api/scans/{id} | Borrar scan |
| POST | /api/scans/{id}/cancel | Cancelar scan en ejecucion |
| GET | /api/scans/{id}/export/json | Exportar scan JSON |
| GET | /api/scans/{id}/export/pdf | Exportar scan PDF |
| GET | /api/pipelines | Listar modos de pipeline |
| POST | /api/pipelines | Iniciar pipeline |
| GET | /api/pipelines/history | Historial de pipelines |
| POST | /api/pipelines/{id}/cancel | Cancelar pipeline en ejecucion |
| GET | /api/pipelines/{id}/result | Resultado de pipeline |
| GET | /api/pipelines/{id}/export/json | Exportar pipeline JSON |
| GET | /api/pipelines/{id}/export/pdf | Exportar pipeline PDF |
| GET/POST | /api/webhooks | CRUD webhooks |
| PUT/DELETE | /api/webhooks/{id} | Update/delete webhook |
| POST | /api/webhooks/{id}/test | Test webhook |
| GET/POST | /api/splunk | Config Splunk |
| POST | /api/splunk/test | Test conexion Splunk |
| POST | /api/splunk/export-all | Bulk export a Splunk |
| GET/POST | /api/proxy | Configuracion proxy |
| GET | /api/proxy/tor-ip | Verificar IP de salida TOR |
| GET | /api/export/all/json | Exporte masivo JSON |
| GET | /api/export/all/pdf | Exporte masivo PDF |
| DELETE | /api/reset?confirm=true | Borrar todo (requiere confirm) |
| WS | /ws | WebSocket real-time |
Despliegue
Railway + Cloudflare Access (produccion)
- Deploy automático desde GitHub en cada push a
master - Cloudflare Access con GitHub OAuth para autenticación
- URL:
sec.sammideblas.com
Local
cd ~/sec-dashboard
python -m uvicorn backend.main:app --host 127.0.0.1 --port 8444Docker
docker build -t sec-dashboard .
docker run -p 8444:8444 sec-dashboardVariables de entorno opcionales
export VIRUSTOTAL_API_KEY=tu_key # Hash lookup avanzado
export SHODAN_API_KEY=tu_key # Shodan API avanzado
export PORT=8444 # Railway usa PORT
export SEC_DASHBOARD_REMOTE=1 # Forzar modo remoto (SSRF protection)sec-dashboard v1.1 — 35 herramientas, 6 categorias, Splunk integration con sourcetypes personalizados Ultima actualización: 2026-06-26