Az Expel biztonsági cég kutatói egy vadonatúj, korábban sosem dokumentált kártevőcsaládot fedeztek fel, amelyet SynkLoader névre kereszteltek. A kutatók nem csak megfejtették a kártevő működését, hanem rávették a támadókat, hogy éles támadási eszközöket küldjenek egy csali rendszerre, így bepillantást nyertek a teljes eszközkészletükbe. A kártevő végső célja, hogy egy hamis bejelentkezési képernyővel ellopja a felhasználó belépési jelszavát, majd egy hálózati tunnelező modul segítségével bejusson a vállalat belső és külső rendszereibe.
A támadás egy Microsoft Teamsen keresztüli adathalász üzenettel indult, amelyben a támadó IT helpdesk munkatársnak adta ki magát. A támadók egy „IT Service Desk” nevű, felhasznalo@cegnev.onmicrosoft.com formátumú, alapértelmezett Microsoft 365-ös e-mail-címről vették fel a kapcsolatot az áldozattal. Ez a technika kifejezetten jól működik, mert a Microsoft 365 alapértelmezett tartománya hitelesnek tűnik, a Teams-es felület pedig sok vállalatnál a belső kommunikáció bizalmi csatornája. Az „IT-s munkatárs” meggyőzte az áldozatot, hogy töltsön le és futtasson egy MSI telepítőt egy Microsoft Azure végpontról. Ez a Microsofthoz köthető fájlelérési út is a hitelesség növelésére hivatott.
Az MSI fájl futtatásakor két elem kerül a rendszerre. Egy archive6.zip tömörített archívum és egy cleaner.ps1 PowerShell script, amelyet a telepítő automatikusan lefuttat. A script egy rejtett PowerShell ablakot nyit meg, és parancsokat futtat le, kizárólag a memóriában, lemezre írás nélkül. Ez a technika (fájlmentes, memóriában futó kód) azért veszélyes, mert a hagyományos vírusirtók jellemzően a lemezen tárolt fájlokat vizsgálják, a csak memóriában futó kódot viszont sokkal nehezebb észrevenni. A script egy véletlenszerű, 16 karakteres azonosítót generál, amit telepítési mappanévként használ, majd kicsomagolja a zip archívumot egy beágyazott almappába. Innen indul a fő kártevő.
A kártevő magja egy Python-alapú betöltő (ss.py), amelyhez a támadók egy teljes, minimális Python futtatókörnyezetet is mellékeltek, hiszen a Windows alapból nem tartalmaz Pythont. A betöltő három, előre beégetett C2 domain közül választ véletlenszerűen (neversoftmain[.]net, rootfarmapp[.]net, tripinupdate[.]net), és 90-120 másodpercenkénti véletlenszerű időközönként “bejelentkezik” ezekre, majd titkosított csatornán új modulokat tölt le, és futtat. A modulok:
- Felderítő modul: gépnevet, felhasználót, futó folyamatokat és Active Directory-adatokat gyűjtött egy hamis DLL fájlba rejtve
- Perzisztencia modul: más kártevő komponenseket töltött be közvetlenül a memóriába, és rejtett ütemezett feladatot hozott létre
- PhishLocker modul: a legfigyelemreméltóbb elem. Egy hiteles kinézetű, hamis zárolási képernyőt jelenített meg, amely a valódi felhasználónevet és háttérképet is felhasználta, hogy az áldozat gyanútlanul beírja a jelszavát
- Tunnelező és reverse shell modul: az áldozat IP címén keresztül biztosított hozzáférést a támadóknak, illetve valós idejű parancsfuttatást tett lehetővé
- VNC-alapú képernyőmegosztó: az áldozat asztalát streamelte a támadóknak, ezt a részt a kutatók szerint valószínűleg AI segítségével írták, a túl részletes kódkommentek alapján
A kutatók nem tudták egyértelműen azonosítani a támadók célját vagy csoportját, de egy fontos nyomra bukkantak; a felderítő modul kifejezetten arra kérdez rá, hány számítógép csatlakozik az Active Directory tartományhoz. Ez tipikusan zsarolóvírus csoportokra jellemző érdeklődés, mivel minél nagyobb a hálózat, annál nagyobb kárt tud okozni a támadás, és annál magasabb váltságdíjat követelhetnek.
A kutatás azért is egyedi, mert a kutatók nem csupán passzívan elemezték a mintát, hanem aktívan „becsalogatták” a támadókat egy hamis hálózatba. Ez a fajta interaktív, csali-alapú (honeypot) fenyegetéselemzés ritkán vezet ilyen mélységű betekintéshez egy éles támadó teljes eszközkészletébe.