martes, septiembre 10, 2019

Windows 10: Bypass de UAC con "wsreset" en uac-a-mola

Vuelta al trabajo después de unos cuantos días de evasión. Días de desconexión que han hecho que pueda ver ciertas cosas con otros puntos de vista. También días que permiten echar la vista atrás, todo lo trabajado, todo lo que hemos ido haciendo en los últimos meses y años en Telefónica. Días de desconexión para seguir echando de menos lo que hacemos, lo que nos gusta hacer. Así han sido estos días.

Figura 1: Windows 10: Bypass de UAC con "wsreset" en uac-a-mola

En vacaciones entre avión y avión estuve echando la vista atrás a las herramientas que hemos ido haciendo desde el equipo de Ideas Locas. Centré el tiro en uac-a-mola, una herramienta especial para mí, ya que fue una pequeña locura que acabo yendo en 2017 a BlackHat Europa. Recordé las horas previas a aquella BlackHat, junto a mi compañero en aquellas guerras Santiago Hernández, aquellas pruebas de última hora. Es un proyecto especial, al que tengo cariño. Especialmente porque está hecho por y para profesionales del Ethical Hacking.

Figura 2: Libro de Ethical Hacking

Tras ver los últimos bypasses de UAC que han ido saliendo, hablé con mi compañero Josué Encinar y le dije de seguir trabajando en la herramienta. Por ello, hemos introducido dos nuevos módulos y un tercero que hemos retocado.


El módulo del que quiero hablaros hoy es el referido a un nuevo tipo de "Fileless" para Windows 10, basado en la debilidad de wsreset.exe. Crear un módulo en uac-a-mola es algo trivial, por lo que viendo algunos fileless ya implementados, puede ser cuestión de cinco minutos crear un nuevo módulo con un nuevo bypass de UAC. En este enlace se puede encontrar el código del fileless de wsreset válido en Windows 10.

Figura 4: Módulo en uac-a-mola del nuevo bypass de UAC

En el artículo que escribí hace unas semanas se puede encontrar en qué se basa este bypass de tipo fileless. A veces asusta lo sencillo que son este tipo de debilidades de algunos binarios de Windows. Lo interesante de éste es que afecta a los sistemas Windows 10, por lo que para la realización de Hacking de Windows dentro de un proyecto de Ethical Hacking es algo vital.

Figura 5: Libro de "Hacking Windows: Ataques a sistemas y redes Microsoft"

Sea como sea, decidimos hacer el módulo para actualizar la herramienta uac-a-mola y dotarla de módulos más actuales. Creemos que es una herramienta que aún tiene recorrido y de la que publicaremos más cosas en próximas semanas. Aún, no se ha publicado la versión de uac-a-mola^2 que se presentó en 8dot8 y de la que se hablará en RootedCON Valencia. Además, en RootedCON Valencia veremos alguna sorpresa sobre un posible uac-a-mola para Meterpreter, pero ello ya se verá en RootedCON.


Figura 6: Presentación de UAC-a-Mola en CCN-Cert

Ahora vamos a ver la ejecución del módulo fileless_wsreset de uac-a-mola para verificar que su implementación funciona. En la imagen se puede observar las opciones del módulo, el cual es muy sencillo, ya que solo hay que indicar cuál es la instrucción que se quiere ejecutar cuando se realice el bypass de UAC. Si dejamos la instrucción por defecto, se creará un fichero en C:\, la cual es una ubicación protegida, solo se puede escribir si se está ejecutando el proceso en un contexto de integridad alto. 

Figura 7: Módulo fileless_wsreset en uac-a-mola

Con el comando show de uac-a-mola se puede listar las opciones del módulo y la información de éste. En la imagen se puede ver que en la ruta C:\ no se encuentra ningún fichero denominado pwned.txt

Figura 8: Ruta protegida

Cuando se ejecuta el módulo y se realiza la manipulación y cambios en el registro que provocan que cuando se invoque al binario wsreset.exe se ejecute la instrucción de la clave del registro modificada. Este código ya se ejecuta en un contexto de integridad alto, ya que el binario wsreset.exe se ejecuta en este contexto. Es un binario autoelevado. 

Figura 9: pwned.txt en C:\

Aquí podemos ver el fichero de texto creado en la raíz del sistema. Para poder ver esto de forma más sencilla se puede hacer uso del siguiente vídeo. 

Figura 10: PoC Fileless wsreset en uac-a-mola

Como se ve, se sigue mimando lo que nuestro tiempo nos permite a esta herramienta y seguiremos añadiendo algunas cosas nuevas en breve tiempo. Os esperamos en la RootedCON Valencia para que veáis una charla sobre el interesante mundo de la seguridad en Windows y la investigación en el campo de la protección UAC.

Saludos,
PD: Durante la RootedCON Valencia tendrás un stand de libros de 0xWord, así que si quieres que te firme alguno, solo tienes que pedírmelo que será un placer.
Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDO de Telefónica.

No hay comentarios:

Publicar un comentario