Library - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Fácil | ElPinguinoDeMario |
Reconocimiento
Comenzamos el proceso de reconocimiento identificando los puertos abiertos en el sistema objetivo.
sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG ports
-p-: Escanea todos los puertos (1-65535).--open: Solo muestra los puertos abiertos.-sS: Realiza un escaneo SYN, que es rápido y discreto.--min-rate=5000: Envía al menos 5000 paquetes por segundo, acelerando el escaneo.-n: No realiza resolución DNS.-Pn: No realiza ping previo para determinar si el host está activo.-vvv: Muestra resultados detallados y en tiempo real.
Durante el escaneo, descubrimos que los siguientes puertos están activos:
80(HTTP)22(SSH) A continuación, evaluamos si los puertos abiertos presentan alguna vulnerabilidad, además de obtener más información sobre los servicios asociados a esos puertos.
nmap -p 80,22 -sCV 172.17.0.2 -oG targeted
Exploración Web
Al acceder a la página web, encontramos el panel de Apache por defecto:
Utilizamos Gobuster para realizar un reconocimiento web y explorar los directorios disponibles en el sitio.
gobuster dir -u http://172.17.0.2 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,doc,html,txt,img
gobuster dir- Indica que estás utilizando la herramienta Gobuster para realizar un escaneo de directorios.-u http://172.17.0.2/Especifica la URL objetivo que deseas escanear en busca de directorios.-wEspecifica que diccionario queremos usar-xPara indicar que tipo de extension queremos que nos encuentre
Al revisar el archivo index.php, encontramos un código:
Fuerza bruta
Vamos a ver si esa contraseña corresponde a algún usuario. Usamos hydra:
hydra -L /usr/share/SecLists/Usernames/xato-net-10-million-usernames.txt -p JIFGHDS87GYDFIGD ssh://172.17.0.2 -t 4
Encontramos al usuario Carlos. Ahora intentamos ingresar por SSH.
Escalada de Privlegios.
Una vez dentro de la máquina, al ejecutar sudo -l, vemos que podemos ejecutar el script script.py como root:
Verificamos los permisos del archivo en /opt:
Eliminamos el archivo existente y creamos uno nuevo con el siguiente contenido:
import os
os.system('/bin/sh')
Ejecutamos el nuevo script:
¡Ya somos root!