Cuando una máquina es comprometida, en un ejercicio de Red Team o en un pentest de un Ethical Hacking, comienza un proceso de post-explotación. Generalmente, es una buena praxis recopilar información de dicha máquina y de obtener el mayor privilegio posible en la máquina, es decir, una escalada de privilegios local. Luego podríamos hablar del ámbito del directorio activo, pero hoy nos quedaremos en algunos tricks para la escalada de privilegios en local.
Figura 1: PrivEsc: Técnicas para elevar privilegios
en Windows en un test de intrusión (1 de 2) #pentest
Ya hemos hablado en el blog de algunas vías para escalar privilegios o vulnerabilidades publicadas como, por ejemplo, el CVE-2019-14969 en Windows Server 2016 y los enlaces simbólicos. Otro ejemplo del que hablamos es el de ALPC y la publicación de SandboxEscaper en Twitter para sistemas x64. Otro CVE-2019-0841 comentamos para Windows 10. Así podemos sacar un gran número de vulnerabilidades que han permitido escalar privilegios en un sistema Windows.
Figura 2: Hacking avanzado en el Red Team con Empire & iBombShell |
Figura 3: Presentación de UAC-a-Mola para hacer UAC Bypass
Este mismo año se comentó un ‘trick’ que permitía utilizar la variable $PATH para lograr una escalada de privilegios, eso sí con su escenario concreto de actuación posible. Otro ejemplo, pero en la infraestructura del dominio, es el del abuso a Active Directory con ACLs y ACEs. Hoy quería enumerar algunas cosas a buscar dentro del proceso de escalada de privilegios en entornos de Hacking Windows.
Figura 4: Libro de Hacking Windows |
- Buscar vulnerabilidades: Lo primero es buscar vulnerabilidades en el sistema. La falta de instalaciones de actualizaciones es una de los focos principales donde buscar. La recopilación de los KB y hotfixes con, por ejemplo, el comando systeminfo ayuda a ver lo que tenemos instalado y lo que nos falta.
- Buscar exploits: El uso de herramientas automáticas que permitan relacionar los hotfixes que faltan con las vulnerabilidades existentes y que pueden ser aprovechados para lograr la escalada es importante. Por ejemplo, herramientas como Windows Exploit Suggester o el módulo post/multi/recon/local_exploit_suggester es un ejemplo.
Figura 5: Revisión de vulnerabilidades con Windows Exploit Suggester |
- Búsqueda de configuraciones inseguras: Otra de las bazas para encontrar vulnerabilidades y configuraciones débiles en el sistema son los script como Sherlock. No es el único y cada vez hay más soluciones como ésta. Interesantes para automatizar las acciones. Otro interesante es la aplicación BeRoot de la cual hemos hablado en el blog.
Figura 6: Ejemplo de uso de BeRoot en Windows 10
- Una de las cosas interesantes es saber hilar y relacionar debilidades en el sistema, así como buscarlas. Por ejemplo, el repositorio de PowerUp, dentro de Powersploit, nos permite utilizar scripts de Powershell que facilitar encontrar debilidades en el sistema.
Figura 7: Pentesting con Powershell 2ª Edición
- Servicios Inseguros: La técnica de los servicios que no tienen su ruta al binario entrecomillada o “unquoted service” es una de las que también se deben revisar. Ya se ha hablado en el blog de ello y herramientas como Metasploit y Empire disponen de un módulo para explotar la debilidad.- DLL Hijacking: Es una técnica que se utiliza en muchos ámbitos. Lo hemos visto en diferentes técnicas de bypass de UAC y también lo vemos en la escalada de privilegios. Por ejemplo, un servicio que ejecuta como SYSTEM y en la carpeta dónde se encuentra el binario se “echa en falta” una DLL. Si en esa carpeta podemos escribir, podemos tener la escalada cuando el servicio se reinicie. Una técnica de la que hemos hablado ya y que podemos revisar en el post sobre este bypass UAC.- Los permisos en las carpetas: Esto es algo fundamental. Las instalaciones de aplicaciones, la manipulación de carpetas en cadena, la manipulación de permisos por parte de usuarios privilegiados. Todo esto puede suponer una mala configuración en lo que a permisos se refiere. Hay servicios o aplicaciones privilegiadas que pueden ser sobrescritas, cuando no estén en funcionamiento, porque la carpeta dónde se encuentran no tiene una configuración de permisos adecuada.
Figura 10: Servicio inseguro en una ubicación que puede ser sobrescrito
- Las instalaciones desatendidas: pueden ayudar al pentester, ya que podemos encontrar ficheros XML con contraseñas en dichos ficheros. Si estos ficheros están al alcance de la lectura del usuario sin privilegios, podemos tener problemas.
Figura 11: Contraseñas de administración en ficheros unattended.xml
- El administrador de credenciales de Windows: ¿Qué ocurre cuando ejecuto cmdkey en una shell o una powershell? Puede ser interesante. Al final las credenciales quedan cacheadas y pueden ser utilizadas en descuidos por un pentester en ciertos entornos.
Podemos hacer la lista de cosas que mirar mucho más grande. Cuando alguien está aprendiendo sobre las escaladas de privilegios quiere un método eficaz cien por cien, pero aquí no lo tenemos. Debemos revisar muchas cosas y, cuantas más cosas podamos revisar, mayor será la probabilidad de encontrar el camino hacia la escalada. En la segunda parte de este artículo vamos a ver un escenario de ejemplo para ver cómo encadenar estas opciones.
Saludos,
Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters: Gold Edition", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root", “Pentesting con Powershell (2ª Edición)”, "Pentesting con Kali Silver Edition" y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica. Para consultas puedes usar el Buzón Público para contactar con Pablo González - Conseguir 100 Tempos Gratis en MyPublicInbox
Contactar con Pablo González |
No hay comentarios:
Publicar un comentario