
Artículo · Pentesting
Elevando Privilegios (UAC) con metasploit
Como hemos visto con anterioridad en BacktrackAcademy, se nos ha proporcionado herramientas tanto para la recolección de información como para la explotación de servicios, acompañada de sus guías respectivamente, en esta ocasión considerando que ya sabemos cómo generar un Payload con MSFvenom y cómo enviar el archivo a su víctima, veremos una etapa importante posteriormente a haber comprometido la máquina.
Elevar privilegios en una parte importante cuando conseguimos comprometer una máquina, dentro de las primeras acciones que realizamos posteriormente a tener nuestra sesión METERPRETER es escalar privilegios para realizar tareas como migrar un proceso o borrar huellas.
Atacando a windows con metasploit
En el siguiente apartado comenzaremos con detectar los hosts de nuestra red y así identificar a nuestra víctima, esto lo realizaremos mediante la herramienta NMAP con el siguiente comando:
msf > db_nmap –sS –sV –O 192.168.0.1/24
En la siguiente imagen podemos identificar a nuestra víctima asociada con la IP: 192.168.0.31 OS_NAME: Windows 10
Resultado de la enumeración de objetivos con nmap
Identificada nuestra víctima, verificaremos mediante el módulo auxiliar si la máquina es vulnerable con Eternal Blue - Double Pulsar
Escáner para detectar equipos con la vulnerabilidad a EternalBlue
En la siguiente imagen usaremos el módulo auxiliar y definiremos el objetivo a escanear.
Configuración del módulo
Como podemos observar a continuación lamentablemente el equipo no es vulnerable a esta técnica por lo que necesitaremos generar un Payload y enviárselo a la víctima.
Ejecución y resultado del módulo
A continuaciones mediante MSFVENOM definiremos el tipo de payload que utilizaremos junto con el target local a cuál deba conectarse nuestra víctima.
Creación del Payload para la víctima
Existen diferentes técnicas las cuales podríamos utilizar para ofuscar nuestro payload en algún archivo o imagen, de manera que nuestra víctima ejecute nuestro el programa y levante la sesión reverse.
A continuación utilizaremos el módulo Handler “Payload genérico” para que esté a la escucha de la ejecución del programa en el equipo víctima.
Configuración genérica módulo handler
En la siguiente imagen agregaremos nuestro payload meterpreter Windows/x64/meterpreter/reverse_tcp al módulo handler y definiremos el Local Host = Equipo Local y el Local Port = 4441.
Configuración del Payload en el módulo handler
Posteriormente a la configuración del exploit ejecutaremos mediante el comando exploit –j de manera que se quedara ejecutando como proceso de fondo y así tener nuestra máquina a la escucha de la ejecución del programa “Payload” desde el equipo víctima.
Ejecución del módulo handler
A continuación en la siguiente imagen posteriormente a la ejecución del exploit desde el equipo víctima, se genera una sesión de meterpreter en la consola de MSF
Conexión exitosa, sesión de meterpreter abierta
Dentro de las características que nos ofrece meterpreter, podemos observar la información del sistema con sysinfo como observamos a continuación:
Resumen del equipo.
Elevando privilegios con meterpreter
Para comenzar a elevar privilegios dentro de meterpreter utilizaremos la siguiente técnica.
Primero podemos comprobar mediante el comando getsystem -h las técnicas utilizadas por meterpreter para elevar privilegios de un administrador local a usuario SYSTEM, para esto se utilizaron 3 técnicas:
1.- Named Pipe Impersionation (In Memory/Admin)
Generado el canal con la víctima, se crea y ejecuta un servicio mediante cmd.exe, generando una suplantación del cliente basada en el servicio de system.
2.- Named Pipe Impersionation (Dropper/Admin)
A diferencia de la técnica 1, esta deja un archivo DLL en el disco y programa rundll32.exe como servicio para ejecutar el DLL como system.
3.- Token duplication (In Memory/Admin)
Hace un barrido por los servicios abiertos en la búsqueda de alguno que pueda ser ejecutado como sistema y que adicionalmente tenga permisos para inyectar código, se utiliza la inyección de DLL para ejecutar a elevator.dll en la memoria del servicio encontrado.
Técnicas de getsystem
Como podemos ver en la imagen anterior se probaron las diferentes técnicas para elevar privilegios, sin embargo no se tuvo éxito para elevar privilegios.
MSF nos ofrece herramientas que nos permitirán Bypassear la denegación que nos impide elevar privilegios en el equipo víctima, realizaremos este procedimiento mediante los módulos UAC “Usuary Activity Control”.
Para comenzar con esta técnica realizaremos una búsqueda de los módulos, mediante el comando Search UAC obteniendo como resultado una lista de exploit diseñados para bypassear UAC y así elevar privilegios.
Lista de módulos UAC.
Como observamos con anterioridad utilizaremos el exploit ASK, este módulo tiene como característica conversar con el equipo comprometido y preguntar al usuario si quiere permitir el acceso de la aplicación desde el usuario administrador en caso se llama “Crisxyz”
Ventana emergente solicitando permisos para ejecución del exploit
Para ejecutar el exploit debemos dejar la sesión de meterpreter como proceso de fondo y usar use exploit/Windows/local/ask adicionalmente solo debemos indicar la sesión con meterpreter y correr el módulo, posteriormente al equipo víctima le saltará una ventana solicitando los permisos para la aplicación y así generar una nueva sesión con privilegios de system.
Ejecución del exploit, aceptación del equipo víctima y creación de la nueva sesión en meterpreter
Podemos verificar que se generó una nueva sesión con privilegios de system.
Lista de sesiones comprometidas en MSF
Otro módulo utilizado para la elevación de privilegios en Windows 10 es el módulo Bypassuac_fodhelper
Este módulo omitirá el UAC de Windows 10 mediante el secuestro de una clave especial en el Registro bajo la sección de usuario e insertará un comando que se invocará cuando se lance la aplicación Windows fodhelper.exe
Selección del módulo exploit/Windows/local/bypassuac_fodhelper
Configuramos la sesión comprometida con la Shell de meterpreter y ejecutamos el exploit.
Ejecución del exploit con operación exitosa
El resultado exitoso del exploit nos generará una nueva sesión, sin embargo a diferencia del módulo ASK podemos observar que el usuario continúa siendo: Usuario_P el cual ahora se nos permitirá elevar privilegios a system mediante el comando getsystem, como se observa en la siguiente imagen:
Elevación de privilegios mediante getsystem
Mediante el comando getprivs podemos verificar todos los privilegios habilitados al proceso actual
Privilegios habilitados
Ahora tendremos permisos para manipular el equipo víctima a nuestra voluntad, migrar el proceso ID de la sesión, crear un proceso persistente de manera que nos conecte de manera automática a nosotros, obtener los hash de contraseña de los usuarios, entre otras cosas.
Comando screenshot en la máquina comprometida.
Foto de pantalla de la máquina comprometida
¿Quieres aprender estas técnicas en profundidad?
Continúa tu ruta con Penetration Testing Student.

Escrito por
Cristian Palma PIngeniero civil informatico, con aptitudes por la seguridad informatica.



