Iniciamos con nuestro reconocimiento con Nmap

PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 63 OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 e2:5c:5d:8c:47:3e:d8:72:f7:b4:80:03:49:86:6d:ef (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAyYzjPGuVga97Y5vl5BajgMpjiGqUWp23U2DO9Kij5AhK3lyZFq/rroiDu7zYpMTCkFAk0fICBScfnuLHi6NOI=
|   256 1f:41:02:8e:6b:17:18:9c:a0:ac:54:23:e9:71:30:17 (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP8A41tX6hHpQeDLNhKf2QuBM7kqwhIBXGZ4jiOsbYCI
80/tcp open  http    syn-ack ttl 63 Apache httpd 2.4.52
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.4.52 (Ubuntu)
|_http-title: Did not follow redirect to http://permx.htb
Service Info: Host: 127.0.1.1; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Vamos a revisar la web y no vemos nada a simple vista, si enumeramos directorios no vemos nada, pero si enumeramos subdominios encontramos uno (lo agregamos al /etc/hosts)

gobuster vhost --url http://permx.htb/ -w /usr/share/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -t 80 --append-domain | grep -v 302

vamos a investigarlo, para ello vamos a enumrar directorios y vemos esta info interesante

  • http://lms.permx.htb/certificates/:
    • es un panel de autenticacion
  • http://lms.permx.htb/certificates/:
    • documentacion de la tecnologia que usa la web (usa Chamillo 1.11) Buscamos exploits para esa version del LMS (learning management and collaboration system), Link Vamos a usarlo

- Funcionamiento

Esta vulnerabilidad es devida a que hay un endpoint /main/inc/lib/javascript/bigupload/inc/bigUpload.php?action=post-unsupported donde por POST podemos pasarle un archivo y se almacena en se endpoint

ahora tenemos esta webshell

nos mandamos una revshell (se puede hacer desde el POC) y vamos a enumerar creadenciales del servidor (ruta: var/www/chamilo) (tambien podemos ir poco a poco buscando en lo archivos que es mejor)

find . -name \*conf\* -type f -exec grep pass {} \;

tenemos na pass vamos a probarla para alguno de los usuarios para ssh

$_configuration['db_password'] = '03F6lY3uXAP2bkW8';
 

enumaramos y vemos que podemos ejecutar un script como root el script no nos permite cambiar archivo fuera de nuestro home y tampoco podemos usar .. pero si que podemos crear un enlace simbolico de por ejemplo el passwd y quitarle la password a root

ahora que no tiene pass vamos a entrar como root