Normalmente, estamos acostumbrados a escalar privilegios desde la consola de comandos, y de hecho, es así el 95 por ciento de las veces. Sin embargo, hay ciertas ocasiones en las que de forma gráfica, cuando instalamos o abrimos un programa, si se hace como administrador directamente sin pedirnos contraseña del mismo etc, es posible que tengamos la capacidad de escaparnos de la aplicación para poder ejecutarnos una cmd como el mismo usuario que esté ejecutando el proceso.

Vamos a ver un ejemplo usando el entorno vulnerable que te prepara el script de “tib3rius” y que podéis encontrar en su repositorio de Windows PrivEsc Setup.

Ejemplo de Explotación

En este caso, en este entorno, el programa que al ejecutarlo, se ejecuta como el usuario administrador es el paint:

Acceso directo de Paint configurado para ejecutarse como administrador

Nosotros hemos iniciado sesión en el equipo como el usuario “user”, somos un usuario sin privilegios:

Sesión iniciada como usuario sin privilegios

Volviendo al paint, al darle doble click y abrirlo, no nos pide nada, se abre sin más, porque está configurado para ello:

Paint ejecutándose sin solicitar credenciales

Sin embargo, podemos comprobar que lo está ejecutando el usuario administrador a través del siguiente comando:

tasklist /V | findstr <programa>

Tasklist muestra la lista de procesos que están actualmente en ejecución en el equipo. Con el argumento /V muestra una salida más detallada

Findstr simplemente es el equivalente al grep en sistemas Linux

Proceso de Paint ejecutándose como administrador

Bien, pues sabiendo esto, nos volvemos al paint y lo que se suele hacer en estos casos es dirigirnos a alguna característica del programa donde nos podamos escapar del mismo. Lo más típico es intentar abrir el explorador de archivos, ya sea para seleccionar una ruta o abrir un archivo o lo que sea:

Menú de Paint para abrir archivo

Explorador de archivos abierto desde Paint

Con el explorador de archivos abierto, podemos abrirnos una cmd de la siguiente manera:

Barra de direcciones del explorador de archivos

CMD ejecutándose como administrador

OJO, también podríamos escaparnos y abrirnos una powershell.exe haciendo “SHIFT + Click Derecho”:

Menú contextual para abrir PowerShell

PowerShell ejecutándose como administrador

Y de esta forma, también conseguimos escaparnos y ejecutar una cmd en el contexto de quien está ejecutando el paint, en este caso, admin. Esto ocurre ya que como el proceso padre está ejecutándose como administrador (paint), la cmd se ejecutará con los mismos privilegios al ser un proceso hijo. Desde el Process Explorer, se ve así:

Jerarquía de procesos en Process Explorer

Por lo que no es una vulnerabilidad como tal de paint, sino que existe la mala configuración de que esta aplicación se ejecuta como administrador directamente.

Ahora, si somos “anti-interfaz-gráfica”, pues simplemente podemos pasarnos un archivo “exe” generado con msfvenom para que nos ejecute una reverse shell:

  • Me pongo en escucha en el Kali:

Listener de Netcat en Kali

  • Ejecuto el “exe” que he pasado al Windows, el cual me genera una reverse shell hacia el kali al puerto 4444:

Ejecución del payload en Windows

Reverse shell obtenida como administrador

De esta forma, habiéndonos aprovechado de una vulnerabilidad de forma gráfica, al final de todo, hemos conseguido escalar privilegios y obtener una shell como Administrador.

Ejemplo real de esta explotación

Hace no mucho (al menos a la hora de escribir este post), en agosto de 2021 salió una vulnerabilidad la cual permitía una escalada de privilegios usando dispositivos Razer. La escalada se realizaba prácticamente casi de la misma forma que se ha explicado en este post.

Básicamente, la idea básica consiste en que al conectar físicamente un dispositivo Razer, Windows automáticamente descargará e instalará el programa “Razer Synapse Software”, este proceso lo realizará como el usuario SYSTEM (todo sin pedirnos permisos, lo hace automático). En el asistente de instalación, llega un momento en el que nos permite abrir el explorador de archivos para seleccionar la ruta donde queremos que se instale, en este punto simplemente ya hacemos lo que se ha explicado en este post.

A continuación os dejo un artículo que habla de la vulnerabilidad:

Claro, esto literalmente permitía que cualquier persona con un dispositivo Razer y acceso físico a un equipo, tuviera la capacidad de escalar privilegios.

Para más información, aquí otras fuentes donde se habla en detalle de como funciona:

Referencias