HACK THE BOX • CAP

Hack The Box — Cap

Onvoldoende toegangscontrole op netwerkopnames, onversleutelde FTP-inloggegevens en te ruime Linux capabilities.

AfgerondOS: LinuxDifficulty: Easy

Overview

Tijdens het onderzoeken van de machine Cap heb ik succesvol een keten van kwetsbaarheden uitgebuit: een autorisatieprobleem in de webomgeving, het lekken van gevoelige gegevens in netwerkverkeer en een lokale rechtenfout. Door deze stappen te combineren, wist ik de machine volledig over te nemen en heb ik zowel de userflag als de rootflag succesvol bemachtigd.

Reconnaissance

Mijn initiële poortscan bracht HTTP (poort 80), SSH (poort 22) en FTP (poort 21) aan het licht. Omdat anonieme FTP-toegang niet was toegestaan, heb ik mijn pijlen direct gericht op de webapplicatie als het primaire aangrijpingspunt.

Enumeration

In de webinterface stuitte ik op een functionaliteit die netwerkopnames (PCAP-bestanden) aanbood. Door te testen of de autorisatie goed was ingericht, ontdekte ik een IDOR-kwetsbaarheid: ik kon simpelweg de opnames van andere gebruikers inzien en downloaden. Ik heb een PCAP-bestand van 72 pakketten binnengehaald en geanalyseerd met Wireshark. Hierin trof ik een onversleutelde, succesvolle FTP-sessie aan waarin de inloggegevens in platte tekst over de lijn gingen.

Initial Access

Met de gedachte dat inloggegevens vaak worden hergebruikt, heb ik de onderschepte FTP-gegevens getest op de SSH-service. Dit bleek te werken: ik kreeg een succesvolle gebruikerssessie en kon direct de userflag uitlezen.

Privilege Escalation

Om mijn rechten te verhogen, heb ik lokale enumeratie uitgevoerd met behulp van LinPEAS. Hieruit bleek dat de Python-interpreter over een onnodig brede cap_setuid-capability beschikte. Dit was een specifiek capability-probleem en dus geen standaard SUID-bit. Door deze capability uit te buiten, kon ik vanuit mijn normale gebruikersproces de identiteit van root aannemen, waarmee ik een root-shell opende en de rootflag veiligstelde.

Lessons Learned

  • Controleer objectautorisatie voor ieder bestand dat een webapplicatie beschikbaar maakt.
  • Onversleutelde protocollen kunnen gevoelige gegevens in netwerkopnames achterlaten.
  • Linux capabilities verdienen een eigen controle naast traditionele bestandsrechten en SUID.

Mitigatie & remediatie

  • Controleer server-side of de gebruiker toegang heeft tot iedere opgevraagde netwerkopname; onvoorspelbare identifiers vervangen die controle niet.
  • Gebruik versleutelde bestandsoverdracht, beperk toegang tot captures en vermijd wachtwoordhergebruik.
  • Verwijder onnodige capabilities van algemene interpreters en geef alleen specifiek benodigde rechten aan afgebakende processen.

Gebruikte tools

Nmap · Wireshark · SSH · LinPEAS · Python