ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus

U ovom postu ćemo objasniti kako je kibernetička grupa OceanLotus (APT32 i APT-C-00) nedavno iskoristila jedan od javno dostupnih eksploita za CVE-2017-11882, ranjivost oštećenja memorije u Microsoft Officeu, i kako maliciozni softver grupe osigurava trajnost u kompromitovanim sustavima, ne ostavljajući tragove. Nadalje, opisat ćemo kako je grupa od početka 2019. koristila samoraspakirajuće arhive za pokretanje koda.

OceanLotus se specijalizira za kibernetsku špijunažu, a prioritetne mete su zemlje jugoistočne Azije. Napadači krivotvore dokumente koji privlače pažnju potencijalnih žrtava kako bi ih uvjerili da izvrše backdoor, a također rade na razvoju alata. Metode korištene za kreiranje mamaca variraju u različitim napadima – od datoteka s „dvostrukim ekstenzijama“, samoraspakirajućih arhiva, dokumenata s makroima do poznatih eksploita.

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus

Korištenje eksploita u Microsoft Equation Editoru

Sredinom 2018. OceanLotus je vodila kampanju koristeći ranjivost CVE-2017-11882. Jedan od malicioznih dokumenata kibernetičke grupe analizirali su stručnjaci 360 Threat Intelligence Centra (istraživanje na kineskom), uključujući detaljan opis eksploita. U postu ispod je pregled sličnog malicioznog dokumenta.

Prva faza

Dokument FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) sličan je onome spomenutom u gornjem istraživanju. Zanimljiv je jer je usmjeren na korisnike koji se interesiraju za kambodžansku politiku (CNRP – Stranka nacionalnog spasenja Kambodže, raspuštena krajem 2017. godine). Iako ima ekstenziju .doc, dokument je u RTF formatu (vidi sliku ispod), sadrži smeće kod, kao i izobličene elemente.

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 1. „Smeće“ u RTF-u

Unatoč izobličenim elementima, Word uspješno otvara ovu RTF datoteku. Kao što se može vidjeti na slici 2, ovdje je struktura EQNOLEFILEHDR s pomakom 0xC00, nakon koje slijedi naslov MTEF, a zatim zapis MTEF (slika 3) za font.

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 2. Vrijednosti zapisa FONT

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 3. Format zapisa FONT

Moguće preopterećenje na polju ime, budući da se njegova veličina ne provjerava prije kopiranja. Predugačko ime aktivira ranjivost. Kao što se može vidjeti iz sadržaja RTF datoteke (pomak 0xC26 na slici 2), bafer se popunjava shell-kodom, nakon kojeg slijedi lažna naredba (0x90) i adresa povratka 0x402114. Adresa je dijalog u EQNEDT32.exe, upućujući na upute RET. To dovodi do toga da EIP ukazuje na početak polja ime, koje sadrži shell kod.

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 4. Početak shell koda eksploata

Adresa 0x45BD3C drži varijablu koja se dereferencira sve dok ne dosegne pokazivač na trenutno učitanu strukturu MTEFData. Ovdje se nalazi ostatak shell koda.

Svrha shell koda je izvršavanje drugog dijela shell koda, ugrađenog u otvoreni dokument. Prvo, izvorni shell kod pokušava pronaći deskriptor datoteke otvorenog dokumenta, pregledavajući sve deskriptore sustava (NtQuerySystemInformation s argumentom SystemExtendedHandleInformation) i provjeravajući podudaraju li se PID deskriptor i PID procesa WinWord i je li dokument otvoren s masom pristupa - 0x12019F.

Kako bi potvrdio pronalaženje ispravnog deskriptora (a ne deskriptora druge otvorene datoteke), sadržaj datoteke se prikazuje pomoću funkcije CreateFileMapping, a shell kod provjerava podudaraju li se zadnja četiri bajta dokumenta 'yyyy' (metoda Egg Hunting). Kada se pronađe podudaranje, dokument se kopira u privremenu mapu (GetTempPath) kao ole.dll. Zatim se čita zadnjih 12 bajtova dokumenta.

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 5. Označivači kraja dokumenta

32-bitna vrijednost između oznaka AABBCCDD i yyyy – to je pomak sljedećeg shell koda. On se poziva pomoću funkcije CreateThread. Ekstrahiran je isti shell kod koji je ranije koristila grupa OceanLotus. Python emulacijski skript, koji smo objavili u ožujku 2018. godine, još uvijek radi za iskopavanje drugog stupnja.

Drugi stupanj

Ekstrakcija komponenti

Imena datoteka i mapa biraju se dinamički. Kod nasumično bira ime izvršne ili DLL datoteke u C:Windowssystem32. Zatim šalje zahtjev za svojim resursima i ekstrahira polje FileDescription za korištenje kao ime mape. Ako to ne uspije, kod nasumično bira ime mape iz mapa %ProgramFiles% ili C:Windows iz GetWindowsDirectoryW. Izbjegava korištenje imena koje bi moglo biti u sukobu s postojećim datotekama i pazi da ne sadrži sljedeće riječi: windows, Microsoft, desktop, system, system32. ili syswow64. Ako mapa već postoji, imenu se dodaje 'NLS_{6 znakova}'.

Resurs 0x102 analizirano i datoteke se ispuštaju u %ProgramFiles% ili %AppData%, u mapu odabranu nasumično. Vrijeme stvaranja promijenjeno je kako bi imalo iste vrijednosti kao i kernel32.dll.

Na primjer, ovo je mapa i popis datoteka stvorenih odabirom izvršne datoteke C:Windowssystem32TCPSVCS.exe kao izvor podataka.

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 6. Izdvajanje različitih komponenti

Struktura resursa 0x102 u dropru je prilično složena. U dva su se riječi, sadrži:
— Imena datoteka
— Veličinu i sadržaj datoteka
— Format kompresije (COMPRESSION_FORMAT_LZNT1, koji se koristi u funkciji RtlDecompressBuffer)

Prva datoteka se prati kao TCPSVCS.exe, što je legitimno AcroTranscoder.exe (prema FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Možda ste primijetili da veličina nekih DLL datoteka prelazi 11 MB. To je zbog toga što se veliki neprekidni međuspremnik slučajnih podataka nalazi unutar izvršne datoteke. Nije isključeno da je to način izbjegavanja otkrivanja nekim sigurnosnim proizvodima.

Osiguranje postojanosti

Resurs 0x101 u dropru sadrži dva 32-bitna cijela broja koja definiraju način na koji treba osigurati postojanost. Vrijednost prvog ukazuje na to kako će zlonamjerni softver zadržati postojanost bez administratorskih privilegija.

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Tablica 1. Mehanizam postojanosti bez administratorskih privilegija

Vrijednost drugog cijelog broja ukazuje kako zlonamjerni softver treba osigurati postojanost pod radom s administratorskim pravima.

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Tablica 2. Mehanizam postojanosti s administratorskim pravima

Ime usluge je ime datoteke bez ekstenzije; prikazano ime je ime mape, ali ako već postoji, dodaje mu se niz “Revision 1” (broj se povećava sve dok se ne pronađe neiskorišteno ime). Operatori su se pobrinuli da postojanost putem usluge bude stabilna – u slučaju kvara, usluga bi trebala biti ponovno pokrenuta nakon 1 sekunde. Zatim se vrijednosti WOW64 novog ključa registra usluge dodjeljuju vrijednost 4, što ukazuje da je to 32-bitna usluga.

Raspoređena zadaća stvara se kroz nekoliko COM sučelja: ITaskScheduler, ITask, ITaskTrigger, IPersistFile i ITaskScheduler. U suštini, zlonamjerni softver stvara skrivenu zadaću, postavlja informacije o računu zajedno s informacijama o trenutnom korisniku ili administratoru, a zatim postavlja okidač.

To je svakodnevna zadaća s trajanjem od 24 sata i intervalima između dva izvršenja od 10 minuta, što znači da će se neprekidno izvršavati.

Zlonamjerni bit

U našem primjeru izvršna datoteka TCPSVCS.exe (AcroTranscoder.exe) je legitimni softver koji učitava DLL-ove koji se preuzimaju zajedno s njim. U ovom slučaju, zanimanje predstavlja Flash Video Extension.dll.

Njegova funkcija DLLMain samo poziva još jednu funkciju. Prisutne su neke nejasne predikate:

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 7. Nejasni predikate

Nakon ovih obmanjujućih provjera, kod dobiva segment .text datoteke TCPSVCS.exe, mijenja njegovu zaštitu na PAGE_EXECUTE_READWRITE i prepisuje ga dodajući lažne instrukcije:

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 8. Sekvenca instrukcija

Na kraju, na adresu funkcije FLVCore::Uninitialize(void), koja se izvozi Flash Video Extension.dll, dodaje se instrukcija CALL. To znači da nakon učitavanja zlonamjernog DLL-a, kada izvršno okruženje pozove WinMain u TCPSVCS.exe, pokazivač instrukcijskog odskoka će pokazivati na NOP, što rezultira pozivom FLVCore::Uninitialize(void), sljedećem koraku.

Funkcija jednostavno stvara mutex koji počinje s {181C8480-A975-411C-AB0A-630DB8B0A221}, a zatim slijedi trenutačno korisničko ime. Zatim čita prebačenu datoteku s ekstenzijom *.db3 koja sadrži pozicijski neovisni kod i koristi CreateThread za izvršenje sadržaja.

Sadržaj datoteke *.db3 predstavlja shell-kod koji obično koristi grupa OceanLotus. Ponovno smo uspješno raspakirali njegovu korisnu blagajnu koristeći emulator skripte koju smo objavili na GitHubu.

Skripta izvlači završnu fazu. Ovaj komponent je backdoor koji smo već analizirali u prethodnom istraživanju OceanLotus. To se može odrediti po GUID-u {A96B020F-0000-466F-A96D-A91BBF8EAC96} binarne datoteke. Konfiguracija zlonamjernog softvera još uvijek je šifrirana u PE resursu. Ima otprilike istu konfiguraciju, ali C&C serveri se razlikuju od prethodnih:

- andreagahuvrauvin[.]com
- byronorenstein[.]com
- stienollmache[.]xyz

Grupa OceanLotus ponovno demonstrira kombinaciju različitih tehnika kako bi izbjegla otkrivanje. Vratili su se s 'doradjenom' shemom procesa inficiranja. Birajući slučajne nazive i punivši izvršne datoteke slučajnim podacima, smanjuju broj pouzdanih IoC-a (na osnovu hashova i naziva datoteka). Štoviše, zahvaljujući korištenju vanjskog učitavanja DLL-a, napadačima je potrebno samo ukloniti legitimni binarni AcroTranscoder.

Samoraspakiravajuće arhive

Nakon RTF datoteka, grupa je prešla na samoraspakiravajuće (SFX) arhive s uobičajenim ikonama dokumenata kako bi još više zbunila korisnika. O tome je pisao Threatbook (veza na kineskom). Nakon pokretanja otvaraju se samoproširujući RAR datoteke i izvršavaju DLL s ekstenzijom .ocx, čija je konačna korisna svrha ranije dokumentirana {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Od sredine siječnja 2019. OceanLotus ponovo koristi ovu tehniku, ali s vremenom mijenja neke konfiguracije. U ovom dijelu ćemo objasniti tehniku i promjene.

Izrada mamca

Dokument THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) prvi put pronađen 2018. godine. Ova SFX datoteka stvorena je s namhom - u opisu (Informacije o verziji) stoji da je to JPEG slika. SFX skripta izgleda ovako:

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 9. SFX naredbe

Malware ispušta {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), kao i sliku 2018 thich thong lac.jpg.

Mamčna slika izgleda ovako:

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 10. Mamčna slika

Možda ste primijetili da prve dvije linije u SFX skripti dvaput pozivaju OCX datoteku, ali to nije greška.

{9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (ShLd.dll)

Kontrolni tok OCX datoteke vrlo je sličan drugim komponentama OceanLotus - mnogo sekvenci naredbi JZ/JNZ i PUSH/RET, naizmjenično s smešnim kodom.

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 11. Obfuscurirani kod

Nakon filtriranja smešnog koda, izvoz DllRegisterServer, poziva se regsvr32.exe, izgleda ovako:

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 12. Glavni kod instalatora

U osnovi, pri prvom pozivu DllRegisterServer izvoz postavlja vrijednost registra HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model za enkriptirani ofset u DLL (0x10001DE0).

Kada se funkcija pozove drugi put, ona čita istu vrijednost i izvršava se na toj adresi. Odatle se čita i izvršava resurs i mnogo radnji u radnoj memoriji.

Shell kod je isti učitavač PE koji se koristi u prethodnim kampanjama OceanLotus. Može se emulirati pomoću naše skripte. Na kraju, on ispušta db293b825dcc419ba7dc2c49fa2757ee.dll, učitava ga u memoriju i izvršava DllEntry.

DLL izvlači sadržaj svojih resursa, dešifrira (AES-256-CBC) i raspakuje (LZMA) ga. Resurs ima specifičan format koji je lako dekompilirati.

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 13. Struktura konfiguracije instalatora (KaitaiStruct Visualizer)

Konfiguracija je jasno definirana - ovisno o razini privilegija, binarni podaci će se zapisivati u %appdata%IntellogsBackgroundUploadTask.cpl ili %windir%System32BackgroundUploadTask.cpl (ili SysWOW64 za 64-bitne sustave).

U nastavku se osigurava postojanost stvaranjem zadatka pod imenom BackgroundUploadTask[junk].job, gdje [junk] predstavlja skup bajtova 0x9D i 0xA0.

Ime aplikacije zadatka %windir%System32control.exe, a vrijednost parametra je putanja do ispražnjenog binarnog datoteke. Skriveni zadatak se pokreće svakodnevno.

Konstrukcija CPL datoteke je DLL s unutarnjim imenom ac8e06de0a6c4483af9837d96504127e.dll, koji izvozi funkciju CPlApplet. Ova datoteka dešifrira svoj jedini resurs {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, zatim učitava ovaj DLL i poziva svoj jedini izvoz DllEntry.

Datoteka konfiguracije backdoora

Konfiguracija backdoora je enkriptovana i integrisana u njegove resurse. Struktura datoteke konfiguracije veoma je slična prethodnoj.

ESET: nove sheme dostave backdoor-a hakerske grupe OceanLotus
Slika 14. Struktura konfiguracije backdoora (KaitaiStruct Visualizer)

Uprkos sličnoj strukturi, vrijednosti mnogih polja su ažurirane u odnosu na podatke navedene u našem starom izvještaju.

Prvi element binarnog niza sadrži DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), identifikovan Tencent. Ali pošto je ime izvoza uklonjeno iz binarne datoteke, heševi se ne poklapaju.

Dodatna istraživanja

Dok smo prikupljali uzorke, primijetili smo određene karakteristike. Tek nedavno opisani uzorak pojavio se otprilike u julu 2018. godine, dok su drugi slični njemu – tek nedavno, sredinom januara – početkom februara 2019. godine. Kao vektor infekcije korišćena je SFX arhiva koja ispušta legitimni dokument mamac i malicioznu OCX datoteku.

Iako OceanLotus koristi lažne vremenske oznake, primijetili smo da su vremenske oznake SFX i OCX datoteka uvijek iste (0x57B0C36A (08/14/2016 @ 7:15pm UTC) i 0x498BE80F (02/06/2009 @ 7:34am UTC) respektivno). Vjerovatno to ukazuje na to da autori imaju neki 'konstruktor' koji koristi iste šablone i samo mijenja neke karakteristike.

Među dokumentima koje smo pregledali od početka 2018. godine nalaze se razni nazivi koji ukazuju na zemlje od interesa za napadače:

— The New Contact Information Of Cambodia Media(New).xls.exe
— 李建香 (个人简历).exe (lažni pdf dokument CV-a)
— feedback, Rally in USA from July 28-29, 2018.exe

Od otkrića backdoora {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll i objavljivanja njegove analize od strane nekoliko istraživača primijetili smo neka početna promjena u podacima o konfiguraciji malicioznih programa.

Prvo, autori su počeli uklanjati imena iz pomoćnih DLL (DNSprov.dll i dvije verzije HttpProv.dll). Zatim su operateri prestali pakovati treći DLL (druga verzija HttpProv.dll), odabravši integraciju samo jedne.

Drugo, mnoga polja konfiguracije backdoora su promijenjena, vjerojatno kako bi se izbjeglo otkrivanje, budući da su mnogi IoC-ovi postali dostupni. Među važnim poljima koja su promijenili autori su:

  • izmijenjen odjeljak registra AppX (vidi IoC-ove)
  • string za kodiranje mutexa („def“, „abc“, „ghi“)
  • broj porta

Na kraju, u svim novim analiziranim verzijama pojavili su se novi C&C, navedeni u odjeljku IoC-ova.

Zaključci

OceanLotus se i dalje razvija. Kibernetička grupa fokusirana je na doradu i proširenje svog alata i mamaca. Autori skrivaju zlonamjenske datoteke koristeći atraktivne dokumente čija je tema relevantna za ciljeve. Razvijaju nove sheme, kao i koriste javno dostupne alate, poput eksploita Equation Editor. Štoviše, poboljšavaju alate kako bi smanjili broj artefakata koji ostaju na računalima žrtava, čime smanjuju šanse za otkrivanje od strane antivirusnog softvera.

Indikatori kompromitacije

Indikatori kompromitacije, kao i MITRE ATT&CK atributi dostupni su na Welivesecurity i na GitHubu.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster