ACTUALIZADO: 1 de junio de 2023 @ 17:33 hora del Este - Se añadió una regla YARA de Huntress compartible para ayudar en el esfuerzo de detección
ACTUALIZADO: 1 de junio de 2023 @ 20:23 hora del Este - Se añadió la regla Sigma de la comunidad Kostas para ayudar en los esfuerzos de detección
ACTUALIZADO: 1 de junio de 2023 @ 20:29 hora del Este - Se añadieron capturas de pantalla del DLL que crea el archivo human2.aspx
ACTUALIZADO: 2 de junio de 2023 @ 12:10 hora del Este - Se añadió la identificación del CVE
ACTUALIZADO: 2 de junio de 2023 @ 17:50 hora del Este - Se añadieron ubicaciones del registro para enriquecer la investigación y el análisis
ACTUALIZADO: 5 de junio de 2023 @ 13:23 hora del Este - Se añadió una demostración en video de la explotación de prueba de concepto
ACTUALIZADO 5 de junio de 2023 @ 21:16 hora del Este - Se añadió una demostración en video de RCE y ransomware
ÚLTIMA ACTUALIZACIÓN 12 de junio de 2023 @ 11:01 hora del Este - Se añadió el CVE más reciente y otros detalles de prueba de concepto
El 1 de junio de 2023, Huntress tomó conocimiento de intentos de explotación activa contra la aplicación de software MOVEit Transfer. Anteriormente, el 31 de mayo de 2023, el proveedor Progress había publicado un aviso de seguridad en el que indicaba que existe una vulnerabilidad crítica que podría provocar un acceso no autorizado.
El 2 de junio, la industria denominó esta vulnerabilidad como CVE-2023-34362.
Progress dio de baja MOVEit Cloud como parte de su respuesta e investigación.
ACTUALIZACIÓN 5 de junio de 2023:
Huntress ha recreado por completo la cadena de ataque que explota el software MOVEit Transfer. Hasta donde sabemos, actualmente nadie más lo ha hecho públicamente.
Descubrimos que la fase inicial del ataque, la inyección SQL, abre la puerta a un compromiso aún mayor: específicamente, ejecución arbitraria de código.
Mira la demostración en video a continuación, donde usamos nuestro exploit para obtener acceso a shell con Meterpreter, escalar a NT AUTHORITY\SYSTEM y detonar un payload de ransomware cl0p.
Para esta breve demostración en video, Microsoft Defender está desactivado. Un adversario ciertamente puede desactivar el antivirus con una cuenta de administrador local.
Esto significa que cualquier adversario no autenticado podría desencadenar un exploit que despliegue instantáneamente ransomware o realice cualquier otra acción maliciosa. El código malicioso se ejecutaría bajo el usuario de la cuenta de servicio de MOVEit moveitsvc, que está en el grupo de administradores locales. El atacante podría desactivar las protecciones antivirus, o lograr cualquier otra ejecución arbitraria de código.
El comportamiento que la industria observó, agregar un webshell human2.aspx, no es necesario para que los atacantes comprometan el software MOVEit Transfer. Es "una opción" que esta amenaza específica eligió desplegar para persistencia, pero el vector de ataque ofrece la capacidad de detonar ransomware de inmediato. Algunos ya han informado públicamente que los atacantes están cambiando a otros nombres de archivo.
La recomendación sigue siendo aplicar el parche y habilitar el registro. Según nuestras propias pruebas, el parche impide efectivamente nuestro exploit recreado.
Además, un video de demostración anterior mostró cómo comprometer la API de MOVEit Transfer y la aplicación misma. Con eso solo, podemos subir, descargar y potencialmente exfiltrar archivos como lo haría un actor de amenazas.
ACTUALIZACIÓN 12 de junio de 2023:
Se ha publicado un nuevo CVE para nuestros hallazgos como CVE-2023-35036. Esto se refiere a diferentes vectores de ataque para la inyección SQL y la capacidad de filtrar datos de la base de datos. Además, Rapid7 y Horizon3.ai han publicado públicamente su propio exploit de prueba de concepto recreado.
Microsoft ahora ha atribuido esta amenaza a "Lace Tempest" (según su nuevo esquema de nomenclatura) o al grupo detrás de la banda de ransomware cl0p. Esta es la misma conclusión a la que ha llegado gran parte de la comunidad de inteligencia de amenazas, ya que cl0p fue atribuido al anterior ataque a GoAnywhere MFT, otro software de transferencia de archivos.
Como de costumbre, continuaremos actualizando este artículo del blog y nuestra publicación en Reddit con los detalles a medida que los encontremos.
Qué hace
Existe una vulnerabilidad grave en el frontend de la aplicación web MOVEit Transfer que permite inyección SQL, la cual puede explotarse aún más para obtener acceso administrativo, exfiltrar archivos y lograr ejecución arbitraria de código.
En última instancia, la explotación observada consiste en un nuevo archivo human2.aspx creado dentro del directorio C:\MOVEitTransfer\wwwroot\. Ten en cuenta que no hay espacio entre las palabras MOVEitTransfer. Esta ruta del sistema de archivos se basa en las ubicaciones de instalación y es personalizable (también lo hemos visto presente en otras unidades como "E:\"), por lo que esta ubicación puede variar según tu entorno.
Este archivo ASPX establece una cuenta de base de datos SQL para usarse en un acceso posterior, descrito con más detalle a continuación.
Análisis técnico e investigación
Huntress ha identificado menos de diez organizaciones con este software MOVEit Transfer en nuestra base de socios; sin embargo, Shodan sugiere que hay más de 2.500 servidores disponibles públicamente en Internet.
De nuestras pocas organizaciones, solo una ha presentado una cadena de ataque completa junto con todos los indicadores de compromiso coincidentes.
Al revisar los registros de acceso de IIS del endpoint afectado, creemos que la cadena de ataque sigue estas operaciones.
2023-05-30 17:05:50 192.168.###.### GET / - 443 - 5.252.190.181 user-agent - 2002023-05-30 17:06:00 192.168.###.### POST /guestaccess.aspx - 443 - 5.252.191.14 user-agent - 2002023-05-30 17:06:00 192.168.###.### POST /api/v1/token - 443 - 5.252.191.14 user-agent - 2002023-05-30 17:06:02 192.168.###.### GET /api/v1/folders - 443 - 5.252.191.14 user-agent - 2002023-05-30 17:06:02 192.168.###.### POST /api/v1/folders/605824912/files uploadType=resumable 443 - 5.252.191.14 user-agent - 2002023-05-30 17:06:02 ::1 POST /machine2.aspx - 80 - ::1 CWinInetHTTPClient - 2002023-05-30 17:06:02 192.168.###.### POST /moveitisapi/moveitisapi.dll action=m2 443 - 5.252.191.14 user-agent - 2002023-05-30 17:06:04 192.168.###.### POST /guestaccess.aspx - 443 - 5.252.190.233 user-agent - 2002023-05-30 17:06:08 192.168.###.### PUT /api/v1/folders/605824912/files uploadType=resumable&fileId=963061209 443 - 5.252.190.233 user-agent - 5002023-05-30 17:06:08 ::1 POST /machine2.aspx - 80 - ::1 CWinInetHTTPClient - 2002023-05-30 17:06:08 192.168.###.### POST /moveitisapi/moveitisapi.dll action=m2 443 - 5.252.190.233 user-agent - 2002023-05-30 17:06:11 192.168.###.### POST /guestaccess.aspx - 443 - 5.252.190.116 user-agent - 2002023-05-30 17:06:21 192.168.###.### GET /human2.aspx - 443 - 5.252.191.88 user-agent - 404
(Por motivos de brevedad, se eliminó el encabezado completo de User-Agent de este extracto)
moveitisapi.dll se usa para realizar una inyección SQL cuando se solicita con encabezados específicos, y guestaccess.aspx se usa para preparar una sesión y extraer tokens CSRF y otros valores de campo para realizar más acciones.
Ten en cuenta que el código de respuesta 404 para el archivo human2.aspx puede ser apropiado, ya que (como se explica más abajo) la puerta trasera devuelve este valor si no se proporciona la clave de contraseña correcta. Quizás el actor de amenazas estaba impaciente en su proceso de carga, o solo estaba confirmando que la puerta trasera se había preparado correctamente.
Un archivo human2.aspx completo está disponible para que lo revises.
Este archivo ASPX:
- Exige una contraseña estática para el acceso, determinada por el encabezado HTTP X-siLock-Comment . Si no se proporciona esta contraseña, el servidor devuelve un 404 sin ninguna otra función. Esta contraseña parece variar, y por esta razón verás que se comparten varios hashes como IOC para human2.aspx.
- Se conecta a la base de datos y ofrece funcionalidad según un encabezado X-siLock-Step1 proporcionado, para:
- (-2) eliminar un usuario de Health Check Service de la base de datos
- (-1) filtrar información de Azure mediante el encabezado de respuesta y devolver un flujo GZIP de todos los archivos, propietarios de archivos y tamaños de archivos, además de los datos de la institución presentes en MOVEit
- (vacío) recuperar cualquier archivo especificado por un encabezado X-siLocked-Step2 (un ID de carpeta) y un encabezado X-SiLocked-Step3 (un ID de archivo). Si no se proporcionan estos valores de encabezado, entonces se agregará un nuevo usuario administrador “Health Check Service” a la base de datos y se creará una sesión activa de larga duración para esta cuenta.
A partir de nuestro servicio Managed EDR, observamos eventos el 30 de mayo en los que, en el equipo afectado, w3wp.exe ejecutó el compilador de C# csc.exe, cuyo horario coincide con la creación de nuestra puerta trasera human2.aspx.
Como esto se compila, el sistema creará un DLL bajo:
C:\Windows\Microsoft.net\Framework64\v4.0.30319\Temporary ASP.NET Files\root\9a11d1d0\5debd404
Ten en cuenta que tu número de versión de .NET puede diferir, o los dos últimos subdirectorios pueden tener valores hexadecimales distintos.
En este directorio observamos un nuevo artefacto App_Web_wrpngvm2.dll (ten en cuenta de nuevo que estos caracteres aleatorios diferirán) que se creó con la misma marca de tiempo, el cual difiere de un App_Web_5h5nuzvn.dll que se creó un año antes. Después de explorar este nuevo artefacto mediante dotPeek, es evidente que es el archivo human2.aspx precompilado mencionado anteriormente.
La clase human2_aspx es responsable de completar el contenido del archivo.
La primera vez que un archivo ASPX se "renderiza", .NET lo precompilará y almacenará los resultados en estos archivos temporales. Estos son artefactos residuales de csc.exe preparando el archivo human2.aspx recién agregado.
Si tienes un segundo App_web_….dll, probablemente hayas sido comprometido, ya que esto indica que el backdoor está compilado y presente. Solo debería haber uno presente para el funcionamiento normal de la aplicación MOVEit.
Esfuerzos de detección
Para nuestros esfuerzos de caza de amenazas, usamos esta consulta de monitoreo de procesos:
process.parent.name.caseless: w3wp.exe and process.parent.command_line.text : "moveitdmz pool"
El analista del SOC Anthony Smith notó que hay un error ortográfico peculiar en el webshell human2.aspx que puede ser una buena adición a una regla YARA (nota el nombre de variable azureAccout):
string azureAccout = SystemSettings.AzureBlobStorageAccount;
Dicho esto, creamos nuestra regla YARA que incluye esto y más, disponible aquí dentro de nuestro repositorio público de Threat Intel.
Además, Kostas ha compartido esta regla Sigma para buscar archivos sospechosos, incluyendo human2.aspx, revisar los registros de eventos de IIS en busca de actividad similar a la anterior, y detectar archivos DLL maliciosos en la ubicación de archivos temporales de ASP.NET.
Huntress ha creado detectores para marcar cualquier otro comportamiento sospechoso del proceso w3wp.exe al montar compilaciones de C# o VB.
Consejos de investigación
Existen varias configuraciones que pueden ser útiles al investigar máquinas comprometidas con MOVEit instalado. Un buen punto de partida es la clave de registro HKEY_LOCAL_MACHINE\SOFTWARE\Standard Networks\siLock. El siguiente valor de registro puede ayudarte a descubrir rápidamente dónde está tu directorio raíz:
HKEY_LOCAL_MACHINE\SOFTWARE\Standard Networks\siLock->WebBaseDir
También puedes encontrar tus archivos de registro de MOVEit en el siguiente valor del registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Standard Networks\siLock->LogsBaseDir
Las máquinas que hemos visto explotadas tenían MySQL instalado como el DBMS subyacente. Puedes encontrar información sobre cómo se configura esto en: HKEY_LOCAL_MACHINE\SOFTWARE\Standard Networks\siLock\MySQL
Dado que puedes configurar MOVEit para usar MSSQL o Azure SQL, puedes encontrar la configuración en esta clave del registro: HKEY_LOCAL_MACHINE\SOFTWARE\Standard Networks\siLock\SQLServer
Qué debes hacer
Progress ha publicado medidas de mitigación inmediatas para ayudar a prevenir la explotación de esta vulnerabilidad.
- Actualiza MOVEit Transfer a una de estas versiones parcheadas:
- MOVEit Transfer 2023.0.1
- MOVEit Transfer 2022.1.5
- MOVEit Transfer 2022.0.4
- MOVEit Transfer 2021.1.4
- MOVEit Transfer 2021.0.6
- Si actualizar con el parche anterior no es viable para tu organización, la mitigación sugerida es deshabilitar el tráfico HTTP(s) hacia MOVEit Transfer agregando reglas de denegación de firewall a los puertos 80 y 443. Ten en cuenta que esto básicamente dejará fuera de servicio tu aplicación MOVEit Transfer.
Si usas MOVEit y aún no trabajas con nuestro equipo, Huntress ofrece Managed EDR sin costo para los endpoints recién implementados hasta fines de junio. Nuestro agente es compatible con cualquier combinación de herramientas de seguridad y la implementación es simple: logra que nuestro equipo del SOC, disponible 24/7, te respalde en menos de 15 minutos. Comienza aquí.
Indicadores de ataque (IOA)
Archivos
- C:\MOVEitTransfer\wwwroot\human2.aspx
Direcciones IP
- 89.39.105[.]108 (WorldStream)
- 5.252.190[.]0/24
- 5.252.189-195[.]x
- 148.113.152[.]144 (reportado por la comunidad)
- 138.197.152[.]201
- 209.97.137[.]33
Recursos y referencias
- Lo más reciente de Progress: https://community.progress.com/s/article/MOVEit-Transfer-Critical-Vulnerability-31May2023
- Reddit r/sysadmin: https://www.reddit.com/r/sysadmin/comments/13wxuej/critical_vulnerability_moveit_file_transfer/
- El reporte de Bleeping Computer: https://www.bleepingcomputer.com/news/security/new-moveit-transfer-zero-day-mass-exploited-in-data-theft-attacks/
- El reporte de TrustedSec: https://www.trustedsec.com/blog/critical-vulnerability-in-progress-moveit-transfer-technical-analysis-and-recommendations/
- El reporte de Rapid7: https://www.rapid7.com/blog/post/2023/06/01/rapid7-observed-exploitation-of-critical-moveit-transfer-vulnerability/
- El reporte de NHS Digital: https://digital.nhs.uk/cyber-alerts/2023/cc-4326
- El reporte de The Record: https://therecord.media/moveit-transfer-tool-zero-day-exploited
- El reporte de Help Net Security: https://www.helpnetsecurity.com/2023/06/01/moveit-transfer-vulnerability/
Gracias a los miembros del equipo de Huntress Kaleigh Slayton, Jason Phelps, Dray Agha, Sharon Martin, Matt Anderson, Caleb Stewart, Joe Slowik, Anthony Smith, David Carter, Jamie Levy y muchos otros por sus contribuciones a este informe y a la rápida respuesta.