Simulador educativo de concienciación en ciberseguridad para empleados.
Un juego interactivo, en un único archivo HTML, que enseña a reconocer phishing e ingeniería social poniendo al usuario en el papel de un empleado de una empresa ficticia durante una jornada de trabajo. Sin instalación, sin dependencias, sin backend y sin telemetría.
▶ Pruébalo aquí: mr7security.github.io/phantom-desk No hay nada que instalar. Se abre y se juega.
La mayoría de la formación en concienciación consiste en un vídeo de veinte minutos y un test de diez preguntas que se aprueba adivinando. El empleado sale sabiendo que "hay que desconfiar de los correos raros", que es exactamente el conocimiento que no sirve cuando llega un correo que no parece raro.
Phantom Desk parte de otra premisa: la única forma de aprender a detectar un ataque es tomar la decisión y ver la consecuencia. Aquí se puede fallar, se falla, y el fallo se explica en el momento con las señales concretas resaltadas sobre el propio mensaje.
20 correos (10 maliciosos y 10 legítimos), 6 escenarios de ingeniería social ramificados y 1 jefe final. Cada partida sortea 5 + 5 correos y 3 escenarios, así que el simulador se puede repetir sin memorizar las respuestas.
Un cliente de correo simulado donde hay que clasificar cada mensaje como legítimo o como ataque.
Mecánicas implementadas:
- Inspector de cabeceras — muestra
Return-Path,SPF,DKIM,DMARC,Reply-Toy servidor de origen, con los valores en FAIL resaltados. Enseña que la prueba técnica está a dos clics, y también su límite: un dominio del atacante bien configurado también da PASS. - Barra de estado tipo navegador — al pasar el ratón (o al tabular) por un enlace se revela el destino real, que casi nunca coincide con el texto visible.
- Penalización por clic — pulsar un enlace, un adjunto o un QR malicioso resta índice de seguridad antes de haber decidido. Traslada la idea de que en un ataque real el daño ocurre en el clic, no en el veredicto.
- Disección post-decisión — al resolver, las señales de alerta se resaltan numeradas sobre el cuerpo del correo, con la explicación de cada una y las técnicas ATT&CK asociadas.
Cada ataque tiene su gemelo legítimo en el banco. El DocuSign falso convive con el DocuSign real; la factura fraudulenta con la factura auténtica del mismo proveedor; la petición de cambio de IBAN con el correo de RR. HH. que explica el procedimiento correcto. Puestos uno al lado del otro, el participante descubre que la diferencia nunca está en el diseño, sino en el dominio, en la petición y en la urgencia.
Vectores cubiertos: phishing de credenciales con dominio homógrafo, fraude de facturación con doble extensión .pdf.exe, fraude del CEO con Reply-To desviado, phishing de MFA en tiempo real, spear phishing desde buzón de proveedor comprometido, quishing con código QR, callback phishing (TOAD) sin enlaces ni adjuntos, desvío de nómina y suplantación de servicios de colaboración y de firma electrónica.
Seis conversaciones ramificadas con barra de presión temporal, de las que se juegan tres:
| Escenario | Vector |
|---|---|
| «Soporte técnico» al aparato | Vishing con petición de acceso remoto |
| El SMS de la paquetería | Smishing con captura del código bancario |
| El visitante con las manos ocupadas | Tailgating y USB desconocido |
| El QR del parking | Quishing físico mediante pegatina superpuesta |
| Las tres de la mañana | Fatiga de notificaciones MFA |
| La voz del jefe de proyecto | Audio clonado con IA por mensajería |
Cada opción devuelve retroalimentación inmediata explicando por qué funciona o falla, y cada rama termina en un desenlace narrado con la consecuencia real.
Una cadena BEC completa de cuatro eslabones: correo de dirección desde un dominio casi idéntico, llamada de una asesoría inventada, orden de pago con IBAN nuevo y, para cerrar, una llamada del CEO con la voz clonada a partir de su intervención en un congreso público. Cada pieza es razonable por separado; el aprendizaje es que tres señales falsas no suman una verdadera.
Puntuación global ponderada, desglose por cuatro competencias, ocho insignias, cobertura MITRE ATT&CK de la partida y un plan de mejora redactado a partir de los errores concretos cometidos. Imprimible a PDF desde el navegador.
Todo el contenido está mapeado a técnicas de MITRE ATT&CK Enterprise, visibles en cada veredicto y agregadas en el informe final con el resultado obtenido frente a cada una.
Técnicas cubiertas (20)
| Técnica | Nombre | Dónde aparece |
|---|---|---|
| T1566.001 | Phishing: adjunto dirigido | Factura con .pdf.exe |
| T1566.002 | Phishing: enlace dirigido | Credenciales, MFA, quishing, SharePoint, DocuSign |
| T1566.004 | Phishing: voz dirigida | Vishing, voz clonada, jefe final |
| T1598.003 | Phishing para obtener información: enlace | Portales de captura de credenciales |
| T1598.004 | Phishing para obtener información: voz | Callback phishing (TOAD) |
| T1204.001 | Ejecución por el usuario: enlace malicioso | Quishing |
| T1204.002 | Ejecución por el usuario: archivo malicioso | Adjunto ejecutable |
| T1036.007 | Enmascaramiento: doble extensión | Factura.pdf.exe |
| T1656 | Suplantación de identidad | Fraude del CEO, proveedores, compañeros |
| T1657 | Robo financiero | BEC, desvío de nómina, fraude de tarjeta |
| T1621 | Generación de solicitudes de MFA | Fatiga de notificaciones |
| T1111 | Interceptación de MFA | Phishing de segundo factor |
| T1557 | Adversario en el medio | Portal AiTM en tiempo real |
| T1078 | Cuentas válidas | Buzón de proveedor comprometido |
| T1534 | Spearphishing interno | Cadena BEC |
| T1583.001 | Adquisición de dominios | Dominios homógrafos y de apoyo |
| T1585.002 | Creación de cuentas de correo | Gmail/Outlook del falso CEO |
| T1219 | Software de acceso remoto | Falso soporte técnico |
| T1091 | Replicación por medios extraíbles | USB del visitante |
| T1200 | Adiciones de hardware | Dispositivo tras la impresora |
Nota metodológica honesta: ATT&CK Enterprise modela el comportamiento del adversario sobre sistemas, no la intrusión física ni la manipulación psicológica presencial. El tailgating y la clonación de voz no tienen técnica propia; se mapean a la acción posterior (medios extraíbles, adiciones de hardware, vishing) y el simulador los marca explícitamente como correspondencia parcial en lugar de forzar un encaje que no existe.
Al terminar, el participante debería ser capaz de:
- Verificar un remitente leyendo el dominio completo, no el nombre visible.
- Comprobar el destino real de un enlace antes de pulsarlo, y entender por qué un QR es un enlace al que le han quitado esa posibilidad.
- Interpretar SPF, DKIM y DMARC, y conocer su límite.
- Reconocer las cuatro palancas comunes a todos los ataques: urgencia, autoridad, secreto y canal único.
- Aplicar la verificación por segundo canal ante cualquier petición de credenciales, pagos o cambios de cuenta bancaria.
- Asumir que la voz de una persona conocida ya no es una prueba de identidad.
- Sostener el procedimiento frente a la presión jerárquica, que es el punto exacto donde fracasan la mayoría de los fraudes BEC reales.
Descarga el repositorio y abre index.html con cualquier navegador moderno. No hay build, ni servidor, ni npm install. Funciona sin conexión.
git clone https://github.com/mr7security/phantom-desk.git
cd phantom-desk
# doble clic en index.html, o:
python3 -m http.server 8000 # http://localhost:8000| Parámetro | Efecto |
|---|---|
?seed=loquesea |
Sorteo reproducible: todos los participantes reciben exactamente la misma tanda. La semilla aparece en el informe final. |
?all=1 |
Juega el banco completo: 20 correos y los 6 escenarios. |
Para una sesión de formación, reparte index.html?seed=julio2026 y todo el mundo se enfrentará a los mismos correos, lo que permite comparar resultados y comentarlos en grupo.
- Sube el repositorio a GitHub.
- Settings → Pages, Source: Deploy from a branch, rama
main, carpeta/ (root). - En un minuto estará en
https://mr7security.github.io/phantom-desk/.
Funciona bien proyectado y jugado en grupo: se lee el correo en voz alta, se vota a mano alzada y se revela el veredicto. La discusión que genera un falso positivo suele ser más útil que el propio acierto. Duración: 25–35 minutos los tres módulos, o 12–15 solo la bandeja.
El contenido se valida automáticamente en cada push. tools/validate.mjs extrae el bloque de datos del HTML y comprueba:
- Grafos de diálogo: que todo
nextapunte a un nodo existente, que no haya nodos inalcanzables, que cada decisión tenga al menos un camino correcto y que cada escenario tenga finales bueno y malo. - Coherencia de puntuación: que ninguna opción puntúe positivo estando etiquetada como error, ni al revés.
- Correos: campos obligatorios, ids únicos, mínimo de señales de alerta o de indicios de legitimidad, numeración de señales sin huecos, correspondencia entre los
data-nresaltados en el cuerpo y la lista de explicaciones, y que ningún enlace simulado lleve unhrefreal. - ATT&CK: formato de las técnicas, que todas existan en el diccionario, que todo ataque esté mapeado y que no sobren entradas.
- Insignias: que cada una declarada se conceda realmente en algún punto del código.
- Promesas del proyecto: ausencia de
fetch,localStorage, cookies, scripts externos y hojas de estilo remotas, más las comprobaciones básicas de accesibilidad.
node tools/validate.mjsEs lo que evita que añadir un escenario nuevo rompa silenciosamente el juego. Si editas el contenido, no borres los marcadores @DATA:START / @DATA:END.
- Navegación completa por teclado: lista de correos como
listboxcon flechas,Home/EndyEnter; teclas1–4para elegir respuesta en los diálogos; tarjetas del hub activables conEnter. - Regiones
aria-livepara veredictos, retroalimentación, transcripción de la conversación y avisos. - Los enlaces simulados exponen su destino real en
aria-label, que es el equivalente accesible de pasar el ratón por encima. prefers-reduced-motiondesactiva glitch, pulsos, líneas de barrido y transiciones.- Soporte de
forced-colors, foco visible, enlace de salto al contenido yrole="progressbar"en el índice de seguridad.
Todo el contenido vive entre los marcadores @DATA:START y @DATA:END, separado de la lógica:
| Constante | Qué define |
|---|---|
EMAILS |
Los correos: remitente, cuerpo HTML, cabeceras, señales de alerta y explicación |
TECH / MITRE |
Diccionario de técnicas ATT&CK y su asignación a cada contenido |
SCENARIOS |
Los diálogos ramificados del módulo 2 (grafo de nodos y opciones) |
BOSS |
La cadena del jefe final, con el mismo formato de nodos |
BADGES |
Las insignias desbloqueables |
Para adaptarlo a tu organización, sustituye nordvia.es por tu dominio, cambia los nombres de los remitentes y ajusta los escenarios a vuestros procedimientos reales de pago y de soporte. Después ejecuta el validador: te dirá si algo ha quedado inconsistente.
Añadir un enlace con destino falso:
<a class="lnk" data-href="http://dominio-real-del-atacante.tld/x">https://texto-que-se-muestra.es</a>Marcar una señal de alerta en el cuerpo, numerada según su entrada en flags:
<span class="flag" data-n="3">hoy antes de las 13:00</span>- Un solo archivo HTML + CSS + JavaScript sin librerías externas.
- Estado en memoria: no usa cookies,
localStorageni almacenamiento alguno. Cerrar la pestaña borra la partida, lo que evita cualquier duda de privacidad al desplegarlo en una intranet. - Sin peticiones de red. Auditable leyéndolo, y verificado por CI.
- Efectos de sonido generados con la Web Audio API, desactivables desde el HUD.
- Sorteo reproducible con un PRNG determinista (mulberry32) sembrado por hash FNV-1a de la semilla.
- Responsive y con hoja de estilos de impresión para el informe.
Este proyecto es exclusivamente defensivo y educativo. No contiene código malicioso, ni infraestructura de ataque, ni herramientas de recolección de credenciales, ni instrucciones para construirlas. Los correos son texto estático dentro de una página que no envía nada a ninguna parte.
Grupo Nordvia, sus empleados, sus proveedores y todos los dominios que aparecen son ficticios; cualquier parecido con entidades reales es casual. Los dominios usan deliberadamente formas no registrables o de ejemplo.
Si vas a realizar una campaña de simulación real contra tu plantilla, recuerda que en la UE eso implica informar a los representantes de los trabajadores, valorar el impacto en protección de datos y no señalar individualmente a quien caiga. Este simulador está pensado precisamente como la alternativa amable: se juega con consentimiento y sin consecuencias laborales.
- Banco ampliado con sorteo por partida y semilla reproducible
- Mapeo completo a MITRE ATT&CK
- Vectores de 2026: quishing, fatiga de MFA y clonación de voz
- Validador de contenido y CI
- Accesibilidad por teclado, lectores de pantalla y movimiento reducido
- Módulo de contraseñas con medidor de entropía en vivo
- Modo formador con resultados agregados exportables a CSV
- Versión bilingüe ES/EN con selector en el HUD
- Capturas y GIF de demostración en este README
MIT. Úsalo, modifícalo y despliégalo en tu organización libremente. Si te resulta útil en una formación real, una estrella en el repositorio es suficiente agradecimiento.