martes, enero 30, 2018

uac-a-mola de @ElevenPaths ya lo infirió a finales de 2017: 2018 comienza con un nuevo Fileless bypass de UAC en Win8.1/10

El pasado mes de diciembre presentamos en Black Hat Europa 2017 a uac-a-mola nuestro framework para investigar, detectar, explotar y mitigar bypasses de UAC. Tanto allí como en el paper de la herramienta comentábamos que, según los módulos de investigación que tenemos actualmente, se habían detectado algunos bypasses de UAC potenciales de tipo Fileless. Además, también se observa en el paper un gran número de bypasses mediante DLL Hijacking que afectan diversos binarios de Windows.

Figura 1: 2018 comienza con un nuevo Fileless bypass de UAC en Win8.1/10 

Revisando los últimos bypasses que se van descubriendo, y que parecen no tener fin, vimos que el binario slui.exe es débil a la manipulación de registro, es decir, un posible Fileless. Esto llamó mi atención. Según podemos ver en el proyecto uacme, este bypass es usable desde la versión 8.1 de Windows. Revisé el paper y, en efecto, lo teníamos registrado como uno de los bypasses descubiertos por uac-a-mola a finales de 2017. De hecho, fue parte de la investigación que hicimos para la publicación del libro "Hacking Windows".

Figura 2: Slui File Handler Hijack LPE

El investigador que ha publicado el bypass es bytecode77 y en su blog se pueden ver los detalles para llevar a cabo el aprovechamiento del bypass. Como se puede ver en la siguiente tabla proporcionada en el paper de uac-a-mola, el binario slui.exe se encontraba entre los binarios que podían ser utilizados para llevar a cabo un bypass de UAC. Esto fue descubierto a través del módulo de investigación de uac-a-mola llamado fileless_discovery.

Figura 3: Binarios para usar bypass UAC fileless en el paper de uac-a-mola

El bypass también es utilizable en la versión de Windows 10 y, a día de hoy, no está parcheado, según se indica en el proyecto uacme. Realizar el ataque manualmente es sencillo y lo vamos a mostrar de manera rápida.

En primer lugar, con ProcMon podemos monitorizar las acciones que realiza slui.exe sobre el registro de Windows. Se puede observar como hay un 'NAME NOT FOUND' en la consulta a la clave HKCU\Software\Classes\exefile\shell\open\command. Es bastante similar a la clave que se utilizaba en el primer fileless, el del eventvwr. Cuando el binario no encuentra la clave, se dirige al hive HKCR. Aquí busca HKCR\exefile\shell\open\command.

Figura 4: NAME NOT FOUND en la clave buscada

Entonces, si en la clave no encontrada, la cual pertenece a HKCU, rama del registro dónde escribir sin privilegio, ponemos la ruta a un binario podremos ejecutar algo distinto a lo que se ejecuta cuando se invoca slui.exe. Hay que tener en cuenta el contexto de integridad en el que se ejecuta slui.exe, el cual puede ejecutarse en un contexto de integridad alto, sin solicitar el UAC. Para ello, hay que ejecutarlo con el verb runas.

Visto esto, hay que crear la rama en el registro. Esto se puede hacer a través de la línea de comandos de Powershell utilizando el provider del registro, de manera muy intuitiva.

Figura 5: Creación de rama en el registry a través de PowerShell

Como se puede ver, se crea la clave y se le aporta un valor por defecto que es que se invoque un cmd.exe. Este cmd.exe será ejecutado en un contexto de integridad alto si slui.exe es ejecutado de la forma adecuada. Para invocar al binario slui.exe se debe hacer utilizando el verb runas, por lo que en Powerhsell se puede realizar de la siguiente manera start-process c:\Windows\System32\slui.exe -verb runas. Tras realizar la prueba obtenemos algo tal que así:

Figura 6: Bypass de UAC conseguido

No es el único Fileless que está sin parchear ya que el de fodhelper.exe sigue siendo muy útil en los proyectos de Ethical Hacking. Además, uac-a-mola tiene disponible el módulo para detectar y aprovecharse del binario fodhelper.exe en Windows. Además, tienes disponible este artículo sobre cómo construir un módulo para uac-a-mola.

Por último, os dejamos un video de un ejemplo sobre este nuevo bypass publicado por bytecode77 y que uac-a-mola infirió a finales de 2017, tal y como se puede ver en el paper de la herramienta.

Figura 7: PoC de UAC Bypass con slui.exe tipo fileless 

Sin lugar a la duda, el año 2018 pinta ambicioso a lo que la investigación en UAC se refiere, ¿Tendremos un año similar al 2017? Todo hace indicar que puede que sí. Tanto yo como uac-a-mola estaremos atentos. Si te gusta este tema, tienes estos libros para ampliar conocimientos: Máxima Seguridad en Windows, Hacking Windows, Ethical Hacking y Pentesting con Powershell.


Figura 8: Presentación de uac-a-mola en CCN-CERT 2018

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths  con la colaboración de Santiago Hernández Ramos, nuevo cybersecurity "padawan" researcher en ElevenPaths

1 comentario:

  1. ¿Podrías hablar del parche de meltdown, que Linus dijo que es una completa basura?

    ResponderEliminar