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.
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
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:
- Puerto 80: WordPress 4.1.31
- 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:
- wp-admin
- wp-content
- wp-includes
- 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:
- Tema utilizado: twentyfifteen
- Usuarios encontrados: hugo, c0ldd, philip
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).
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 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.
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.
Una vez tengas la escalada de privilegios busca la siguiente bandera root.txt.
Escalada de privilegios a través de /usr/bin/vim
- 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
- Establece la variable LFILE con la ruta al archivo
/etc/shadow
:
LFILE=/etc/shadow
- 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
.
- 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
- Abre el archivo
/etc/shadow
con el editor vi:
vi /etc/shadow
Esto te permitirá editar el archivo y realizar cambios si es necesario.
- 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.