SOC Prime Bias: Medio

03 Jun 2026 16:20 UTC

DriveSurge utiliza ClickFix y ataques de actualización falsa por Drive-By a gran escala

Author Photo
SOC Prime Team linkedin icon Seguir
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

DriveSurge es un broker de acceso inicial emergente que compromete sitios web legítimos e inyecta JavaScript malicioso para canalizar a los visitantes a través de un Sistema de Distribución de Tráfico de código abierto conocido como zTDS. El actor luego presenta páginas de actualización de navegador falsas o mensajes de estilo ClickFix que entregan malware a usuarios de macOS y Windows mediante descargas engañosas o comandos maliciosos de PowerShell. Su infraestructura incluye miles de .icu dominios registrados a través de NiceNIC y alojados en infraestructura blindada. La campaña es de gran alcance y apunta a usuarios de múltiples navegadores y sistemas operativos.

Investigación

Los investigadores identificaron ocho huellas técnicas distintas vinculadas a la operación, incluidos nombres de archivos característicos de JavaScript como t.js, t..js, y ext-b..js, junto con características recurrentes del servidor como nginx y hashes JARM específicos. El mapeo de la infraestructura se basó en la búsqueda de dominios, pivotes de correo WHOIS y análisis de sitios web comprometidos incluyendo jclforwarding.com. El equipo también extrajo URLs de entrega de cargas útiles, servidores de comando y control, y documentó el comportamiento de secuestro de portapapeles dirigido específicamente a las víctimas de macOS.

Mitigación

Las organizaciones deben monitorear los patrones de inyección de JavaScript documentados, la presencia de archivos relacionados con zTDS como jsrepo con el rnd parámetro, y conexiones salientes a direcciones IP conocidas de hosting blindado. Los defensores deben bloquear .icu dominios registrados a través de NiceNIC que coincidan con las huellas identificadas y aplicar políticas estrictas de seguridad de contenido a sus activos web que enfrentan a internet. Las protecciones en los puntos finales también deben ser capaces de detectar las cadenas de comandos de PowerShell y Bash codificadas en Base64 utilizadas en la entrega.

Respuesta

Si se detecta actividad de DriveSurge, los activos web afectados deben aislarse de inmediato, se debe eliminar el JavaScript malicioso y se deben revisar o revocar las inscripciones de dominio comprometidas. Los dominios e IPs identificados deben bloquearse en el perímetro de la red. Los equipos de seguridad también deben realizar un análisis forense en cualquier sistema que haya ejecutado los comandos de descarga maliciosos y restablecer cualquier credencial expuesta. Los indicadores relevantes deben compartirse con los ISACs de la industria y socios de confianza.

graph TB %% Definiciones de clases classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ffcc99 classDef process fill:#ff9966 classDef operator fill:#ff9900 %% Nodos node_initial_access[«<b>Acción</b> – <b>T1189 Compromiso por drive-by</b><br/><b>Descripción</b>: Compromiso de sitios web de alta reputación e inyección de JavaScript malicioso.<br/><b>Resultado</b>: El navegador de la víctima carga código malicioso.»] class node_initial_access action node_content_injection[«<b>Acción</b> – <b>T1659 Inyección de contenido</b><br/><b>Descripción</b>: Scripts inyectados (t.js, ext-b, jsrepo) cargan el sistema de distribución de tráfico zTDS.<br/><b>Scripts</b>: t.js, ext-b, jsrepo.»] class node_content_injection action tool_ztds[«<b>Herramienta</b> – zTDS Sistema de distribución de tráfico<br/><b>Propósito</b>: Servir JavaScript malicioso a navegadores comprometidos.»] class tool_ztds tool malware_jsrepo[«<b>Malware</b> – jsrepo<br/><b>Rol</b>: Script cargador ofuscado que entrega URLs de payload.»] class malware_jsrepo malware node_obfuscation[«<b>Acción</b> – Ofuscación de comandos y evasión<br/><b>Técnicas</b>: T1027.010, T1027.007, T1027.018<br/><b>Descripción</b>: JavaScript codificado en base64, uso de atob, concatenación y Unicode invisible para ocultar URLs.»] class node_obfuscation action node_fake_updates[«<b>Acción</b> – <b>T1554 Actualizaciones falsas</b><br/><b>Descripción</b>: Páginas de actualización falsas inducen la descarga de binarios maliciosos.<br/><b>Relacionado</b>: T1204.004 Ejecución por el usuario.»] class node_fake_updates action node_copy_paste[«<b>Acción</b> – <b>T1204.004 Copia y pegado malicioso</b><br/><b>Descripción</b>: La víctima copia comandos desde la página falsa y los ejecuta en terminal.»] class node_copy_paste action node_clickfix[«<b>Acción</b> – <b>T1684 ClickFix ingeniería social</b><br/><b>Descripción</b>: Falsos errores reemplazan el portapapeles con comandos en base64.<br/><b>Técnica relacionada</b>: T1115 secuestro del portapapeles.»] class node_clickfix action node_clipboard_hijack[«<b>Acción</b> – <b>T1115 Secuestro del portapapeles</b><br/><b>Descripción</b>: El atacante sobrescribe el portapapeles con comandos maliciosos.»] class node_clipboard_hijack action node_browser_hijack[«<b>Acción</b> – <b>T1185 Secuestro de sesión del navegador</b><br/><b>Descripción</b>: Sitios comprometidos redirigen tráfico mediante zTDS a dominios controlados por el atacante.»] class node_browser_hijack action node_payload_delivery[«<b>Acción</b> – <b>T1133 Servicios remotos externos, T1105 Transferencia de herramientas</b><br/><b>Descripción</b>: Scripts usan curl/wget para descargar payloads secundarios para macOS.»] class node_payload_delivery action tool_curl[«<b>Herramienta</b> – curl<br/><b>Propósito</b>: Transferencia de archivos desde servidores del atacante.»] class tool_curl tool tool_wget[«<b>Herramienta</b> – wget<br/><b>Propósito</b>: Transferencia de archivos desde servidores del atacante.»] class tool_wget tool process_download[«<b>Proceso</b> – script de descarga<br/><b>Acción</b>: Ejecuta curl/wget para obtener binarios macOS.»] class process_download process node_c2[«<b>Acción</b> – <b>T1102.002 Comunicación bidireccional vía servicio web</b><br/><b>Descripción</b>: Malware se comunica con C2 mediante HTTPS e inyección de contenido para actualizaciones.»] class node_c2 action node_ad_distribution[«<b>Acción</b> – <b>T1596.004 Sistema de distribución publicitaria</b><br/><b>Descripción</b>: Anuncios maliciosos y CDN distribuyen payloads.»] class node_ad_distribution action %% Conexiones node_initial_access –>|usa| node_content_injection node_content_injection –>|carga| tool_ztds node_content_injection –>|entrega| malware_jsrepo malware_jsrepo –>|realiza| node_obfuscation node_obfuscation –>|habilita| node_fake_updates node_fake_updates –>|activa| node_copy_paste node_copy_paste –>|lleva a| node_clickfix node_clickfix –>|usa| node_clipboard_hijack node_clipboard_hijack –>|lleva a| node_browser_hijack node_browser_hijack –>|redirige a| node_payload_delivery node_payload_delivery –>|usa| tool_curl node_payload_delivery –>|usa| tool_wget node_payload_delivery –>|entrega| process_download process_download –>|ejecuta| node_c2 node_c2 –>|se comunica vía| node_ad_distribution

Flujo de Ataque

Ejecución de Simulación

Prerrequisito: La Verificación Previa de Telemetría y Línea Base debe haber sido superada.

Razonamiento: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.

  • Narración del Ataque y Comandos

    1. Etapa 1 – Desplegar carga útil maliciosa:
      Un atacante sube un archivo JavaScript llamado t.js (o un nombre basado en hash) al servidor web comprometido. El archivo contiene un fragmento de DriveSurge para contrabando HTML que obtiene silenciosamente cargas adicionales.

    2. Etapa 2 – Solicitud de la víctima:
      El navegador de la víctima (simulado con curl) solicita el archivo malicioso, produciendo un registro donde el URI de la solicitud coincide con el regex de Sigma.

    3. Etapa 3 – Generación de alerta:
      El SIEM ingiere la línea de registro de acceso, la regla Sigma evalúa el nombre de archivo campo y se genera la alerta.

  • Script de Prueba de Regresión

    #!/usr/bin/env bash
    set -euo pipefail
    
    # --- Variables -------------------------------------------------
    WEB_ROOT="/var/www/html"
    MALICIOUS_NAME="t.js"
    MALICIOUS_PATH="${WEB_ROOT}/${MALICIOUS_NAME}"
    MALICIOUS_CONTENT='console.log("DriveSurge payload executed");'
    
    # --- Deploy malicious JavaScript --------------------------------
    echo "${MALICIOUS_CONTENT}" | sudo tee "${MALICIOUS_PATH}" > /dev/null
    sudo chown www-data:www-data "${MALICIOUS_PATH}"
    sudo chmod 644 "${MALICIOUS_PATH}"
    
    # --- Give Apache a moment to notice the new file ---------------
    sleep 2
    
    # --- Simulate victim request (generates telemetry) ------------
    curl -s -o /dev/null "http://localhost/${MALICIOUS_NAME}"
    
    # --- Optional: output the logged line for manual review -------
    echo "=== Recent Apache log entry for verification ==="
    sudo tail -n 5 /var/log/apache2/access.log | grep "${MALICIOUS_NAME}" || echo "Log entry not found"
  • Comandos de Limpieza

    #!/usr/bin/env bash
    set -euo pipefail
    
    WEB_ROOT="/var/www/html"
    MALICIOUS_NAME="t.js"
    MALICIOUS_PATH="${WEB_ROOT}/${MALICIOUS_NAME}"
    
    # Remove the malicious file
    sudo rm -f "${MALICIOUS_PATH}"
    echo "Cleaned up ${MALICIOUS_PATH}"