AsyncRAT se ha consolidado como piedra angular del malware moderno y como una amenaza omnipresente que ha evolucionado hasta convertirse en una extensa red de forks y variantes. Aunque sus capacidades no son tan impresionantes por sí solas, es la naturaleza de código abierto de AsyncRAT lo que realmente ha amplificado su impacto. Este blogpost ofrece una visión general y un análisis de los forks más relevantes de AsyncRAT, estableciendo conexiones entre ellas y mostrando cómo han evolucionado
Puntos clave de este blogpost:
- Proporcionamos una visión única del panorama de AsyncRAT y sus numerosas variantes, para facilitar la navegación por los senderos de su laberinto de forks.
- En nuestro esfuerzo por mapear la vasta jerarquía de forks de AsyncRAT, descubrimos sus interconexiones únicas y documentamos cómo pueden distinguirse estas variantes.
- Exploramos variantes menos comunes que presentan plugins únicos, que van desde un plugin screamer básico hasta un propagador de malware USB.
Orígenes de AsyncRAT
Es posible que haya oído hablar de AsyncRAT, abreviatura de troyano de acceso remoto asíncrono. Este RAT de código abierto fue publicado en GitHub en 2019 por un usuario que responde al nombre de NYAN CAT. Desarrollado en C#, ofrece una amplia gama de funcionalidades típicas de RAT, incluyendo keylogging, captura de pantalla, robo de credenciales y más. Su simplicidad y su naturaleza de código abierto lo han convertido en una opción popular entre los ciberdelincuentes, lo que ha llevado a su uso generalizado en diversos ciberataques.
Pero, ¿de dónde viene? Creemos que las bases de AsyncRAT las sentó antes la RAT Quasar, disponible en GitHub desde 2015 y con un enfoque similar. Ambas están escritas en C#; sin embargo, sus bases de código difieren fundamentalmente, lo que sugiere que AsyncRAT no era un mero fork de Quasar, sino una reescritura completa. Un fork, en este contexto, es una copia personal del repositorio de otra persona que uno puede modificar libremente sin afectar al proyecto original. El principal vínculo que los une reside en las clases criptográficas personalizadas utilizadas para descifrar los parámetros de configuración del malware. En concreto, se trata de las clases Aes256 y Sha256, que pertenecen al espacio de nombres Client.Algorithm en el caso de AsyncRAT y al espacio de nombres Quasar.Common.Cryptography en el caso de Quasar. La Figura 1 muestra código idéntico utilizado en ambas implementaciones de Aes256.
En su mayor parte se copia y pega el mismo código, incluyendo el mismo valor salt y la misma configuración de descifrado. Esta clase, junto con Sha256, nos lleva a creer que AsyncRAT estuvo hasta cierto punto influenciado por el RAT Quasar.
Aparte de estas similitudes, AsyncRAT introdujo mejoras significativas, sobre todo en su arquitectura modular y funciones de ocultación mejoradas, que lo hacen más adaptable y difícil de detectar en entornos de amenazas modernos. Su arquitectura basada en plugins y su facilidad de modificación han desencadenado la proliferación de numerosos forks, ampliando aún más los límites.
Laberinto de forks
Desde que se hizo público, AsyncRAT ha dado lugar a multitud de nuevos forks que se han basado en sus cimientos. Algunas de estas nuevas versiones han ampliado el framework original, incorporando características y mejoras adicionales, mientras que otras son esencialmente la misma versión con diferentes ropajes.
Jerarquía de forks
La Figura 2 ilustra cómo algunas de los forks más frecuentes de AsyncRAT han evolucionado entre sí a lo largo del tiempo.
En el centro del árbol se encuentran DcRat y VenomRAT. Nuestro análisis ha demostrado que son las variantes más extendidas, y que juntas representan un número significativo de campañas. Otros forks menos conocidos ocupan porciones del pastel más pequeñas, pero no por ello menos notables. La Figura 3 muestra la distribución de los forks más frecuentes según nuestra telemetría.
DcRat ofrece una notable mejora con respecto a AsyncRAT en términos de características y capacidades. Uno de los cambios más evidentes es la estructura de datos utilizada para transferir datos de un lado a otro. Utiliza MessagePack, una conocida biblioteca de código abierto para una serialización de datos binarios más eficiente. DcRat también implementa técnicas de evasión como AMSI y ETW patching, que funcionan desactivando las funciones de seguridad que detectan y registran comportamientos maliciosos - AMSI patching impide el escaneo de scripts, mientras que ETW patching bloquea el rastreo de eventos. Además, cuenta con un sistema antiproceso por el que se cancelan los procesos cuyos nombres coinciden con los de una lista de denegación. Entre los programas bloqueados se encuentran Taskmgr.exe, ProcessHacker.exe, MsMpEng.exe, Taskkill.exe, etc.
También vale la pena señalar que la base de plugins de DcRat se basa en AsyncRAT y amplía aún más su funcionalidad. Entre los plugins añadidos se encuentran capacidades como el acceso a la webcam, la grabación del micrófono, el robo de tokens de Discord y "cosas divertidas", una colección de plugins utilizados para bromas como abrir y cerrar la bandeja del CD, bloquear la entrada del teclado y el ratón, mover el ratón, apagar el monitor, etc. Cabe destacar que DcRat también introduce un sencillo complemento de ransomware que utiliza el cifrado AES-256 para cifrar archivos, con la clave de descifrado distribuida sólo una vez que se ha solicitado el complemento. Aparte de eso, parece haber muchos pequeños cambios como una elección diferente de salt (una cadena en lugar de un valor binario), nombres de variables cambiados deliberadamente para evadir aún más la detección, resolución dinámica de la API, y muchos más.
VenomRAT, por su parte, probablemente se inspiró en DcRat, como se evidencia en la sección Identificación de versiones. El malware está repleto de tantas características que podría considerarse una amenaza independiente por sí sola. Hemos optado por agruparlo bajo AsyncRAT, ya que sus partes cliente son muy similares entre sí. Las características y complementos de VenomRAT han sido documentados con más detalle por otros proveedores, por lo que no vamos a profundizar en ellos en este blogpost.
Sin embargo, no todos los RAT son de naturaleza seria, y esto se aplica igualmente a los forks de AsyncRAT. Clones como SantaRAT o BoratRAT (véase la Figura 4) son bromas. En el caso del primero, sus propios autores han reconocido que el proyecto fue básicamente "un robo descarado de DcRat". Sin embargo, a pesar de ello, hemos encontrado casos de uso real de los mismos en la naturaleza.
Identificación de versiones
Al realizar el análisis, utilizamos varios métodos para identificar y categorizar cada muestra. Cabe señalar que la investigación se centró principalmente en la parte cliente del malware, ya que este binario es el que acaba en las máquinas de las víctimas. Contiene información útil como la configuración del malware y dónde se puede encontrar información sobre el C&C.
La forma más rápida y directa de identificar un fork es echar un vistazo directamente a la configuración del malware, que normalmente se encuentra en la función InitializeSettings. Los valores de configuración se cifran con AES-256 y se almacenan como cadenas base64 en la clase Settings. En la mayoría de los casos, el nombre correcto del fork está disponible y convenientemente etiquetado como Version. En aproximadamente el 90% de nuestras muestras analizadas, el campo Versión contiene alguna descripción significativa del nombre del fork o del seudónimo del autor del malware. En las muestras restantes, este campo se dejó intencionadamente en blanco. La Figura 5 ilustra el procedimiento típico de inicialización de la configuración encontrado en DcRat y sus derivados (VenomRAT en este caso).
Si el campo Version está vacío, a veces es posible obtener otra pista mirando el valor Salt utilizado para cifrar la configuración. Los atacantes a menudo descuidan este parámetro cuando copian y pegan su propio fork. El valor Salt se puede encontrar en la clase Client.Algorithm.Aes256, como se ve en la Figura 6.
Otra forma de obtener más información es buscar el certificado incrustado utilizado para autenticar el servidor de C&C. También se encuentra en la configuración como un valor codificado en base64. Descomprimir este valor a menudo revela más información sobre el servidor, como el nombre común, la organización y la unidad organizativa. Si un fork concreto tiene su propio nombre en el campo Versión, a menudo es posible rastrear el fork anterior en la que probablemente se basó mirando el campo CN. La figura 7 muestra un certificado codificado con DER que revela el fork BoratRAT, tras su extracción y descodificación.
Las técnicas mencionadas anteriormente se aplican principalmente a casos triviales en los que los autores del malware no se molestaron en eliminar los rastros o utilizaron un certificado predeterminado. Existe un método más sofisticado para identificar servidores AsyncRAT, que consiste en enviar un paquete especialmente diseñado al servidor de C&C. Este método se explica detalladamente en este artículo. Este método se explica en detalle en esta entrada del blog de Axel Mahr.
Si todo lo demás falla, determinar el origen de la muestra puede hacerse a la antigua usanza, inspeccionando manualmente el código. Esto implica un análisis detallado de la estructura, sintaxis y funcionalidad del código, comparándolas con los patrones de muestras previamente categorizadas.
Amplia lista de forks
Hemos destacado aquí algunas de los forks más destacados de AsyncRAT. Debido al gran número disponibles, no es posible cubrir todos y cada uno de ellos. Para completarla, la Figura 8 proporciona una lista ampliada de los forks de AsyncRAT que se sabe que se utilizan con fines maliciosos, según lo observado en la telemetría de ESET hasta la fecha.
Explorando variantes menos conocidas
Hasta ahora, hemos mencionado algunas de los principales forks que dominan el panorama. En esta sección, hemos seleccionado algunos forks menos conocidos que mejoran la funcionalidad de AsyncRAT más allá de las características incluidas en las versiones por defecto. Estos forks exóticos son a menudo el trabajo de una persona o grupo y representan menos del 1% del volumen de muestras de AsyncRAT.
NonEuclid RAT
Este fork destaca principalmente por la inclusión de nuevos plugins, además de los predeterminados. Mientras que algunos plugins pueden parecer triviales u orientados a "cosas divertidas", otros, como WormUsb.dll, tienen propósitos claramente maliciosos. La Tabla 1 muestra una selección de plugins de NonEuclid RAT que se desvían de la base de plugins estándar que se ve en los forks regulares.
Tabla 1. Selección de plugins de NonEuclid RAT que consideramos interesantes
| Plugin name | Description |
| Screamer.dll | Jump scare plugin. |
| Piano.dll | Generic audio player. |
| Service.dll | Windows services management. |
| Maps.dll | Collects geolocation info from the user. |
| WormUsb.dll | Malware spreader plugin. |
| Brute.dll | SSH and FTP brute forcer. |
| Signature Antivirus.dll | Simple signature-based file matcher. |
| cliper.dll | Replaces clipboard data with attacker’s cryptocurrency wallet addresses. |
Screamer.dll
Hay cinco imágenes de salto de miedo integradas en el complemento. Un atacante envía un comando que indica qué imagen desea utilizar, junto con el archivo WAV que debe reproducirse y el retardo tras el cual se activa el jump scare. La Figura 9 muestra las tres primeras imágenes preinstaladas que un atacante puede elegir.

Piano.dll
Este plugin reproduce archivos WAV arbitrarios. Todos los archivos de sonido se almacenan en %appdata%\Piano. piano.dll soporta tres comandos:
- SetSound - añade un nuevo archivo de sonido a %appdata%\Piano,
- PlayMisc - reproduce un archivo de sonido solicitado desde %appdata%\Piano, y
- ClientAdd - recupera múltiples archivos de sonido del servidor C&C.
Servicio.dll
Este plugin facilita la gestión de los servicios de Windows, como iniciar, detener y pausar servicios.
Mapas.dll
Este es un plugin simple para recolectar información de geolocalización de la víctima. Utiliza la clase GeoCoordinateWatcher de .NET para registrar una función de devolución de llamada que recopila datos cada vez que la ubicación está disponible. Entre la información recopilada se encuentran la latitud, la longitud, el nombre de usuario y el nombre del equipo.
WormUsb.dll
Este complemento compromete archivos PE con una carga útil arbitraria especificada por el atacante.
A pesar del término Usb en WormUsb.dll, este complemento se dirige a varias ubicaciones en función del comando proporcionado:
- InfectExe - compromete un archivo PE individual,
- InfectExeInWindows - se dirige a archivos PE en carpetas personales (Escritorio, Documentos, Descargas, Mi Música), y
- InfectUsbExe: afecta a los archivos PE de todas las unidades, excepto la unidad C.
Funciona moviendo el archivo original a una ubicación temporal. A continuación, coloca un pequeño stub en lugar del archivo original. La sección de recursos de este stub se rellena para contener tanto el archivo original como la carga útil especificada, ambos comprimidos y cifrados con una clave por archivo, generada en el momento de la construcción. A continuación, el malware ofusca el stub introduciendo métodos proxy, añadiendo ofuscación de flujo de control personalizada y renombrando variables. Como toque final, incrusta el icono y los metadatos originales en el stub modificado. La Figura 10 muestra la función, con los nombres de métodos originales, responsable de comprometer un único archivo.
Cuando se ejecuta un archivo comprometido de este tipo, primero descifra, desempaqueta y ejecuta el programa de carga útil, y luego procede a hacer lo mismo con el programa original.
Brute.dll
Este plugin soporta la fuerza bruta de los protocolos SSH y FTP desde el lado del cliente. El atacante le da tres parámetros: host, login y password, y el plugin intentará conectarse usando esas credenciales. Si la conexión tiene éxito, las credenciales son enviadas de vuelta al atacante con una bandera indicando el éxito. No es difícil imaginar un escenario en el que un atacante podría utilizar este tipo de ataque para distribuir la fuerza bruta a través de un gran grupo de máquinas comprometidas, eludiendo así las restricciones basadas únicamente en la dirección IP.
Firma Antivirus.dll
El nombre del complemento implica que podría tener algo que ver con la funcionalidad antivirus. Aunque esto es técnicamente cierto, también es un caso de la solución antivirus manual más primitiva jamás creada. El complemento recibe una lista de hashes MD5 del atacante y los compara con los hashes de todos los archivos EXE que encuentra en cada disco. Si encuentra un archivo coincidente, activa la función DetectVirus, que se limita a eliminar el archivo sin más análisis. Esto hace que el nombre del complemento sea, en el mejor de los casos, muy dudoso. En manos del autor del malware, puede haber sido utilizado para eliminar malware de la competencia o, en realidad, cualquier archivo arbitrario.
cliper.dll
Se trata de un clipper independiente que monitoriza continuamente el portapapeles de la víctima y, si detecta una dirección de billetera de criptomoneda, la sustituye por otra proporcionada por el atacante. Las billeteras proporcionadas por el atacante sólo se envían cuando se solicita el complemento por primera vez; no están codificados en el complemento. Además, en la Figura 11, también podemos ver algunas entradas de tarjetas de crédito. Este complemento contiene una extensa lista de expresiones regulares que pueden detectar tanto billeteras de criptomonedas como tarjetas de crédito, y en el caso de estas últimas, simplemente se devuelven al atacante.
JasonRAT
Identificada en 2024, esta variante muestra signos continuos de actividad. Es interesante en el sentido de que emplea oscuras convenciones de denominación de variables que recuerdan a términos "satánicos" de lo que el autor del malware denomina el Libro de Jasón. En la Figura 12, se pueden ver los valores de configuración típicos de AsyncRAT (en base64), pero con variables renombradas, mientras que la Figura 13 muestra la lógica del punto de entrada principal del malware. Además de los valores de configuración habituales, esta variante amplía aún más el cliente introduciendo la segmentación por países.
Otra característica extraña es la elección de la ofuscación de cadenas. Un subconjunto de las cadenas emplea una capa extra de ofuscación utilizando una variante extendida del código Morse. Se incluyen tanto letras mayúsculas como minúsculas, así como algunos caracteres especiales. La Figura 14 muestra la cadena de clave de registro codificada utilizando un mapeo extendido.
XieBroRAT
Se trata de un RAT con localización china. Introduce un nuevo complemento, BrowserGhost.dll, que roba las credenciales del navegador. Otro plugin, Abstain.dll, permite interactuar con los servidores de Cobalt Strike mediante una conexión inversa.
Para aumentar la cobertura, el malware proporciona la cadena de entrega en varios idiomas diferentes. El binario de cliente .NET estándar se puede envolver y distribuir mediante shellcode, VBS o JavaScript.
Por último, el autor amplió aún más el malware tomando prestado en gran medida de proyectos de código abierto, integrando herramientas como mimikatz, SharpWifiGrabber, SharpUnhooker, etc.
Conclusión
El auge de AsyncRAT y sus posteriores forks ponen de manifiesto los riesgos inherentes a los frameworks de malware de código abierto. Nuestro análisis reveló un ecosistema diverso y en evolución de derivados, que van desde amenazas persistentes como DcRat y VenomRAT a forks novedosos menos conocidos como JasonRAT y BoratRAT, que parecen servir más como curiosidades que como amenazas creíbles. Todas estos forks no sólo amplían las capacidades técnicas de AsyncRAT, sino que también demuestran la rapidez y creatividad con que los actores de amenazas pueden adaptar y reutilizar el código fuente abierto.
La disponibilidad generalizada de este tipo de framework reduce significativamente la barrera de entrada para los aspirantes a ciberdelincuentes, permitiendo incluso a los novatos desplegar malware sofisticado con un esfuerzo mínimo. Esta democratización del desarrollo de malware -especialmente teniendo en cuenta la creciente popularidad de los LLM y el potencial para hacer un mal uso de sus capacidades- acelera aún más la creación y personalización de herramientas maliciosas, contribuyendo a un panorama de amenazas en rápida expansión y cada vez más complejo.
A la luz de estas tendencias, es razonable prever que las futuros forks puedan incorporar capacidades más avanzadas de ofuscación, modularidad y evasión. Esta posible evolución subraya la importancia de contar con estrategias de detección proactivas y análisis de comportamiento más profundos para hacer frente con eficacia a las amenazas emergentes.
Para cualquier consulta sobre nuestras investigaciones publicadas en WeLiveSecurity, póngase en contacto con nosotros en threatintel@eset.com.ESET Research ofrece informes privados de inteligencia APT y feeds de datos. Para cualquier consulta sobre este servicio, visite la página de ESET Threat Intelligence.
IoCs
Puede encontrar una lista completa de indicadores de compromiso (IoCs) en nuestro repositorio GitHub.
Archivos
| SHA-1 | Filename | Detection | Description |
| F8E31B338123E38757F8 |
Screamer.dll | MSIL/AsyncRAT.C | NonEuclid jump scare plugin. |
| 98223D2F8DF2F9E832AE |
Piano.dll | MSIL/AsyncRAT.C | NonEuclid audio player plugin. |
| CDEC9A1C73E3E21B1D70 |
Maps.dll | MSIL/AsyncRAT.C | NonEuclid geolocation plugin. |
| 932C49EEE087D432D0DA |
Service.dll | MSIL/AsyncRAT.C | NonEuclid Windows service management plugin. |
| 2FA98D088486BAC57FF6 |
WormUsb.dll | MSIL/AsyncRAT.C | NonEuclid malware spreader plugin. |
| 62C9FEFA84067F695032 |
Brute.dll | MSIL/AsyncRAT.C | NonEuclid SSH and FTP brute forcer plugin. |
| FAD946F7ACF017F0C50C |
Signature |
MSIL/AsyncRAT.C | NonEuclid signature-based file matcher plugin. |
| 51B8A5818B7031EDB59A |
cliper.dll | MSIL/AsyncRAT.C | NonEuclid clipboard hijacker plugin. |
| 4FB0CAAD6E345947EE2D |
Stub.exe | MSIL/AsyncRAT.A | AsyncRAT client. |
| FD9CF01CEA7DE8631C34 |
Stub.exe | MSIL/AsyncRAT.A | 3LoshRAT client. |
| B8AB93E958E0DE4BE276 |
Client.exe | MSIL/AsyncRAT.A | DcRat client. |
| 68B58483D0E4E7CC2478 |
Microsoft_Edge |
MSIL/AsyncRAT.A | VenomRAT client. |
| 4F69E0CE283D273B724C |
Client.exe | MSIL/AsyncRAT.C | BoratRAT client. |
| E4F87568473536E35006 |
Client.exe | MSIL/AsyncRAT.A | Anarchy Panel client. |
| D10B8197732437E9BF84 |
Client.exe | MSIL/AsyncRAT.A | CollapseRAT client. |
| 0DC28EA51F0D96E0D1BC |
dwm.exe | MSIL/AsyncRAT.A | Shadow X RAT client. |
| E5B511E7550CBADE74E7 |
ClientAny.exe | MSIL/AsyncRAT.A | LMTeamRAT client. |
| 3124F58428184FDF75E2 |
Stub.exe | MSIL/AsyncRAT.A | PhoenixRAT client. |
| 8402AA507CF5B1BBFAB5 |
Client.exe | MSIL/AsyncRAT.A | EchoRAT client. |
| AB2C6F9695346FAA9495 |
Client.exe | MSIL/AsyncRAT.A | XieBroRAT client. |
| 3E6CD9D07B8ECE706697 |
tempClient.exe | MSIL/AsyncRAT.C | NonEuclid RAT client. |
| FF4592A8BCB58F5CF6BD |
Servant.exe | MSIL/AsyncRAT.A | JasonRAT client. |
Técnicas ATT&CK de MITRE
Esta tabla se ha creado utilizando la versión 17 del framework MITRE ATT&CK.
| Tactic | ID | Name | Description |
| Defense Evasion | T1562.001 | Impair Defenses: Disable or Modify Tools | DcRat terminates security tools such as Taskmgr.exe and MsMpEng.exe. |
| T1562.004 | Impair Defenses: Disable or Modify System Firewall | DcRat leverages AMSI and ETW bypass techniques to evade detection. | |
| T1027.013 | Obfuscated Files or Information: Encrypted/Encoded File | JasonRAT employs modified Morse code and obscure variable names to hinder analysis. | |
| Credential Access | T1539 | Steal Web Session Cookie | DcRat leverages a plugin to steal Discord tokens from compromised machines. |
| T1555.003 | Credentials from Password Stores: Credentials from Web Browsers | XieBroRAT uses a plugin to collect browser credentials. | |
| T1110.003 | Brute Force: Password Spraying | NonEuclid uses a plugin to brute force SSH and FTP credentials. | |
| Discovery | T1614.001 | System Location Discovery: System Language Discovery | NonEuclid uses a plugin that collects geolocation data from compromised systems. |
| Collection | T1123 | Audio Capture | DcRat has a microphone plugin that enables audio capture from the victim’s device. |
| T1125 | Video Capture | DcRat includes a webcam plugin that allows remote access to the victim’s camera. | |
| T1115 | Clipboard Data | NonEuclid uses a plugin that monitors the clipboard to intercept and replace cryptocurrency wallet addresses. | |
| Impact | T1486 | Data Encrypted for Impact | DcRat features a ransomware plugin capable of encrypting files on the victim’s system. |







