Site icon Martin Haller, Blog o ochraně a správě firemního IT

Jak za pár sekund hacknout počítač aneb útok s Bash Bunny a Packet Squirrel

Přednáška k hackovacím hračkám

Posledních pár týdnů jsme u nás měli práce až nad hlavu. A tak jsem si s dalším článkem „dal na čas“. Raději chci psát méně často, ale pokud možno co nejzajímavěji, než psát jen proto, abych splnil „kvótu“.

Za poslední 3 týdny jsem zvládl dokončit certifikaci ECSA (EC-Council Certified Security Analyst). Podařilo se mi to stihnout ještě ve verzi 9, takže jsem měl i praktickou zkoušku (cca před měsícem vydali verzi 10). Rád bych se tento rok pokusil ještě o OSCP (Offensive Security Certified Professional), ale vůbec netuším, kde na to vezmu čas. K tomu chci v létě prodlužovat CCNP.

Druhou velkou událostí bylo, že jsem konečně dokončil přednášku k hacking gadgets (psal jsem o nich v „Hračky na hackování: Hak5 Bash Bunny“ a „Hračky na hackování: Hak5 Packet Squirrel“). V minulém týdnu jsme přednášku uspořádali pro mé kolegy, kolegy z interních IT oddělení našich zákazníků a některé obchodní partnery. Ve čtvrtek jsem ji ještě přednesl pro IT v pražském IKEMu.

S vámi ostatními bych se chtěl alespoň formou tohoto článku podělit o její obsah – třeba si v ní také najdete něco zajímavého pro sebe. Přednášku jsem se snažil udělat hlavně praktickou – tzn. většinu času zabraly živé ukázky. Cílem bylo sdělit, že alespoň trochu „hackovat“ dokáže každý, kdo má povědomí o IT a volný čas. Proto se nesmí bezpečnost podceňovat.

Níže popsaný obsah je takový komprimát, neboť celá přednáška má 3 hodiny. Při prezentaci jsem se snažil uvádět různé detaily, zajímavosti, způsoby obrany a zodpovědět položené otázky. Videa, na která budu odkazovat, nejsou má. Říkal jsem si, proč natáčet něco, co už někdo jiný udělal. 😊

1. část: Startovní čára bezpečnosti

Vím, že je to trochu ohrané a následující doporučení všichni slyšeli již mnohokrát. I tak se ale občas setkáme s prostředím, kde to není úplně OK. Chtěl bych začít zvyšovat podvědomí o tom, jak lehké je prolomit síť, kde se neaktualizuje, nebo se používají slabá hesla.

Neaktualizovaný OS/SW/HW

Je pravda, že občas nějaká aktualizace něco rozbije. Kdyby člověk neaktualizoval, nestalo by se to. 😊 Na druhou stranu, když neaktualizujete, vystavujete síť mnohem většímu výpadku. Pokud se sítí prožene cryptovirus, zanechá za sebou jen „spálenou zem“ (znepřístupněná data na všech stanicích a serverech) a výpadek je rozhodně delší než jen pár hodin.

Ukázkový příklad se stal ve společnosti Maersk (IT ‚heroes‘ saved Maersk from NotPetya). Během 10 dní museli přeinstalovat 45.000 stanic a 4.500 serverů. Škodu odhadují na 5-6 miliard korun.

Na přednášce jsem ukázal, jak jednoduché je zneužít zranitelnost v SMB protokolu popsanou v MS17-010 a zneužitelnou exploitem EtternalBlue. Skrze Kali linux a Metasploit jsem před ostatními napadl nezáplatovaný PC s Windows 7 – založil jsem v něm uživatele, stáhl dokumenty, udělal screenshot, nainstaloval keylogger a dumpnul hashe uživatelských hesel.

Slabá hesla

Vzal jsem dumpnuté NTLM hashe z předchozího útoku a spustil na nich bruteforce útok skrze hashcat. Teoreticky jsme prošli, jak rychle se dají tyto hashe lámat. Nvidia GTX1080 udělá 41 miliard pokusů za 1 sekundu. To znamená, že při počtu znaků 62 (a-Z0-9) a délce hesla 7 znaků existuje 3.521 miliard (62^7) kombinací. Pokud každou sekundu zkusím 41 miliard kombinací, tak nejdéle za 85 sekund bude sedmiznakové heslo prolomeno! Osmiznakové heslo prolomím do 1,5 hodiny a devítiznakové heslo do 4 dnů. Toto teoretické východisko obratem potvrdila praktická ukázka. 😊

Pokud uživatel použije silné heslo, ještě to automaticky neznamená, že je vše v pořádku. To jsem následně demonstroval s využitím uniklých databází služeb jako Linkedin, Dropbox, Zomato, Badoo (které se mi podařilo také sehnat 😊). Lidé často používají stejné heslo na více služeb, nebo má heslo nějaký vzor (například „Maminka21“). Útočník zkouší různé varianty hesla (např. „Maminka00“ až „Maminka99“). Zda vaše heslo taky někde uteklo, zjistíte na webu Have I Been Pwned? , o kterém jsem se zmiňoval už v článku Správa hesel.

2. část: Bash Bunny

Po bezpečnostním minimu (aktualizace a hesla) jsem pokračoval představením „hračky“ Bash Bunny (viz Hračky na hackování: Hak5 Bash Bunny). Veškeré ukázky útoku jsem prováděl proti plně aktualizovanému NB s Windows 10 Pro a aktuálním ESET Endpoint Antivirem ve výchozí konfiguraci.

Vsuvka: antivirus jsem obešel na míru zkompilovanými programy a znalostí prostředí – není to o tom, že by byl ESET špatný – jen je výchozí konfigurace poměrně „volná“, aby nezpůsobovala falešné detekce/nefunkčnost aplikací.

Backdoor

První ukázkou byl útok na NB nechaný bez dozoru (uživatel si odskočil zavolat do vedlejší místnosti a nezamknul si NB). Do NB jsem zasunul Bash Bunny a za 17 sekund jsem jej zase vypojil. Takto krátká doba stačila, abych do NB zanesl backdoor, který se připojuje na útočníkův server a automaticky se spustí i po restartu NB. Útok je postaven na payloadu „Windows Persistent Reverse Shell for Bash Bunny“.

Ukradení dat z počítače

Další pokus byl opět oproti nezamčenému NB nechanému bez dozoru. Tentokrát bylo třeba 35 sekund, ale výsledkem nebyl backdoor v NB, nýbrž ukradená data z NB. Útok jsem postavil na payloadu „Password Grabber“, který jsem rozšířil o nástroje MZCookiesView, SkypeLogView, BrowsingHistoryView, KeeThief a nějaké powershellové příkazy.  Z napadeného NB jsem si tak za 35 sekund odnesl následující:

To vše jsem vytáhl, přestože přihlášený uživatel na NB nebyl administrátorem. Pokud by administrátorem byl, odnesl bych si i hashe hesel ostatních uživatelů a hesla uložená ve správci pověření Windows.

Zajímavostí může být, že během útoku se nemusíte NB ani dotknout, takže po vás nezůstanou otisky prstů. BB (Bash Bunny)  může také počítač během útoku „umlčet“ tím, že řekne NB, že je síťovou kartou a svede na sebe veškery provoz.

Útok na zamčený počítač

Obrana proti předchozím dvěma útokům je zamykat si NB, jakmile se od něj vzdalujete. Bohužel ale i na zamčený NB se dá zaútočit. Když se BB připojí k NB jako síťová karta, je schopen zachytit NTLMv2 autentizaci a z ní se dá následně zjistit původní heslo. BB obsahuje payload „QuickCreds“, který se o to postará.

Mně se však líbil útok z projektu P4wnP1, kde to dotáhli ještě o krok dál. Jakmile zařízení zachytí NTLMv2 autentizaci, rovnou se pokusí uhodnout i heslo a následně jej do systému zadat. Podívejte se na ukázku níže. Je to vážně efektní, jak z nějakého sci-fi filmu. 😊

Já jsem si tento útok portoval do BB – bylo třeba zkompilovat ručně JtR (John the Ripper) a dopsat skript. BB je pak schopno se svým CPU zkoušet hesla rychlostí 200.000 hesel za sekundu. Takže s „rockyou“ slovníkem otestujete 14 milionů hesel do 2 minut.

Zajímavostí je, že proti tomuto útoku vás neochrání ani zamykání účtů po X neplatných pokusech.

3. část: Packet Squirrel

Poslední část přednášky jsem věnoval hračce Packet Squirrel (viz „Hračky na hackování: Hak5 Packet Squirrel“) a útokům MiTM.

Sniffing

Packet Squirrel obsahuje v základu payload – „sniffer“, který zapisuje veškerý datový provoz na připojenou USB flash. Zapojil jsem PS (Packet Squirrel) mezi NB a switch a ukázal jsem, jak ze síťového provozu vytáhnout hesla k FTP, telnetu, webu i IMAPu.

Při tomto útoku není PS v síti detekovatelný. Pouze pasivně sedí na drátech (nemá IP adresu a ani interface do sítě) a zapisuje vše, co přes něj proteče. Útok je tedy proveditelný při fyzickém přístupu k prostředí. Např. ráno PS zapojíte do sítě a večer si jej vyzvednete.

Data tampering a hack skrze prohlížeč

Když má útočník strategickou pozici v rámci sítě, je škoda omezit se pouze na odposlech. PS může do dat i zasahovat. Další ukázkou byla tedy injekce škodlivého kódu do síťového provozu a kompromitace PC skrze starý děravý Firefox. Vypadá to tak, že uživatel brouzdá na legitimních webových stránkách – útočník po cestě data upraví a vloží do nich škodlivý kód, který má za následek ovládnutí prohlížeče (Beef) nebo rovnou celého PC (exploit firefox_smil_uaf).

Chtěl jsem ukázat, že brouzdání po internetu je poměrně nebezpečná záležitost. Je nutné udržovat aktuální prohlížeč, nevypínat UAC a nebrouzdat z privilegovaných stanic. 😊

Zajímavostí u tohoto útoku je také fakt, že vás před ním neochrání NIPS (network intrusion prevention systém), protože k injekci škodlivého kódu dojde až těsně předtím, než se dostanou k PC – to znamená, že když jdou data přes router/switch, jsou ještě v pořádku. 😊

SSLStriping

Výše uvedený útok „nelze“ udělat, když je komunikace přes HTTPS (šifrována). Avšak útočníkovi stačí, aby oběť navštívila jediný web, který bude přes HTTP, aby mohl svůj útok zahájit. Navíc řada webů má sice HTTPS verzi, avšak nemá nastavené HSTS. Další ukázkou tedy byl útok na přesměrování uživatele na nešifrovanou verzi webu místo té šifrované, aby mohl útočník provést injekci kódu jako v ukázce výše.

RDP MITM

Jako pomyslnou třešničku na dortu jsem si nechal poslední ukázku. Spousta lidí si pro RDP nechává na serverech self-signed certifikáty (také to ještě nemáme stoprocentní). Když se pak připojují přes RDP na server, zobrazuje se jim varovná hláška o nedůvěryhodném certifikátu (resp. identitu vzdáleného serveru se nepodařilo ověřit). A to je místo, kde může dojít k problému. Útočník je schopen se vmísit do vašeho spojení, aniž byste cokoliv poznali. Získá tím vaše přihlašovací údaje (včetně plaintext hesla).

Zajímavostí je, že vás proti tomuto útoku neuchrání ani některé 2FA.

Závěr

Doufám, že přednáška se zúčastněným líbila a vám, čtenářům, alespoň její shrnutí něco zajímavého přineslo. Jejím cílem bylo ukázat že něco „hacknout“ není zase tak těžké a je důležité bezpečnost nepodceňovat.  Za jakoukoliv zpětnou vazbu budu rád (např. co zlepšit, jaké téma by vás zajímalo). Přednášení/školení bych se chtěl v budoucnu věnovat více.

Update 7.5.2018: Nově jsem napsal článek o tom, jaké restrikce a monitorovací metody používáme u nás ve společnosti: „IT bezpečnost: životní cyklus“.

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.

Exit mobile version