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:

HerramientaInput que pideTipo
Hash LookupHash MD5/SHA-1/SHA-256text
Password AuditPassword a analizarpassword
CVE SearchKeyword o CVE IDtext
Net ConnectionsSin input (ejecucion 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 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.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

MetodoRutaDescripcion
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 ejecucion
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 ejecucion
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 conexion Splunk
POST/api/splunk/export-allBulk export a Splunk
GET/POST/api/proxyConfiguracion 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 (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 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 categorias, Splunk integration con sourcetypes personalizados Ultima actualización: 2026-06-26