Cómo explotar el bug de MS16 135 en Windows x64 con PowerShell Metasploit Like a Boss

Cómo explotar el bug de MS16 135 en Windows x64 con PowerShell Metasploit Like a Boss


Hace unos d�as la gente de Fuzzy Security publicaba una PoC en Powershell que permit�a explotar la vulnerabilidad MS16-135 con la que se puede llevar a cabo una escalada de privilegios total, es decir, de un usuario sin ning�n privilegio en el equipo o usuario normal hasta ser Administrador. El CVE-2016-7255 presenta y detalla la vulnerabilidad. El c�digo no es nuevo, ya que en C lo tenemos hace 4 meses, pero la prueba de concepto en Powershell es nueva.

Figura 1: C�mo explotar el bug de MS16-135 en Windows x64 con PowerShell & Metasploit "Like a Boss"

Este CVE se utiliz� para llevar a cabo un ataque dirigido. Google y Microsoft confirmaron que el grupo APT28 utiliz� una vulnerabilidad en Flash, con CVE-2016-7855, junto con esta vulnerabilidad para llevar a cabo la penetraci�n y escalada de privilegios. La vulnerabilidad es explotada a trav�s de la llamada a win32k.sys y NtSetWindowLongPtr(). El detalle de la vulnerabilidad lo puedes encontrar en este magn�fico art�culo de McAfee.

Figura 2: MS Security Bulletin MS16-135

Si revisamos los boletines de Microsoft nos encontramos con informaci�n detallada de la vulnerabilidad y el impacto y criticidad que esta presenta. La vulnerabilidad es cr�tica ya que afecta a los sistemas Microsoft desde Windows Vista  - y acost�mbrate a que est� sin parches en siguientes bugs - hasta Windows 10 & Windows Server 2016, es decir, en todos los sistemas operativos modernos de Microsoft.

�Qu� debemos tener en cuenta para ver si estamos protegidos?

F�cil, podemos revisar las actualizaciones, sobretodo de seguridad, instaladas en el equipo. Para ello podemos abrir el Panel de Control ir a Programas -> Ver actualizaciones instaladas. Si nos fijamos en la imagen, encontramos un paquete de actualizaciones de seguridad, el cual est� protegiendo el equipo de laboratorio de esta vulnerabilidad. Para este ejemplo, quitamos dicha actualizaci�n, cosa no recomendada. Hacemos que el equipo sea vulnerable. Hay que ver que dicha actualizaci�n se instal� en Marzo, por lo que durante meses este equipo virtual de pruebas ha sido vulnerable.

Figura 3: Actualizaciones instaladas en Windows

El equipo es un Windows 10 con casi todas las actualizaciones instaladas, digo casi todas, ya que acabo de quitar una. Lo primero que vamos a hacer es probar el exploit escrito en Powershell que abusa de la vulnerabilidad del sistema de la que hablamos hoy.

Figura 4: Poc del exploit en Powershell

Estando en Windows 10 probamos el script de Powershell que implementa el exploit contra Win32k.sys. Si hacemos la lectura con los mensajes que ocurr�an en el exploit escrito en C vemos que la cosa va bien. Obtenemos un �Duplicating SYSTEM token!�. A continuaci�n, probamos r�pidamente qu� usuario somos en el sistema y hemos pasado de un usuario sin privilegios al usuario SYSTEM. La escalada de privilegio se ha llevado a cabo.

Figura 5: Escalada de privilegios hecha con �xito

El siguiente paso es probar esto en remoto, es decir, simular lo que hizo el APT28. Una vez se obtiene acceso remoto a trav�s, por ejemplo, de Metasploit, vemos como ejecutar el exploit local a trav�s de la sesi�n de Metasploit.

PoC de MS16-135 con Metasploit

En primer lugar, hay que tener en cuenta que el script de Powershell solo se ejecuta en arquitecturas x64, ya que el exploit solo es eficaz para este tipo de arquitecturas. Con Metasploit, si no tenemos una sesi�n x64 podemos crearla a trav�s del m�dulo exploit/windows/local/payload_inject.

Figura 6: Configuraci�n del exploit para aquitecturas x64

Ahora s�, estamos seguros de poder lanzar el exploit de Powershell. Para ello, cargamos en un Meterpreter el m�dulo de Powershell, el cual nos permite interactuar de forma sencilla con la l�nea de comandos. Ahora cargaremos directamente a memoria el c�digo del script de Powershell, este podr�a ser obtenido desde el propio Github de FuzzySecurity o desde un servidor web bajo nuestro control. Como se puede en la imagen se descarga a memoria y se ejecuta autom�ticamente, gracias a la instrucci�n IEX o Invoke-Expression.

Figura 7: Explotaci�n del bug en MS16-135

En este instante, tenemos una Powershell d�nde ya no somos un usuario sin privilegios, si no que somos System. Para ejemplificar esto os dejamos un video d�nde pod�is ver la operativa de forma sencilla y simplificada.

Figura 8: PoC en v�deo de exploit para MS16-135 usando Kali Linux 2

De nuevo una forma a tener en cuenta en auditor�as, tanto internas como externas, ya que pueden ayudar a un atacante a obtener privilegio sobre los cientos de equipos Microsoft que pueden estar desplegados en una organizaci�n. Mant�n a salvo tu entorno y fortifica tu Windows.

Autor: Pablo Gonz�lez P�rez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y �Pentesting con Powershell�, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths

download file now