Fowsniff CTF

20231104211055.png

En esta maquina es de nivel easy que tendremos que econtrar dos flags, del user y del root. Antes de ello tenemos que encotrar credenciales de una web que actualmente ya no esta disponible

Created by benarrow-up-right

Metodología

  • Enumeración

    • Escaneo de red

    • Enumeración de servicios y versiones

    • Puerto 80

    • Fuzzing

  • Explotación

    • Waybck machine

    • Pop3

  • Escalar Privilegios

    • Permisos de grupo

Walkthrough

Enumeración

Escaneo de red

Empezamos a enumerar lo puertos de la maquina victima

nmap: Este es el comando principal que inicia la utilidad de escaneo de puertos nmap.

-p-: Esta opción indica a nmap que escanee todos los puertos, desde el puerto 1 hasta el puerto 65535. El guion (-) después de -p es un atajo para indicar "todos los puertos".

--open: Esta opción hace que nmap solo muestre los puertos que están abiertos. Esto significa que solo se mostrarán los puertos en los que hay servicios o aplicaciones escuchando conexiones.

--min-rate 5000: Esta opción establece la velocidad mínima de escaneo en 5000 paquetes por segundo (pps). Esto es bastante rápido y puede ayudar a acelerar el escaneo, pero ten en cuenta que podría aumentar la detección de intrusiones.

-vvv: Estas tres "v" representan la opción "verbose" (detallada). Agregar múltiples "v" aumenta el nivel de detalle de la salida. En este caso, se ha configurado para que la salida sea muy detallada, lo que proporcionará mucha información sobre el escaneo en curso.

[IP]: Esta es la dirección IP del host que se va a escanear. nmap escaneará los puertos de esta máquina.

-Pn: Esta opción le indica a nmap que no realice un ping para determinar si el host está activo o no. Normalmente, nmap realiza un "ping sweep" antes del escaneo de puertos para detectar hosts activos. La opción -Pn desactiva esta función, lo que significa que nmap intentará escanear los puertos incluso si el host no responde a los pings.

-n: Esta opción le dice a nmap que no realice la resolución de nombres DNS. En otras palabras, nmap no intentará traducir las direcciones IP a nombres de host durante el escaneo.

Encontramos los siguientes puertos abiertos

Enumeración de servicios y versiones

Enumeramos los versiones y servicios de los puertos que encontramos

Puerto 80

Vamos a enumerar el puerto 80 que muestra una web.

20231103103733.png

Fuzzing

Realizaremos fuzzing en el directorio de la web en el puerto 80.

dir: La opción "dir" le indica a gobuster que se realice un escaneo de directorios en lugar de archivos.

-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt: Esta opción especifica la lista de palabras o diccionario que se utilizará para adivinar nombres de directorios en el servidor web. En este caso, se utiliza el archivo "/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt" como diccionario. Esto significa que gobuster probará cada una de las palabras en ese archivo como nombres de directorios en el servidor web.

-u http://[IP]/: Esta opción indica la URL del servidor web que se va a escanear. En este caso, gobuster realizará el escaneo en "http://10.10.8.207/".

-t 100: Esta opción establece el número de hilos que se utilizarán para realizar el escaneo. En este caso, se han configurado 100 hilos, lo que significa que gobuster ejecutará múltiples solicitudes de escaneo en paralelo para acelerar el proceso.

Encontramos los siguientes siguientes directorios:

En el directorio http://[ip]/security.txt encontramos los siguiente

20231103115019.png

Con lo que vemos que la web fue comprometida y dejaron un mensaje

Explotación

Si buscamos el un poco en la web nos encontraremos con un twitter

20231103115300.png

El cual nos llevara a un pastebin, el cual ya no existe.

20231103115310.png

Wayback Machine

Vamos hacer uso de una web que es muy util para viajar en el tiempo de como se veian las web hace unos años

20231103115704.png

Al ingresar la url que nos da en twitter podemos ver algunas credenciales

20231103120000.png

Tenemos los siguientes usuario y credenciales

  • Usuarios

pop3

Para crackear los hashes que encontramos en la web vamos a usar crackstationarrow-up-right

Ahora haciendo uso de las crdenciales realiozaremos brute force al servicio pop3

hydra: Es el comando principal para ejecutar la herramienta de ataque de fuerza bruta "Hydra". Hydra se utiliza para probar combinaciones de nombres de usuario y contraseñas para obtener acceso no autorizado a servicios que utilizan autenticación.

-L user.txt: Esta opción especifica el archivo "user.txt" que contiene una lista de nombres de usuario que se utilizarán en el ataque de fuerza bruta. Hydra probará cada nombre de usuario en esta lista junto con las contraseñas proporcionadas.

-P password.txt: Esta opción especifica el archivo "password.txt" que contiene una lista de contraseñas que se utilizarán en el ataque de fuerza bruta. Hydra probará cada contraseña en esta lista junto con los nombres de usuario proporcionados.

pop3://[ip]: Aquí se especifica el protocolo y la dirección IP del servidor POP3 que se va a atacar. En este caso, el objetivo es el servidor POP3 en "[IP]".

Encontramos unas credenciales las cuales usaremos para ingresar

20231103122123.png

Para enumerar pop3 usaremos Enumeración de pop3arrow-up-right donde hay mas documentación

telnet [IP]: Este comando inicia una sesión de telnet con el servidor que tiene la dirección IP 10.10.142.64 en el puerto 110. El puerto 110 es el puerto estándar utilizado por el protocolo POP3 para la recepción de correo electrónico.

USER seina: El usuario envía el comando USER seguido del nombre de usuario "seina" al servidor POP3. Esto se utiliza para autenticarse en el servidor POP3.

PASS scoobydoo2: El usuario envía el comando PASS seguido de la contraseña "scoobydoo2" al servidor POP3. Esto se utiliza para autenticarse con la contraseña correspondiente al nombre de usuario.

list: El usuario envía el comando list al servidor. El comando list se utiliza para enumerar los mensajes de correo electrónico en el servidor.

1 1622: El servidor enumera el primer mensaje con "1" y muestra su tamaño, que es de 1622 bytes.

2 1280: El servidor enumera el segundo mensaje con "2" y muestra su tamaño, que es de 1280 bytes.

retr 1: El usuario envía el comando retr 1 para recuperar el primer mensaje. El servidor responderá proporcionando el contenido del mensaje.

En el mensaje que encontramos, podemos ver unas credenciales que usaremos para ingresar por ssh

20231103124111.png

SSH

20231103124140.png

Escalación de privilegios

Para escalar privilegios buscaremos archivos que el grupo users pueda ejecutar

20231103124854.png

Encontramos cube.sh el cual se ejecuta al iniciar sesion de ssh

Entonces podemos inyectar un comando para que nos de una shell como el usuario root

20231103141807.png

PAra obtener una reverse shell usaremos lo siguiente:

20231103142319.png

¡VAMOS! Happy Hacking

Last updated