Áttekintés
A Proofpoint kutatói már évek óta nyomon követik az első lépcsőben letöltő programok használatát, amelyeket a fenyegetések szereplői arra használnak, hogy rosszindulatú e-mail kampányaik során és után más rosszindulatú szoftvereket telepítsenek. Különösen az elmúlt két évben ezek a letöltők egyre robusztusabbá váltak, és fejlett profilalkotási és célzási képességeket biztosítanak.
Ami még fontosabb, hogy a letöltők és más rosszindulatú programok, például botnetek és banki trójaiak kiszorították a zsarolóprogramokat mint elsődleges hasznos terheket, így a fenyegetők rugalmasan alkalmazhatnak különféle rosszindulatú programokat másodlagos fertőzésekben. Például az egyik legelterjedtebbet, a Smoke Loader-t széles körben használták olyan hasznos terhelések ledobására, mint az Ursnif és a The Trick banki trójaiak, valamint saját moduljait használták hitelesítő és egyéb információk és adatok ellopására, egyéb rosszindulatú funkciók mellett.
2019 augusztusának vége óta a Proofpoint kutatói nyomon követik a Buer nevű új moduláris betöltő fejlesztését és értékesítését a szerzők által. A Buer olyan funkciókkal rendelkezik, amelyek erősen versenyképesek a Smoke Loaderrel, aktívan árulják a prominens illegális piactereken, és olyan felhasználási szereplőknek szánják, akik kulcsrakész, kész megoldást keresnek.
Kampányok
2019. augusztus 28.
Augusztus 28-án a Proofpoint kutatói olyan rosszindulatú e-mail üzeneteket figyeltek meg, amelyek látszólag korábbi legitim e-mail beszélgetésekre válaszolnak. Ezek Microsoft Word csatolmányokat tartalmaztak, amelyek Microsoft Office makrókat használnak a következő fázisú hasznos teher letöltéséhez.
1. ábra: Példa a 2019. augusztus 28-i kampányban használt Microsoft Word csatolmányra
A következő fázisú hasznos teher letöltését a következő URL-ekről figyeltük meg:
hxxp://jf8df87sdfd.yesteryearrestorationsnet/gate.php
hxxp://93345fdd.libertycolegioscom/gate.php
A ledobott payload neve verinstere222.xls vagy verinstere33.exe volt (a szereplő által ebben az időszakban használt elnevezési konvenció). Az Ursnif gyakran ezzel a szereplővel kapcsolatba hozott Dreambot változata helyett a hasznos teher egy korábban nem dokumentált, vadon nem észlelt töltő volt.
A következő hetekben, szeptember és október folyamán a Proofpoint kutatói és az infosec közösség más tagjai több kampányt is megfigyeltek ugyanattól a szereplőtől, amely vagy az Ursnif Dreambot változatát, vagy ezt az új töltőt dobta le.
2019. október 10.
Október 10-én a Proofpoint kutatói megfigyeltek egy malvertising kampányt Ausztráliában, amely a Fallout Exploit Kitre (EK) irányított át, és az új betöltőt dobta le.
2. ábra: HTTP hálózati forgalom nyomvonala a sebezhető böngészőket kihasználó Fallout EK-val
A betöltő ezután több második lépcsős malware hasznos terhet dobott le, köztük a KPOT stealer, az Amadey és a Smoke Loader-t.
2019. október 21.
Július eleje óta a Proofpoint kutatói körülbelül 100 olyan kampányt figyeltek meg, amelyben az Ostap szinte kizárólag a The Trick több példányát töltötte be. 21-én azonban a Proofpoint kutatói olyan rosszindulatú e-mail üzeneteket figyeltek meg, amelyeknek a tárgya például “Penalty Notice # PKJWVBP” volt, és Microsoft Word csatolmányokat tartalmaztak. A dokumentumok olyan makrókat tartalmaztak, amelyek engedélyezése esetén végrehajtották az Ostapot. Megfigyeltük, hogy az Ostap letölti ezt a betöltőt a
hxxps://185.130.104187/nana/kum.php?pi=18b&
honnan, amely viszont betöltötte a The Trick “ono22”-t a C&C: garrisontxus
3. ábra: A rosszindulatú dokumentumokban lévő makró engedélyezése után megfigyelt hálózati forgalom.
4. ábra: Az október 21-i kampányban használt példa Microsoft Word csatolmány
Piac & Jellemzőelemzés
Miatt kezdtük megfigyelni, hogy ezt az új betöltőt több, különböző kampányban is használják, arra számítottunk, hogy egy illegális piacon több szereplőnek értékesítik. Ráadásul felfedeztünk egy augusztus 16-i hirdetést egy underground fórumon, amely egy “Buer” nevű betöltőprogramot ír le, amely megegyezik a fenti kampányokban megfigyelt rosszindulatú szoftver funkcionalitásával.
A következő hetekben hozzáadott és hirdetett funkciók pontosan megegyeznek az említett kampányokban talált betöltőprogram fejlődésével.
A szerző orosz nyelvű hirdetőtábla-bejegyzésének szövegét találtuk meg, amelyben 400 dollárt kért a rosszindulatú szoftverért, és felajánlotta a szolgáltatásait, hogy beállítja a szoftvert a leendő vásárlók számára, hogy az működőképes legyen. A szerző azt is megjegyzi, hogy a frissítések és a hibajavítások ingyenesek, de az “új címekre történő újraépítésért 25 dollár felárat kell fizetni.”
A következő szöveg, amelyet a Proofpoint szintén az illegális piactérről szedett ki, és amelyet feltehetően a rosszindulatú szoftver szerzője írt, az eredeti orosz nyelvű leírás szerint összefoglalja a betöltő működését:
5. ábra. Szöveg a Buer Loader bot működését leíró underground fórumbejegyzésből
Hasonlóan a hirdetés is felsorolja a vezérlőpanel funkcióit. A szerző megjegyzi, hogy a moduláris bot teljes egészében C nyelven íródott, és .NET Core nyelven írt vezérlőpanelt használ, hangsúlyozva a programozási nyelv megválasztásának köszönhető nagyobb teljesítményt mind a kliens, mind a szerver esetében.
- A leírás szerint a bot teljes hasznos terhelése 55-60 kilobájt, natív Windows futtatható programként és dinamikus linkkönyvtárként működik, teljes egészében rezidens memóriában fut, és kompatibilis a 32 és 64 bites Microsoft Windows operációs rendszerekkel.
- A bot HTTPS-kapcsolaton keresztül kommunikál, és a vezérlőpultról távolról frissíthető a dekódolás, valamint az újraépítés után.
- A szerző azt is megjegyzi, hogy a betöltő egy megbízható alkalmazás helyettesítő folyamataként fut, és felhasználói szintű jogosultságokkal működik.
- A szoftver legfőképpen a FÁK-ban (volt szovjet államok, például Oroszország) nem fut.
A hirdetés a szerver és a vezérlőpanel következő jellemzőit írja le:
- A vezérlőpanelt úgy hirdetik, hogy .NET Core nyelven is íródott, megjegyezve a könnyű telepítést Ubuntu / Debian Linux szerver rendszerekre.
- A szerver statisztikák széles skáláját nyújtja, beleértve az online, élő, halott és összes bot számlálóját; a botok listájának valós idejű frissítését; egy fájlletöltési számlálót; és a rendszerek szűrésének lehetőségét az operációs rendszer típusa, a telepített botok hozzáférési jogai és a logikai CPU magok száma szerint.
- A fertőzött rendszerekről letöltött fájlokat titkosított formában tárolja a szerver, a hozzáférést egy token biztosítja.
- A legfontosabb, hogy a szerző – akárcsak maguk a botok – megjegyzi, hogy a szerver nem dolgozza fel a FÁK-tagországokból érkező API-kéréseket.
A fórumbejegyzés a Buer loader és a vezérlőpanel technikai kiadási megjegyzéseit is tartalmazza (1.1.2 verzió). A bevezetőben a szerző megjegyezte, hogy a betöltő elindítása mostantól három lépésből áll — ha az első két lépés sikertelen a fertőzött rendszeren, és a helyettesítő folyamatba való befecskendezés sikertelen (például magával a kriptával való inkompatibilitás miatt), a betöltő helyette a saját folyamatában fog végrehajtódni.
A kiadási megjegyzések a következőket említik a betöltővel kapcsolatban:
- A betöltő FastFlux architektúrát használ.
- A betöltő a Microsoft Windowson belül egy megbízható folyamat alól működik. A MemLoadEx folyamat mostantól támogatja az x64 exe-t, mint megbízható alkalmazást.
- A MemLoad frissült, és mostantól támogatja a natív x32 exe-t.
A kiadási megjegyzések a következő funkciókat említik a vezérlőpanelhez:
- Az API elérés HTTPS használatával történik, saját aláírású tanúsítványok támogatásával.
- A feladatok szerkesztésének támogatása a panelben. A felhasználó leállíthatja a feladatot végrehajtás közben, és megváltoztathatja a hasznos terhelést és a végrehajtások számát.
- Feladat létrehozásának lehetősége bot azonosító alapján. Nagyon alkalmas pontszerű terheléshez.
- Lépésről-lépésre ablak a feladatok létrehozásához.
- Elérhetőségi értesítés, amely lehetővé teszi, hogy értesüljön a szükséges online botokról.
- A bot azonosító egyediségét megnövelték.
- A panel kiegészült címkékkel, amelyek lehetővé teszik a botok rendezését a velük végzett későbbi műveletekhez.
- A számítógép nevének megjelenítése a táblázatban.
- Javult a kriptokompatibilitás.
- Bot-előzmények hozzáadása.
- “The panel now expand to Docker” (Docker konténer támogatás).
- Proofpoint Researcher Note: Feltételezzük, hogy ez a funkció a bérelt Docker hostokba való könnyű integrálhatóságot szolgálja, egyszerűsítve a telepítést, bár potenciálisan a panel/C&C telepíthető egy kompromittált Docker hostra is.
- Hitelesítés a panelen lévő fájlon. Mostantól a panel nem hagyja ki azt a fájlt, amelyet a betöltő nem tud letölteni, és erről értesíti az ügyfelet.
- A feladatok mostantól megismételhetők.
Végezetül a szerző az 1.1.9-es verzióhoz a következő technikai változásokat ismertette. Ezek azért figyelemre méltóak, mert azt mutatják, hogy a kártevő aktív, professzionális fejlesztés alatt áll.
- A betöltő új módszert kapott a helyi fájlok External indítására. A módszer előnyei az egyediség és a CreateProcess / ShellExecute hiánya a betöltőn keresztül. Az indítás egy megbízható folyamatot hoz létre anélkül, hogy parancsokat adna neki.
- A panel képes megjelölni az összes botot, amely egy adott feladatot végrehajtott. Ez lehetővé teszi a felhasználó számára, hogy a hasznos terhet szétossza a botok bizonyos csoportjai között.
- Implementált integrációs API. Elérhető dokumentáció hozzá.
- Hozzáadva a proxy módban egy fájl hivatkozással történő elküldésének lehetőségét. A fájl titkosított formában kerül továbbításra a botnak.
- A botok országonkénti számlálásának hibája kijavításra került, és egyéb fejlesztésekkel egészült ki.
Vezérlőpult képernyőképek
A következő vezérlőpult képernyőképek kerültek az underground reklámba, bemutatva néhányat az ügyfelek számára elérhető back end képességek közül, beleértve a telemetria monitorozást, host szűrést és egyebeket.
6. ábra: A Buer Loader C&C
7. ábra: A Buer vezérlőpanel bot telemetriafigyelő képernyője.
8. ábra: A Buer vezérlőpanel sötét üzemmódú bot-telemetriafigyelő képernyője.
9. ábra: A Microsoft Windows architektúra szerint szűrt távoli botokat ábrázoló vezérlőpanel szűrőnézet.
10. ábra: A betöltési feladatok fájlkezelését ábrázoló vezérlőpanel nézet
11. ábra: A távoli botok felhasználói jogok szerint rendezett vezérlőpanel nézete.
12. ábra: Vezérlőpanel nézet, feladat állapota
13. ábra: Vezérlőpanel nézet, feladat létrehozása
Kártékony programok elemzése
A Bürger Loader egy új letöltő kártevő, amely további hasznos terheléseket tölt le és hajt végre.
Anti-elemzési funkciók
A betöltő tartalmaz néhány alapvető antielemzési funkciót:
- Hibakeresők ellenőrzése a Process Environment Block (PEB) és a Thread Environment Block (TEB)
- Virtuális gépek ellenőrzése a Red Pill , No Pill és kapcsolódó mechanizmusok segítségével
- Lokális ellenőrzés, hogy megbizonyosodjon arról, hogy a kártevő nem fut bizonyos országokban (14. ábra)
14. ábra: A rosszindulatú szoftver ellenőrzése annak biztosítására, hogy nem fut bizonyos országokban
Persistence
A perzisztencia beállítása egy Registry RunOnce bejegyzés konfigurálásával történik. A verziótól függően a registry-bejegyzés közvetlenül végrehajtja a rosszindulatú programot, vagy ütemez egy feladatot a végrehajtására.
Titkosított karakterláncok
Ez a minta tartalmaz egy funkciót a karakterláncok titkosítására.
15. ábra: A karakterláncok dekódolási sorrendje
A következő függvény a Ghidra kódolt karakterláncok dekódolására mutat példát Jython segítségével:
16. ábra: A karakterláncok dekódolási sorrendje (Python verzió)
17. ábra: Példa a karakterláncok dekódolására
Windows API-hívások
Ez a minta egy hashing algoritmust használ a Windows API-hívások többségének megoldására. A hashing algoritmus biztosítja, hogy az API név minden karaktere nagybetű legyen. Ezután minden karaktert 13-mal jobbra forgat (ROR), és összeadja őket.
18. ábra: Hashing algoritmus a Windows API-hívások feloldásához
A következő függvény egy példa arra, hogy a Python segítségével hogyan lehet feloldani az API-hívásokat.
19. ábra: A Windows API-hívások hasheléses feloldásának segítésére használt Python-szkript példája
A következő táblázat néhány kiválasztott használt hashelés és a hozzájuk tartozó Windows API-név listáját tartalmazza:
CreateMutexW |
0xed619452 |
OpenMutexW |
0x7bffe25e |
CreateProcessW |
0xb4f0f46f |
WinHttpOpen |
0xaf7f658e |
WinHttpCrackUrl |
0x8ef04f02 |
WinHttpConnect |
0x9f47a05e |
WinHttpOpenRequest |
0x1dd1d38d |
Táblázat 1:
A Windows API hívások a kiválasztott hashekkel
Parancs és vezérlés
A parancs és vezérlés (C&C) funkciókat HTTP(S) GET kéréseken keresztül kezelik. Egy példaparancsjelző úgy néz ki, mint a 20. ábra:
20. ábra: Példaparancsjelző
Ezek a kérések a “frissítési API”-hoz mennek, és egy titkosított paramétert tartalmaznak. Ez a paraméter dekódolható:
- Base64 dekódolás
- Hex dekódolás
- RC4 dekódolással (az elemzett mintákban használt kulcs a “CRYPTO_KEY” volt)
Egy példa a tisztaszövegű paraméterre:
88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f|Windows 7|x64|4|Admin|RFEZOWGZPBYYOI
Ez tartalmaz pipe-csővel elválasztott adatokat tartalmaz, amelyek a következőkből állnak:
- Bot ID (különböző rendszerparaméterek, például a hardverprofil GUID-je és neve, a számítógép neve, a kötet sorozatszáma, SHA-256 hexa digest, és CPUID)
- A saját futtatható képének SHA-256-os kivonatolása
- Windows verzió
- Architektúra típusa
- Processzorok száma
- Felhasználói jogosultságok
- Számítógép neve
A 21. ábrán egy példa a parancsjelző válaszára:
21. ábra: Példa parancsjelző válasz
A fenti kérési paraméterhez hasonlóan dekódolható, azzal a különbséggel, hogy a hex-kódolt bájtok kötőjellel vannak elválasztva. A 22. ábrán egy példa egyszerű szöveges válasz látható:
22. ábra: Egyszerű szöveges parancsjelző válasz
A dekódolt szöveg egy JSON objektum, amely különböző opciókat tartalmaz a hasznos teher letöltésére és végrehajtására vonatkozóan:
- type – két típus van:
- update – update self
- download_and_exec – letöltés és végrehajtás
- options – meghatározza a letölteni kívánt payload opcióit:
- Hash – csak az “update” típusra alkalmazható annak megállapítására, hogy elérhető-e egy új frissítés
- x64 – 64 bites-e a hasznos teher
- FileType – az elemzett mintákban nem használták
- AssemblyType -. nem használták az elemzett mintákban
- AccessToken – a hasznos teher letöltéséhez használt (lásd alább)
- External – jelzi, hogy a hasznos teher a C&C-ről vagy egy külső URL-ről kerül letöltésre
- method – a végrehajtás módja:
- exelocal – folyamat létrehozása
- memload – payload befecskendezése és kézi betöltése
- memloadex – payload befecskendezése és kézi betöltése
- loaddllmem – payload befecskendezése és kézi betöltése
- parameters – a parancssorban átadandó paraméterek
- pathToDrop -. az elemzett mintákban nem használták
- autorun – azt jelzi, hogy a hasznos teher számára be kell-e állítani a Registry RunOnce perzisztenciát
- modules – lásd a Modulok részt alább
- timeout – az elemzett mintákban nem használták
A C&C szerverről letöltött hasznos teher a 23. ábrán látható “download API”-hoz intézett kérésekkel történik:
23. ábra: A C&C
C&C
Egy példa a plaintext kérés paraméterére az alábbiakban látható:
88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|58007044-67d4-4963-9f5f-400dfbc69e74
Ez tartalmazza a bot azonosítóját és az “AccessToken”-t a command beacon válaszból. Ha a payload a C&C-ről kerül letöltésre, akkor RC4-gyel van titkosítva. Az elemzett mintákban a kulcs “CRYPTO_KEY” volt.
Modules
A command beacon válasz egy “modules” listát tartalmaz. A Proofpoint kutatói még nem figyelték meg a Buer modulok használatát a vadonban, de a kód alapján ez a lista AccessTokens modulokat tartalmaz. A modul fájlnevét a C&C “modul API”-nak küldött AccessToken elküldésével kérdezzük le. A modul ezután a “downloadmodule API” segítségével letöltésre kerül. A letöltés és a visszafejtés után a “loaddllmem” módszerrel töltődik be.
Következtetés
A Buer nevű új letöltőprogram az utóbbi időben többféle kampányban is megjelent: exploit kitekhez vezető malvertisingon keresztül; másodlagos hasznos teherként az Ostap-on keresztül; és elsődleges hasznos teherként olyan rosszindulatú szoftverek letöltésével, mint a The Trick banki trójai.
Az új betöltő robusztus geotargeting, rendszerprofilkészítő és anti-elemző funkciókkal rendelkezik, és jelenleg az underground fórumokon értéknövelt telepítési szolgáltatásokkal kerül értékesítésre. Az oroszul beszélő szerző(k) aktívan fejlesztik a letöltőt kifinomult vezérlőpanelekkel és gazdag funkciókészlettel, ami versenyképessé teszi a kártevőt az underground piacokon.
A letöltő C nyelven íródott, míg a vezérlőpanel .NET core nyelven, ami a teljesítmény és a kis letöltési lábnyom optimalizálására utal, valamint arra, hogy a vezérlőpanel könnyen telepíthető Linux szerverekre — a Docker konténerek beépített támogatása tovább könnyíti a rosszindulatú célokra használt bérelt és potenciálisan kompromittált hosztokon való terjedését. Ez utóbbi képesség szerepel a meghirdetett funkciókban és a kiadási megjegyzésekben.
Got it, but I don't know what this is. Downloaded Word doc: https://t.co/Y8tX8wTsOa – Follow-up EXE persistent on the infected Windows host: https://t.co/sowNIRDPbI pic.twitter.com/4isqbsMAa9
— Brad (@malware_traffic) October 11, 2019
https://www.cert.pl/en/news/single/ostap-malware-analysis-backswap-dropper/
https://www.proofpoint.com/us/threat-insight/post/ostap-bender-400-ways-make-population-part-with-their-money
https://www.aldeid.com/wiki/X86-assembly/Instructions/sidt
https://www.aldeid.com/wiki/X86-assembly/Instructions/sldt
Indicators of Compromise (IOCs)
IOC |
IOC. Type |
Description |
fa699eab565f613df563ce47de5b82bde16d69c5d0c05ec9fc7f8d86ad7682ce |
sha256 |
|
http[://45.76.247[.177:8080/api/update/ |
URL |
Buer C&C callback |
6c694df8bde06ffebb8a259bebbae8d123effd58c9dd86564f7f70307443ccd0 |
sha256 |
|
197163b6eb2114f3b565391f43b44fb8d61531a23758e35b11ef0dc44d349e90 |
sha256 |
|
https[://173.212.204[.171/api/update/ |
URL |
Buer C&C callback |
9e8db7a722cc2fa13101a306343039e8783df66f4d1ba83ed6e1fe13eebaec73 |
sha256 |
(Fallout Drop) |
http[://134.0.119[.53:8080/api/update/ |
URL |
Buer C&C callback |
ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f |
sha256 |
(Ostap drop) |
https[://garrisontx[.us/api/update/ |
URL |
Buer C&C callback |
https[://185.130.104[.187/nana/kum.php?pi=18b |
URL |
Ostap instance dropping Buer – 2019-10-21 |
753276c5887ba5cb818360e797b94d1306069c6871b61f60ecc0d31c78c6d31e |
sha256 |
Buer 2019-.11-28 |
ffload01[.top|185.125.58[.11 ffload01[.top|185.186.141[.129 |
domain|IP |
Buer C&C 2019-11-28 |
ET és ETPRO Suricata/Snort aláírások
2029077 || ET TROJAN Buer Loader Update Request
2029079 || ET TROJAN Buer Loader Response
2029078 || ET TROJAN Buer Loader letöltési kérés
2839684 || ET TROJAN Buer Loader Sikeres hasznos teher letöltés
2029080 || SSL/TLS tanúsítvány megfigyelés (Buer Loader)