Granny
Granny, aunque es similar a Grandpa, puede ser explotada mediante varios métodos diferentes. El método previsto para resolver esta vulnerabilidad es la vulnerabilidad de carga de Webdav, ampliamente conocida.
Reconnaissance
Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Granny. Este resultado lo almacenaremos en un archivo llamado allPorts.
A través de la herramienta de extractPorts, la utilizaremos para extraer los puertos del archivo que nos generó el primer escaneo a través de Nmap. Esta herramienta nos copiará en la clipboard los puertos encontrados.
Lanzaremos scripts de reconocimiento sobre los puertos encontrados y lo exportaremos en formato oN y oX para posteriormente trabajar con ellos. En el resultado del escaneo con los scripts de Nmap, nos encontramos que está habilitado el WebDAV y los métodos que están permitidos, verificaremos este punto más adelante.
Transformaremos el archivo generado targetedXML para transformar el XML en un archivo HTML para posteriormente montar un servidor web y visualizarlo.
Accederemos a http://localhost y verificaremos el resultado en un formato más cómodo para su análisis.
Web Enumeration
Revisararemos las tecnologías que utiliza el sitio web a través de la herramienta whatweb. En el resultado obtenido, verificamos que se trata de un IIS 6.0.
Accederemos a http://10.10.10.15 y nos encontramos con la siguiente página que no nos muestra aparentemente nada. Realizamos fuzzing de directorios, subdominios y tampoco logramos encontrar nada interesante.
Initial Foothold
Abusing PUT & MOVE Methods - Uploading Aspx WebShell
Dado que en el escaneo inicial con Nmap nos encontramos que estaba el WebDAV, realizamos un escaneo sencillo a través de la herramienta de davtest que se encargará de realizar un escaneo de subir archivos para verificar que extensiones son válidas para subir a través del método PUT que se encontraba habilitado.
En el resultado obtenido, verificamos que la extensión asp y aspx no nos permite la subida de archivos. Est sería un grave problema de seguridad dado que lo que hay detrás de la página web es un IIS que interpreta lenguaje de aspx.
Si en el escaneo de Nmap no nos huiera mostrado los métodos que se encuentran habilitados en el WebDAV, podemos realizar una solicitud con cURL para revisar la cabecera de la solicitud enviada.
Realizaremos una prueba de enviar a través del método PUT el archivo gzzcoo.txt que contiene el nombre de nuestro usuario.
Accediendo a la ruta donde hemos subido el archivo, verificamos que se ha subido correctamente y podemos visualizar el contenido del archivo.
Trataremos de subir una webshell de aspx en el sitio web. Al tratar de subirlo por el método PUT se nos indica que no disponemos de los permisos, por lo tanto, parece ser que el servidor bloquea la subida de archivos con esa extensión.
Probaremos de subir la webshell con extensión .txt al servidor web.
Verificaremos accediendo a la ruta del archivo subido que ha interpretado el archivo y se visualiza el contenido de la webshell pero no podemos hacer uso de ella.
Por lo tanto, como también disponemos del método MOVE habilitado en el servidor web, lo que realizaremos es renombrar el archivo cmd.txt que subimos para que sea renombrado a cmd.aspx.
Probaremos nuevamente de acceder al nuevo archivo renombrado, y verificamos que hemos logrado eludir la verificación de la subida del archivo aspx. Esto debido que hemos subido el archivo en formato .txt y como disponíamos del método MOVE habilitado, lo renombramos por la extensión que deseamos.
Verificaremos a través de la ejecución del comando whoami de validar si funciona correctamente la webshell.
Nos pondremos en escucha por un puerto para recibir la Reverse Shell.
Desde otra terminal, deberemos de disponer del binario de nc.exe y levantar un servidor SMB para compartir este binario.
Desde la webshell que hemos subido, ejecutaremos el binario de nc.exe que se está compartiendo en nuestro recurso compartido con el objetivo de obtener una Reverse Shell.
Verificaremos que hemos logrado acceder al equipo correctamente.
Microsoft IIS 6.0 - WebDAV 'ScStoragePathFromUrl' Remote Buffer Overflow [RCE] (CVE-2017-7269)
Otra manera de realizar esta explotación, es revisando si existen vulnerabilidades para la versión de IIS que se encuentra en el servidor víctima. Entre los resultados obtenidos, verificamos que disponemos de un un exploit enPython que nos puede interesar.
Revisando las vulnerabilidades, nos encontramos con el siguiente CVE-2017-7269.
Desbordamiento de búfer en la función ScStoragePathFromUrl en el servicio WebDAV en Internet Information Services (IIS) 6.0 en Microsoft Windows Server 2003 R2 permite a atacantes remotos ejecutar código arbitrario a través de una cabecera larga comenzando con "If:
Nos descargaremos el siguiente repositorio de GitHub para realizar la explotación.
Nos pondremos en escucha por un puerto para recibir la Reverse Shell del exploit.
Ejecutaremos el explooit indicándole el target (máquina victima) y el puerto en donde se encuentra el IIS expuesto, también informaremos nuestra dirección IP de atacante y el puerto en donde estamos en escucha.
Verificaremos que hemos logrado obtener el acceso a la máquina objetivo.
Privilege Escalation
Token Kidnapping - Churrasco
Revisando los permisos que dispone el usuario actual NT AUTHORITY\NETWORK SERVICE, nos encontramos que dispone del privilegio de SeImpersonatePrivilege.
Podríamos hacer uso de JuicyPotato, PrintSpoofer, etc, pero en este caso al tratarse de un equipo tan antiguo como es el Windows Server 2003, nos darían diversos problemas.
Buscando por Internet como poder explotar este privilegio desde un Windows Server 2003, nos encontramos con el siguiente blog el cual mencionan un binario llamado churrasco.exe que hace una función similar a JuicyPotato.
Nos descargaremos el binario en nuestro equipo y lo compartiremos a través de un servidor SMB.
Desde el equipo víctima, nos copiaremos el binario en una ruta que podamos ejeuctar el binario.
Desde nuestro equipo atacante, deberemos de disponer del binario nc.exe y levantar nuevamente un servidor SMB para compartir este otro binario.
En una nueva terminal nos pondremos en escucha para recibir la Reverse Shell.
Desde el equipo víctima, ejecutaremos dos veces el binario churrasco.exe indicándole que ejecute el binario que estamos compartiendo a través de un recurso compartido, al ejecutar el binario nos proporcionará una Reverse Shell.
Verificamos que hemos logrado la conexión y que somos el usuario NT AUTHORITY\SYSTEM. Por otro lado, comprobamos que logramos visualizar las flags de user.txt y root.txt.
Última actualización
¿Te fue útil?
