VulnHub - Masashi:1 CTF Walkthrough

 

Máquina de nivel fácil. En esta práctica utilizaremos técnicas de enumeración y la creación de un diccionario para realizar un ataque de fuerza bruta al protocolo SSH.
Descubrimiento de la máquina objetivo.
Netdiscover
La máquina objetivo tiene la dirección IP: 192.168.50.147.
Con la herramienta Nmap realizaremos la enumeración de la máquina objetivo.
  • Descubrimiento de puertos.
    Nmap descubimiento de puerto -sS
  • Descubrimiento de servicios.
    Nmap descubrimiento de servicios sV
  • Ejecución básica de script Nmap de reconocimiento.
    Nmap ejecucion script basicos de reconocimiento
En este punto, se han identificado dos puertos abiertos: el puerto 22, asociado al servicio SSH, y el puerto 80, correspondiente a un servicio web.
Como se aprecia en la imagen anterior, aparece la página típica de Apache2. Ahora enumeraremos los recursos del servidor web.
Gobuster
La única información relevante encontrada es el archivo robots.txt.
robots.txt
Hay tres archivos que debemos analizar. Recordemos que el archivo robots.txt se utiliza para evitar que los buscadores indexen recursos de un servidor web y estos aparezcan en los resultados de búsqueda.
snmpwalk.txt
Archivo snmpwalk.txt
sshfolder.txt
Archivo sshfolder.txt
security.txt
Archivo security.txt
Les adelanto que el servicio TFTPD no está en ejecución (ver resultados de Nmap). El archivo security.txt únicamente muestra un mensaje informativo y, por último, sshfolder.txt revela un nombre de usuario.
usuario sv5
Dado que no contamos con la contraseña de este usuario, es necesario replantear la estrategia en clave CTF. Un punto de interés a considerar es el archivo de instalación por defecto de Apache2 que aparece al acceder al sitio web de esta máquina.
En mi máquina atacante tengo instalado Apache2, el cual muestra la misma página de instalación cuando activo el servicio.
apache2 index.html
Por lo tanto, lo que haré será descargar el archivo index.html de la máquina objetivo y comparar ambos archivos para analizar si existe alguna diferencia.
wget
El archivo index_1.html es el original, mientras que index.html corresponde al archivo descargado de la máquina objetivo.
comando diff en Linux
Como se observa en la imagen anterior, el comando diff detectó algunas diferencias entre ambos archivos, es decir, entre el archivo original y el archivo de la máquina objetivo. Con la herramienta CeWL crearé un diccionario personalizado basado en el archivo index.html de la máquina objetivo, para luego realizar un ataque de fuerza bruta al servicio SSH de dicha máquina.
cewl
cewl word list
Con todo lo anterior, realizaré un ataque de fuerza bruta al servicio SSH utilizando la herramienta Hydra.
hydra brute force
Bien, hemos encontrado la contraseña para el usuario ‘sv5’. Ahora me conectaré a la máquina objetivo mediante el servicio SSH.
Ahora es necesario determinar qué tipo de usuario, permisos y privilegios tiene el usuario sv5.
comando id Linux
comado sudo -l
  • El comando id en Linux permite mostrar el ID de usuario (UID), el ID de grupo (GID) y los demás grupos a los que pertenece el usuario..
  • El comando sudo -l permite verificar qué permisos tiene el usuario al usar sudo.
Como se muestra en las imágenes anteriores, el usuario sv5 no pertenece a ningún grupo administrador. Sin embargo, puede ejecutar la herramienta vi con privilegios de root en el directorio /tmp sin requerir la contraseña de root.
herramienta vi
vi ejecutado como root
La herramienta vi nos permite ejecutar comandos del sistema operativo. En este caso, podemos ejecutar el comando !/bin/bash, lo que iniciará una shell con los privilegios del usuario root. Esto es posible porque el usuario ‘sv5’ ejecutó la herramienta vi con privilegios de sudo, permitiéndonos escalar privilegios a root.
bash desde vi
Como se muestra en la imagen anterior, escalamos privilegios al usuario root y obtuvimos la flag(Bandera).
flag masashi:1
Happy hack!!!

Comentarios