V tomto příkladu se podíváme na phishingovou kampaň, která se vydává za Netflix a využívá řízení oběti v reálném čase. Nejedná se o běžný statický HTML formulář, ale o plnohodnotnou phishingovou službu: uživatel prochází několika fázemi a operátor z ovládacího panelu rozhoduje, kam ho dále nasměrovat – k zadání přihlašovacího jména, údajů o kartě, SMS kódu, PIN kódu nebo k potvrzení v aplikaci.
Samostatně jsme tento mechanismus ověřili získáním přístupu a prozkoumáním ovládacího panelu této phishingové stránky.
V tomto článku nepopisujeme způsob získání přístupu k ovládacímu panelu, ale samotnou skutečnost jeho existence používáme jako potvrzení operačního modelu: útok byl řízen ručně nebo poloautomaticky prostřednictvím backendového rozhraní.
0. Návnada

První věc, kterou uživatel obdrží, je e-mail využívající standardní taktiku sociálního inženýrství, který ho vybízí k akci. Útočníci doufají, že upoutají pozornost uživatele tvrzením, že by mohlo dojít k pozastavení sledování jeho oblíbených televizních pořadů. Aby obešli e-mailové filtry a skryli konečnou phishingovou doménu, používají útočníci zkrácený odkaz prostřednictvím infrastruktury sociální sítě X: https://t.co/XXXXXXX
Na první pohled se jedná o běžný odkaz přes t.co, a proto vypadá méně podezřele jak pro uživatele, tak pro některé automatické filtry.
Po kliknutí se uživatel nedostane hned na hlavní phishingovou stránku. Nejprve je přesměrován na mezilehlý zdroj.
1. Veřejný S3 Bucket jako mezilehlý přesměrovávač
Odkaz vede na veřejný S3 Bucket: https://access-authority-2faXXXXX.s3.eu-north-1.amazonaws.com/index.html
Tato fáze plní roli filtru a přesměrovače.
index.html Obsahuje filtrování podle zemí a předem známých IP adres. To umožňuje nezobrazovat skutečný phishingový web výzkumníkům, automatickým skenerům, sandboxům a bezpečnostním systémům.
Po projití filtru se uživateli zobrazí jednoduché přesměrování v HTML:
<meta http-equiv="refresh" content="1;url=https://www.XXXXX.help/index.html">
Doména se maskuje jako služba pro řešení CAPTCHA. Jedná se o praktickou zástěrku: uživatel vidí technický název a může si myslet, že se jedná o mezikrokovou kontrolu prohlížeče, CAPTCHA nebo bezpečnostní ověření.

V praxi se jedná o phishingovou infrastrukturu.
Již v této fázi dochází k otiskování zařízení. Kód shromažďuje uživatelské události:
- mousemove
- touchmove
- keyup
- Backspace
- deviceorientation
Skript analyzuje nejen samotný výskyt událostí, ale i jejich parametry:
- rychlost pohybu;
- intervaly mezi událostmi;
- normalizované souřadnice;
- strmost změny směru;
- chování klávesnice;
- orientace zařízení;
- profil dotyku/myši.
Tyto údaje se používají k posouzení, zda je návštěvník skutečnou osobou.
Obfuskace a „šifrování“ telemetrie
Část telemetrických dat se před odesláním šifruje pomocí AES-CBC: crypto.subtle.encrypt({ name: 'AES-CBC', iv: ... }, key, data)
V kódu je implementována logika zabraňující ladění. Skript sestaví slovo debugger z číselného pole a volá jej pomocí new Function(). Pokud se provedení zpozdí, stránka odešle beaconový dotaz na /misc/index.php?r=<random> s parametrem bcl
Vypadá to jako pokus zjistit, zda uživatel otevřel DevTools nebo zda bylo provádění JavaScriptu zastaveno na breakpointu; backend může změnit chování, skrýt skutečný průběh a zobrazit chybu nebo přesměrovat uživatele na legitimní web Netflixu.
Po úspěšném překonání „captcha“ následuje přesměrování na main/prepare.php
2. První fáze: získání přihlašovacího jména a hesla

První skutečná fáze útoku – nejde o kartu ani o SMS. Nejprve se uživatel dostane na stránku, která napodobuje přihlášení do Netflixu.
V této fázi útočníci shromažďují e-mail a heslo.
Důležité: útok začíná kompromitací účtu a teprve poté přechází k platebním údajům.
Po odeslání formuláře metodou POST stránka přesměruje uživatele do další fáze – „ověření platební karty“.
Tím pádem i v případě, že další kroky související s platbou nebudou dokončeny, útočníci již získají cenný výsledek: přístup k účtu.
3. Druhá fáze: zadání údajů o kartě

Po zadání přihlašovacího jména a hesla je uživatel přesměrován na stránku ověření platby.
V této fázi scénář předstírá nutnost ověření karty spojené s Netflixem. Uživatel vidí rozhraní podobné legitimnímu platebnímu procesu a zadá platební údaje.
Cílem této fáze je získat:
- jméno držitele karty
- číslo karty
- datum platnosti
- CVV/CVC
Během celého procesu se neustále odesílají telemetrická data:

4. Třetí fáze: úvodní obrazovka a čekání na operátora

Po zadání údajů o kartě se uživatel dostane na stránku čekání. Právě tento HTML kód vidíme v analyzovaném artefaktu.
Stránka informuje:
K dokončení ověření karty je nutné provést další ověření
Na váš mobilní telefon obdržíte krátkou zprávu...
Vizuálně to vypadá jako běžné čekání na potvrzení od banky. Technicky se však nejedná pouze o „obrazovku čekání“, ale o bod, ve kterém je uživatel udržován v relaci, dokud backend nebo operátor nerozhodne, jaký další krok se má zobrazit.
5. Řízení v reálném čase přes WebSocket

Hlavním mechanismem řízení je WebSocket. Můžeme si všimnout otevřeného wss:// v dolní části požadavků. Stránka se připojí k WebSocketu a čeká na příkaz z backendu. V HTML je zakódována logika, díky níž může operátor přesměrovat uživatele na různé obrazovky:
| Kód | Cesta | Popis |
|---|---|---|
| 1 | ./app.php | Stránka s žádostí o potvrzení v bankovní aplikaci |
| 2 | ./payment.php | Opakovaná výzva k zadání údajů o kartě v případě chyby |
| 3 | ./sms.php | Stránka pro zadání kódu z SMS zprávy |
| 4 | ./pin.php | Stránka pro zadání PIN kódu z karty |
| 5 | https://netflix.com | Přesměrování na skutečný web Netflixu |
Karta, kterou uživatel zadá automaticky nebo v poloautomatickém režimu, se začne používat k platbám v různých obchodech. S největší pravděpodobností se jedná o obchodníky ovládané útočníky.
Právě zde se prvek v reálném čase stává obzvláště nebezpečným. Útočník může vidět, jaký typ potvrzení platební systém požaduje, a přizpůsobit phishingovou stránku konkrétnímu okamžiku útoku. Střídavě požaduje potvrzení v aplikaci, kód z SMS nebo PIN kód z karty.
6. Potvrzení přes administrační panel
Po prozkoumání fungování phishingového webu jsme se rozhodli hledat zranitelnosti tohoto panelu. Přitom jsme narazili na poměrně podivné „velikonoční vajíčka“ od tvůrce tohoto panelu.

Na základě protokolů lze konstatovat, že během 24 hodin se do administrátorského panelu přihlásili minimálně 4 různí administrátoři v intervalu 4–7 hodin.
Rovněž jsme objevili další otevřené porty na panelu 2082, 2095, 8880 a 1010, které nám umožnily odhalit skutečnou IP adresu, protože web podvodníků se nachází za CloudFlare.
Poskytovatelé internetových služeb byli informováni.
7. Indikátory kompromitace
Domény
*.solvecaptcha.help
8. Závěr
Tato kampaň ukazuje, jak moderní phishingové služby proměňují běžnou přihlašovací stránku v operaci řízenou v reálném čase.
Útočníci nejprve získají přihlašovací jméno a heslo, poté platební údaje a následně uživatele zadrží na obrazovce načítání. V tomto okamžiku operátor z backendového/administračního panelu rozhoduje, jaký další krok se má zobrazit: SMS kód, PIN kód, potvrzení v aplikaci nebo konečné přesměrování na skutečný Netflix.
Hlavním technickým znakem tohoto schématu je řízení pomocí WebSocketu. Právě to činí útok interaktivním a umožňuje operátorům přizpůsobit scénář konkrétní oběti a konkrétnímu bankovnímu postupu.
Už se nejedná o „phishingovou stránku“. Jedná se o živou phishingovou operaci.