BeRoot: Una herramienta para buscar la forma de ser "root" en Windows 10

BeRoot es una herramienta de post-explotación que ayuda a un pentester a lograr ser Administrador - o root - en un sistema operativo Microsoft Windows, a través de chequear malas configuraciones, debilidades o utilizar alguna vulnerabilidad conocida de la instancia concreta del sistema objetivo.

Figura 1: BeRoot. Una herramienta para buscar la forma de ser "root" en Windows 10

La herramienta es capaz de explotar para ello las vulnerabilidades detectadas y ejecutar código en un contexto privilegiado consiguiendo la escalada de privilegio.

¿Qué métodos utiliza la herramienta a día de hoy?

 Estos métodos se pueden visualizar en el Github de la herramienta BeRoot, la cual puede aumentar en los métodos y en las vulnerabilidades que aprovecha. A continuación, vemos que métodos utiliza la herramienta:

Figura 2: GitHub de la herramienta BeRoot
Creación de servicios con rutas que no tienen comillas: Algunos servicios pueden contener rutas a binarios que no están entre comillas, esto puede suponer un riesgo, ya que se podría sustituir el binario por otro. 
• Directorio de servicios escribible: Algunas malas configuraciones permiten que un usuario que no deba pueda escribir en un directorio concreto que el sistema va a arrancar como SYSTEM o Administrador, pudiendo, por ejemplo, suplantar a un binario de un servicio por una shell con ejecución de comandos.
• Directorio escribible sobre la variable de entorno %PATH%: Si hay un binario que va a ser llamado por el Administrador o el Sistema, se podrá sustituir.
El método de la vulnerabilidad MS16-075: Es la explotación de un bug ya conocido y parcheado, pero si no está aplicado el parche puede utilizarse.
• El método AlwaysInstallElevated. Es un método utilizado para lograr ejecutar Microsoft Windows Installer con privilegios de SYSTEM. Es un fallo que permite crear un archivo de instalación MSI y solicitar permisos de cuenta de sistema.
• Unattended Install Files: Estos ficheros dejan configuraciones de cuentas privilegiadas en los archivos unattended.xml para la instalación de programas que requieren permisos de administración. Si se han dejado en el sistema, se pueden conseguir las credenciales.
Figura 3: Contraseñas de administración en ficheros unattended.xml
• Otras pruebas. Se realizan algunas pruebas más como la posibilidad de modificar un servicio que existe, modificar una clave de registro para hacer un ataque de UAC Bypass con sustitución de DLLs, o modificar el directorio donde se almacenan las tareas del sistema en %WINDOWS%/SYSTEM32/Tasks.
PoC: Probando la herramienta

En esta pequeña prueba de concepto, vamos a testear la herramienta. En el pasado ya hemos hablado de alguna herramienta que nos ayuda a detectar y explotar vulnerabilidades en sistemas operativos Windows como, por ejemplo, Exploit Suggester. También hemos visto otras herramientas para otras plataformas como, por ejemplo, lynis para sistemas Linux. Más recientemente, hemos trabajado y visto cómo explotar una vulnerabilidad que permite la escalada de privilegios en sistemas Windows x64 con la vulnerabilidad MS16-135.

Para comenzar lanzamos la herramienta con un usuario no privilegiado sobre una versión de Windows 10. La primera valoración que ésta obtiene es un servicio potencialmente vulnerable, ya que su directorio no tiene una correcta configuración en lo que a permisos se refiere.

Figura 4: Servicio inseguro en una ubicación que puede ser sobrescrita

Esta configuración insegura se da cuando un binario de un servicio que va a ser ejecutado como SYSTEM o como Administrador en un sistema Windows puede ser re-escrito. Esto permite a un atacante el poder sobrescribir el binario o, si éste utiliza alguna DLL que cargue desde esa ubicación se podría hacer DLL Hijacking. Si se mete una shell, la próxima vez que se arranque ese servicio, el pentester obtendrá una sesión privilegiada. Además, siempre hay que tener en cuenta las distintas posibilidades que tenemos con los bypass UAC, si hubiera condiciones adecuadas.

También podrían aparecer servicios que cargan librerías con rutas sin comillas, lo que permite que se haga un DLL Hijacking en alguna de las rutas que se pueden generar, como ya se vio en el artículo de "Elevación de servicios y D.O.S. en creación de servicios sin comillas"

Figura 5: Servicios creados sin usar comillas. Error en servicios de Micorosoft

Otra evaluación que realiza la herramienta son las claves del inicio de sesión y de la máquina. De nuevo, se encuentran rutas dónde se puede escribir en el directorio, pudiendo lograr una ejecución en un contexto privilegiado. Además, se encuentran archivos interesantes de instalaciones desatendidas, los cuales pueden proporcionar ventaja.

Figura 6: Evaluación de claves de registro

Por último, la herramienta lanza una prueba con un módulo que trae. Para ello chequea si es vulnerable al MS16-075. En este caso, podemos observar en la imagen, el sistema operativo Windows 10 no se ve afectado..

Figura 7: Resumen de ejecución de la BeRoot

Como se puede ver ,BeRoot es una herramienta interesante que automatiza una serie de pruebas sobre un sistema Microsoft Windows con el objetivo de encontrar debilidades y malas configuraciones, por lo que es una herramienta propia de la post-explotación y que debemos llevar en nuestra mochila de pentesting.

Figura 8: Ejemplo de uso de BeRoot en Windows 10

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


Via: www.elladodelmal.com
BeRoot: Una herramienta para buscar la forma de ser "root" en Windows 10 BeRoot: Una herramienta para buscar la forma de ser "root" en Windows 10 Reviewed by Zion3R on 1:23 Rating: 5