Často se mě lidé ptají, zda pouhé otevření nebezpečné webové stránky může mít dopad na jejich počítač, zda obyčejné kliknutí na odkaz může mít za následek infiltraci a ovládnutí jejich počítače. Moje odpověď zní „ano“. A v tomto článku Vám vysvětlím, jak je to možné a popíšu způsoby, jak se efektivně bránit. Pokusím se Vám jednoduše přiblížit průběh útoku na webový prohlížeč uživatele, a to bez velkých technických detailů. Pro demonstrační účely jsem si vytvořil virtuální laboratoř, kde cílem budou prohlížeče Microsoft Edge, Mozilla Firefox a Google Chrome běžící na operačním systému Microsoft Windows 10. Důležité je zdůraznit, že na cílovém počítači s MS Windows 10 měly všechny prohlížeče instalovány poslední aktualizace a systém obsahoval zapnutou antivirovou ochranu pomocí programu Windows Defender. Jiný antivirový strážce v systému instalován nebyl.
Jak takový útok probíhá?
Pro simulaci útoku na webový prohlížeč jsem využil framework BeEF – Browser Exploitation Framework. BeEF poskytuje knihovnu funkcí, díky kterým lze vzdáleně posílat příkazy do webového prohlížeče oběti, a to pomocí programovacího jazyku JavaScript. Server, na kterém je BeEF nainstalován se tváří jako obyčejný webový server, který poskytuje knihovny funkcí JavaScriptu. Vývojáři často využívají JavaScriptové knihovny třetích stran, aby si ušetřili práci s programováním. Použití knihovny třetích stran jim může poskytnout různé funkce, které zvýší atraktivnost jejich webu, například různé animační funkce. Málokdy však zkoumají obsah celé knihovny, kterou se rozhodnou používat. Právě proto je tento útok tak nebezpečný. Zde přichází na řadu kouzlo celého frameworku BeEF. Stačí vytvořit jakoukoliv webovou stránku a přidat do ní jeden řádek kódu, který bude mít jediný cíl – zajistit zpětné připojení na C2 server. C2 server neboli command & control, je počítač, který dokáže posílat příkazy počítačům k němu připojeným. Na následujícím diagramu lze ještě vidět průběh tohoto útoku.
Nyní předpokládejme, že máme C2 server vytvořený a úspěšně jsme na něm zprovoznili software BeEF. Také se nám podařilo vytvořit webové stránky a do nich naimportovat knihovnu obstarávající připojení k C2 serveru. Vše je připraveno a nyní je jen třeba přimět oběť otevřít tyto webové stránky. K tomuto účelu můžeme využít například techniky sociálního inženýrství. Rozhodně lze využít phishingové e-maily, podvodné smsky a další. Různými technikami sociálního inženýrství se zabýval tento článek.
Pro demonstrační účely jsem vytvořil velmi jednoduchou webovou stránku, která uživatele informuje o tom, že na tomto webu pro něj není nic k nalezení. Pokud by se však uživatel podíval na zdrojový kód, zjistil by, že do stránky je importována JavaScriptová knihovna s názvem jQuery.js . Oficiální jQuery knihovna nabízí vývojářům možnosti snadné manipulace s prvky webových stránek a tak činit jejich obsah pro uživatele atraktivní. Falešná knihovna s tímto názvem tak může pojmout méně podezření.
Poté co oběť otevře podvodné stránky a spojení s C2 server se úspěšně naváže, lze vidět připojené oběti v postranním panelu webového rozhraní frameworku BeEF. V kategorii Online Browsers, lze tedy vidět připojené oběti, jejich prohlížeč a IP adresu. Všechny IP adresy a doménová jména budu v tomto článku nechávat zakrytá.
Útočníkovi v tento moment stačí na to, aby vybral konkrétní oběť a spustil příkaz z knihovny frameworku. BeEF framework obsahuje skripty, díky nimž lze na počítači oběti vyvolat různá vyskakovací okna, pořídit snímek webkamery či sejmout obrazovku systému. Na následujícím obrázku je znázorněno, jak jednoduché je vybrání konkrétního příkazu a jeho spuštění.
Pro konkrétní demonstraci užití BeEF frameworku jsem si vybral případ vyvolání nějaké hlášky v uživatelově prohlížeči. Zvolil jsem si příslušný příkaz z knihovny příkazů, vyplnil text, který se má uživatelovi zobrazit a spustil.
V momentě, kdy jsem spustil útok tlačítkem Execute, tak se na cílovém počítači v prohlížeči Microsoft Edge objevilo následující okno.
PopUp okno v prohlížeči Microsoft Edge
Úspěch tohoto ukázkového útoku nám dokazuje, že je útočník schopen vzdáleně spouštět JavaScriptový kód na počítači oběti. Stejný postup jsem opakoval pro prohlížeče Mozilla Firefox a Google Chrome a dosáhl jsem stejného výsledku.
Pop Up okno v prohlížeči Mozilla Firefox
Pop Up okno v prohlížeči Google Chrome
Je pravděpodobné, že výše popsané útoky by nefungovaly v momentě, kdy by měl uživatel na svém počítači nainstalován kvalitní antivirový program nebo by byl ve firmě vhodně nakonfigurovaný webový aplikační firewall. Framework BeEF je v oblasti kyberbezpečnosti velmi známý nástroj, který slouží hlavně k demonstraci útoků na webové prohlížeče. Ale právě proto, že se jedná o nástroj s otevřeným zdrojovým kódem, lze si jej přizpůsobit a používat pro mnohem sofistikovanější útoky. Tímto článkem jsem chtěl dokázat, že i pouhé otevření webových stránek může mít výrazný negativní dopad.
Uživatelé se mohou vyvarovat těmto útokům dodržováním jednoduchých principů bezpečného surfování na internetu. Znamená to obezřetnost a vyvarování se se bezhlavému otevírání e-mailů či navštěvování neznámých stránek. Je velmi důležité pravidelně instalovat bezpečnostní aktualizace webového prohlížeče. Úplnou obranou vůči tomuto druhu útoku je pouze naprosté vypnutí podpory JavaScriptu v prohlížeči, což však může mít za následek nefunkčnost většiny webů. Existují také několik doplňků prohlížečů, které dokáží tento útok jednoduše identifikovat. Pro Google Chrome a Mozilla Firefox lze použít například No-Script Suite Lite. Ve firemním prostředí se doporučuje také nasazení webového aplikačního firewallu.