tom@home.htb:~$

Blog o HTB

27 October 2020

Gobuster

Úvod a kontext

gobuster je na tomhle blogu prakticky synonymem pro rychlou webovou content discovery. Nejde ale o nástroj, který by “našel skryté URL” sám od sebe. Jeho hodnota stojí hlavně na tom, že umí systematicky ověřit rozumnou hypotézu:

Na Admireru dovedl od robots.txt k credentials.txt, na Nibbles od minimalistického webu ke skrytému nibbleblog a na Doctoru pomohl rozšířit útok z viditelného portálu na další obsah webu. Prakticky tedy nejde o “brute force webu”, ale o nástroj pro potvrzení a rozvinutí stop, které už někde vznikly.

K čemu je gobuster v praxi nejlepší

gobuster má největší hodnotu tehdy, když:

Naopak není moc užitečný tam, kde vše běží za jedním API endpointem, přes JavaScript router nebo za silnou autentizační vrstvou. Tam je často důležitější číst aplikaci samotnou než slepě zkoušet slovník.

Nejčastější scénáře využití v tomto projektu

Cílená enumerace podadresáře, ne celého webu

Na Admireru nepadla hodnota gobusteru z ničeho. První stopa přišla z robots.txt, který odkazoval na /admin-dir. Až teprve na tomto konkrétním místě dávalo smysl spustit cílenou enumeraci:

gobuster dir -w /usr/share/seclists/Discovery/Web-Content/raft-small-directories-lowercase.txt -t 40 -x php,txt,log,xml -u http://10.10.10.187/admin-dir/

Výsledek nebyl “další adresář”. Byl to přímo soubor credentials.txt, který posunul útok z webu k FTP, WordPressu a nakonec k SSH. To je důležitá lekce: gobuster má největší návratnost tam, kde už existuje konkrétní důvod prozkoumat úzký prostor.

Rozšíření malého webu o skrytý produkt nebo aplikaci

Na Nibbles hlavní web skoro nic neříkal. Právě tam má content discovery smysl, protože drobný veřejný web bývá často jen rozcestník k vlastní aplikaci. Výsledkem byl skrytý nibbleblog, který pak rozhodl celý foothold.

V tomhle případě je důležité ještě něco jiného: slovník nevznikl jen ze standardního seznamu, ale i z textu samotného webu. CeWL vytvořil krátký, kontextový wordlist a gobuster ho pak využil.

cewl -v --with-numbers http://$IP > /tmp/$IP-dict.txt
gobuster dir -u http://$IP/ -w /tmp/$IP-dict.txt -t 40 -x php

Tahle kombinace je praktická hlavně tehdy, když je aplikace malá, doménově specifická a standardní slovníky by byly zbytečně hlučné.

Doplňková enumerace po prvním základním průzkumu

Na Doctoru, Cache nebo Blunderu dává gobuster smysl ve chvíli, kdy už základní webový průzkum proběhl, ale pořád chybí:

gobuster v takové chvíli funguje dobře právě proto, že je rychlý a jednoduchý. Umí rychle projít sadu realistických názvů a doplnit to, co nevydal hlavní web, robots.txt ani homepage.

Co v gobusteru rozhoduje víc než samotný příkaz

Wordlist

Nejdůležitější není počet vláken, ale kvalita slovníku. Na blogu se opakují dvě použitelné strategie:

Čím menší a přesnější prostor prohledáváte, tím větší šanci máte najít něco hodnotného bez zbytečného šumu.

Správné přípony

Na PHP webech se opakovaně objevují přepínače jako:

-x php,txt,log,xml,html

To je prakticky důležité proto, že mnoho zajímavých souborů není adresář, ale:

Bez přípon by některé z těchto nálezů vůbec nevyšly.

Správný scope

Mechanická enumerace celé domény bývá často horší než cílený scan konkrétního místa. Admirer je dobrý příklad: důležité nebylo “prohledat web”, ale ověřit /admin-dir/. Stejně tak u jiných hostů dává větší smysl:

než bezmyšlenkovitě pouštět stejný slovník nad každým webem.

Kdy gobuster nepomůže

Je dobré explicitně říct, kdy už je lepší sáhnout po jiné metodě.

gobuster často nepomůže, pokud:

V takové situaci dává větší smysl číst aplikaci, procházet frontend, zkoumat requesty nebo využít jiné techniky než klasické content discovery.

Nejčastější chyby při použití

Na Admireru našel credentials.txt, ale skutečný dopad vznikl až po ověření reuse hesel. Na Nibbles našel nibbleblog, ale shell vznikl až z admin loginu a upload exploitu.

Související články v projektu

Co si odnést do praxe

Další Související Články V Projektu

HTB Stroje

Techniky

Nástroje

tags: nastroje - web - enumeration - discovery