Minulý týden jsem měl možnost vystoupit na HackerFestu v Praze. Přednášel jsem s Wiliamem Ischanoe na téma BadUSB útoků (oficiální název přednášky „Plug and Pray“). Myslím si, že nám to spolu „hrálo“, vzájemně jsme se doplňovali a přednáška měla spád (avšak jsou to jen mé pocity, ještě musím počkat na zpětnou vazbu od publika).
Jelikož se nám do 45 minut nepodařilo vtěsnat vše, rád bych v tomto článku doplnil, co jsme s Wiliamem na pódiu nakousli.
Co zaznělo na přednášce
Vycházel jsem z článků, které jsem již na blogu psal: „Jak za pár sekund hacknout počítač aneb útok s Bash Bunny a Packet Squirrel“ a „Hračky na hackování: Hak5 Bash Bunny“. Myšlenky jsem rozšířil a vyladil. Natočil jsem názorná videa – snad se vám líbila. S podobnou (jen kratší) přednáškou bych se chtěl ukázat 13. 10. 2018 na hradeckém Barcampu. Budu rád, když dáte hlas mojí přednášce a přijdete se podívat. Vstupné je zdarma a během dne uslyšíte spoustu dalších zajímavých témat z různých oborů.
Rychlá rekapitulace obsahu naší přednášky s Williamem:
- Teorie: Tip na dárky pro obchodní partnery, rychlá teorie ke GoodUSB (resp. BadUSB), co umí Bash Bunny.
- Demo 1: Co se stane, když si v coworkingu dojdete pro vodu a nezamknete si své PC.
- Demo 2: Když vám USB flash sama zazálohuje důležitá data.
- Demo 3: Hackování ve filmu vs. hackování v realitě.
- Teorie: BashBunny není jediný a co umí Raspberry Pi Zero W navíc.
- Demo 4: Když vám v práci admin blokuje Facebook.
- Demo 5: USB Flash, co má více tváří (obsahu).
- Demo 6: Unikátní řešení problémů s nedůvěryhodnými certifikáty.
- Závěr: USB gadgets jsou jako ToyStory – když vy spíte, oni ožívají.
Co se do přednášky nevešlo
A co se do přednášky nevešlo? Ačkoliv je HackerFest hlavně o útocích, chtěl jsem chvíli věnovat i obraně před těmito útoky.
Metody obrany před USB útoky
Obezřetnost zmíním na prvním místě. Když přijmete, že USB nejsou jen ty „neškodné“ USB flash disky, a když víte, co vám hrozí, můžete se bránit. Jak?
- Ideálně USB nepoužívejte vůbec. Mějte PC bez USB, deaktivujte USB v BIOSu/UEFI nebo USB porty fyzicky zablokujte (např. „USB port lock“). Je mi jasné, že pro spoustu lidí to bude extrémně restriktivní řešení.
- USB limitujte, pokud je úplné odstranění nereálné. Málokdo zapojuje do USB neomezené množství zařízení. Takže je nejlepší vše zakázat a „whitelistovat“ (povolovat) pouze zařízení, která používáme. Ve Windows využijete „Device installations restrictions“ a v Linuxu „Kernel settings“. Obdobnou funkcionalitu často nabízí i antiviry (např. modul „device control“ v ESET antiviru).
- Zablokujte neznámé USB klávesnice. To v případě, že máte málo času a nechcete to příliš ladit, jak popisuji výše. Když zabráníte útočníkovi připojit se do vašeho systému jako klávesnice, pak většina BadUSB útoků nebude nefungovat. Chránit se můžete například pomocí bezplatné aplikace G DATA USB Keyboard Guard. Aplikace funguje následovně:
- Zapojíte do PC novou USB klávesnici, program vás na to upozorní a vyžaduje potvrzení, že si klávesnici přejete povolit.
- Program vás vyzve k přepsání náhodného 4číselného kódu. Kód můžete zadat jen pomocí jiné, již připojené klávesnice (např. klávesnice notebooku), nebo myši. Z jakého důvodu? Pokud by stačilo jen zmáčknout tlačítko „allow keyboard“, BashBanny by se mohl vydávat za myš a sám si tlačítko odkliknout (i když to zatím neumí).
- Při příštím zapojení klávesnice do PC bude již klávesnice automaticky povolena.
- Jelikož „1 obrázek vydá za tisíc slov“ (a video ještě více), přichystal jsem ukázku níže. ☟
- Nepřipojujte cizí zařízení. Pokud nechcete nic instalovat ani nastavovat, tak do PC alespoň nepřipojujte cizí zařízení. 😊
Prolomení obrany: Jak obejít device control
Holt už to tak bývá. Jakmile existuje obrana, protistrana začne vymýšlet, jak ji prolomit. V dalším videu vám ukáži, jak obejít „device control“ antiviru ESET, používáte-li whitelisting. Možnost jej prolomit není způsobena tím, že by to měl ESET špatně udělané. Stejným způsobem lze obejít i technologie ostatních výrobců.
Tyto technologie totiž rozpoznávají „whitelistovaná“ zařízení podle PID (product ID), VID (vendor ID) a sériového čísla. Když USB zapojíte, tyto údaje o sobě sdělí. Vtip je v tom, že mohou lhát a systém to nepozná. Takže váš Bash Bunny může systému tvrdit, že je vaše domácí flaska Kingston DataTraveler.
V případě obcházení whitelistingu už útočník potřebuje nějaké informace o tom, jak to na síti oběti chodí. Když zjistí, že jsou USB flash disky zakázány až na model XY (nebo flash disk pana majitele), jednoduše jej „napodobí“.
Více v tomto videu ☟
Co se odehrálo ve videu:
- Nejprve jsem nakonfiguroval ESET device control, aby povolil pouze moji flash: Kingston DataTraveler 2.0 se SN „001E4FB776D6BD21A75D002F“. Zbytek USB flash disků jsem nechal blokovat.
- Vysunul jsem Kingston flash a zapojil jsem Bash Bunnyho. ESET ho zablokoval.
- Podíval jsem se programem USBDeview, jak systém vidí připojená USB zařízení. Všimněte si, že se každá USB flash hlásila jinak.
- Vysunul jsem Bash Bunnyho, přepnul jsem jej na jiný payload (který jsem měl připravený) a vrátil jsem jej do NB.
- Nyní již Bash Bunny nebyl zablokován, ale povolen. Systém si myslí, že je v něm zapojen můj Kingston DataTraveler, což jsem si ověřil opětovným pohledem do USBDeview. 😊
Chcete si útok vyzkoušet se svým Bush Bunnym?
Čistě pomocí „payload.txt“ to provést nelze. Oficiálně totiž BB umožňuje nastavovat pouze PID, VID a SN (to ještě není ani v dokumentaci). Nevýhodou také je, že SN bude převedeno na velká písmena.
Neoficiálně však BB podporuje více voleb. Níže uvádím obrázek se seznamem parametrů, které kernel modul, jenž se používá pro emulaci USB zařízení, podporuje. Pro obejití ESET device control jsem potřeboval následující parametry: „iManufacturer, iProduct, iSerialNumber, idVendor, idProduct“. Ty jsem si nastavil rozšířením skriptu „/usr/local/bunny/bin/ATTACKMODE“. 😊
Další materiály k USB útokům, které určitě stojí za přečtení
Narazil jsem na ně, když jsem chystal přednášku na HackerFest. Myslím, že jsou velmi užitečné.
- Skvělý výzkum „USB peripherals can turn against their users“ od skupiny Security Research Labs. Výsledky prezentovali na konferenci Black Hat 2014 („BadUSB – On Accessories that Turn Evil by Karsten Nohl + Jakob Lell”). Podařilo se jim přepsat firmware běžných USB flash disků a udělat z nich BadUSB. V podstatě někomu půjčíte svou flash, aby na ni nakopíroval nějaký dokument, a když vám ji vrací, tak umí i něco navíc (hacknout vaše PC). V přednášce dále navrhují vektory útoku: BadUSB pro záznam obrazovky, jak detekovat typ OS a poslat správný payload, zneužití USB zařízení k útoku z VM na hosta.
- Nebezpečí nemusí představovat jenom USB zařízení, ale i samotný USB kabel (viz USBharpoon) nebo i mobil/tablet s Kali Nethunter OS. Buďte obezřetní, když se někomu rozhodnete dobít mobil ze svého PC.
- Přemýšleli jste někdy, jestli funguje útok typu „rozházet USB flash disky po parkovišti“? Ano, funguje! Cca 48 % flash disků si uživatelé opravdu zapojí do svého PC (viz „Concerns about usb security are real: 48% of people do plug-in usb drives found in parking lots“ a „What is the best security awareness payload for the USB Rubber Ducky?“
- Přehled BadUSB typů útoku (a že jich je): „List of 29 Different Types of USB Attacks“.
Závěr
Pokud jste zavítali na HackerFest 2018, doufám, že se vám naše prezentace líbila stejně jako celý festival. Já osobně jsem si moc užil spoustu skvělých řečníků, zajímavých témat i bezva lidi. Budu rád, když se na HackerFestu budeme moci potkat i příští rok.
Napadl vás k tématu zlepšovák? Máte tip na další útok? Zajímá vás konkrétní téma? Napište mi na e-mail nebo do komentáře. Těším se na vaše postřehy. 😊