jueves, octubre 29, 2020

Hacking Windows: Cómo detectar un Bypass de UAC Fileless con Sysmon

Sysmon es una de esas herramientas que ayudan y mucho a dar respuestas y a hacer "Threat Hunting". Es una herramienta potente que sigue siendo actualizada e, incluso, se siguen añadiendo tipos de eventos. La última versión data de mediados de octubre de 2020, por lo que se puede ver que está joya del Sysinternals está más viva que nunca.

Figura 1: Hacking Windows: Cómo detectar un Bypass de UAC Fileless con Sysmon

En el artículo de hoy quería hablar un poco de Sysmon y de cómo aplicarla para la detección de bypasses de UAC, algo que hemos hablado y mucho en el pasado. De todo aquel trabajo de aprendizaje y de investigación surgió nuestra herramienta uac-a-mola. Además, estuvimos interesados en el mundo que rodeaba a las técnicas fileless allá por mediados del año 2016, cuando estudiábamos el primer bypass de UAC basado en fileless, el del eventvwr

Después muchos artículos hablando de bypasses de UAC y herramientas como uac-a-mola. Hoy quería cambiar las tornas y entender un poco el funcionamiento de sysmon en este ámbito. Lo primero es indicar qué es sysmon o cómo podemos definirla tal y como viene en su documentación.

Figura 3: Hacking Windows: "Ataques a sistemas y redes Microsoft"

Sysmon es un servicio y driver de Windows que permite monitorizar y registrar la actividad del sistema. ¿Qué monitoriza? Casi acabaríamos antes indicando el qué no monitoriza: creación de procesos, conexiones de red, cambios en los atributos de tiempo de los ficheros, modificaciones y adiciones en el registro, creación de ficheros, etcétera. Es una herramienta perfecta para recopilar información de eventos en un sistema, poder identificar acción anómala o maliciosa y entender cómo el atacante o el malware ha operado en la red.

Detectando bypass UAC eventvwr

Para empezar a entender a sysmon lo mejor es jugar con él en un entorno de pruebas que tengamos a mano. El volumen de logs que vamos a empezar a recoger es importante, aunque dependerá de la configuración que le demos al fichero. En el siguiente enlace se puede ver un ejemplo de fichero de configuración dónde se pueden entender muchas cosas interesantes como, por ejemplo, cómo funcionaría una regla qué debe alertar porque se han producido varios eventos, como “jugar” con los OR y los AND, y cómo agrupar todo para que sea más legible. De este tipo de ficheros hay varios por Internet y son realmente interesantes. 


A continuación, os muestro un pequeño ejemplo de fichero de configuración. Los eventos de Tipo 1 y Tipo 5 de sysmon son monitorizados, pero si queremos ampliar con otro tipo de eventos deberemos indicarlo. Lo que vamos a hacer es crear un archivo de configuración indicando un grupo de reglas, cuyo nombre es “Registry”. 

Figura 5: Configuración de sysmon

El OR indica que registraremos cada evento o “TargetObject” por separado. Si indicáramos AND sobre un grupo de reglas o sobre una regla, estaríamos indicando que deben suceder todos los eventos de ese “conjunto” para registrar la acción. 

Figura 6: Ejecución de sysmon con el fichero de configuración

En este caso sencillo, vamos a notificar los cambios que se produzcan sobre cualquier hive del registro que contenga “\shell\open\command”. Esto es porque el bypass de UAC de eventvwr modificada dicho hive en HKCU.  Con esta configuración sencilla, instalamos sysmon. Hay que recordar que éste será persistente a los reinicios. 

Figura 7: Bypass UAC funcionando

Ahora, invocamos como vemos en la Figura 7 el bypassuac_eventvwr de Metasploit. Suponemos que tenemos una sesión en la máquina Windows donde se encuentra sysmon y vamos a realizar un bypass de UAC de este tipo. Como podemos ver en la imagen anterior, el bypass tiene éxito y obtenemos una nueva sesión.

¿Qué ha ocurrido?

Sysmon ha registrado y clasificado la información. Podríamos buscar por eventos de tipo 12, 13 y 14 que son los referentes a acciones sobre el registro de Windows. Si miramos el visor de eventos, sin ningún tipo de búsqueda “avanzada” o ningún filtro aplicado, nos encontraremos con un primer evento que tiene el siguiente string: “bypassuac_eventvwr”.

Figura 8: Máxima Seguridad en Windows Gold Edition
escrito por Sergio de los Santos

Si revisamos el fichero de configuración, el “TargetObject” tiene un “name” que apunta a ese nombre. Si nos fijamos es un evento de Tipo 13, por lo que tenemos una modificación o un set de un valor. Podemos observar el PID del proceso, en este caso una Powershell. Además, vemos en qué clave se hace la modificación y nos encaja con el bypass de UAC de tipo eventvwr.  Lo curioso es que en ‘(Default)’ se está metiendo una instrucción que ejecuta una Powershell y que leerá otra clave llamada ‘RuKWUlkO’. ¿Qué hay ahí?

Figura 9: Visor de Eventos del bypass de UAC

Si miramos el siguiente evento, también de Tipo 13, se ha creado una clave en ‘…\mscfile\shell\open\command’ con nombre ‘RuKWUlkO’ y se ha volcado en dicha clave un código en Powershell, el cual se puede observar. Ese código será el código que devolverá el Meterpreter a nuestro Metasploit, una vez que se ha el bypass de UAC con eventvwr a través del registro.

Figura 10: Evento Tipo 13

Si se revisan los procesos que ocurren ahora de Tipo 5 encontraremos una invocación al binario: c:\windows\system32\eventvwr.exe. Lo cual hace ver que en poco tiempo se ha modificado el registro en la ruta concreta de este bypass y se hace una invocación del binario para que funcione. Si seguimos avanzando en el visor de eventos vamos a encontrarnos con más información. Encontramos un nuevo evento Tipo 13, en el que se modifica la clave ‘(Default)’ y se deja el valor por defecto que hubiera antes. Claro, ya se ha llevado a cabo el bypass de UAC. 

Figura 11: Modificación de la clave (Default)

Por último, se puede observar un evento Tipo 12 donde se elimina la clave ‘RuKWUlkO’ que almacena el código del Meterpreter. Hay que indicar que en cada ejecución del módulo de Metasploit el nombre de la clave es aleatorio, por lo que si probáis en vuestro entorno veréis otro nombre de clave.

Figura 12: Evento Tipo 12 con eliminación de la clave

Es interesante para aprender en la parte ofensiva echar un ojo a la parte del rastro y lo que se puede registrar o cómo se puede detectar cierto tipo de técnicas. Todo es parte del aprendizaje continuo en el ámbito del Ethical Hacking. Las posibilidades con sysmon son infinitas.

Saludos,

Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell”, "Pentesting con Kali Silver Edition" y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González - Conseguir 100 Tempos Gratis en MyPublicInbox

 Contactar con Pablo González

No hay comentarios:

Publicar un comentario