vacaciones dockerlabs

En este writeup comenzamos a resolver máquina de la plataforma Dockerlabs, y en esta ocasión empezamos por el nivel más sencillo resolviendo la máquina Vacaciones de dificultad «Muy fácil».

Resumen de conceptos trabajados:

Escaneo de Puertos
Cracking contraseñas con Hydra
Pivoting usuarios
Escalada de privilegios

Si quieres conocer más sobre la plataforma Dockerlabs y ver cómo se configura, etc,, en este post te cuento cómo hacerlo.

Una vez hemos descargado en nuestra máquina la máquina víctima de Dockerlabs y desplegada en nuestro entorno siguiendo los pasos anteriores que menciono en el post, empezamos con el escaneo.

Escaneo de puertos y reconocimiento

Nos aseguramos que la máquina está activa enviándole un ping:

ping -c 1 172.17.0.2 -R

En el ping, el ttl sale 64 por lo que es una máquina LINUX ya que añade un nodo intermediario (172.17.0.1) que se puede ver en el análisis de la petición con el trace route.

Comenzamos el análisis con la fase de enumeración y escaneo de puertos mediante este comando (puedes hacer otra combinación siguiendo estas recomendaciones):

nmap -sC -sV -p- --open –min-rate 5000 -n -vvv -Pn 172.17.0.2 -oN ESCANEO

Puertos abiertos detectados, 22 (ssh) y 80 (http).

Siempre que el puerto http está abierto, me gusta comenzar por aquí, entrando a la IP en el navegador y viendo de primeras qué me encuentro.

En este caso al introducir la IP http://172.17.0.2 , vemos que la página se muestra en blanco, pero si accedes al código fuente tienes una pista con dos usuarios (Juan y Camilo):

Con estos dos usuarios anotados podemos intentar con Hydra hacer fuerza bruta y extraer sus contraseñas para acceder por ssh.

Cracking contraseñas con Hydra

Pruebo primero con el usuario Juan de esta forma:

hydra -l juan -P /usr/share/wordlists/rockyou.txt ssh://172.17.0.2

El intento tardó demasiado, por lo que corté e hice el ataque para el usuario camilo generándome al instante la contraseña:

Accedemos por ssh al usuario camilo con la contraseña password1

No somos usuario root somos usuario camilo.

Y con la pista del código fuente del inicio, vamos a acceder al directorio mail para ver qué podemos encontrar:

Resulta que si seguimos profundizando en el directorio /var/mail/camilo encontramos un txt que al abrirlo nos proporciona la pass de juan.

Pivoting usuarios

Vamos a hacer un pivoting de usuarios de nuevo desde el ssh para acceder con el usuario juan y su pass.

Incluimos $ script /dev/null -c bash para generarnos una Shell.

Si accedemos ahora al directorio home y listamos usuarios dentro, vemos a otro llamado “pedro”-

Si ejecutamos “sudo -l” dentro del usuario pedro, podemos ver una lista de los comandos que puedes ejecutar con privilegios de sudo y cualquier restricción asociada.

En este caso, vemos que el usuario juan tiene el permiso para ejecutar el comando /usr/bin/ruby sin necesidad de ingresar una contraseña (NOPASSWD).

Por lo que juan puede ejecutar el intérprete Ruby como root sin contraseña, lo cual permite poder escalar privilegios con Ruby.

Escalada de privilegios

Para buscar cómo escalar privilegios en Ruby podemos acudir a GTF Obins donde podremos encontrar la forma de escalar privilegios o ejecutar comandos a través de binarios.

En este caso si buscamos dentro de su web el acceder como sudo a ruby para escalar privilegios, nos encontramos con:

Si lo ejecutamos somos usuario root:

Así ya quedaría por terminada la máquina!

Recordamos en seguir las instrucciones de Dockerlabs para terminar y eliminar la máquina con Control+C

Otros posts relacionados