tom@home.htb:~$

Blog o HTB

3 November 2020

Bashed

Úvod a kontext

Bashed je jednoduchý stroj, ale právě proto dobře ukazuje, jak nebezpečné je veřejně vystavit vývojářský shell. Klíčový signál tu není složitá zranitelnost, ale samotná existence /dev/ a dalších artefaktů jako config.php, které prozradí, že server obsahuje pomocné nástroje určené jen pro interní práci.

Didakticky je to hlavně lekce o tom, že první foothold může být triviální. Jakmile je na webu dostupný funkční shell, přechází těžiště útoku z webové enumerace na stabilizaci přístupu a lokální analýzu oprávnění.

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- --min-rate=1000 -T4 -Pn $IP | grep ^[0-9] | cut -d "/" -f 1 | tr "\n" "," | sed s/,$//);echo $ports;nmap -p $ports -A -sC -sV -v -Pn $IP

Vyhledání otevřených portů (2)

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.

nmap -p $ports -n -v -A -sC -sV -Pn --script *enum*,*vuln* $IP

Enumerace webu

Ve webové vrstvě hledám neveřejné cesty, vývojové artefakty a chybně vystavené soubory, protože právě ty často prozradí technologii aplikace, interní workflow nebo přímo přístupové údaje.

./dirsearch/dirsearch.py -u http://$IP -e php -x 403
[20:12:51] 301 -  308B  - /php  ->  http://10.10.10.68/php/
[20:14:02] 200 -    0B  - /config.php
[20:14:07] 301 -  308B  - /css  ->  http://10.10.10.68/css/
[20:14:11] 200 -    1KB - /dev/
[20:14:11] 301 -  308B  - /dev  ->  http://10.10.10.68/dev/
[20:14:21] 301 -  310B  - /fonts  ->  http://10.10.10.68/fonts/
[20:14:29] 301 -  311B  - /images  ->  http://10.10.10.68/images/
[20:14:32] 200 -    8KB - /index.html
[20:14:36] 301 -  307B  - /js  ->  http://10.10.10.68/js/
[20:15:01] 200 -  939B  - /php/
[20:15:38] 301 -  312B  - /uploads  ->  http://10.10.10.68/uploads/
[20:15:38] 200 -   14B  - /uploads/

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.

cat user.txt
__CENSORED__

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.

cat root.txt
__CENSORED__

Shrnutí klíčových poznatků

Co si odnést do praxe

tags: sudo - php - exploit - enumeration - privesc - hackthebox