Insecure GUI Apps – Privilege Escalation en Windows

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.

Índice:

Ejemplo de Explotación

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

Nosotros hemos iniciado sesión en el equipo como el usuario “user”, somos un 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:

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

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:

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

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

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í:

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:
  • Ejecuto el “exe” que he pasado al Windows, el cual me genera una reverse shell hacia el kali al puerto 4444:

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.

Este es el tweet original de la vulnerabilidad, la cual contiene un video de la explotación:

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

4 comentarios en “Insecure GUI Apps – Privilege Escalation en Windows

  1. La verdad es que me he reído y todo con la vulnerabilidad de Paint, habrá que ver si sigue funcionando en Windows 11 que se ve que lo han actualizado.

    Muy buen post btw 👍

    1. Thx!! Más que vulnerabilidad de paint, lo que ocurre exactamente es que el entorno Windows que uso en el post tiene configurado para que por defecto el paint se abra como administrador. Por lo que una vez dentro del paint, al ejecutarnos una cmd o una powershell, este proceso se creará como proceso hijo del paint, y el paint al estar ejecutándose con privilegios de admin, el proceso hijo hará lo mismo.

      Por lo que no es una vulnerabilidad del paint como tal, es una mala configuración, por eso, lo realmente “turbio” en la vulnerabilidad de Razer, era que sin pedirte permiso ni nada, ya se abría como administrador (SYSTEM) el asistente de instalación, lo que permitía que nos pudiesemos escapar ejecutando una cmd con los mismos privilegios que el asistente.

      1. Sikumy bro muy buena web. La verdad esq la he mirado por encima y parece súper buena. Mira q soy noob en esto pero con tu server de DC (deephacking) y esta página… Buah me va a encantar este mundo.
        Gracias!

Deja una respuesta

Subir para arriba