ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu

U ovom postu ćemo vam reći kako je cyber grupa OceanLotus (APT32 i APT-C-00) nedavno koristila jedan od javno dostupnih eksploatacija za CVE-2017-11882, ranjivosti oštećenja memorije u Microsoft Officeu i kako zlonamjerni softver grupe postiže postojanost na kompromitovanim sistemima bez ostavljanja traga. Zatim ćemo opisati kako je grupa od početka 2019. koristila samoraspakirajuće arhive za pokretanje koda.

OceanLotus je specijalizovan za sajber š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 koje se koriste za kreiranje honeypots variraju u zavisnosti od napada, od datoteka sa „dvostrukim proširenjima“, arhiva koje se samoraspakuju, dokumenata sa makroima, do poznatih eksploatacija.

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu

Korištenje eksploatacije u Microsoft Equation Editoru

Sredinom 2018. godine, OceanLotus je sproveo kampanju iskorištavajući ranjivost CVE-2017-11882. Jedan od zlonamjernih dokumenata cyber grupe analizirali su stručnjaci iz 360 Threat Intelligence Center (istraživanje na kineskom), uključujući detaljan opis eksploatacije. Post ispod sadrži pregled takvog zlonamjernog dokumenta.

U prvoj fazi

Dokument FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) je sličan onom spomenutom u prethodnoj studiji. Zanimljiva je jer je namijenjena korisnicima zainteresovanim za kambodžansku politiku (CNRP - Cambodia National Rescue Party, raspuštena krajem 2017.). Uprkos ekstenziji .doc, dokument je u RTF formatu (pogledajte sliku ispod), sadrži smeće kod, a takođe je iskrivljen.

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 1. "Smeće" u RTF-u

Iako ima iskrivljenih elemenata, Word uspješno otvara ovu RTF datoteku. Kao što možete vidjeti na slici 2, postoji struktura EQNOLEFILEHDR na pomaku 0xC00, nakon čega slijedi MTEF zaglavlje, a zatim MTEF unos (slika 3) za font.

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 2. Vrijednosti unosa FONT-a

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 3. FONT format snimanja

Moguće prelivanje u polju ime, jer se njegova veličina ne provjerava prije kopiranja. Predugačko ime pokreće ranjivost. Kao što možete vidjeti iz sadržaja RTF datoteke (offset 0xC26 na slici 2), bafer je ispunjen shell kodom nakon čega slijedi lažna naredba (0x90) i povratnu adresu 0x402114. Adresa je element dijaloga u EQNEDT32.exe, sa uputama RET. Ovo uzrokuje da EIP pokazuje na početak polja imekoji sadrži shellcode.

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 4. Početak exploit shellcode-a

Adresa 0x45BD3C pohranjuje varijablu koja je dereferencirana sve dok ne dođe do pokazivača na trenutno učitanu strukturu MTEFData. Ostatak shell koda je ovdje.

Svrha shell koda je da izvrši drugi dio shell koda ugrađenog u otvoreni dokument. Originalni shellcode prvo pokušava pronaći deskriptor datoteke otvorenog dokumenta iteracijom preko svih sistemskih deskriptora (NtQuerySystemInformation sa argumentima SystemExtendedHandleInformation) i provjerava da li se podudaraju PID deskriptor i PID proces WinWord i da li je dokument otvoren sa pristupnom maskom - 0x12019F.

Da biste potvrdili da je pronađen ispravan ručnik (a ne ručnik drugog otvorenog dokumenta), sadržaj datoteke se prikazuje pomoću funkcije CreateFileMapping, a shellcode provjerava da li se posljednja četiri bajta dokumenta podudaraju "yyyy"(metoda lova na jaja). Kada se pronađe podudaranje, dokument se kopira u privremeni folder (GetTempPath) Kako ole.dll. Zatim se čita zadnjih 12 bajtova dokumenta.

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 5. Kraj markera dokumenta

32-bitna vrijednost između markera AABBCCDD и yyyy je pomak sljedećeg shell koda. Poziva se pomoću funkcije CreateThread. Ekstrahovao isti shellcode koji je ranije koristila grupa OceanLotus. Python skripta za emulaciju, koji smo objavili u martu 2018., još uvijek radi za drugu fazu deponije.

Druga faza

Uklanjanje komponenti

Nazivi datoteka i direktorija biraju se dinamički. Kod nasumično bira naziv izvršne ili DLL datoteke u C:Windowssystem32. Zatim postavlja zahtjev svojim resursima i preuzima polje FileDescription koristiti kao ime foldera. Ako ovo ne uspije, kod nasumično bira naziv mape iz direktorija %ProgramFiles% ili C:Windows (iz GetWindowsDirectoryW). Izbjegava korištenje imena koje bi moglo biti u sukobu s postojećim datotekama i osigurava da ne sadrži sljedeće riječi: windows, Microsoft, desktop, system, system32 ili syswow64. Ako direktorij već postoji, imenu se dodaje "NLS_{6 znakova}".

resurs 0x102 se analizira i datoteke se ubacuju %ProgramFiles% ili %AppData%, u nasumično odabrani folder. Vrijeme kreiranja je promijenjeno da ima iste vrijednosti kao kernel32.dll.

Na primjer, ovdje je folder i lista datoteka kreiranih odabirom izvršne datoteke C:Windowssystem32TCPSVCS.exe kao izvor podataka.

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 6. Izdvajanje različitih komponenti

Struktura resursa 0x102 u kapaljci je prilično složeno. Ukratko, sadrži:
— Imena datoteka
— Veličina i sadržaj datoteke
— Format kompresije (COMPRESSION_FORMAT_LZNT1, koju koristi funkcija RtlDecompressBuffer)

Prvi fajl se resetuje kao TCPSVCS.exe, što je legitimno AcroTranscoder.exe (prema FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Možda ste primijetili da su neke DLL datoteke veće od 11 MB. To je zato što je veliki neprekidni bafer nasumičnih podataka smješten unutar izvršne datoteke. Moguće je da je to način da se izbjegne detekcija od strane nekih sigurnosnih proizvoda.

Osiguravanje upornosti

resurs 0x101 u dropperu sadrži dva 32-bitna cijela broja koja određuju kako treba pružiti postojanost. Vrijednost prvog određuje kako će zlonamjerni softver opstati bez administratorskih prava.

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Tabela 1. Mehanizam postojanosti bez administratorskih prava

Vrijednost drugog cijelog broja određuje kako bi zlonamjerni softver trebao postići postojanost kada se pokreće s administratorskim pravima.

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Tabela 2. Mehanizam postojanosti s administratorskim pravima

Ime usluge je ime datoteke bez ekstenzije; ime za prikaz je ime fascikle, ali ako već postoji, string “ se dodaje u njegaRevision 1” (broj se povećava sve dok se ne pronađe nekorišteno ime). Operateri su se pobrinuli da upornost kroz uslugu bude robusna - u slučaju kvara, servis treba ponovo pokrenuti nakon 1 sekunde. Zatim vrijednost WOW64 Ključ registratora nove usluge je postavljen na 4, što ukazuje da se radi o 32-bitnoj usluzi.

Planirani zadatak se kreira kroz nekoliko COM interfejsa: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. U suštini, zlonamjerni softver kreira skriveni zadatak, postavlja informacije o računu zajedno s informacijama o trenutnom korisniku ili administratoru, a zatim postavlja okidač.

Ovo je dnevni zadatak u trajanju od 24 sata i intervalima između dva izvršavanja od 10 minuta, što znači da će se izvoditi neprekidno.

Malicious bit

U našem primjeru, izvršna datoteka TCPSVCS.exe (AcroTranscoder.exe) je legitiman softver koji učitava DLL-ove koji se resetuju zajedno s njim. U ovom slučaju, to je od interesa Flash Video Extension.dll.

Njegova funkcija DLLMain samo poziva drugu funkciju. Prisutni su neki nejasni predikati:

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 7. Fazni predikati

Nakon ovih obmanjujućih provjera, kod dobiva odjeljak .text file TCPSVCS.exe, mijenja svoju odbranu u PAGE_EXECUTE_READWRITE i prepisuje ga dodavanjem lažnih instrukcija:

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 8. Redoslijed instrukcija

Na kraju do adrese funkcije FLVCore::Uninitialize(void), izvezeno Flash Video Extension.dll, dodato je uputstvo CALL. To znači da nakon učitavanja zlonamjernog DLL-a, kada runtime pozove WinMain в TCPSVCS.exe, pokazivač instrukcije će pokazivati ​​na NOP, uzrokujući FLVCore::Uninitialize(void), sljedeća faza.

Funkcija jednostavno kreira mutex počevši od {181C8480-A975-411C-AB0A-630DB8B0A221}nakon čega slijedi trenutno korisničko ime. Zatim čita izbačenu *.db3 datoteku, koja sadrži kod neovisan o poziciji, i koristi CreateThread za izvršenje sadržaja.

Sadržaj *.db3 datoteke je shellcode koji OceanLotus grupa obično koristi. Ponovo smo uspješno raspakirali njegov teret koristeći skriptu emulatora koju smo objavili na GitHubu.

Skripta izdvaja završnu fazu. Ova komponenta je backdoor, u kojem smo već analizirali prethodna studija OceanLotus. To može odrediti GUID {A96B020F-0000-466F-A96D-A91BBF8EAC96} binarni fajl. Konfiguracija zlonamjernog softvera je još uvijek šifrirana u PE resursu. Ima približno istu konfiguraciju, ali se C&C serveri razlikuju od prethodnih:

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

OceanLotusov tim ponovo demonstrira kombinaciju različitih tehnika kako bi se izbjeglo otkrivanje. Vratili su se sa "pročišćenim" dijagramom procesa infekcije. Odabirom nasumičnih imena i popunjavanjem izvršnih datoteka nasumičnim podacima, oni smanjuju broj pouzdanih IoC-a (na osnovu hashova i imena datoteka). Štaviše, zahvaljujući korištenju učitavanja DLL-a treće strane, napadači trebaju samo ukloniti legitimni binarni AcroTranscoder.

Samoraspakirajuće arhive

Nakon RTF datoteka, grupa je prešla na samoraspakirajuće (SFX) arhive sa uobičajenim ikonama dokumenata kako bi dodatno zbunila korisnika. Threatbook je pisao o ovome (link na kineskom). Nakon pokretanja, samoraspakirajuće RAR datoteke se odbacuju i izvršavaju se DLL-ovi sa ekstenzijom .ocx, čiji je konačni teret prethodno dokumentiran {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Od sredine januara 2019. godine, OceanLotus ponovo koristi ovu tehniku, ali mijenja neke konfiguracije s vremenom. U ovom dijelu ćemo govoriti o tehnici i promjenama.

Kreiranje mamaca

Dokument THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) prvi put je pronađen 2018. Ovaj SFX fajl je mudro kreiran - u opisu (Informacije o verziji) kaže da je ovo JPEG slika. SFX skripta izgleda ovako:

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 9. SFX komande

Zlonamjerni softver se resetira {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), kao i sliku 2018 thich thong lac.jpg.

Slika varalice izgleda ovako:

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 10. Slika varalice

Možda ste primijetili da prva dva reda u SFX skripti dvaput pozivaju OCX datoteku, ali to nije greška.

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

Kontrolni tok OCX datoteke je vrlo sličan drugim komponentama OceanLotus - mnogim sekvencama komandi JZ/JNZ и PUSH/RET, naizmjenično s kodom za smeće.

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 11. Zamagljeni kod

Nakon filtriranja neželjenog koda, izvezite DllRegisterServer, zvao regsvr32.exe, kao što slijedi:

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 12. Osnovni kod instalatera

Uglavnom, na prvi poziv DllRegisterServer export postavlja vrijednost registra HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model za šifrirani pomak u DLL (0x10001DE0).

Kada se funkcija pozove drugi put, ona čita istu vrijednost i izvršava se na toj adresi. Odavde se resurs i mnoge akcije u RAM-u čitaju i izvršavaju.

Shellcode je isti PE loader koji je korišten u prošlim OceanLotus kampanjama. Može se emulirati pomoću naš scenario. Na kraju se resetira db293b825dcc419ba7dc2c49fa2757ee.dll, učitava ga u memoriju i izvršava DllEntry.

DLL izdvaja sadržaj svog resursa, dešifruje (AES-256-CBC) i dekompresuje (LZMA). Resurs ima specifičan format koji je lako dekompilirati.

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 13. Struktura konfiguracije instalatera (KaitaiStruct Visualizer)

Konfiguracija je eksplicitno specificirana - ovisno o nivou privilegija, binarni podaci će biti upisani %appdata%IntellogsBackgroundUploadTask.cpl ili %windir%System32BackgroundUploadTask.cpl (ili SysWOW64 za 64-bitne sisteme).

Dalja postojanost je osigurana kreiranjem zadatka s imenom BackgroundUploadTask[junk].jobgde [junk] predstavlja skup bajtova 0x9D и 0xA0.

Naziv aplikacije zadatka %windir%System32control.exe, a vrijednost parametra je putanja do preuzete binarne datoteke. Skriveni zadatak se izvodi svaki dan.

Strukturno, CPL datoteka je DLL sa internim imenom ac8e06de0a6c4483af9837d96504127e.dll, koji izvozi funkciju CPlApplet. Ovaj fajl dešifruje svoj jedini resurs {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, zatim učitava ovaj DLL i poziva njegov jedini izvoz DllEntry.

Backdoor konfiguracijski fajl

Konfiguracija backdoor-a je šifrirana i ugrađena u svoje resurse. Struktura konfiguracijske datoteke je vrlo slična prethodnoj.

ESET: nove backdoor šeme isporuke za OceanLotus sajber grupu
Slika 14. Struktura konfiguracije pozadinskih vrata (KaitaiStruct Visualizer)

Iako je struktura slična, mnoge vrijednosti polja su ažurirane u odnosu na one prikazane u naš stari izveštaj.

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

Dodatna istraživanja

Pri prikupljanju uzoraka uočili smo neke karakteristike. Upravo opisani primjerak pojavio se oko jula 2018., a drugi poput njega pojavili su se tek od sredine januara do početka februara 2019. SFX arhiva je korištena kao vektor infekcije, ispuštajući legitimni lažni dokument i zlonamjerni OSX fajl.

Iako OceanLotus koristi lažne vremenske oznake, primijetili smo da su vremenske oznake SFX i OCX datoteka uvijek iste (0x57B0C36A (08. u 14:2016 UTC) i 0x498BE80F (02/06/2009 @ 7:34 am UTC) respektivno). Ovo vjerovatno ukazuje da autori imaju neku vrstu “dizajnera” koji koristi iste šablone i jednostavno mijenja neke karakteristike.

Među dokumentima koje smo proučavali od početka 2018. nalaze se različita imena koja ukazuju na zemlje od interesa za napadače:

— Nove kontakt informacije Cambodia Media(New).xls.exe
— 李建香 (个人简历).exe (lažni pdf dokument CV-a)
— povratne informacije, Reli u SAD od 28. do 29. jula 2018.exe

Otkako su zadnja vrata otkrivena {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll i objavljivanjem njegove analize od strane nekoliko istraživača, uočili smo neke promjene u podacima o konfiguraciji zlonamjernog softvera.

Prvo, autori su počeli da uklanjaju imena iz pomoćnih DLL-ova (DNSprov.dll i dvije verzije HttpProv.dll). Operateri su tada prestali sa pakiranjem trećeg DLL-a (druga verzija HttpProv.dll), odabirom ugradnje samo jednog.

Drugo, mnoga backdoor konfiguracijska polja su promijenjena, vjerovatno da bi se izbjeglo otkrivanje jer je mnogo IoC-a postalo dostupno. Važna polja koja su modificirali autori uključuju:

  • AppX ključ registra promijenjen (pogledajte IoC-ove)
  • mutex kodirajući niz ("def", "abc", "ghi")
  • broj porta

Konačno, sve nove analizirane verzije imaju nove C&C navedene u odjeljku IoC.

nalazi

OceanLotus nastavlja da se razvija. Sajber grupa je fokusirana na usavršavanje i proširenje alata i mamaca. Autori prikrivaju zlonamjerne sadržaje koristeći dokumente koji privlače pažnju čija je tema relevantna za namjeravane žrtve. Oni razvijaju nove šeme i takođe koriste javno dostupne alate, kao što je eksploatacija Equation Editor. Štaviše, oni poboljšavaju alate za smanjenje broja artefakata preostalih na mašinama žrtava, čime se smanjuje mogućnost otkrivanja od strane antivirusnog softvera.

Indikatori kompromisa

Dostupni su indikatori kompromisa kao i MITER ATT&CK atributi na Welivesecurity и na GitHubu.

izvor: www.habr.com

Dodajte komentar