29 may 2017

BeRoot: Cómo ser root en Windows

BeRoot es una herramienta de post-explotación que permite lograr ser administrador o root en Windows, a través de chequear malas configuraciones o utilizar alguna vulnerabilidad en el sistema operativo. La herramienta es capaz de detectar debilidades, malas configuraciones o, incluso, alguna vulnerabilidad. La herramienta es capaz de explotar vulnerabilidades 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:

  • 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 escribible. Algunas malas configuraciones permiten que un usuario que no deba pueda escribir en un directorio concreto, pudiendo, por ejemplo, suplantar a un binario. 
  • Directorio escribible sobre la variable de entorno %PATH%. 
  • El método de la vulnerabilidad MS16-075. 
  • El método AlwaysInstallElevated. Es un método utilizado para lograr ejecutar Microsoft Windows Installer con privilegios de SYSTEM. 
  • Unattended Install Files. 
  • Otras pruebas. Se realizan algunas pruebas más como la posibilidad de modificar un servicio que existe, modificar una clave de registro, etcétera.

PoC: Probando la herramienta

En esta pequeña prueba de concepto, vamos a probar la herramienta. En el pasado hemos hablado de alguna herramienta que nos ayuda a detectar y explotar vulnerabilidades en sistemas 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 sobre 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.



Un atacante podría sobrescribir el binario o, si éste utiliza alguna DLL que cargue desde esa ubicación se podría hacer DLL Hijacking. Además, siempre hay que tener en cuenta las distintas posibilidades que tenemos con los bypass UAC, si hubiera condiciones adecuadas.

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.



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 Windows 10 no es vulnerable.



BeRoot es una herramienta interesante que automatiza una serie de pruebas sobre un sistema Microsoft 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.


1 comentario: