martes, diciembre 05, 2017

UAC-A-Mola: Framework para Investigar, Detectar, Explotar y Mitigar Bypasses de UAC

En la pasada Navaja Negra, mi compañero Santiago Hernández de ElevenPaths y yo, hicimos un taller sobre Bypassing de UAC en Windows 7 a 10. En este taller contábamos la importancia de UAC y cómo este último año habían salido diferentes técnicas que permitían lograr hacer un bypass de UAC. Ésta es una disciplina interesante para un pentesting dentro de un proyecto de Ethical Hacking. Además, contábamos como Microsoft iba cerrando algunos bypasses que habían sido utilizados en algunas campañas de malware para lograr que una muestra de malware tuviera privilegio en el sistema.

Figura 1: UAC-A-Mola: Framework para Investigar, Detectar, Explotar y Mitigar Bypasses de UAC

Personalmente, he estado este año metido a fondo en el tema del bypass de UAC, estudiando diferentes técnicas y estando al día, todo lo que uno puede estar, en los que iban saliendo. Allá, por el mes de mayo le comenté a mi compañero Santiago la idea de hacer un framework dónde se pudieran automatizar las pruebas para la detección de binarios que ofrecieran la debilidad, al menos para las técnicas de DLL Hijacking y Fileless. Técnicas que hemos tratado en este blog de forma masiva y que debes revisar si te interesa el tema.

Figura 2: UAC-A-Mola en el GitHub de ElevenPaths

Como digo, empezamos en mayo a hablar de construir un framework escrito en Python para automatizar la búsqueda de estas debilidades. Decidimos llamarlo UAC-A-Mola y que yo tenía en mente de manera más o menos clara. La idea era construir un marco de trabajo, principalmente para automatizar tareas que ayudaran a detectar binarios que potencialmente ayudarán a un bypass de UAC.

Figura 3: Welcome UAC-A-Mola

Posteriormente, surgió la idea de introducir módulos o trozos de código que ayudaran a la detección en un sistema operativo de un bypass UAC concreto, además de poder explotarlo. Por último, pensamos que, si podíamos detectarlo y explotarlo, podríamos mitigarlo. A día de hoy, la parte de mitigación es la que menos avanzada está, pero tenemos claro cómo queremos hacerlo. Os daremos más detalles próximamente.

Comenzando a jugar con UAC-A-Mola en Windows 7

El pasado sábado tuve el honor de hablar en Cybercamp 2017. Allí hablé de la importancia de UAC (User Account Control) su implementación en Windows Vista, los cambios desde Windows 7 y cómo funcionaba. Además, expliqué qué es realmente un bypass de UAC y cómo puede ayudar a un pentester en un momento concreto. Lógicamente, tenemos que entender que no es una vulnerabilidad, pero sí una característica, la cual si dejamos con una configuración débil puede ser utilizada para lograr privilegios en el sistema.


Figura 4: Presentación de UAC-A-Mola en CyberCamp 2017 por Pablo González

En el video se puede ver mi charla en el Cybercamp, dónde agradezco al número de personas que se acercaron, ya que nunca pensé que UAC podría levantar esa expectación. A continuación, os dejo el video de la primera demo de la charla, dónde se explicaba cómo funcionaba un bypass de UAC basándonos en DLL Hijacking, apoyándose en Windows 7/8/8.1 en WUSA.exe para lograr la copia a una ubicación privilegiada de la DLL. Además, comenté como IFileOperation trabajaba en Windows 10 para lograr algo similar en entornos más modernos.


Figura 5: Demo con UAC-A-Mola de UAC Bypass usando DLL Hijacking 

Para ver el funcionamiento de UAC-A-Mola en Windows 7/8/8.1, ponemos como ejemplo el bypass de UAC de tipo Fileless sobre el visor de eventos. Como se puede ver en el video, el uso de UAC-A-Mola es similar a Metasploit. De momento no hay interfaz gráfica y lo que tenemos son módulos de investigación y otros de ataque.


Figura 6: Demo con UAC-A-Mola de UAC Bypass usando Fileless Techinques

Los de investigación los explicaremos más adelante, mientras que los de ataque son los encargados de detectar y explotar las debilidades que el sistema presente respecto a la configuración de UAC. Más adelante, se implementarán los módulos de mitigación, basados en una monitorización del comportamiento de binarios potencialmente explotables.

Figura 7: Explotación de UAC Bypass con UAC-A-Mola usando event viewer

Comenzando a jugar en Windows 10

En Cybercamp 2017 hice un ejemplo de cómo funcionaba el Fileless de fodhelper en Windows 10. La implementación en UAC-A-Mola es sencilla, tal y como se puede ver en la siguiente imagen.

Figura 8: Técnica de Fileless fodhelper en UAC-A-Mola

Decidí mostrar lo fácil que es hacer un módulo, sobretodo de los últimos bypasses. Para ello mostré el código del bypass de UAC implementado basado en la inyección de variables de entorno a través de la tarea SilentCleanUP que se ejecuta en un contexto de integridad alto.

Figura 9: Implementación en UAC-A-Mola de UAC Bypass a través de SilenCleanUp

En la siguiente imagen se puede ver el código que mostré, tal y como comenté tenemos más prints que código de implementación del propio bypass. Lógicamente, habrá otra implementación más compleja en el sistema, incluyendo, por ejemplo, un DLL Hijacking, pero los que tienen que ver con la manipulación de registro se llevan a cabo de manera sencilla con la arquitectura de UAC-A-Mola.


Figura 10: Demo con UAC-A-Mola de UAC Bypass usando variables de entorno en Windows 10

En este vídeo se detalla el uso de UAC-A-mola para el bypass, detección y explotación, basado en la inyección en variables de entorno en tarea programada en Windows 10.

La parte de investigación

Esta parte es algo a la que queremos dedicarle más tiempo y algún artículo más. Adelantar lo que UAC-A-Mola proporciona hoy en día y es lo siguiente:
• Búsqueda de binarios con autoElevate a true y que se encuentren firmados por Microsoft. Estos binarios deben ser estudiados paso a paso. Como mostraré más adelante, en los resultados con UAC-A-Mola encontramos diferentes binarios que cumplen esta característica, en función del sistema operativo. 
• DLL Discovery. Este módulo permite investigar los binarios que pueden ser susceptibles de un bypass de UAC basado en DLL Hijacking. 
• Fileless Discovery. Este módulo permite automatizar la búsqueda de binarios que pueden ser susceptibles de esconder un Fileless.
Figura 11: Carga de módulos en UAC-A-Mola

Hay que indicar que algunos de estos módulos pueden llevar horas en su ejecución, ya que realizan un gran número de combinaciones.

Whitepaper de UAC-A-Mola

Aquí tenéis el artículo sobre UAC-A-Mola que hemos preparado para que podáis ver un poco más en detalle. El enlace al paper lo tienes en el Slideshare de ElevenPaths. Tenemos algunas ideas más que pueden hacer que el proyecto avance. El proyecto es Open Source, por lo que esperamos que colaboréis y que nos deis ideas, nuevos módulos e implementaciones que hagan crecer al proyecto.



El próximo miércoles 6, UAC-A-Mola se vestirá de gala para estar en el Arsenal de la Black Hat Europa de 2017. Allí estaremos en Londres, con un poco de frío, pero con muchas ganas de mostraros lo que tenemos y hasta dónde queremos llegar.

Figura 13: UAC-A-Mola en el Arsenal de BlackHat Europa 2017

Por último, indicar que el objetivo es el de ayudar en la investigación con el fin de mejorar la seguridad de los sistemas y que si quieres saber más sobre esto, las dos lecturas que debes tener en tu cabecera son el libro de "Máxima Seguridad en Windows 4ª Edición" de Sergio de los Santos y el de "Hacking Windows" que escribimos Carlos García, Valentín Martínez y yo.

El objetivo de UAC-A-Mola es detectar con el fin de mitigar y ayudar a crear un ecosistema más seguro. Sabemos que un bypass de UAC no es una vulnerabilidad, pero puede ser aprovechado por un malware o un atacante para obtener privilegio, por ello UAC-A-Mola se pone al servicio de la investigación con el objetivo de ayudar a detectar nuevas vías y mitigar, gracias a los futuros módulos de mitigación que estamos preparando. Nos vemos en #BHEurope

Welcome uac-a-mola, welcome Sir!

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”,  Hacking Windows, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths

2 comentarios:

John dijo...

Chema buen día. Lo siguiente no tiene nada que ver con el contenido publicado. Solamente quiero hacer una pequeña consulta: la seguridad informática me encanta, por tanto por donde puedo empezar,? Qué cursos debo adquirir? Soy de Bogotá Colombia y estoy muy entusiasmado en estos temas. Agradezco de su pronta colaboración.

GIE dijo...

Pablo, grandes posts !

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares