Un malware de un nuevo grupo descubierto llamado PowerPool ha estado explotando una vulnerabilidad zero-day activa apenas dos días después de haber sido revelada. La vulnerabilidad afecta los sistemas operativos de Microsoft Windows que van desde Windows 7 a Windows 10, en particular la función ALPC, y permite Escalar Privilegios Localmente.

El pasado 27 de Agosto de 2018, una vulnerabilidad zero-day que afectaba a Microsoft Windows fue publicada en GitHub y publicitada a través de Twitter.

Fuente: Twitter

Obviamente, esto no formó parte de la divulgación de una vulnerabilidad de manera coordinada y en el momento en que se publicó este tuit (que fue eliminado) tampoco había un parche disponible que repare la vulnerabilidad.

La vulnerabilidad afecta sistemas operativos de Microsoft Windows, desde Windows 7 a Windows 10, particularmente la función Advanced Local Procedure Call (ALPC), y permite Escalar Privilegios Localmente (LPE, por sus siglas en inglés). LPE permite a un ejecutable o proceso escalar privilegios. En este caso puntual, permite que un ejecutable lanzado por un usuario con restricciones obtenga permisos administrativos.

El tuit enlazaba a un repositorio de Github que contenía el código de una prueba de concepto para la explotación. No solo se trataba de la publicación de una versión compilada, sino también del código fuente. Por lo tanto, cualquiera podía modificar y recompilar el exploit pudiendo “mejorarlo”, evadir detecciones e incluso incorporarlo en su propio código.

Como era previsible, solo hubo que esperar dos días para descubrir que alguien la había utilizado. Y ese alguien fue un grupo que hemos denominado PowerPool, quien aprovechó el exploit como parte de una campaña maliciosa. Según información de nuestra telemetría y de las cargas a VirusTotal (solo consideramos cargas manuales desde la interfaz web), pudimos ver que este grupo tiene un pequeño número de víctimas de países como Chile, Alemania, India, Filipinas, Polonia, Rusia, Reino Unido, Estados Unidos y Ucrania.

Arsenal de Power Tool

Este nuevo y aislado grupo ya cuenta con un amplio rango de herramientas a su disposición. A continuación, analizamos brevemente algunas de ellas.

Explotación de escalación de privilegios locales

Los desarrolladores de PowerTool no reutilizaron el binario que dio a conocer quien publicó la vulnerabilidad. Lo que hicieron fue modificar el código fuente ligeramente y luego recompilarlo.

La explotación ha sido documentada por su autor original y también ha sido cubierta tanto por investigadores en seguridad como por Equipos de Respuesta ante Emergencias Informáticas (CERT´s, por sus siglas en inglés).

Figura 1 - Descripción del exploit por su autor

El fallo está en la función de la API SchRpcSetSecurity, la cual no corrobora los permisos de usuario de manera correcta. Como consecuencia de esto, un usuario puede tener permisos de escritura en cualquier archivo de C:\Windows\Task independientemente de cuáles sean sus actuales permisos. Esto permite a un usuario que solo tenga permisos de lectura reemplazar el contenido de un archivo protegido de escritura.

Como cualquier usuario puede escribir en C:\Windows\Task, es posible crear un archivo en esta carpeta que sea un hard link a cualquier archivo de destino. Por lo tanto, llamando a la función afectada SchRpcSetSecurity es posible ganar acceso de escritura a ese archivo de destino. Para crear una escalación de privilegios locales el atacante necesita elegir el archivo de destino que será sobrescrito. Esto necesita hacerse de manera cuidadosa: es necesario que sea un archivo que se ejecute automáticamente con permisos de administración. Por ejemplo, puede ser un archivo de sistema o el actualizador de un programa previamente instalado que es ejecutado regularmente por una tarea. El paso final es reemplazar el contenido de este archivo de destino protegido con el código malicioso. Por lo tanto, en la próxima ejecución automática el malware tendrá permisos de administración sin importar cuáles sean los permisos que originalmente tenía el archivo legítimo.

Los desarrolladores de PowerPools eligieron modificar el contenido del archivo C:\Program Files(x86)\Google\Update\GoogleUpdate.exe. Este es el actualizador legítimo para las aplicaciones de Google y es ejecutado de forma regular bajo privilegios de administrador por una tarea de Microsoft Windows.

Figura 2 – Creación de un hard link al actualizador de Google

Figura 3 – Abuso de SchRpcCreateFolder para modificar los permisos del archivo ejecutable que actualiza aplicaciones de Google.

La secuencia de las operaciones muestra en la figura anterior la accesibilidad de los operadores de PowerPool para obtener acceso de escritura al ejecutable GoogleUpdate.exe. Luego, lo sobrescriben con una copia del malware de la segunda fase, que se describe más abajo, con el objetivo de ganar privilegios de administrador la próxima vez que el actualizador es llamado.

Compromiso inicial

El grupo PowerPool utiliza diferentes métodos para comprometer a la víctima en primera instancia. Un método es enviando correos que contienen en un adjunto el malware de la primera etapa. Quizás sea demasiado pronto para decirlo, pero hasta el momento hemos visto pocas apariciones en nuestra telemetría, por lo que asumimos que los destinatarios son elegidos de manera cuidadosa.

Por otra parte, sabemos que sus spams han sido vistos en otras ocasiones. De acuerdo a un post lanzado en mayor de 2018 por SANS, utilizaban un truco con archivos SYmbolic LinK (.slk) para distribuir su malware. Microsoft Excel puede cargar estos archivos que actualizan una celda y fuerzan a Excel a ejecutar código PowerShell. Estos archivos .slk parecen haber sido distribuidos en mensajes de spam también. Pivotando del primer archivo mencionado en el blog de SANS blog (SHA-1: b2dc703d3af1d015f4d53b6dbbeb624f5ade5553), en VirusTotal es posible encontrar muestras del spam relacionadas (SHA-1: e0882e234cba94b5cf3df2c05949e2e228bedd2b):

Figura 4 – Mensaje de spam de PowerPool

Backdoor de Windows

El grupo PowerPool usa principalmente dos backdoors diferentes: un backdoor de primera fase utilizado justo después del primer compromiso, y luego un backdoor de segunda fase que probablemente utilizan en la mayoría de las máquinas interesantes.

Backdoor de primera fase

El backdoor de primera fase es un malware básico que compromete dos ejecutables de Windows y es utilizado para reconocimieto en la máquina.

El primero de estos es el backdoor principal. Establece persistencia a través del servicio. También crea nombres mutex MyDemonMutex%d donde rangos %d de 0 a 10. Es capaz de recopilar información del proxy y la dirección del servidor C&C es hardcodeada en este binario. Puede ejecutar comandos y realizar cierto reconocimiento básico de la máquina, el cual es filtrado hacia el servidor C&C.

Figura 5 – Recopilación de información del proxy

El segundo de estos ejecutables tiene un único propósito. Realiza una captura de pantalla del display de la víctima y escribe en MyScreen.jpg. Este archivo puede entonces filtrado por el backdoor principal.

Backdoor de segunda fase

Este malware es descargado en la primera fase; presumiblemente cuando los operadores consideran que la máquina es lo suficientemente interesante para ellos como para permanecer en ella durante un tiempo mayor.

Nuevamente, la dirección del servidor C&C es harcodeada en el binario, y no tiene mecanismos para actualizar este elemento de configuración. Este backdoor busca comandos de http://[C&C domain]/cmdpool y descarga archivos adicionales de http://[C&C domain]/upload. Estos archivos adicionales son principalmente las herramientas de movimiento lateral mencionadas más abajo.

Los comandos que soporta son:

  • Ejecutar un comando
  • Eliminar un proceso
  • Cargar un archivo
  • Descargar un archivo
  • Listar una carpeta

Son enviados en formato JSON. Los ejemplos más abajo son instrucciones para ejecutar un comando y para listar una carpeta:

Figura 6 – Ejemplo de comandos del backdoor

Herramientas de movimiento lateral

  • Una vez que los operadores de PowerPool tienen acceso persistente a una máquina con el backdoor de segunda fase, utilizan varias herramientas de código abierto, mayormente escritas en PowerShell, para mover lateralmente en la red.
    • PowerDump: Este es un módulo Metasploit que puede recuperar nombres de usuario y hashes del administrador de cuentas de seguridad (SAM).
    • PowerSploit: Este es un framework post explotación en PowerShell en el Metasploit.
    • SMBExec: Una herramienta PowerShell para realizer conexiones SMB pass-the-hash.
    • Quarks PwDump: Un ejecutable de Windows que puede recuperar credenciales de Windows.
    • FireMaster: Un  ejecutable de Windows que puede recuperar contraseñas almacenadas de Outlook, navegadores web, etc.

Conclusión

La divulgación de vulnerabilidades por fuera de un proceso coordinado de divulgación pone a muchos usuarios en riesgo. En este caso, incluso las versiones más actualizadas de Windows podrían verse comprometidas al no existir un parche disponible al momento en que tanto el exploit como la vulnerabilidad fueron publicadas.  El CERT-CC provee algunas mitigaciones, pero Microsoft aún no las aprobó de manera oficial.

Estas campañas específicas apuntan a un número limitado de usuarios, pero no se dejen engañar por eso: esto muestra que los cibercriminales también están al tanto de las noticias y trabajan en emplear exploits ni bien están públicamente disponibles.

Los investigadores de ESET continuarán rastreando cualquier uso malicioso de estas nuevas vulnerabilidades. Los indicadores de compromiso también pueden encontrarse en Github. Por cualquier consulta o para enviar una muestra relacionada con el tema, contáctanos a través de la siguiente dirección de correo: threatintel@eset.com.

Indicadores de compromiso

Hashes

SHA-1 Type Detection name
038f75dcf1e5277565c68d57fa1f4f7b3005f3f3 First stage backdoor Win32/Agent.SZS
247b542af23ad9c63697428c7b77348681aadc9a First stage backdoor Win32/Agent.TCH
0423672fe9201c325e33f296595fb70dcd81bcd9 Second stage backdoor Win32/Agent.TIA
b4ec4837d07ff64e34947296e73732171d1c1586 Second stage backdoor Win32/Agent.TIA
9dc173d4d4f74765b5fc1e1c9a2d188d5387beea ALPC LPE exploit Win64/Exploit.Agent.H

Detection names
Win32/Agent.SZS
Win32/Agent.TCH
Win32/Agent.TEL
Win32/Agent.THT
Win32/Agent.TDK
Win32/Agent.TIA
Win32/Agent.TID

C&C servers
newsrental[.]net
rosbusiness[.]eu
afishaonline[.]eu
sports-collectors[.]com
27.102.106[.]149