Artículos recientes
- diciembre 4, 2024
- noviembre 11, 2024
- noviembre 5, 2024
Recientemente, descubrimos una sofisticada campaña de ataque que emplea un enfoque de múltiples etapas para distribuir AsyncRAT a través de una plataforma legítima llamada Bitbucket.
Un análisis de Lovely Antonio y Lance Go
Queríamos aprender cómo se explota Bitbucket para descargar la carga útil. Se utilizaron varias capas de base64 para ocultar el código a simple vista. Después de quitar esas capas, pudimos descubrir la historia completa y los indicadores clave de compromiso (IOC) que encontramos al analizar la entrega de la carga útil de AsyncRAT.
Utilizar Bitbucket como repositorio de malware
Los atacantes han recurrido a Bitbucket, una plataforma de alojamiento de código popular, para alojar sus cargas maliciosas. Algunos ejemplos de malware que utilizan Bitbucket incluyen el ladrón Predator, el ladrón Azorult y el ransomware STOP. Este enfoque presenta varias ventajas para los atacantes:
AsyncRAT explota varios vectores de ataque, incluidos correos electrónicos de phishing con archivos adjuntos maliciosos [1], descargas automáticas desde sitios web comprometidos y kits de explotación dirigidos a vulnerabilidades de software.
Secuencia de ejecución de la implementación de AsyncRAT
Etapa 1: La capa de ofuscación de VBScript
Se envió una muestra denominada “01 DEMANDA LABORAL.vbs”[1] a nuestra plataforma de envío de muestras para su análisis. El archivo VBS, tras una inspección inicial, muestra lo que parece ser un galimatías (ver figura 2). Tras una inspección más detallada, se puede encontrar un código oculto dentro del archivo (ver figura 3).
El script está diseñado para ofuscar y ejecutar un comando de PowerShell. Utiliza manipulación de cadenas, codificación Base64 y ejecución de comandos de PowerShell para lograr su objetivo. El código revela que una variable “QpWJ” (que se ve en la figura 3) está codificada en Base64 junto con un simple reemplazo de caracteres.
Figura 2: Archivo enviado llamado 01 DEMANDA LABORAL.vbs
Figura 3: El relleno eliminado revela VBScript.
Etapa 2: PowerShell: el mecanismo de entrega de carga útil
El VBScript construye y ejecuta un comando de PowerShell, lo que hace que el ataque pase a la siguiente etapa de forma eficaz. El comando de PowerShell decodificado proporciona una imagen más clara de la actividad maliciosa (consulte las figuras 4 y 5).
Figura 4: Descodificación de “QpWJ” con Cyberchef
Figura 5: Script de PowerShell decodificado
El código (figura 5) descarga un archivo llamado dllhope.txt[2] desde un repositorio de Bitbucket. También vale la pena señalar que VirusTotal marcó las URL utilizadas por el script para que se asociaran con AsyncRAT (consulte la figura 6).
Al abrir el archivo ClassLibrary3.dll [3] en DNSpy se revela el código y el método “ZxKHG” junto con los seis parámetros necesarios. Los argumentos pasados se pueden encontrar en el script inicial [1].
Los parámetros del método son los siguientes:
La sección de código resaltada en la Figura 8 se carga de forma reflexiva utilizando [system.AppDomain]::CurrentDomain.Load. Esta técnica permite la ejecución en memoria, evitando los mecanismos de seguridad tradicionales que utilizan el escaneo de patrones en los archivos. ClassLibrary3.dll[3] revela la funcionalidad principal del ataque, incluidos los mecanismos de persistencia y la ejecución de la carga útil descargada: AsyncRAT. Un parámetro de bandera, UmZbL, dicta cómo procederá el código.
Figura 6: Virustotal del repositorio Bitbucket de dllhope.txt
Figura 7. dllhope.txt: codificado en Base64 descargado desde Bitbucket
Figura 7: dllhope.txt decodificado en dBase64 conocido como ClassLibrary3.dll
La decodificación de dllhope.txt[2] (ver figura 7) revela un archivo compilado .NET llamado ClassLibrary3.dll[3] (ver figuras 8 y 9).
Figura 8. ClassLibrary3 vista en DNSpy
Comprobación anti-VM
Si el parámetro de bandera contiene “4”: el código verifica la presencia de herramientas de virtualización como VMware o VirtualBox. Si alguno de estos procesos está en ejecución, el método retorna inmediatamente, probablemente para evitar el análisis en un entorno aislado.
Comprobación anti-virtualización
Mecanismos de persistencia:
Si el parámetro de bandera contiene “1”, el código intentará establecer la persistencia mediante dos mecanismos: clave de ejecución del registro y acceso directo a la carpeta de inicio. Un script llamado “xx1.ps1” crea una entrada en “HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” para la persistencia, mientras que el otro script llamado “xx2.vbs” ejecuta la carga útil a través de una ventana oculta de PowerShell. ClassLibrary3.dll[3] crea un acceso directo en la carpeta de inicio llamado PdjLvfa.lnk que apunta a powershell.exe con argumentos para ejecutarse a sí mismo[1] en una ventana oculta. Esto proporciona una capa adicional de persistencia.
Intente establecer la persistencia utilizando la clave de ejecución del registro
Descarga y ejecución de la carga útil:
El código descarga otra carga útil desde una URL que se construye invirtiendo y decodificando una cadena. La ubicación de descarga de AsyncRAT se indica al final del script de PowerShell (que se ve en la Figura 5): hxxps[:]//bitbucket[.]org/jaiprrfc/sds/downloads/envio4sep[.]txt.
Descargando la carga útil de AsyncRat
Luego, la carga útil descargada se decodifica en Base64 y se carga en AppDomain. Se invoca un método llamado WwQTZc dentro de la clase SuLOYU.MXuuJb de la carga útil cargada. Esto realiza el vaciado del proceso a RegSvcs.exe para ejecutar la carga útil de AsyncRAT.
Etapa 3: Carga útil de AsyncRAT
AsyncRAT, que apareció por primera vez en 2013, es un troyano de acceso remoto (RAT) de código abierto escrito en C#. Aunque inicialmente se presentó como una herramienta de administración remota, rápidamente ganó notoriedad entre los cibercriminales por sus potentes capacidades y facilidad de uso.
AsyncRAT proporciona a los atacantes un amplio control sobre las máquinas infectadas, lo que les permite realizar una amplia gama de actividades maliciosas:
Pruebas de MITRE ATT&CK
Táctica | Técnica | IDENTIFICACIÓN |
Ejecución | Intérprete de comandos y secuencias de comandos: shell de comandos de Windows | T1059.003 |
Ejecución | Intérprete de comandos y secuencias de comandos: PowerShell | T1059.001 |
Persistencia | Ejecución de inicio automático de arranque: claves de ejecución del registro / carpeta de inicio | T1547 |
Evasión de defensa | Archivos o información ofuscados | T1027 |
Evasión de defensa | Mascarada | T1036 |
Evasión de defensa | Desofuscar/Decodificar archivos o información | T1140 |
Evasión de defensa | Inyección de proceso | T1055 |
Evasión de defensa | Evasión de virtualización/sandbox | T1497 |
Impacto | Software de acceso remoto | T1219 |
Recopilación | Captura de entrada: registro de teclas | T1056.001 |
Recopilación | Captura de pantalla | T1113 |
Exfiltración | Exfiltración por el canal C2 | T1041 |
Acceso a credenciales | Volcado de credenciales | T1003 |
Movimiento lateral | Servicios remotos: Protocolo de escritorio remoto | T1021.001 |
Impacto | Datos encriptados para mayor impacto | T148 |
COI
SHA256 | Nombre del archivo | |
1 | 8fb6471b01c1d8122548d184ce5bceefae4df4ef0f1d1bb5c67b276c258e9125 | 01 DEMANDA LABORAL.vbs |
2 | E0d40dbc6be121cf62f222295ab1e01b5ce741d37d6c4b53f3beacb38a66e8e8 | dllesperanza.txt |
3 | Ab3d8588b58152994d299fa57842798f3071cb0f550b37f1db8b42d56f8580f2 | Biblioteca de clases 3.dll |
4 | C929354d7972f2595d805507f8896609a7b7aae74566aef9a0a5cb16f36e4fe2 | enviosaaa.txt |
5 | 1826b8379fdfdcd53dec782fb390ed1f5e97ee7ed3b099e8c3eb5b040a992553 | Stub.exe |
URL | |
6 | hXXps[:]//bitbucket.org/jaiprrfc/sds/downloads/envio4sep.txt |
7 | hXXps[:]//bitbucket.org/556ghfhgfhgf/fdsfdsf/downloads/dllhope.txt |
8 | hXXps[:]//firebasestorage.googleapis.com/v0/b/rodriakd-8413d.appspot.com/o/Pe/PeHope.txt?alt=media&token=7fe13398-6aa2-43e8-992c-35095e035362 |
Referencias
Enlace: https://www.gdatasoftware.com/blog/2024/10/38043-asyncrat-bitbucket Blog de G DATA Del equipo de analistas de virus del laboratorio de seguridad G DATA