Escalando privilegios en Windows 10

El pasado 27 de agosto, la experta en ciberseguridad "SandboxEscaper" liberó en Github un exploit de escalada de privilegios local en Windows 10. El exploit, el cual enlazó desde un tweet publicado en la red social Twitter, se hizo viral rápidamente, saltando la noticia hasta varios medios generalistas:



El exploit aún se encuentra accesible, y puede ser descargado desde el siguiente enlace:
https://github.com/SandboxEscaper/randomrepo/blob/master/PoC-LPE.rar

Dentro del mismo se encuentra un completo Write-up explicando la vulnerabilidad. En concreto, el programador de tareas de Windows tiene una vulnerabilidad en la interfaz de la Llamada a Procedimiento Local Avanzada, o Advanced Local Procedure Call (ALPC), que permite a cualquier usuario elevar privilegios hasta SYSTEM.

En esta interfaz hay una llamada a la API (SchRpcSetSecurity) que no verifica correctamente los permisos. De este modo, es posible asignar permisos de forma arbitraria a través de un hard link a cualquier objeto del sistema de forma local.


El funcionamiento de la PoC es muy sencillo. En primer lugar decidiremos que proceso deseamos escalar y seleccionaremos su PID. Para ello nosotros utilizaremos el software Process Explorer:


A continuación, lanzaremos el exploit usando por ejemplo el proceso del bloc de notas (PID 4324)


Si volvemos a Process Explorer veremos como el bloc de notas es ejecutado a través del servicio de cola de impresión, esta vez, con privilegios de SYSTEM:


Ahora si intentamos realizar alguna acción que requiera privilegios, como por ejemplo abrir el archivo "hosts" situado en la ruta "C:\Windows\System32\drivers\etc", no tendremos ningún problema:


Obviamente, modificando un poco el exploit podemos olvidarnos del notepad, y ejecutar algo mucho más interesante como podría ser un Meterpreter. Después de generar nuestra propia DLL maliciosa con msfvenom, adaptamos el proyecto de Visual Studio, lo compilamos y volvemos a ejecutar...


Sin embargo, esta vez tenemos nuestro listener preparado y podemos observar como inmediatamente nos llega la sesión de Meterpreter sin problemas, y por supuesto corriendo como SYSTEM.




Os confirmamos que esta PoC ha sido realizada en un sistema Windows 10 Pro x64, actualizado con los últimos parches de seguridad, y se sabe que también afecta a Windows Server 2016. Sin embargo, con modificaciones menores es posible ejecutarlo en la versión 32 bits de Windows 10, y probablemente sea posible hacerlo funcionar en otros sistemas de Microsoft que dispongan de esta funcionalidad.

Microsoft ha reconocido la vulnerabilidad y ha anunciado que se encuentran trabajando para resolver el problema lo antes posible. Hasta entonces, cuidado con lo que ejecutáis... :)

Podéis consultar más información sobre esta vulnerabilidad en la segunda entrada que hemos realizado en nuestro blog.

¡Saludos!


No hay comentarios:

Publicar un comentario