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

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

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 https://haveibeenpwned.com/ , 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í:

  • historii navštívených webových stránek (IE, FF, Chrome),
  • veškerou skypovou knoverzaci,
  • složku „Dokumenty“,
  • zapamatovaná hesla v prohlížečích (IE, FF, Chrome),
  • hesla ke všem Wifi, které NB zná,
  • cookies z prohlížečů (jelikož jsem líny, tak jenom FF),
  • heslo ke správci hesel KeePass (pokud byl na PC otevřený),
  • veškeré certifikáty importované ve Windows (pokud byly označené jako exportovatelné).

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.

Dodatek: 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.

  1. Dobrý den, článek mi přijde jako zajímavý, ale myslím si že Packet Squirrel je dost drahý, protože za těch 1200 co stojí tak si myslím že pokud daná osoba má aspoň trochu času, tak by to mohla udělat softwarově bez HW, pokud ale nemá čas se s tím patlat tak si myslím že by stačilo Raspberry Pi Zero, nebo Raspberry Pi Zero W. Je to jen můj názor,

    • Kdyby jen 1.200 Kč :). Když jsem jej objednal, tak jsme ještě zaplatili americké DPH, české DPH a clo. Takže celkově vyšel na dvojnásobek.
      Souhlasím s tím, že je to docela drahý HW, na to z čeho se skládá. HW specifikace je:
      – Atheros AR9331 SoC at 400 MHz MIPS
      -16 MB Onboard Flash
      – 64 MB DDR2 RAM.

      Navíc to není tak propracované jako BashBunny a ani komunita zatím moc nepřispěla …

      Určitě to jde udělat softwarově – na PS je to taky jen „software“ – OpenWRT Linux. To kouzlo PS však vidím v tom, že je to malá krabička pod kterou si málo kdo představí „plnohodnotný“ počítač a problémy jaké to dokáže napáchat. Navíc se dá díky velikosti jednoduše schovat (třeba za nějakou velkou tiskárnu). Stejně tak BB vypadá jako trochu větší USB flash disk :).

      Je to jak píšete: většinou máte čas, nebo peníze, málokdy však obojí :).

  2. Bylo by možné udělat článek o Wifi Pineapple ? :O popřípadě přednášku kterou natočit a zvěřejnit někde na Youtube ? Předem děkujil

    • Ahoj Tomáši, děkuji za tip. Wifi Pineapple zatím ve sbírce nemám :-(. S videem souhlasím. Taky chceme něco natočit – jen s tím zatím nemáme zkušenosti, takže to asi chvilku potrvá. Navíc si pohrávám s myšlenkou udělat sérii přednášek, která by bezpečnost probrala systematicky :).

  3. Zdravím vás Martine.

    Rád bych se zeptal, zda proti útoku na uzamčený počítač je reálná obrana pomocí doufaktorové autorizace například pomocí Yubikey?

    Vaše články sleduji již delší dobu a pomáhají mi přemýšlet nad bezpečnostními riziky a hrozícími úniky dat.

    Spravuji několik lékařských ordinací, a ač tyto opatření nejsou populární, stačilo párkrát použít váš článek a ukázat v praxi jak jednoduše je PC zranitelné a změnili názor 🙂

    Budu moc vděčný za vaši odpoveď, děkuji.

    • Dobrý den, Pavle,

      děkuji za pochvalu. Jsem rád, že jsou články užitečné a obzvlášť že i Vám se osvědčilo věci rovnou prakticky ukázat (místo pouhé teorie 🙂 ).

      Útok na zamčený PC využívá zranitelnosti (špatného návrhu) protokolu NTLM. Nejsem si jist jak Yubikey přesně funguje (neměl jsem ho v ruce – ale asi je čas jej pořídit – nejste první kdo se mi o něm zmiňuje). Pokud však funguje jako smart card a uživatel má povolený pouze smart card logon (systém by měl vygenerovat náhodné dlouhé uživatelské heslo). V takovém případě útok sice zachytí NTLM challenge, ale nebude ve strojových silách k tomu dopočítat původní heslo nebo NTLM hash. Díky patchům pro Windows (https://blogs.technet.microsoft.com/srd/2009/04/14/ms09-013-and-ms09-014-ntlm-credential-reflection-updates-for-http-clients/) by pak neměl být možný ani NTLM reflection útok. Takže v takovém případě by PC útoku odolal.

      Ovšem existuje minimálně další útok na zamčený PC o kterém vím (ani nemusím vědět ovšem 🙂 ). Ten je možná ještě zákeřnější (https://samy.pl/poisontap/). Jde totiž proti internetovému prohlížeči (pokud je v zamknutém PC spuštěn). Určitě si to doporučuji přečíst.

      • Pokud jsem to pochopil správně tak útok proti webovému prohlížeči by neměl útočníkovi umožnit zjistit heslo k systému ale umožňuje mu odposlouchávat veškerou nezabezpečenou komunikaci (HTTP).

        Ještě by mě zajímalo jak se chová útok na NTLM pokud se nejedná o počítač který je v doméně, jelikož spousta mých klientů z menších ordinací AD server nemá, nejsem příliš zběhlý v problematice útoku na NTLM a fukncí která se využívá při přihlašování.

        Děkuji

        • Jj, útok to není s cílem zjistit heslo, ale ovládnout počítač skrze prohlížeč, nebo ukrást session cookies. Stačí aby prohlížeč udělal jeden jediný http request pro webový obsah a útočník mu naservíruje stránku se statisící iframe vedoucími na předem zadané weby (vše „spoofované“ usb gadgetem) – cílem je:
          – ukrást session id,
          – na tyto weby/domény umístit lokální neexpirující nacachovaný backdoor,
          – možnost je případně dle stáří/identifikace prohlížeče rovnou udělat exploitaci.

          Celé je to poměrně složité na pochopení, četl jsem to asi třikrát :).

          Co se týče zachycení NTLM challenge, tak tam je jedno jestli je stanice v AD, nebo ne.

Napsat komentář