sec-dashboard — Overview

Qué eses

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
  • Versión: 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
  • Ubicación: ~/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 — enumeración 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 tecnologías
  • 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 — auditoría 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 misconfiguración 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 redirección 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 — reputación 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 — geolocalización, 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:

HerramientaInput que pideTipo
Hash LookupHash MD5/SHA-1/SHA-256text
Password AuditPassword a analizarpassword
CVE SearchKeyword o CVE IDtext
Net ConnectionsSin input (ejecución directa)none
Process MonitorSin inputnone
System InfoSin inputnone
PS Security AuditSin input (Windows only)none
WiFi Marauder ScanURL del viewer (default http://127.0.0.1:5000)text
M5Stick NetworksURL del viewer (default http://127.0.0.1:5000)text

Estas herramientas están disponibles individualmente desde la pestaña 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 pestaña Webhooks del dashboard
  • Test de webhook integrado

Splunk Integration

  • Auto-indexing de scans y pipelines via REST API
  • Configuración desde la pestaña Splunk del dashboard
  • URL REST API (default: https://127.0.0.1:8089)
  • Índice 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 sincronización 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.conf con KV_MODE = json para 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 PORT env 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/reset requiere ?confirm=true

Cancel de scans/pipelines

  • POST /api/scans/{id}/cancel — cancela un scan en ejecución
  • POST /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

MétodoRutaDescripción
GET/api/statusHealth check + remote mode
GET/api/dashboard/statsDashboard overview stats
GET/api/toolsLista de herramientas (35)
POST/api/tools/{id}/runEjecutar herramienta
GET/POST/api/targetsCRUD targets (SSRF-validated)
DELETE/api/targets/{id}Borrar target + sus scans
GET/api/scansListar scans (paginado: offset, limit)
POST/api/scansCrear y ejecutar scan (direct_input para special)
DELETE/api/scans/{id}Borrar scan
POST/api/scans/{id}/cancelCancelar scan en ejecución
GET/api/scans/{id}/export/jsonExportar scan JSON
GET/api/scans/{id}/export/pdfExportar scan PDF
GET/api/pipelinesListar modos de pipeline
POST/api/pipelinesIniciar pipeline
GET/api/pipelines/historyHistorial de pipelines
POST/api/pipelines/{id}/cancelCancelar pipeline en ejecución
GET/api/pipelines/{id}/resultResultado de pipeline
GET/api/pipelines/{id}/export/jsonExportar pipeline JSON
GET/api/pipelines/{id}/export/pdfExportar pipeline PDF
GET/POST/api/webhooksCRUD webhooks
PUT/DELETE/api/webhooks/{id}Update/delete webhook
POST/api/webhooks/{id}/testTest webhook
GET/POST/api/splunkConfig Splunk
POST/api/splunk/testTest conexión Splunk
POST/api/splunk/export-allBulk export a Splunk
GET/POST/api/proxyConfiguración proxy
GET/api/proxy/tor-ipVerificar IP de salida TOR
GET/api/export/all/jsonExporte masivo JSON
GET/api/export/all/pdfExporte masivo PDF
DELETE/api/reset?confirm=trueBorrar todo (requiere confirm)
WS/wsWebSocket real-time

Despliegue

Railway + Cloudflare Access (producción)

  • 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 8444

Docker

docker build -t sec-dashboard .
docker run -p 8444:8444 sec-dashboard

Variables 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 categorías, Splunk integration con sourcetypes personalizados