HACK THE BOX • METATWO

Hack The Box — MetaTwo

WordPress- en pluginbeveiliging, XML-verwerking, gelekte configuratiegegevens en de bescherming van een lokale wachtwoordkluis.

AfgerondOS: Linux

Overview

Tijdens dit lab heb ik gezien hoe meerdere zwakke plekken in applicaties en geheimenbeheer elkaar gevaarlijk kunnen versterken. Door kwetsbaarheden in WordPress te combineren met het kraken van de lokale wachtwoordmanager Passpie, wist ik een volledige route uit te stippelen van nul af aan tot aan volledige roottoegang. Hierdoor heb ik beide flags succesvol weten te bemachtigen.

Reconnaissance

Mijn netwerkscan identificeerde FTP (poort 21), SSH (poort 22) en HTTP (poort 80) op het doelwit. De webapplicatie bleek te draaien op WordPress. De FTP-service leverde in deze eerste fase nog geen bruikbare ingang op, waardoor mijn focus direct verschoof naar de website.

Enumeration

Door middel van handmatige webanalyse en gerichte WordPress-enumeratie stuitte ik op een kwetsbare BookingPress-plugin en een verouderde media-afhandeling. Ik wist hier twee serieuze kwetsbaarheden te identificeren:Een unauthenticated SQL-injection (CVE-2022-0739) binnen de BookingPress-plugin.Een XML External Entity (XXE)-verwerking in de verouderde media-afhandeling van de core-omgeving.Deze combinatie bracht cruciale applicatiegegevens en configuratiegeheimen binnen mijn bereik.

Initial Access

Met de SQL-injection (CVE-2022-0739) verkreeg ik databasegegevens, waarmee ik kon inbreken op een WordPress-account. Daarnaast gebruikte ik het XXE-lek in de mediaverwerking om gevoelige configuratiebestanden uit te lezen. In een achtergelaten mailerscript vond ik vervolgens inloggegevens die ook bleken te werken voor SSH. Na het inloggen via SSH had ik mijn initiële toegang binnen en kon ik direct de userflag uitlezen.

Privilege Escalation

Tijdens de lokale inspectie van het systeem ontdekte ik een Passpie-wachtwoordkluis. Ik heb het bijbehorende sleutelmateriaal buitgemaakt en onderworpen aan een offline wachtwoordaanval. De beveiliging bleek onvoldoende bestand tegen dit brute-force-onderzoek, waardoor ik het opgeslagen beheerderswachtwoord wist te achterhalen. Met dit geheim escaleerde ik mijn rechten naar een root-shell en stelde ik de rootflag veilig.

Lessons Learned

  • Een service zonder directe ingang kan later alsnog relevant blijken door elders gelekte gegevens.
  • Configuratiebestanden en scripts moeten als dragers van gevoelige geheimen worden behandeld.
  • De beveiliging van een wachtwoordkluis hangt ook af van sleutelbescherming, bestandsrechten en de sterkte van de passphrase.

Mitigatie & remediatie

  • Werk WordPress, plugins en mediabibliotheken bij en beperk upload- en beheertoegang.
  • Houd geheimen buiten publiek bereikbare bestanden, beperk leesrechten en roteer blootgestelde inloggegevens.
  • Bescherm kluizen en sleutels met sterke unieke passphrases en minimale toegangsrechten.

Gebruikte tools

Nmap · WPScan · Burp Suite · Python · Hashcat · John the Ripper · PHP · SSH · Passpie