HTB-Lab: paper.htb

HTB-Lab: paper.htb

Inleiding

  • Moeilijkheidsgraad: easy
  • Onderwerpen:CMS, Chatbot, Linux PrivEsc.

2. Nmap Scan

Nadat we het IP-adres hebben toegevoegd aan het bestand /etc/hosts, kunnen we de domeinnaam lokaal resolven.

sudo echo '10.10.11.143 paper.htb' >> /etc/hosts

We starten met een eerste Nmap-scan om te verkennen welke poorten en services actief zijn.

nmap -sVC --open paper.htb

3. Enumeratie

We starten de enumeratie bij poort 80, waar meestal een webservice draait.

We bekijken hier een testpagina die draait op een CentOS-server. Bij het testen van webapplicaties is het altijd slim om te achterhalen wat er zich onder de motorkap afspeelt. Hiervoor gebruik ik Burp Suite.

We onderscheppen de GET-request en sturen deze door naar de Repeater om de response van de server verder te analyseren. In de headers valt iets op: er wordt gebruikgemaakt van een X-Backend-Server header. Dat kan waardevolle informatie opleveren over de achterliggende infrastructuur.

We voegen de 'office.paper' toe aan de /etc/hosts file.

sudo echo '10.10.11.143 office.paper' >> /etc/hosts

We bezoeken het domein via de browser.

Wappalyzer laat al direct zien dat er een versie 5.2.3 draait van WordPress

Dit is het juiste moment om WPScan in te zetten om gericht verder te onderzoeken.

sudo wpscan --url http://office.paper/ --enumerate --api-token <redacted>

4. Kwetsbaarheid ontdekken

Na het doornemen van de output van WPScan stuiten we op de volgende kwetsbaarheid:

CVE-2019-17671
CVE - CVE-2019-17671
The mission of the CVE® Program is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities.

Op exploit-db.com vinden we een beschrijving van de exploit. We passen de URL aan zoals aangegeven, zodat we ongeauthenticeerde posts kunnen bekijken.

http://office.paper/?static=1&order=asc`

De volgende informatie wordt zichtbaar:

We ontdekken een publiek toegankelijke URL. Nadat we 'chat.office.paper' hebben toegevoegd aan de /etc/hosts file, openen we de URL in de browser.

We komen terecht in een chatapplicatie.
Om deel te nemen aan de gesprekken moeten we eerst een account aanmaken.

Na wat verder speuren ontdekken we een chatbot die is opgezet door een medewerker van het bedrijf.
De bot blijkt over een aantal nuttige functies te beschikken, waaronder:

recyclops help #dit laat alle functies zien.
recyclops list #In feite het 'ls' command op Linux
recyclops file #In feite het 'cat' command op Linux

Met deze commando’s kunnen we de functionaliteiten van de chatbot aansturen.
Na wat verder zoeken stuiten we op een verborgen directory.

Na een korte zoektocht via Google vinden we meer informatie over Hubot, het framework achter de chatbot.
Vooral het configuratiebestand .env kan gevoelige gegevens bevatten. Via de chatbot slagen we erin om dit bestand in te zien.

We vinden een wachtwoord.

5. Exploitatie (Foothold)

We maken via SSH verbinding met de webserver, gebruikmakend van de verkregen inloggegevens.

Hier treffen we de eerste flag aan: user.txt.

Tijd om verder te enumereren. Om dit proces efficiënter te maken, zetten we linPEAS in — een script dat ontworpen is voor het automatisch in kaart brengen van kwetsbaarheden op Linux-systemen.

We genereren handmatig het linpeas.sh-bestand, zodat we het later kunnen overzetten naar de target machine.

We transfereren het linpeas.sh-bestand naar de targetserver via SCP.

Na het uitvoeren van het linPEAS-script komen we de volgende interessante informatie tegen:

De kwetsbaarheid komt neer op het volgende:

'It was found that polkit could be tricked into bypassing the credential checks for D-Bus requests, elevating the privileges of the requestor to the root user. This flaw could be used by an unprivileged local attacker to, for example, create a new local administrator. The highest threat from this vulnerability is to data confidentiality and integrity as well as system availability'


6. Privilege Escalation

We komen het volgende script tegen waarmee we de kwetsbaarheid kunnen uitbuiten:: https://github.com/secnigma/CVE-2021-3560-Polkit-Privilege-Esclation

We downloaden de exploit op onze Kali-machine en verzenden deze daarna naar de targetserver.

Zodra de exploit op het systeem staat, voeren we deze uit.
Let op: bij deze exploit is het mogelijk dat je meerdere pogingen nodig hebt voordat hij slaagt.

Het vereiste wachtwoord voor de exploit is terug te vinden in het script zelf.