tom@home.htb:~$

Blog o HTB

4 January 2020

Searchsploit

Úvod a kontext

searchsploit je v praxi nejužitečnější ve chvíli, kdy už existuje rozumná hypotéza o technologii nebo verzi služby a je potřeba rychle ověřit, jestli pro ni existuje veřejně známá a lokálně dostupná exploit reference. Není to “nástroj na hacknutí cíle”. Je to most mezi enumerací a rozhodnutím, jakou exploitační cestu má smysl dál ověřovat.

Na OpenAdminu ukáže odpovídající command injection pro OpenNetAdmin, na Nibbles pomůže vybrat správný exploit z více kandidátů a na Horizontallu dává smysl až po port-forwardu, protože teprve potom je interní Laravel skutečně dosažitelný. Právě to je praktická hodnota searchsploitu: neříká jen “něco existuje”, ale pomáhá rozhodnout, zda daný exploit odpovídá konkrétnímu povrchu, verzi a podmínkám.

Co tenhle nástroj v praxi řeší

Když už víte:

pak je searchsploit rychlý způsob, jak zjistit, zda už podobnou cestu někdo zpracoval v Exploit-DB.

Prakticky řeší hlavně tři situace:

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

Na OpenAdminu nejdřív whatweb identifikuje OpenNetAdmin. Teprve potom dává smysl ověřit, zda pro něj existuje známá RCE cesta:

searchsploit -w opennetadmin

Výsledek vrátí konkrétní command injection pro 18.1.1, což je přesně ten typ hypotézy, který stojí za další ověření. Důležitý není samotný počet výsledků. Důležité je, že enumerace a produktová identifikace už předem zúžily prostor na realistického kandidáta.

Je potřeba vybrat správný exploit z více možností

Na Nibbles searchsploit nevrátí jen jeden výsledek:

searchsploit nibbleblog

Vrací více položek, ale prakticky důležitá je otázka, která z nich odpovídá tomu, co už o aplikaci víte. Tady se ukáže, že upload exploit pro Nibbleblog 4.0.3 dává mnohem větší smysl než starší SQL injection reference.

To je přesně situace, kde searchsploit nepoužíváte jako “spustím první výsledek”, ale jako filtr kandidátů.

Exploit existuje, ale rozhodující je dostupnost a kontext

Na Horizontallu je důležitý jiný detail. searchsploit laravel má smysl až ve chvíli, kdy už je interní Laravel dostupný přes port-forward. Bez tohoto kroku by exploit sice existoval, ale nebylo by ho kam aplikovat.

searchsploit laravel
searchsploit -p 49424

Tady je dobře vidět, že searchsploit nepomáhá jen hledat “jestli existuje CVE”. Pomáhá ověřit, zda exploitační hypotéza sedí na reálné umístění služby v daném řetězci.

Staré služby a rychlé ověření historické hypotézy

Na Lame, Armageddonu nebo Beepusearchsploit ještě jinou roli. Když banner nebo produkt už silně naznačuje známý problém, searchsploit slouží jako rychlá lokální reference:

Právě tady se potkává s článkem Legacy infrastruktura, kde banner prakticky rozhodne exploit. Searchsploit sice není ten, kdo banner přečte správně, ale velmi rychle ověří, jaké realistické cesty pro takový banner existují.

Jak searchsploit používat prakticky

Nejužitečnější pracovní sled bývá:

1. Nejdřív identifikace, až potom hledání

Nejprve musí přijít:

Až potom má smysl:

searchsploit produkt-nebo-verze

2. Kandidáty číst, ne jen spouštět

Prakticky je často cennější podívat se na lokální kopii exploitu než ho hned spustit:

searchsploit -p 49424

Lokální reference rychle ukáže:

3. Rozhodnout, jestli exploit sedí na skutečný povrch

To je nejdůležitější praktická otázka. Na Horizontallu exploit dává smysl až po port-forwardu. Na Nibbles dává smysl až po zjištění správné aplikace a cesty k admin rozhraní. Na OpenAdminu zase až po potvrzení produktu ONA.

Co searchsploit neumí vyřešit za vás

Searchsploit sám nerozhodne:

Právě proto je nebezpečné používat ho mechanicky. Výstup typu:

produkt X - RCE

není důkaz zranitelnosti. Je to jen kandidát, který je potřeba technicky zasadit do kontextu.

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

Spuštění prvního nalezeného exploitu bez čtení podmínek

Na blogu je opakovaně vidět, že rozdíl mezi použitelným a nepoužitelným kandidátem leží v detailech:

Záměna reference za hotový exploit chain

Searchsploit typicky pomůže najít vstupní bod, ne celý řetězec. Na OpenAdminu například pomohl k prvnímu command kontextu, ale skutečný dopad pak vznikl až přes reuse databázového hesla a SSH pivot.

Ignorování výhod lokální kopie

Mnoho lidí používá searchsploit jen jako vyhledávač názvů. V praxi je ale velmi cenné, že exploit lze okamžitě otevřít, přečíst a upravit lokálně, bez přepínání do prohlížeče a bez slepého kopírování cizího payloadu.

Nejčastější praktické scénáře

Po identifikaci produktu chci rychle ověřit, zda existuje realistická veřejná cesta

To je OpenAdmin, Armageddon nebo Beep.

Mám více výsledků a potřebuji vybrat ten, který sedí na konkrétní kontext

To je Nibbles a částečně Lame.

Exploit existuje, ale je potřeba ho zasadit do řetězce s tunelem nebo lokální dostupností

To je Horizontall.

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 - exploits - enumeration - vulnerability-research