SwagShop
Úvod a kontext
SwagShop je stroj z Hack The Box založený na staré instalaci Magento. Hodí se hlavně jako ukázka řetězení dvou známých webových zranitelností a následného reuse hesel v lokálním systému.
Počáteční průzkum
Vyhledání otevřených portů
Nejprve mapuji veřejně dostupné služby, protože právě z otevřených portů odvodím, které protokoly a aplikace má smysl zkoumat detailněji.
ports=$(nmap -p- -Pn --min-rate=1000 -T4 $IP | grep ^[0-9] | cut -d "/" -f 1 | tr "\n" "," | sed s/,$//);echo $ports;nmap -p $ports -A -sC -sV -v -Pn $IP
Získání přístupu
Získání user flagu
User flag zde slouží hlavně jako potvrzení, že už mám běžný uživatelský kontext a mohu pokračovat v lokální analýze systému.
První část stála na unauthenticated SQL injection známé jako Shoplift (CVE-2015-1397), přes kterou šlo vytvořit vlastní administrátorský účet v Magento backendu. Jakmile je administrační rozhraní přístupné, následuje autentizovaný RCE exploit Froghopper (CVE-2016-4010), který už spustí kód jako webový uživatel.
Je důležité vnímat, že první shell nevzniká jednou “magickou” chybou. Jde o kombinaci dvou historicky známých slabin ve stejné platformě, které se teprve dohromady promění v použitelný foothold.
Eskalace oprávnění
Získání root flagu
Tento krok ukazuje, jak se nalezená slabina nebo chyba v delegaci oprávnění mění v privilegovaný přístup.
Po footholdu jako www-data dává smysl projít lokální konfiguraci Magento. Soubor app/etc/local.xml obsahuje databázové přihlašovací údaje a stejné heslo fungovalo i pro systémového uživatele haris. Ten měl v sudo povolený editor vi, což je klasický GTFOBins scénář vedoucí přímo k root shellu.
sudo -l
sudo vi -c ':!/bin/sh'
cat /root/root.txt
Slabinou v root části tedy nebyl editor samotný, ale nebezpečné sudo oprávnění v kombinaci s reuse hesla z aplikační konfigurace.
Shrnutí klíčových poznatků
- Z hlediska rozhodování bylo nejdůležitější správně přečíst vazbu mezi zastaralá instalace Magento, SQL injection a
sudopravidla. - K uživatelskému kontextu vedl konkrétní a ověřitelný krok: stabilní uživatelský přístup.
- Poslední část ukazuje, že po získání shellu rozhoduje hlavně to, jakou roli hraje příliš široká
sudooprávnění.
Co si odnést do praxe
- Tento řetězec začal u zastaralá instalace Magento, SQL injection a
sudopravidla; právě tam má obrana největší návratnost. Zastaralé e-commerce instalace typu Magento je potřeba průběžně záplatovat; známé webové zranitelnosti se u nich běžně řetězí až k systémovému shellu. - Foothold navázal na stabilní uživatelský přístup, takže oddělení účtů a tajemství není jen teorie. Jakmile se v prostředí objeví použitelný klíč, heslo nebo token, je potřeba předpokládat okamžitý pivot na stabilní shell; obrana proto stojí na segmentaci a oddělení přístupů mezi službami.
- Poslední krok stojí na příliš široká
sudooprávnění, a proto je nutné auditovat i lokální delegaci práv. Širokásudooprávnění je potřeba pravidelně revidovat; wrapper, install helper nebo diagnostický příkaz často udělá z běžného účtu roota.