Máquina de dificultad intermedia. El objetivo principal es comprometer completamente el sistema mediante la obtención de dos flags: la de usuario (user.txt), logrando acceso inicial al sistema, y la de root, mediante la escalada de privilegios hasta el nivel de administrador.
Recopilación de información
netdiscover
sudo netdiscover -r 192.168.50.0/24
sudo netdiscover -r 192.168.50.0/24
Con la herramienta netdiscover, realizamos un escaneo de la red para identificar la máquina objetivo. En este caso, nuestra máquina tiene la dirección IP 192.168.50.104. Cabe mencionar que el MAC-Vendor para las máquinas de la plataforma Vulnhub siempre es 'PCS Systemtechnik GmbH'.
NMAP
sudo nmap -n -Pn -sS --open --min-rate 5000 192.168.50.104
Mediante nmap, realizamos un escaneo de los puertos abiertos y los servicios en ejecución en el servidor. Con esta información, enumeraré los nombres de dichos servicios para obtener detalles precisos sobre la superficie de ataque.
sudo nmap -sV -p 80, 139, 455, 2525 --min-rate 5000 192.168.50.104
El servidor está ejecutando HTTP en el puerto 80 (Apache 2.54.18), SMB en los puertos 139 y 445, y SSH en el puerto 2525. Cabe mencionar que, por defecto, el protocolo SSH escucha por el puerto 22.
Por último, vamos a ejecutar un conjunto de scripts básicos de nmap para obtener mayor información de los servicios en ejecución.
sudo nmap -sC -p 80,139,445,2525 192.168.50.104
Lo más importante aquí es lo que dice smb-security-mode y smb2-security-mode:
- Message signing disabled (Dangerous): Esto es una vulnerabilidad real. La firma de mensajes (Message Signing) es lo que garantiza que los paquetes SMB no han sido modificados en tránsito. Al estar deshabilitada, la máquina es vulnerable a ataques de Relay (SMB Relay).
- Account used: guest: Indica que el servidor permite el acceso como "invitado" o usuario anónimo. Esto significa que probablemente puedas listar carpetas compartidas sin necesidad de una contraseña.
sudo nmap -p 139,445 --script smb-enum-users.nse 192.168.50.104
Como se muestra en los resultados del script
smb-enum-users, se encontró un usuario llamado smb.Servicio HTTP.
A continuación, analizaré el servicio web que se encuentra en ejecución.
También analizaré el código fuente de la página web.La pista es clara podemos acceder al servicio SBM probablemente sin contraseña de usuario
Ahora con la herramienta Gobuster enumerare directorios del servidor web.
sudo gobuster dir -u http://192.168.50.104 -w /usr/share/wordlists/seclists/Discovery/Web-Content/raft-medium-directories-lowercase.txt
Al analizar los directorios, no encontré nada interesante, salvo aquellos que contienen imágenes. Recordemos que, en la descripción de este CTF, se menciona la estenografía como una pista clave para su resolución.
Una imagen en particular llamo mi atención es la siguiente.
Con toda la información recopilada, comenzaré a analizar el servicio SMB. Recordemos que tenemos un usuario llamado smb, cuyos recursos compartidos aún no hemos analizado.
Nota: BlueKeep es una vulnerabilidad crítica que afecta los sistemas operativos Windows. BlueKeep es una vulnerabilidad de ejecución remota de código RCE que afecta a los servicios de escritorio remoto (RDP) de Windows.
Para más información comparto los siguientes links:
Servicio SMB análisis
Con la herramienta smbclient me conectaré al servicio smb del usuario smb.
smbclient //192.168.50.104/smb -u smb -p
Cuando smbclient solicite la contraseña, simplemente presiona Enter para continuar con el acceso sin autenticación.Con el comando get podemos descargar los dos archivos main.txt y safe.zip.El archivo main.txt contiene la palabra helo.
Ahora descomprimiré el archivosafe.zip para analizar sus archivos internos.Como se muestra en la imagen anterior el archivo safe.zip esta protegido por contraseña, utilizaré la palabra helo que se encuentra en el archivo main.txt.
En este punto, emplearé la herramienta zip2john para extraer el hash del archivo comprimido. Posteriormente, utilizaré John the Ripper junto con el diccionario rockyou.txt para realizar un ataque de fuerza bruta y obtener la contraseña.
Tras ejecutar la herramienta, se obtuvo el hash de la contraseña, tal como se muestra en la siguiente captura.
La contraseña estaba dentro del diccionario rockyou.txt y se corresponde con hacker1. ahora analizaré los archivos descomprimidos.El contenido incluye dos archivos: una imagen en formato JPG y un archivo .cap, el cual corresponde a una captura de tráfico de red.
![]() |
| secret.jpg |
![]() |
| user.cap |
Como se muestra en las imágenes anteriores, el archivo
user.cap contiene una captura de tráfico de red bajo el estándar 802.11 (Wi-Fi). Tras analizar los paquetes de datos, logré identificar el SSID de la red: 'blackjax', el cual podría ser un nombre de usuario válido en el sistema. Por lo tanto, utilizaré la herramienta aircrack-ng para descifrar la contraseña de dicha red.Como se muestra en la captura anterior, aircrack-ng logró descifrar la contraseña de la red, la cual resultó ser: 'snowflake'.
Dado que el puerto 2525 aloja el servicio SSH, y tras haber obtenido el par de credenciales
blackjax:snowflake, procederé a validar dicho acceso mediante una conexión SSH.Como se observa en la captura anterior, se pudo establecer exitosamente una conexión SSH mediante las credenciales obtenidas.
Ahora revisaré los archivos del usuario blackjax.
Como se muestra en las imágenes anteriores encontramos la primera flag "user-flag". Debemos encontrar la flag root, también se nos muestra MD5-HASH el cual lo decifre con la herramienta crackstation.
Ahora buscaré archivos con el bit SUID activado. Este bit especial hace que el archivo se ejecute con los permisos del propietario, no del usuario que lo ejecuta. Si el propietario es root, cualquier usuario que ejecute dicho archivo tendrá privilegios de root durante su ejecución.
En este punto, el archivo
/usr/bin/netscan llamó mi atención. Procederé a verificar si el usuario blackjax tiene permisos para ejecutarlo.Como se observa en la imagen anterior el archivo /usr/bin/netscan el propietario es el usuario root y el usuario blackjax lo puede ejecutar.
Ahora analizaremos el archivo netscan, lo ejecutaré con la utilidad ltrace de Linux.
Como se muestra en la imagen anterior, el script
netscan ejecuta el comando netstat -antp. Un punto crítico es que netstat se está invocando sin especificar su ruta absoluta, lo que abre la posibilidad de una vulnerabilidad por secuestro de ruta (PATH hijacking).En este punto podemos aprovecharnos de la técnica path hijacking. Este tipo de vulnerabilidad consiste en manipular la varible $PATH para que el sistema ejecute un binario malicioso en lugar del legítimo, cuando un programa llama a un comando sin especificar su ruta absoluta.
En la ruta /tmp ejecutaremos la siguiente instrucción echo '/bin/sh' > netstat y luego cambiaremos los permisos de ejecución a chmod 777 netstat.
Ahora debemos modificar la variable $PATH de la siguiente manera:
Si todo va bien en este punto al ejecutar el archivo netscan debemos recibir una bash con privilegios de root.



































Comentarios
Publicar un comentario