2 min
Trust

Hacking Infraestructura

En primer lugar debemos levantar la máquina, la cual nos dará la siguiente IP: 172.18.0.2

Toolsh1

  • gobuster
  • hydra
  • GTFOBins

Pasosh1

1. Escaneo de puertosh2

Analizamos qué puertos tiene abiertos el contenedor:

image.png
  • SSH en <22>
  • Apache en <80>

Si vamos a http://172.18.0.2, veremos la siguiente página por defecto de apache2:

image.png

2. Vulnerabilidades conocidash2

Tras buscar vulnerabilidades conocidas en OpenSSH y Apache con searchsploit sin éxito, procedemos a realizar web fuzzing sobre la máquina virtual.

3. Fuzzing Webh2

El Fuzzing Web (o Enumeración de Directorios) es una técnica de reconocimiento activo utilizada para descubrir recursos ocultos en un servidor web que no están enlazados públicamente. Consiste en la automatización de peticiones HTTP masivas, inyectando palabras de un diccionario (wordlist) en la URL para validar la existencia de directorios, archivos o extensiones específicas basándose en los códigos de estado de respuesta (como 200, 301, 403).

Para ello, vamos a utilizar la herramienta gobuster corriendo el siguiente comando:

Terminal window
gobuster dir -u http://172.18.0.2/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,js,txt
  • dir: modo de enumeración de directorios y archivos (permite buscar archivos y directorios)
  • -u: URL del host objetivo
  • -w: ruta del diccionario
  • -x: extensiones de los archivos que nos interesan
image.png

Identificamos un archivo secret.php. Al acceder a dicho recurso, encontramos lo siguiente:

image.png

Recordando que el puerto SSH está abierto (Punto 1), podemos intentar un ataque de fuerza bruta con un diccionario para obtener la contraseña del usuario mario.

4. SSHh2

Para ello, utilizaremos la herramienta hydra, que nos permite probar múltiples contraseñas automáticamente.

Terminal window
hydra -l mario -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 ssh://172.18.0.2
  • -l: login como mario
  • -P: lista de palabras (password list)
  • -t: cantidad de hilos
  • ssh://…: protocolo y objetivo
image.png

Encontramos la contraseña del usuario mario, lo que nos permite acceder al servidor:

image.png

5. Escalamiento de privilegiosh2

Una vez dentro del servidor, debemos obtener root. Para ello, verificamos qué binarios puede ejecutar el usuario mario y buscamos posibles vectores de escalada.

Terminal window
sudo -l
image.png

Vemos que Mario puede ejecutar vim sin restricciones. Consultamos GTFOBins para verificar si vim permite evadir restricciones y escalar privilegios a root.

image.png

Si probamos con el primero:

Terminal window
sudo -u root vim -c ':!/bin/sh'
image.png

¡Hemos conseguido acceso root en la máquina vulnerable!

  • DONE