ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus

Ing kirim iki, kita bakal ngandhani kepiye klompok cyber OceanLotus (APT32 lan APT-C-00) bubar nggunakake salah sawijining eksploitasi sing kasedhiya kanggo umum. CVE-2017-11882, vulnerabilities korupsi memori ing Microsoft Office, lan carane malware grup entuk terus-terusan ing sistem kompromi tanpa ninggalake tilak. Sabanjure, kita bakal njlèntrèhaké kepriyé, wiwit awal 2019, grup kasebut nggunakake arsip ekstraksi dhewe kanggo mbukak kode.

OceanLotus spesialisasi ing spionase cyber, kanthi target prioritas yaiku negara-negara ing Asia Tenggara. Penyerang palsu dokumen sing narik kawigaten manungsa waé saka korban potensial kanggo gawe uwong yakin wong nglakokaké backdoor, lan uga digunakake ing ngembangaken alat. Cara sing digunakake kanggo nggawe honeypots beda-beda antarane serangan, saka file "ganda-ekstensi", arsip self-extracting, dokumen karo macro, kanggo eksploitasi dikenal.

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus

Nggunakake eksploitasi ing Microsoft Equation Editor

Ing pertengahan 2018, OceanLotus nganakake kampanye sing ngeksploitasi kerentanan CVE-2017-11882. Salah sawijining dokumen jahat saka grup cyber dianalisis dening spesialis saka 360 Threat Intelligence Center (riset ing Cina), kalebu katrangan rinci babagan eksploitasi. Kiriman ing ngisor iki ngemot ringkesan dokumen ala.

Tataran kapisan

Dokumen kasebut FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) padha karo kang kasebut ing panliten ing ndhuwur. Iku menarik amarga ngarahake pangguna sing kasengsem ing politik Kamboja (CNRP - Partai Penyelamat Nasional Kamboja, dibubarake ing pungkasan 2017). Senadyan ekstensi .doc, dokumen kasebut ana ing format RTF (ndeleng gambar ing ngisor iki), ngemot kode sampah, lan uga kleru.

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 1. "Sampah" ing RTF

Sanajan ana unsur kacau, Word mbukak file RTF iki kanthi sukses. Nalika sampeyan bisa ndeleng ing Figure 2, ana struktur EQNOLEFILEHDR ing offset 0xC00, ngiring dening header MTEF, banjur entri MTEF (Gambar 3) kanggo font.

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 2. Nilai entri FONT

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Tokoh 3. Format rekaman FONT

Kemungkinan kebanjiran ing lapangan jeneng, amarga ukurane ora dicenthang sadurunge nyalin. Jeneng sing dawa banget nyebabake kerentanan. Nalika sampeyan bisa ndeleng saka isi file RTF (offset 0xC26 ing Figure 2), buffer kapenuhan shellcode ngiring dening printah dummy (0x90) lan alamat bali 0x402114. Alamat minangka unsur dialog ing EQNEDT32.exe, nuduhake instruksi RET. Iki nyebabake EIP tumuju menyang wiwitan lapangan jenengngemot shellcode.

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 4. Wiwitan saka shellcode eksploitasi

Alamat 0x45BD3C nyimpen variabel sing dereferenced nganti tekan pointer kanggo struktur saiki dimuat MTEFData. Liyane saka shellcode kene.

Tujuan saka shellcode yaiku kanggo nglakokake potongan kapindho shellcode sing dipasang ing dokumen sing mbukak. Shellcode asli pisanan nyoba nemokake deskriptor file saka dokumen sing mbukak kanthi ngulang kabeh deskriptor sistem (NtQuerySystemInformation kanthi argumentasi SystemExtendedHandleInformation) lan mriksa yen padha cocog PID deskriptor lan PID proses WinWord lan apa dokumen dibukak nganggo topeng akses - 0x12019F.

Kanggo konfirmasi manawa gagang sing bener wis ditemokake (lan dudu gagang menyang dokumen liyane sing mbukak), isi file ditampilake nggunakake fungsi kasebut. CreateFileMapping, lan shellcode mriksa apa papat bita pungkasan dokumen cocog "yyyy"(metode Egg Hunting). Sawise sing cocog ditemokake, dokumen kasebut disalin menyang folder sementara (GetTempPath) carane ole.dll. Banjur 12 bita pungkasan dokumen diwaca.

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 5. Penanda dokumen pungkasan

Nilai 32-bit antarane panandha AABBCCDD и yyyy iku offset saka shellcode sabanjuré. Iki diarani nggunakake fungsi CreateThread. Diekstrak shellcode sing padha sing digunakake dening grup OceanLotus sadurunge. skrip emulasi Python, sing dirilis ing Maret 2018, isih bisa digunakake kanggo dump tahap kapindho.

Tahap kapindho

Mbusak Komponen

Jeneng file lan direktori dipilih kanthi dinamis. Kode kasebut kanthi acak milih jeneng file sing bisa dieksekusi utawa DLL C:Windowssystem32. Banjur nggawe panjalukan kanggo sumber daya lan njupuk lapangan FileDescription digunakake minangka jeneng folder. Yen iki ora bisa, kode kanthi acak milih jeneng folder saka direktori %ProgramFiles% utawa C:Windows (saka GetWindowsDirectoryW). Ngindhari nggunakake jeneng sing bisa konflik karo file sing wis ana lan mesthekake yen ora ngemot tembung ing ngisor iki: windows, Microsoft, desktop, system, system32 utawa syswow64. Yen direktori wis ana, "NLS_{6 karakter}" ditambahake ing jeneng kasebut.

sumber 0x102 dianalisis lan file dibuwang menyang %ProgramFiles% utawa %AppData%, menyang folder sing dipilih kanthi acak. Ngganti wektu nggawe supaya duwe nilai sing padha karo kernel32.dll.

Contone, ing ngisor iki folder lan dhaptar file sing digawe kanthi milih eksekusi C:Windowssystem32TCPSVCS.exe minangka sumber data.

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Figure 6. Njabut macem-macem komponen

Struktur sumber daya 0x102 ing dropper cukup rumit. Ing ringkesan, ngemot:
- Jeneng berkas
- Ukuran file lan isi
- Format kompresi (COMPRESSION_FORMAT_LZNT1, digunakake dening fungsi RtlDecompressBuffer)

File pisanan direset minangka TCPSVCS.exe, sing sah AcroTranscoder.exe (miturut FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Sampeyan bisa uga ngerteni manawa sawetara file DLL luwih gedhe tinimbang 11 MB. Iki amarga buffer contiguous data acak diselehake ing file eksekusi. Bisa uga iki minangka cara kanggo nyegah deteksi dening sawetara produk keamanan.

Njamin ketekunan

sumber 0x101 ing dropper ngandhut loro wilangan bulat 32-dicokot sing nemtokake carane terus-terusan kudu kasedhiya. Nilai pisanan nemtokake carane malware bakal tetep tanpa hak administrator.

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Tabel 1. Mekanisme kegigihan tanpa hak administrator

Nilai saka integer kapindho nemtokake cara malware kudu terus-terusan nalika mlaku nganggo hak administrator.

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Tabel 2. Mekanisme kegigihan kanthi hak administrator

Jeneng layanan yaiku jeneng berkas tanpa ekstensi; jeneng tampilan iku jeneng folder, nanging yen wis ana, senar " ditambahake menyangRevision 1” (nomer tambah nganti jeneng sing ora digunakake). Operator mesthekake yen terus-terusan liwat layanan kasebut kuwat - yen gagal, layanan kasebut kudu diwiwiti maneh sawise 1 detik. Banjur nilai WOW64 Tombol registri layanan anyar disetel dadi 4, nuduhake yen iku layanan 32-bit.

Tugas sing dijadwal digawe liwat sawetara antarmuka COM: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. Ateges, malware nggawe tugas sing didhelikake, nyetel informasi akun bebarengan karo informasi pangguna utawa administrator saiki, banjur nyetel pemicu.

Iki minangka tugas saben dina kanthi durasi 24 jam lan interval antarane rong eksekusi 10 menit, tegese bakal terus-terusan.

Sikil ala

Ing conto kita, file eksekusi TCPSVCS.exe (AcroTranscoder.exe) iku piranti lunak sah sing ngemot DLL sing direset bebarengan karo. Ing kasus iki, iku kapentingan Flash Video Extension.dll.

Fungsine DLLMain mung nelpon fungsi liyane. Sawetara predikat fuzzy ana:

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 7. Predikat kabur

Sawise mriksa mblusukake iki, kode nemu bagean .text ngajukake TCPSVCS.exe, ngganti pertahanan sawijining PAGE_EXECUTE_READWRITE lan nulis maneh kanthi nambahi instruksi dummy:

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 8. Urutan instruksi

Ing mburi kanggo alamat fungsi FLVCore::Uninitialize(void), diekspor Flash Video Extension.dll, instruksi ditambahake CALL. Iki tegese sawise DLL angkoro dimuat, nalika runtime telpon WinMain в TCPSVCS.exe, pitunjuk instruksi bakal nuding NOP, nyebabake FLVCore::Uninitialize(void), tataran sabanjure.

Fungsi mung nggawe mutex diwiwiti karo {181C8480-A975-411C-AB0A-630DB8B0A221}ngiring dening jeneng panganggo saiki. Banjur maca file * .db3 sing dibuwang, sing ngemot kode independen posisi, lan nggunakake CreateThread kanggo nglakokaké isi.

Isi file *.db3 yaiku shellcode sing biasane digunakake klompok OceanLotus. Kita maneh kasil mbongkar payload nggunakake skrip emulator sing diterbitake ing GitHub.

Skrip ngekstrak tahap pungkasan. Komponen iki minangka backdoor, sing wis dianalisis sinau OceanLotus sadurungé. Iki bisa ditemtokake dening GUID {A96B020F-0000-466F-A96D-A91BBF8EAC96} file binar. Konfigurasi malware isih dienkripsi ing sumber PE. Nduwe konfigurasi sing kira-kira padha, nanging server C&C beda karo sing sadurunge:

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

Tim OceanLotus maneh nduduhake kombinasi teknik sing beda supaya ora bisa dideteksi. Dheweke bali kanthi diagram "olahan" proses infeksi. Kanthi milih jeneng acak lan ngisi eksekusi kanthi data acak, nyuda jumlah IoC sing dipercaya (adhedhasar hash lan jeneng file). Kajaba iku, amarga nggunakake loading DLL pihak katelu, panyerang mung kudu mbusak binar sing sah. AcroTranscoder.

Arsip ngekstrak dhewe

Sawise file RTF, grup kasebut pindhah menyang arsip self-extracting (SFX) kanthi lambang dokumen umum kanggo luwih bingung pangguna. Threatbook nulis babagan iki (link ing Cina). Sawise diluncurake, file RAR sing diekstrak dhewe dibuwang lan DLL kanthi ekstensi .ocx dieksekusi, beban pungkasan sing wis didokumentasikake sadurunge. {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Wiwit pertengahan Januari 2019, OceanLotus wis nggunakake maneh teknik iki, nanging ngganti sawetara konfigurasi liwat wektu. Ing bagean iki kita bakal ngomong babagan teknik lan owah-owahan.

Nggawe Lure

Dokumen kasebut THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) pisanan ditemokake ing 2018. File SFX iki digawe kanthi wicaksana - ing katrangan (Info Versi) ngandika iki gambar JPEG. Skrip SFX katon kaya iki:

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 9. Perintah SFX

Malware reset {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), uga gambar 2018 thich thong lac.jpg.

Gambar decoy katon kaya iki:

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 10. Gambar decoy

Sampeyan bisa uga wis ngeweruhi sing loro baris pisanan ing script SFX nelpon file OCX kaping pindho, nanging iki ora kesalahan.

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

Aliran kontrol file OCX meh padha karo komponen OceanLotus liyane - akeh urutan printah JZ/JNZ и PUSH/RET, gantian nganggo kode sampah.

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 11. Kode obfuscated

Sawise nyaring kode sampah, ekspor DllRegisterServer, diarani regsvr32.exe, kaya ing ngisor iki:

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 12. Kode installer dhasar

Sejatine, ing telpon pisanan DllRegisterServer ekspor nyetel nilai pendaptaran HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model kanggo offset ndhelik ing DLL (0x10001DE0).

Nalika fungsi kasebut disebut kaping pindho, maca nilai sing padha lan dieksekusi ing alamat kasebut. Saka kene sumber lan akeh tumindak ing RAM diwaca lan kaleksanan.

Shellcode minangka loader PE sing padha digunakake ing kampanye OceanLotus kepungkur. Bisa ditiru nggunakake naskah kita. Ing pungkasan dheweke ngreset db293b825dcc419ba7dc2c49fa2757ee.dll, dimuat menyang memori lan dieksekusi DllEntry.

DLL ngekstrak isi sumber daya, dekripsi (AES-256-CBC) lan decompress (LZMA). Sumber daya kasebut nduweni format tartamtu sing gampang dikompilasi.

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 13. Struktur konfigurasi installer (KaitaiStruct Visualizer)

Konfigurasi kasebut kanthi tegas - gumantung saka tingkat hak istimewa, data binar bakal ditulis %appdata%IntellogsBackgroundUploadTask.cpl utawa %windir%System32BackgroundUploadTask.cpl (utawa SysWOW64 kanggo sistem 64-bit).

Ketekunan luwih ditindakake kanthi nggawe tugas kanthi jeneng kasebut BackgroundUploadTask[junk].jobngendi [junk] nggantosi sakumpulan bita 0x9D и 0xA0.

Jeneng Aplikasi Tugas %windir%System32control.exe, lan nilai parameter minangka path menyang file binar sing diundhuh. Tugas sing didhelikake mlaku saben dina.

Secara struktural, file CPL minangka DLL kanthi jeneng internal ac8e06de0a6c4483af9837d96504127e.dll, sing ngekspor fungsi CPlApplet. Berkas iki dekripsi sumber daya siji-sijine {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, banjur mbukak DLL iki lan nelpon mung ekspor DllEntry.

File konfigurasi backdoor

Konfigurasi backdoor dienkripsi lan dipasang ing sumber daya. Struktur file konfigurasi meh padha karo sing sadurunge.

ESET: skema pangiriman backdoor anyar kanggo grup cyber OceanLotus
Gambar 14. Struktur konfigurasi backdoor (KaitaiStruct Visualizer)

Sanajan strukture padha, akeh nilai lapangan sing wis dianyari saka sing ditampilake ing laporan lawas kita.

Unsur pisanan saka array biner ngemot DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), dikenali dening Tencent. Nanging wiwit jeneng ekspor dibusak saka binar, hash ora cocog.

Riset Tambahan

Nalika ngumpulake conto, kita weruh sawetara ciri. Spesimen sing lagi diterangake muncul sekitar Juli 2018, lan liya-liyane sing kaya ngono muncul ing pertengahan Januari nganti awal Februari 2019. Arsip SFX digunakake minangka vektor infèksi, ngeculake dokumen decoy sing sah lan file OSX sing ala.

Sanajan OceanLotus nggunakake cap wektu palsu, kita ngerteni manawa cap wektu file SFX lan OCX mesthi padha (0x57B0C36A (08/14/2016 @ 7:15 UTC) lan 0x498BE80F (02/06/2009 @ 7:34 UTC) mungguh). Iki mbokmenawa nuduhake yen penulis duwe sawetara jenis "desainer" sing nggunakake cithakan padha lan mung ngganti sawetara ciri.

Antarane dokumen sing wis kita sinau wiwit wiwitan taun 2018, ana macem-macem jeneng sing nuduhake negara sing disenengi para penyerang:

— Informasi Kontak Anyar Saka Media Kamboja(Anyar).xls.exe
— 李建香 (个人简历).exe (dokumen pdf palsu saka CV)
- saran, Rally ing USA saka 28-29 Juli 2018.exe

Wiwit lawang mburi ditemokake {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll lan publikasi analisis dening sawetara peneliti, kita diamati sawetara owah-owahan ing data konfigurasi malware.

Pisanan, penulis wiwit mbusak jeneng saka helper DLLs (DNSprov.dll lan rong versi HttpProv.dll). Operator banjur mandheg ngemas DLL katelu (versi kapindho HttpProv.dll), milih kanggo embed mung siji.

Kapindho, akeh lapangan konfigurasi backdoor diganti, bisa uga ora bisa dideteksi amarga akeh IoC sing kasedhiya. Bidang penting sing diowahi dening penulis kalebu:

  • Kunci registri AppX diganti (ndeleng IoCs)
  • string encoding mutex ("def", "abc", "ghi")
  • nomer port

Pungkasan, kabeh versi anyar sing dianalisis duwe C&C anyar sing kadhaptar ing bagean IoC.

temonan

OceanLotus terus berkembang. Klompok cyber fokus ing nyaring lan ngembangake alat lan decoys. Penulis nyamar muatan jahat nggunakake dokumen sing narik kawigaten sing topike cocog karo korban sing dituju. Dheweke ngembangake skema anyar lan uga nggunakake alat sing kasedhiya kanggo umum, kayata eksploitasi Equation Editor. Kajaba iku, dheweke nambah alat kanggo nyuda jumlah artefak sing isih ana ing mesin korban, saengga nyuda kemungkinan deteksi dening piranti lunak antivirus.

Indikator kompromi

Indikator kompromi uga atribut MITRE ATT&CK kasedhiya ing Welivesecurity и ing GitHub.

Source: www.habr.com

Add a comment