HACK THE BOX • INCLUDED

Hack The Box — Included

Technische samenvatting van het afgeronde HTB-lab: TFTP-webshell → wachtwoordhergebruik → LXD.

AfgerondDifficulty: Very EasyOS: Linux

Overview

Tijdens dit lab lag mijn focus op het misbruiken van een anonieme TFTP-upload, wachtwoordhergebruik en een escalatie via LXD. Door deze zwakke plekken effectief te combineren, kon ik een volledige aanvalsketen opzetten: van het uploaden van een PHP-webshell tot het verkrijgen van volledige roottoegang op de host via een geprivilegieerde container.

/ Nmap → TFTP en HTTP → PHP-webshell uploaden → www-data → Inloggegevens in .htpasswd → su naar mike → Geprivilegieerde container met hostschijf → Roottoegang tot de host

Reconnaissance

Mijn initiële poortscan voerde ik uit met Nmap. Hieruit kwamen twee interessante ingangen naar voren: TFTP (poort 69/UDP) en HTTP (poort 80).

Port Service Interessant omdat
69/UDP TFTP Schrijven naar de webmap
80 HTTP / PHP Geüpload script uitvoeren

Enumeration

Tijdens het onderzoeken van de TFTP-service ontdekte ik dat er sprake was van een misconfiguratie: de service stond ongeauthenticeerd schrijven toe rechtstreeks in de webroot (/var/www/html). Dit gaf mij de unieke mogelijkheid om bestanden te uploaden en deze vervolgens via de webserver aan te roepen.

Initial Access

Via de open TFTP-verbinding heb ik een PHP-webshell geüpload. Door deze webshell via HTTP aan te roepen, verkreeg ik mijn initiële toegang als de systeemservice www-data. Bij het inspecteren van de webmap stuitte ik op een .htaccess- en een .htpasswd-bestand. Ik heb de inloggegevens hieruit achterhaald en getest op lokale accounts. Dit bleek een voltreffer: vanwege wachtwoordhergebruik kon ik met het commando su direct overschakelen naar de lokale gebruiker mike.

Privilege Escalation

Als de gebruiker mike ontdekte ik dat mijn account lid was van de lxd-groep. Dit lidmaatschap maakte misbruik mogelijk van een bekende ontwerpfout in de rechtenstructuur van Ubuntu/LXD (CVE-2023-5536). Omdat gebruikers binnen deze groep standaard containers kunnen beheren met verhoogde rechten, heb ik met behulp van Distrobuilder een minimale Alpine Linux-container gebouwd. Ik startte deze container op als een geprivilegieerde instantie en koppelde het volledige bestandssysteem van de host-machine aan de /mnt-map binnen de container. Eenmaal in de container kon ik met volledige rootrechten de host-bestanden aanpassen (zoals de root-wachtwoorden of sudoers-rechten), waarmee ik de host definitief en volledig wist te overnemen

Lessons Learned

  • Ongeauthenticeerd schrijven naar een webmap kan code-uitvoering opleveren.
  • Wachtwoordhergebruik kan verdere lokale toegang geven.
  • Te ruime containerrechten kunnen de host raken.

Gebruikte tools

• Nmap • TFTP • Distrobuilder • Git • Python