Az ESET kutatói egy korábban nem dokumentált, Cereal nevű eszközkészletet azonosítottak, amelyet a Turla nevű, Oroszországhoz kötődő APT-csoport használ. A készlet Microsoft Exchange-levelezőszerverekre települ, onnan célzottan gyűjt ki leveleket. A támadóknak nincs külön vezérlőszervere, az áldozat saját, internetről elérhető Exchange-szervere szolgál a parancsok fogadására.
A Turla, más néven Snake, legalább 2004 óta aktív, és az orosz FSZB-hez kötik. Fő célpontjai kormányzatok, diplomáciai képviseletek és védelmi szervezetek Európában, Közép-Ázsiában és a Közel-Keleten.
Az ESET két áldozatot azonosított. Az elsőt, egy kazahsztáni kormányzati szervezetet, 2025. november 28-án találták meg. A másodikat, egy romániai kormányzati szervezetet, 2025. december 23-án törték fel. A romániai példány úgy volt beállítva, hogy a NATO-val és az EU-val folytatott levelezést keresse.
A készlet erősen támaszkodik a szerializációra, vagyis az adatok és a végrehajtható kód szállításra alkalmas formátumba csomagolására. Ezért kapták a „Cereal” (gabonapehely) előtagot, a „serial” szójátékával. Az eszközkészlet moduláris .NET-kártevő.
A legtöbb kártevő időnként kapcsolatot létesít a gazdáival, és ez nyomot hagy. Domainek, IP-címek, tárhelyszolgáltatók és időzítési minták jelennek meg, amelyeket a védők azonosítani és blokkolni tudnak. A Cereal ezt nem teszi. Ehelyett a megfertőzött, internetről elérhető Exchange-szerveren várakozik, és olyan URL útvonalakat hallgat, amelyek hétköznapi Exchange-forgalomnak tűnnek. Az ESET által megfigyelt példák közé tartoztak például az OWA, az Autodiscover és az ActiveSync útvonalai.
Ennek három jelentős következménye van:
- Nincs külön, megtámadható vagy lekapcsolható C2-infrastruktúra. Az áldozat saját Exchange-szervere válik a támadók által elérhető vezérlőponttá.
- A hálózati nyomon követés erősen korlátozott. Az ESET nem tudta azonosítani a támadók bejövő IP-címeit.
- A rosszindulatú forgalom a legitim Exchange-webszolgáltatások mellett él, pontosan abban a forgalomtípusban, amelyet a védők a legkevésbé valószínű, hogy blokkolnak.
Ez a megközelítés ritka, és csak néhány APT-csoport használja. A Turla korábban is alkalmazott hasonló technikát. A 2019-ben elemzett LightNeuron például szintén a megfertőzött Exchange-szerverét használta működési központként.
Parancsok egyszer használatos programokként
A Cereal nem egyetlen, minden funkciót tartalmazó nagy hátsó kapu. Ehelyett minden feladathoz külön, kis méretű, lefordított .NET program készül.
A CerealRunner
A végrehajtás központi eleme. Ez titkosított .NET programokat hordoz, és azok futtatásához szükséges argumentumokat. Futtatáskor kicsomagolja a tartalmát, memóriában tölti be és futtatja a programokat, majd a kimenetet ugyanazon a csatornán küldi vissza, ahol a CerealNeuron titkosítva továbbítja a támadóknak.
A megfigyelt parancsok között voltak:
- Postafiókok vagy konkrét levelek lekérése az Exchange Web Services-en keresztül.
- Active Directory lekérdezések számítógépekre, felhasználókra, csoportokra és DNS-rekordokra.
- WMI lekérdezések, például futó folyamatok vagy aktív TCP-kapcsolatok listázása.
- Windowsban helyben tárolt hitelesítő adatok, az úgynevezett LSA Secrets kinyerése.
- Kötet-pillanatképek listázása.
- Fájlok listázása, olvasása és törlése, gyakran a CerealBox által előkészített levélmentések törlése.
A majdnem azonos, de feladatonként külön lefordított binárisok nagy száma arra utal, hogy a támadóknak van egy belső keretrendszerük a parancsok automatikus fordítására és csomagolására. A moduláris, cserélhető komponensekre épülő kódbázis egy érett, jól megtervezett platform benyomását kelti.
A CerealLoader
Az egyetlen komponens, amely titkosítatlan .NET fájlként kerül a lemezre. A CerealLoader még azelőtt natív, gépi szintű kódot futtat, hogy a .NET futtatókörnyezet elindítaná a szokásos utasításait. Ehhez a .NET specifikáció kevéssé ismert funkcióját, a Vtable Fixups mechanizmust használja. Ez egy rejtett hidat épít a natív kódból egy .NET metódusba, amelyet a program más részei látszólag nem hívnak meg.
Mivel a CerealLoader natív kódból tudja elindítani magát, a támadók olyan helyekre is elhelyezhetik, ahol legitim, nem .NET-alapú Windows folyamatok töltik be. Az egyik végrehajtási láncban a CerealLoader a C:\Windows\System32\wbem\ mappában ncobjapi[.]dll néven jelent meg, ahol a Windows Management Instrumentation szolgáltatás automatikusan betöltötte.
Egy másik változat ugyanabban a mappában wbemcomn[.]dll néven helyezkedett el. A DLL search order hijacking révén a legitim WmiPrvSE[.]exe folyamat a rosszindulatú DLL-t töltötte be az eredeti helyett. A hamis DLL ugyanazokat az exportokat tartalmazza, mint a valódi, és egyszerűen továbbítja a hívásokat az eredeti könyvtárhoz, így az érintett folyamat normálisan működik tovább.
A .NET a gyakori könyvtárak előre lefordított, natív változatait egy rendszerkönyvtárban tárolja a gyorsabb indulás érdekében. Amikor egy program egy ilyen könyvtárat kér, a futtatókörnyezet először a gyorsítótárat ellenőrzi, és ha talál egyezést, a gyorsítótárazott verziót tölti be. A támadók a CerealLoader fájlokat ebbe a gyorsítótárba helyezték, olyan nevekkel, mint például Microsoft.Exchange.Search.Mdb.ni[.]dll. Amikor az Exchange a megfelelő könyvtárat kérte, a futtatókörnyezet a rosszindulatú verziót töltötte be. Mivel a rosszindulatú fájl nem tartalmazta a valódi funkciók cseréjét, a .NET csendben visszatért az eredeti könyvtárhoz, de addigra a támadók natív belépési pontja már lefutott.
A CerealBox
A leginkább új technikát a CerealBox használja. Ez egy kifejezetten Microsoft Exchange-hez készült levélgyűjtő modul. Közvetlenül az EdgeTransport[.]exe folyamatba injektálódik, amely az Exchange levélforgalmát kezeli. Ehhez azonban bonyolult, egymásba ágyazott Cereal komponensek láncán keresztül kell eljutnia.
Miután a folyamatban van, a CerealBox hozzáfér az Exchange belső struktúráihoz, megtalálja a már meglévő transport agenteket, és a kezelőiket rosszindulatú kóddal csomagolja be. A wrapper előbb a CerealBox saját logikáját futtatja, majd visszaadja a vezérlést az eredeti kódnak. A levelek továbbra is normálisan áramlanak, és új agent sehol sem jelenik meg az Exchange konfigurációjában.
A levélforgalomba való betekintéssel a CerealBox kiválasztja az érdekes üzeneteket. Egy levél akkor minősül célnak, ha .doc, .docx vagy .pdf csatolmánya van, és megfelel legalább egy előre beírt listának: feladó címe, címzett címe, tárgy részlete vagy csatolmány neve alapján, miközben elkerüli a kizárási listákat. Az érdekes leveleket tömörítik, titkosítják, és fájlokba gyűjtik a lemezen. A támadók később normál CerealNeuron parancsokkal exfiltrálják és törlik ezeket a fájlokat.
Az Exchange transport szolgáltatásába való injektálás és a levélfolyamat belülről történő meghorgonyzása olyan új technika, amelyet korábban egyetlen kártevőcsaládnál sem dokumentáltak. Ehhez az Exchange levélfolyamatának belső felépítéséről mély ismeretek kellenek, ami jelentős időt és erőfeszítést igényel.
A teljes technikai elemzés, az IoC lista és a MITRE ATT&CK leképezés az ESET white paperében érhető el.