Hračky na hackování: Hak5 Bash Bunny

8
Hračky na hackování: Hak5 Bash Bunny

Před Vánoci jsem pro kolegy z firmy udělal malé školení o bezpečnosti a hackování. Cílem bylo jim zdůvodnit, proč máme v sítích nasazené určité (občas nepopulární) restrikce a zároveň ukázat, na kterých místech je třeba ještě zapracovat.

S kolegy i zákazníky mluvíme o bezpečnosti často. Dobré je, že všichni chápou, že je potřeba dělat věci pořádně a dbát na bezpečnost. Na druhou stranu mám dojem, že si myslí, že jsou to všechno spíš teoretické věci a prakticky není útok jednoduché udělat … Rozhodl jsem se proto udělat školení pouze praktické – ukázal jsem jim útoky jak proti laboratornímu prostředí, tak i proti našemu produkčnímu prostředí… Myslím, že to zabralo 😊.

Abychom to měli „zábavnější“, objednal jsem si na pomoc pár hraček (Bash Bunny a Packet Squirrel od Hak5). Jelikož mi obě zařízení přijdou bezvadná pro prezentaci bezpečnostních rizik, chtěl bych se s vámi podělit o své zkušenosti. Asi netradičně začnu tím, k čemu se hračky dají použít, protože jestli jste se s podobným zařízením ještě nesetkali, tak vás z toho nejspíš zamrazí. Pojďme tedy začít s tím, co se dá dělat se zařízením Bash Bunny.

Ještě, než se rozepíši. Rád bych upřesnil, že není mým cílem někoho nabádat, aby s těmito zařízeními páchal trestnou činnost, nebo někomu ubližoval. Zařízení prezentuji kvůli osvětě a sám je používám pro demonstraci a penetrační testování. Někdo může namítnout, že tyto informace by se měly udržovat pouze v odborných kruzích. To je podle mě strkání hlavy do písku a navíc už je na to pozdě – stačí si zadat do vyhledávání na Youtube slovo „hacking“.

Co se s tím dá dělat

Pokud jste hodný admin, tak to použijete pro automatizaci věcí, které vás nebaví. Třeba když musíte pravidelně psát do každého PC nějakou sadu příkazů a nelze to udělat jiným způsobem – např. PC nejsou na síti. V takovém případě si všechny příkazy napíšete do texťáku, ten nahrajete a nastavíte do Bash Bunny. Nyní, když Bash Bunny připojíte do nějakého zařízení, bude se Bash Bunny tvářit jako klávesnice a bude do PC posílat to, co je obsahem texťáku (jako kdybyste si k tomu PC připojili skutečnou klávesnici a psali sami ručně – tzn. veškeré dění je na PC vidět). Bash Bunny napíše vše, co si přejete, bez chyb a mnohonásobně rychleji, než byste to zvládli sami.

Pokud hodný admin nejste, tak použijete Bash Bunny např. k připojování nezamčených PC k vašemu Metaspoloit frameworku, nebo instalaci backdoorů. Prostě jen připojíte Bash Bunny do PC a za 15 sekund je PC pod vaší kontrolou (videa jsou vždy pouze ilustrační – obdobné útoky co se mi podařilo na Youtube dohledat).

Nebo jej můžete použít k získávání hesel z PC. Bash Bunny připojíte do PC a ten se připojí jako USB disk a klávesnice. Skrze klávesnici napíše příkaz pro spuštění programu umístěného na svém USB disku. Tento program pak z PC vytáhne hesla (ze správce pověření Windows, ke všem uloženým Wifi sítím, hesla a historii z webových prohlížečů, hesla a databáze správce hesel KeePass [pokud je spuštěn]) a vše uloží na USB disk. Do 40 sekund je hotovo, Bash Bunny můžete vysunout z PC a odejít. (postaveno na programu Lazagne a payloadu „library/credentials/PasswordGrabber“)

Pokud je obrazovka PC zamknutá, neznamená to, že se z PC nedá nic zjistit. Od toho má Bash Bunny možnost emulace sítové karty. Při zapojení do PC se Bash Bunny tváří jako 2 Gbitová karta a jelikož to bude pravděpodobně nejrychlejší rozhraní, stane se výchozím síťovým rozhraním. Přes DHCP přidělí PC IP adresu a PC začne přes tuto síťovku komunikovat. Samozřejmě je to pouze emulace síťová karty – tzn. na internet ani síť se PC nedostane. Bash Bunny však na všechny pokusy PC o připojení k jiným zařízením bude odpovídat a simulovat komunikaci – na základě toho pak bude na interní úložiště ukládat zachycená hesla, cookies nebo „authentication challenges“ (založeno na útoku a payloadu „library/credentials/QuickCreds/“ ).

Pikantní na všem je, že útoky fungují proti plně aktualizovaným PC se zapnutou antivirovou ochranou a administrátorská oprávnění nejsou nutnou podmínkou (může se lišit antivirus od antiviru a restriktivnosti nastavení PC – pokud máte kompletně zablokované USB porty, je jasné, že to fungovat nebude 😉).

Co je Bash Bunny

Jedná se o „PC on a stick“ – „mikro počítač“ (Quad-core ARM Cortex A7, 512 MB DDR3, 8 GB storage), který vypadá jako větší USB flash disk a obsahuje Debian Linux s úpravami od Hak5.

Je to zařízení vhodné pro provádění útoků skrze USB (někdy nazývané BadUSB útoky). Je to postrach uživatelů, co si nezamykají obrazovku, když odchází od svého PC. Bash Bunny se umí při připojení do PC tvářit jako klávesnice, usb disk a síťová karta, nebo libovolná kombinace těchto zařízení (na PC není třeba instalovat žádné ovladače).

Vkládám i video od výrobce, kde zařízení představuje a ukazuje práci s ním. Pokud máte 20 minut čas, dá vám to slušný obrázek.

Bash Bunny má na horní straně jeden třípolohový přepínač, přes který se volí, co se stane při připojení do PC. Jedna poloha je „arming mode“, při které se BashBunny připojí pouze jako USB disk a je možné jej rekonfigurovat. Další dvě polohy jsou pak konfigurovatelné –nastavíte si sami, jaký útok se při nich má provést.

Bash Bunny obsahuje i jednu RGB diodu, pomocí které vám signalizuje, v jaké fázi útoku se nachází (např. bootování, fáze 1, fáze 2, vše hotovo).

Postřehy z praxe

Bohužel jsem na hraní s Bash Bunny ještě neměl tolik času, kolik bych si představoval. Avšak píši, na co jsem přišel:

  • Útoky pro Bash Bunny si můžete napsat sami anebo zvolíte z již existujících. Výrobce Bash Bunny spravuje následující repositář https://github.com/hak5/bashbunny-payloads/tree/master/payloads/library . Ne všechny útoky v oficiálním repositáři jsou bezchybné – občas je třeba i něco fixnout.
  • Aktualizace zařízení je velice jednoduchá. Stačí Bash Bunny připojit do PC v Arming módu. Nahrát na něj updater a spustit. Ten se postará o nahrání nejnovějšího firmware a také stažení útoků z repositoráře (viz bod výše).
  • Zařízení bootuje cca 9 sekund a pak ihned začíná provádět vybraný útok, tzn. u počítače vám stačí opravdu jen chvilka.
  • Nevýhodou, na kterou jsem narazil (ale ta se týká všech emulátorů klávesnice), je problém s rozložením klávesnice. U každého útoku, kdy Bash Bunny emuluje klávesnici, je třeba nastavit, jaké rozložení klávesnice má emulovat (např. anglickou, českou, slovenskou …). Rozložení nastavené v Bash Bunny se musí shodovat s tím, jaké je nastavené na cílovém PC. Pokud na Bash Banny nastavíte anglické rozložení klávesnice, ale v PC bude aktuálně nastaveno české, tak bude Bash Bunny psát „z“ místo „y“ a „(“ místo „{“ atd. Řešením je buď před útokem na PC přepnout rozložení klávesnice (to už ale není tak sexy, protože se musíte PC „dotknout“), nebo mít na Bash Bunny pod polohou (přepínače) 1 připraven útok pro CZ rozložení klávesnice a pod polohou 2 ten stejný útok, ale s EN rozložením klávesnice.

Kde jej pořídit

Kdybyste si chtěli stejné hračky pořídit, tak jsem objednával přímo z Ameriky. Hračky jsem měl na stole za 9 dní od objednání, takže rychlovka. Na druhou stranu se to docela prodražilo. Obě zařízení stojí dohromady 160$. Bohužel jsem zaplatil dalších 165$, abych je dostal do ČR (57$ poštovné, 33$ americké DPH [podle mě neoprávněně] a 75$ za clo a zastupování v celním řízení). Lepší by bylo asi objednat přímo od někoho z EU.

Jako alternativa k Bash Bunny se dá pořídit zařízení USB Armory, které se dá objednat přímo z EU a vyjde i s poštovným cca na 152 Eur (zatím jsem jej však v ruce neměl).

Mé plány

Jakmile to čas dovolí, rád bych si sestavil vlastní knihovnu útoků. Bash Bunny bych pak chtěl používat u zákazníků pro demonstraci, jak křehká je bezpečnost. Protože si myslím, že je nízké povědomí o rizicích spojených s USB zařízeními. Většina lidí, co znám, si myslím, že USB je jenom na připojování USB flash disků a nehrozí žádné nebezpečí.

Takto bych do jejich PC zasunul jenom Bash Bunny, který vypadá jako USB disk a za 30 sekund jej opět odpojil. Následně bych jim ukázal, že za těch 30 sekund jsem získal jejich hesla/data/nebo vzdálený přístup na jejich počítač (keylogger, screenshoty obrazovky, přístup k datům, přístup k webkameře).

Myslím, že nejvíce „sexy“ na tom je, že po celou dobu se člověk nemusí nijak dotknout cílového PC.

Závěr

V příštím článku (tady je Hračky na hackování: Hak5 Packet Squirrel) popíšu druhou z hraček, které jsem k nám do firmy pořídil, a to Packet Squirrel. Jestli chcete, nechte mi na sebe níže e-mail a já vám napíšu hned, jak článek vyjde.

Jak se vám Bash Bunny líbí? Máte nějaké podobné hračky? Demonstrujete nějak zákazníkům, jak moc je bezpečnost křehká?

(Napsal jsem pokračování tohoto článku Jak za pár sekund hacknout počítač aneb útok s Bash Bunny a Packet Squirrel)

Líbí se vám témata, o kterých píši?

Abyste nemuseli kontrolovat, jestli už vyšel nový článek, rád vám ho ihned po zveřejnění pošlu do e-mailu. Každý kontakt, který mi poskytnete, si nechám vždy jen pro sebe.

  1. Skvělý článek. Jak vidíte řešení těchto situací – zapojení neoprávněného USB v rámci firemní sítě? Řešit plošnou blokací USB portů?

    • Romane, děkuji za pochvalu. Ochrana není tak jednoduchá – zablokovat kompletně USB není vždy možné (PC mají USB klávesnice i myši běžně a zákazníci chtějí běžně používat USB disky). Dobré by však bylo:
      – Naučit všechny zamykat si PC, pokud od něho odchází, nebo to technicky vynutit – např. automatické zamykání obrazovky po 15 minutách neaktivity.
      – Myslím, že např. Kaspersky má ochranu proti „falešný klávesnicím“ takovou, že po zapojení klávesnice je třeba opsat číselný kód z obrazovky – Bash Bunny neví, co je na obrazovce zobrazené (nemá obrazové informace).
      – Ochrana proti emulaci síťové karty, pak přes blokování tohoto druhu USB periférii (u nás nejsou alespoň běžné).
      Co myslíte?

      • Co se týče windowsu, tak by se dalo skrze GPO vynutit zakázání instalace nových ovladačů. Takže teoreticky lze nainstalovat zařízení, co chceme pravidelně používat a následně zablokovat ostatní. A v případě, že by chtěl někdo vyměnit nebo přidat další, musel by se kontaktovat administrátor aby povolil zařízení nové.

        Nebo použít hardware zámek, to myslím nabízí například Kensington. Ten zamkne fyzicky na klíč USB vstup klidně i s kabelem. To mi přijdou jako celkem neprůstřelné metody, pokud selže uživatel daného počítače.

  2. Ahoj, pěkné čtení, u nás ve firmě používáme plošnou blokaci na cizí USB zařízení pluginem do antiviru (konkrétně McAfee DLP). Také zamykáme stanice po 15min. Také šifrujeme disky u notebooků a heslujeme bootmenu key a vstup do BIOSu. Jsem zvědav jak by naše stanice obstála proti takovému útoku, nasadil jsi mi brouka do hlavy 🙂

    P.S.: když přijde zákazník se svojí (cizí) USB Flash musí na IT a tam s ní „odborně“ manipulujeme.

    • Ahoj Tomáši,

      děkuji za pochvalu a Tvou zkušenost. Zabezpečení, jak jej popisuješ zní opravdu dobře. Je fajn, že to tak můžete zabezpečit a uživatelé se nebouří (nemohou nic připojovat a neustále musí zadávat heslo do počítače).

      Koukal jsem na popis McAfee DLP. Vypadá to, že je to whitelisting/blacklisting na základě VID/PID (https://kc.mcafee.com/corporate/index?page=content&id=KB86007). Zrovna tyto hodnoty se dají u Bash Bunny měnit (jiní na fóru řeší i přepisování názvu produktu a SN) (viz https://www.hak5.org/gear/bash-bunny/docs). Tzn. dokážeš Bash Bunny donutit aby se maskoval jako zařízení, které ve firmě máte povolené a pak by jej nejspíše McAfee povolil. Samozřejmě by to od útočníka vyžadovalo ještě více úsilí a přípravy. Třeba by nakonec zvolil nějakou jinou cestu do sítě :).

Napsat komentář