martes, mayo 30, 2017

Fileless 3: Bypass UAC en Windows 10 (Otro más, aunque parezca increíble)

Hoy traemos un nuevo bypass de UAC del tipo Fileless, y van tres descubiertos ya con el de hoy, con el que podemos saltarnos la interacción con el usuario para saltar la protección de User Account Control . Este método ha sido encontrado por un investigador alemán que prepara su tesis sobre este tipo de debilidades de los sistemas de Windows. Es cierto que Microsoft no lo considera una vulnerabilidad, pero ha decidido parchear algunos ya que pueden ser utilizados por malware para lograr ejecutarse como SYSTEM en el equipo.

Figura 1: Fileless 3: Bypass UAC en MS Windows 10

Meses atrás hablamos del Fileless y Fileless 2 como los primeros métodos en los que no se generaba o se subía un fichero a disco para llevar a cabo el bypass. Hoy tenemos un nuevo Fileless y, a priori, van tres ya.

Figura 2: Artículo explicando "Fileless 3" por el investigador.

Como ya hemos comentado en otras ocasiones, tenemos unas pre-condiciones para hacer un bypass de UAC y son las siguientes:
• El usuario forma parte del grupo administradores. 
• El UAC tiene la política por defecto, es decir, no se ha modificado esta política desde la instalación del sistema. 
Figura 3: Con la configuración de UAC en "Modo Windows Vista" no funcionan estos bypass
• En este caso, tenemos un sistema operativo Windows 10. El Fileless 3 solo nos funcionará en esta versión, ya que el binario que permite llevar a cabo el bypass solo se encuentra en esta versión.
Como buen Fileless este bypass radica en errores de los binarios al consultar ramas del registro que se encuentran en HKCU. Si una rama consultada en HKCU no existe, podemos crearla y hacer que exista de forma sencilla. Por esta razón, veremos a continuación cómo de fácil es encontrar otros bypass de UAC siguiente el patrón.

PoC: Fileless 3 in action!

Vamos a llevar a cabo una prueba de concepto sencilla sobre un sistema Windows 10. Para observar cuando un binario consulta ramas de registro no creadas en HKCU utilizaremos la herramienta Process Monitor. Esta herramienta es fácil de configurar y, para ello, crearemos un par de filtros, uno para el binario fodhelper.exe y otro para los resultados “NAME NOT FOUND” que se obtengan de consultar al registro, como ya hemos hecho en otros bypass de UAC.

Figura 4: Filtros en Process Explorer para fodhelper.exe y "NAME NOT FOUND"

En la imagen podemos ver cómo la consulta a HKCU:\Software\Classes\ms-settings\Shell\Open\command nos proporciona un “NAME NOT FOUND”. Si creamos esta ruta en el registro de Windows, ya que se encuentra en HKCU y podemos hacerlo sin problema, y volvemos a ejecutar el binario fodhelper.exe monitorizado con Process Monitor nos encontraremos lo siguiente:

Figura 5: Falla en la localización de la clave DelegateExecute

Si buscamos la ruta HKCU:\Software\Clasess\ms-settings\shell\open\command\DelegateExecute vemos que no existe, es decir, no se encuentra por el binario. Si nos fijamos en la clave anterior, vemos como sí la ha encontrado, pero no la clave DelegateExecute.

Cuando el String Value de DelegateExecute existe, el binario buscará la clave por defecto de la ruta HKCU:\Software\Classes\ms-settings\shell\open\command ejecutando lo que haya en el valor de dicha clave. Al ser ejecutado con un binario que se está ejecutando con integridad alta, el nuevo proceso tendrá el mismo nivel de integridad.

Figura 6: MicEnum permite analizar los niveles de integridad de binarios y claves de registro

Para revisar los niveles de integridad en Windows se puede utilizar nuestra utilidad de ElevenPaths MicEnum. Además, como el binario fodhelper.exe está firmado por Microsoft y tiene el AutoElevate a True por lo que no solicitará la confirmación del usuario con UAC.

Figura 7: Valor por defecto en la clave DelegateExecute (value not set)

Ahora, modificamos (Default) e indicamos, por ejemplo, C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe. Esto hará que cuando invoquemos a fodhelper.exe, éste acabe abriendo una Powershell con el máximo privilegio.

Figura 8: Valor modificado a ejecución de Powershell

Os dejamos un video dónde podéis ver el proceso de manera sencilla. Un nuevo Fileless que puede ser utilizado en el mundo de la auditoría y el hacking ético. Aunque viendo lo que ocurrió con el primer Fileless, hay que estar preparado para luchar contra el posible malware que pueda utilizarlo.

Figura 9: PoC en Vídeo de Fileless 3 UAC Bypass

Como se puede entender, y hemos visto en otras ocasiones, este tipo de técnicas puede utilizarse en un pentesting dónde poder ser SYSTEM desde un usuario que sea del grupo administradores. Además, se puede utilizar de manera sencilla con Meterpreter en Metasploit gracias a la integración con Powershell que puede hacerse de forma sencilla. Y recuerda, estos métodos no funcionan si tienes aplicada la Máxima Seguridad a tu Windows.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "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

2 comentarios:

JustARandomHacker1232 dijo...

Creo que microsoft tiene trabajo que hacer :p

Pd: El link de El libro de Maxima seguridad en tu windows no funciona ;-;

Gonzalo dijo...

Es increíble que aun Microsoft siga haciendo de estas dándole ese poder a los ejecutables del sistema ¿no aprenden? estas cosas les llevan pasando toda la vida y cada EXE nuevo que crean para el sistema de Windows le dan ese poder de autoelevarse, alguien debería de poner un cartel en el edificio de Microsoft prohibiendo esa perniciosa practica

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