Dina tulisan ieu kami bakal nyarioskeun ka anjeun kumaha grup cyber OceanLotus (APT32 sareng APT-C-00) nembe nganggo salah sahiji eksploitasi anu sayogi pikeun umum. , kerentanan korupsi memori dina Microsoft Office, sarta kumaha malware grup urang ngahontal kegigihan dina sistem compromised tanpa ninggalkeun renik. Salajengna, urang bakal ngajelaskeun kumaha, ti mimiti 2019, grup éta ngagunakeun arsip ékstraksi diri pikeun ngajalankeun kode.
OceanLotus spésialisasi dina spionase cyber, kalayan target prioritas nyaéta nagara-nagara di Asia Tenggara. Panyerang ngajalin dokumén anu narik perhatian korban poténsial pikeun ngayakinkeun aranjeunna pikeun ngaéksekusi backdoor, sareng ogé nuju ngembangkeun alat. Métode anu digunakeun pikeun nyieun honeypots rupa-rupa dina sagala serangan, ti "double-extension" file, arsip timer extracting, dokumén kalawan macros, mun exploits dipikawanoh.

Ngagunakeun eksploitasi dina Microsoft Equation Editor
Dina pertengahan 2018, OceanLotus ngalaksanakeun kampanye anu ngamangpaatkeun kerentanan CVE-2017-11882. Salah sahiji dokumén jahat tina grup cyber dianalisis ku spesialis ti 360 Threat Intelligence Center (), kaasup pedaran lengkep ngeunaan mangpaatkeun. Tulisan di handap ngandung gambaran ngeunaan dokumen jahat sapertos kitu.
Tahap Kahiji
Dokuménna FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) sarua jeung nu disebutkeun dina pangajaran di luhur. Éta metot sabab ieu aimed di pamaké museurkeun pulitik Kamboja (CNRP - Partéi Nyalametkeun Nasional Kamboja, leyur dina ahir 2017). Sanajan extension .doc, dokumen dina format RTF (tingali gambar di handap), ngandung kode sampah, sarta ogé menyimpang.

Gambar 1. "Sampah" dina RTF
Sanajan aya elemen garbled, Word muka file RTF ieu hasil. Sakumaha anjeun tiasa tingali dina Gambar 2, aya hiji struktur EQNOLEFILEHDR di offset 0xC00, dituturkeun ku lulugu MTEF, lajeng entri MTEF (gambar 3) pikeun font.

angka 2. nilai Éntri FONT

Gambar 3.
Kamungkinan limpahan di sawah nami, sabab ukuranana henteu dipariksa sateuacan nyalin. Ngaran anu panjang teuing memicu kerentanan. Sakumaha anjeun tiasa tingali tina eusi file RTF (offset 0xC26 dina Gambar 2), panyangga dieusian ku shellcode dituturkeun ku paréntah dummy (0x90) jeung alamat mulang 0x402114. Alamat mangrupa unsur dialog dina EQNEDT32.exe, nunjukkeun parentah RET. Ieu nyababkeun EIP nunjuk ka awal lapangan namingandung shellcode.

Gambar 4. Mimitian tina shellcode mangpaatkeun
alamat 0x45BD3C nyimpen variabel anu dereferenced nepi ka ngahontal pointer kana struktur ayeuna dimuat MTEFData. Sesa shellcode aya di dieu.
Tujuan shellcode nyaéta pikeun ngaéksekusi sapotong kadua shellcode anu dipasang dina dokumen anu kabuka. Shellcode aslina mimiti nyobaan pikeun manggihan deskriptor file tina dokumen kabuka ku iterating leuwih sakabéh deskriptor sistem (NtQuerySystemInformation kalawan argumen SystemExtendedHandleInformation) sareng mariksa upami aranjeunna cocog PID deskriptor jeung PID prosés WinWord sareng naha dokumén dibuka nganggo masker aksés - 0x12019F.
Pikeun ngonfirmasi yén cecekelan anu leres parantos kapanggih (sanés cecekelan kana dokumen anu sanés dibuka), eusi file dipintonkeun nganggo fungsina. CreateFileMapping, sareng shellcode mariksa naha opat bait terakhir tina dokumen cocog "yyyy"(Metode moro endog). Sakali hiji patandingan kapanggih, dokumén ditiron ka folder samentara (GetTempPath) Kumaha ole.dll. Teras 12 bait terakhir tina dokumén dibaca.
![]()
Gambar 5. Tungtung spidol Dokumén
32-bit nilai antara spidol AABBCCDD и yyyy nyaeta offset tina shellcode salajengna. Ieu disebut ngagunakeun fungsi CreateThread. Diekstrak shellcode anu sami anu dianggo ku grup OceanLotus sateuacana. , anu kami dikaluarkeun dina Maret 2018, masih dianggo pikeun dump tahap kadua.
Tahap kadua
Nyoplokkeun komponén
Ngaran file sareng diréktori dipilih sacara dinamis. Kodeu sacara acak milih nami file anu tiasa dieksekusi atanapi DLL C:Windowssystem32. Éta teras nyuhunkeun sumber dayana sareng retrieves lapangan FileDescription pikeun dianggo salaku nami folder. Upami ieu henteu jalan, kode sacara acak milih nami polder tina diréktori %ProgramFiles% atawa C:Windows (из GetWindowsDirectoryW). Он избегает использования имени, которое может конфликтовать с существующими файлами, и следит за тем, чтобы оно не содержало следующие слова: windows, Microsoft, desktop, system, system32 atawa syswow64. Lamun diréktori geus aya, "NLS_{6 karakter}" ditambahkeun kana ngaran.
sumber 0x102 dianalisis sareng file dibuang %ProgramFiles% atawa %AppData%, ka polder anu dipilih sacara acak. Robah waktos nyiptakeun gaduh nilai anu sami sareng kernel32.dll.
Salaku conto, ieu polder sareng daptar file anu didamel ku milih anu tiasa dieksekusi C:Windowssystem32TCPSVCS.exe salaku sumber data.

Gambar 6. Extracting rupa komponén
Struktur sumberdaya 0x102 dina dropper cukup kompleks. Dina nutshell, éta ngandung:
- Ngaran koropak
- Ukuran file sareng eusi
- Format komprési (COMPRESSION_FORMAT_LZNT1, dipaké ku fungsi RtlDecompressBuffer)
File munggaran direset salaku TCPSVCS.exe, anu sah AcroTranscoder.exe (numutkeun kana FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).
Anjeun panginten tiasa terang yén sababaraha file DLL langkung ageung tibatan 11 MB. Ieu alatan panyangga contiguous badag data acak disimpen di jero file laksana. Aya kamungkinan yén ieu mangrupikeun cara pikeun nyegah deteksi ku sababaraha produk kaamanan.
Mastikeun kegigihan
sumber 0x101 dina dropper ngandung dua integer 32-bit nu nangtukeun kumaha kegigihan kudu disadiakeun. Nilai kahiji nangtukeun kumaha malware bakal tetep tanpa hak administrator.

meja 1. mékanisme kegigihan tanpa hak administrator
Nilai integer kadua nangtukeun kumaha malware kudu ngahontal persistence lamun ngajalankeun kalawan hak administrator.

meja 2. mékanisme persistence kalawan hak administrator
Ngaran jasa nyaéta nami file tanpa ekstensi; nami tampilan nyaéta nami folder, tapi upami éta parantos aya, senar " ditambihan kana étaRevision 1” (Jumlahna nambahan nepi ka kapanggih ngaran nu teu dipaké). Operator mastikeun yén kegigihan ngalangkungan jasa éta kuat - upami gagal, jasa kedah dibalikan deui saatos 1 detik. Lajeng nilai WOW64 Konci pendaptaran layanan anyar disetel ka 4, nunjukkeun yén éta layanan 32-bit.
Hiji tugas dijadwalkeun dijieun ngaliwatan sababaraha interfaces COM: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. Intina, malware nyiptakeun tugas disumputkeun, nyetél inpormasi akun sareng inpormasi pangguna atanapi administrator ayeuna, teras nyetél pemicu.
Ieu mangrupikeun tugas sapopoé kalayan durasi 24 jam sareng interval antara dua palaksanaan 10 menit, anu hartosna éta bakal terus-terusan.
Bit jahat
Dina conto urang, file executable TCPSVCS.exe (AcroTranscoder.exe) mangrupikeun parangkat lunak sah anu ngamuat DLL anu direset sareng éta. Dina hal ieu, éta dipikaresep Flash Video Extension.dll.
fungsina DLLMain ngan nelepon fungsi sejen. Sababaraha predikat fuzzy aya:

Gambar 7. Predikat Fuzzy
Saatos cék anu nyasabkeun ieu, kodeu nampi bagian .text file TCPSVCS.exe, ngarobah pertahanan na ka PAGE_EXECUTE_READWRITE sareng nyerat deui ku nambihan petunjuk dummy:

Gambar 8. Runtuyan parentah
Di tungtung ka alamat fungsi FLVCore::Uninitialize(void), diékspor Flash Video Extension.dll, instruksi ditambahkeun CALL. Ieu ngandung harti yén sanggeus DLL jahat dimuat, nalika runtime nelepon WinMain в TCPSVCS.exe, pointer instruksi bakal nunjuk ka NOP, ngabalukarkeun FLVCore::Uninitialize(void), tahap salajengna.
Fungsina ngan saukur nyiptakeun mutex dimimitian ku {181C8480-A975-411C-AB0A-630DB8B0A221}dituturkeun ku ngaran pamaké ayeuna. Ieu lajeng maca dumped * .db3 file, nu ngandung kode posisi-bebas, sarta pamakéan CreateThread pikeun ngaéksekusi eusi.
Eusi file *.db3 nyaéta shellcode anu biasana dianggo ku grup OceanLotus. Urang deui hasil unpacked payload na ngagunakeun skrip émulator kami diterbitkeun .
Naskah ékstrak tahap ahir. Komponén ieu mangrupikeun backdoor, anu kami parantos dianalisis . Ieu bisa ditangtukeun ku GUID {A96B020F-0000-466F-A96D-A91BBF8EAC96} file binér. Konfigurasi malware masih énkripsi dina sumberdaya PE. Éta gaduh konfigurasi anu sami, tapi server C&C béda ti anu sateuacana:
- andreagahuvrauvin[.]com
- byronorenstein[.]com
- stienollmache[.]xyz
Tim OceanLotus deui nunjukkeun kombinasi téknik anu béda pikeun nyegah deteksi. Aranjeunna balik kalayan diagram "disempurnakeun" tina prosés inféksi. Ku milih ngaran acak sarta ngeusian executables kalawan data acak, aranjeunna ngurangan jumlah IoCs dipercaya (dumasar kana hashes jeung ngaran file). Sumawona, hatur nuhun kana pamakean DLL pihak katilu, panyerang ngan ukur kedah ngahapus binér anu sah. AcroTranscoder.
Arsip ékstraksi diri
Saatos file RTF, grup ngalih ka arsip ékstraksi diri (SFX) kalayan ikon dokumén umum pikeun ngabingungkeun pangguna. Threatbook nyerat ngeunaan ieu (). Nalika diluncurkeun, file RAR ékstraksi diri diturunkeun sareng DLL kalayan ekstensi .ocx dieksekusi, beban ahir anu parantos didokumentasikeun sateuacana. {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Kusabab pertengahan Januari 2019, OceanLotus parantos ngagunakeun deui téknik ieu, tapi ngarobih sababaraha konfigurasi dina waktosna. Dina bagian ieu urang bakal ngobrol ngeunaan téhnik jeung parobahan.
Nyiptakeun Lure
Dokuménna THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) munggaran kapanggih dina 2018. File SFX ieu didamel sacara bijaksana - dina katerangan (Inpo Vérsi) nyebutkeun ieu gambar JPEG. Skrip SFX sapertos kieu:

angka 9. Paréntah SFX
malware ngareset {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), kitu ogé gambar 2018 thich thong lac.jpg.
Gambar decoy sapertos kieu:

Gambar 10. Gambar decoy
Anjeun bisa geus noticed yén dua garis kahiji dina Aksara SFX nelepon file OCX dua kali, tapi ieu teu kasalahan.
{9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (ShLd.dll)
Aliran kontrol file OCX mirip pisan sareng komponén OceanLotus anu sanés - seueur sekuen paréntah JZ/JNZ и PUSH/RET, ganti ku kode sampah.

Gambar 11. Kode Obfuscated
Saatos nyaring kaluar kode junk, ékspor DllRegisterServer, disebutna regsvr32.exe, sukamaha kieu:

angka 12. Kode installer dasar
Dasarna, dina panggero kahiji DllRegisterServer ékspor nangtukeun nilai pendaptaran HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model pikeun énkripsi offset dina DLL (0x10001DE0).
Nalika fungsi disebut kadua kalina, eta berbunyi nilai sarua jeung executes di alamat nu. Ti dieu sumberdaya jeung loba lampah dina RAM dibaca tur dieksekusi.
Shellcode mangrupikeun loader PE anu sami anu dianggo dina kampanye OceanLotus anu kapungkur. Ieu bisa ditiru ngagunakeun . Tungtungna anjeunna ngareset db293b825dcc419ba7dc2c49fa2757ee.dll, beban kana mémori jeung executes DllEntry.
DLL extracts eusi sumberdaya na, decrypts (AES-256-CBC) jeung decompresses (LZMA) eta. Sumberdayana ngagaduhan format khusus anu gampang dikompilasi.

Gambar 13. Struktur konfigurasi installer (KaitaiStruct Visualizer)
Konfigurasina ditetepkeun sacara eksplisit - gumantung kana tingkat hak husus, data binér bakal diserat %appdata%IntellogsBackgroundUploadTask.cpl atawa %windir%System32BackgroundUploadTask.cpl (atawa SysWOW64 pikeun sistem 64-bit).
Kegigihan salajengna dipastikeun ku nyiptakeun tugas kalayan nami BackgroundUploadTask[junk].jobdimana [junk] ngagambarkeun sakumpulan bait 0x9D и 0xA0.
Ngaran Aplikasi Tugas %windir%System32control.exe, sareng nilai parameter mangrupikeun jalur ka file binér anu diunduh. Tugas disumputkeun dijalankeun unggal dinten.
Sacara stuktur, file CPL mangrupikeun DLL kalayan nami internal ac8e06de0a6c4483af9837d96504127e.dll, nu ékspor fungsi CPlApplet. Berkas ieu ngadekrip hiji-hijina sumberna {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, teras ngamuat DLL ieu sareng nyauran hiji-hijina ékspor DllEntry.
File konfigurasi backdoor
Konfigurasi backdoor énkripsi sareng dipasang dina sumberna. Struktur file konfigurasi sarupa pisan jeung saméméhna.

Gambar 14. Struktur konfigurasi backdoor (KaitaiStruct Visualizer)
Sanaos strukturna sami, seueur nilai lapangan parantos diropéa tina anu dipidangkeun dina .
Unsur kahiji tina array binér ngandung hiji DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), . Tapi saprak ngaran ékspor dihapus tina binér, hashes teu cocog.
Panalungtikan tambahan
Nalika ngumpulkeun sampel, urang perhatikeun sababaraha ciri. Spésimén anu nembé dijelaskeun muncul sakitar Juli 2018, sareng anu sanés sapertos nembé muncul dina pertengahan Januari dugi ka awal Pebruari 2019. Arsip SFX dipaké salaku véktor inféksi, leupaskeun hiji dokumén decoy sah jeung file OSX jahat.
Sanaos OceanLotus nganggo cap waktos palsu, kami perhatikeun yén cap waktos file SFX sareng OCX sok sami (0x57B0C36A (08/14/2016 @ 7:15 UTC) jeung 0x498BE80F (02/06/2009 @ 7:34 UTC) masing-masing). Ieu sigana nunjukkeun yén pangarang gaduh sababaraha jinis "desainer" anu ngagunakeun témplat anu sami sareng ngan ukur ngarobih sababaraha ciri.
Diantara dokumén anu kami pelajari ti mimiti 2018, aya sababaraha nami anu nunjukkeun nagara anu dipikaresep ku panyerang:
- Inpormasi Kontak Anyar Média Kamboja (Anyar).xls.exe
— 李建香 (个人简历).exe (dokumen pdf palsu tina CV)
- eupan balik, Rally di AS ti 28-29 Juli 2018.exe
Kusabab backdoor kapanggih {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll jeung publikasi analisis na ku sababaraha peneliti, urang observasi sababaraha parobahan dina data konfigurasi malware.
Kahiji, pangarang mimiti miceun ngaran tina helper DLLs (DNSprov.dll sareng dua versi HttpProv.dll). Operator teras ngeureunkeun bungkusan DLL katilu (vérsi kadua HttpProv.dll), milih ngan ukur napelkeun hiji.
Kadua, seueur widang konfigurasi backdoor anu dirobih, kamungkinan ngahindarkeun deteksi nalika seueur IoC anu sayogi. Widang penting anu dirobih ku panulis kalebet:
- Konci pendaptaran AppX dirobih (tingali IoCs)
- string encoding mutex ("def", "abc", "ghi")
- nomer port
Tungtungna, sadaya vérsi énggal anu dianalisis gaduh C&C énggal anu didaptarkeun dina bagian IoCs.
papanggihan
OceanLotus terus ngembangkeun. Grup cyber fokus kana ngamurnikeun sareng ngalegaan alat sareng decoys. Pangarang nyamur payloads jahat ngagunakeun dokumén perhatian-rebut anu topik anu relevan pikeun korban dimaksudkeun. Aranjeunna ngembangkeun skéma énggal sareng ogé ngagunakeun alat anu sayogi pikeun umum, sapertos Equation Editor eksploitasi. Leuwih ti éta, maranéhna ngaronjatkeun parabot pikeun ngurangan jumlah artefak sésana dina mesin korban ', kukituna ngurangan kasempetan deteksi ku software antipirus.
Indikator tina kompromi
Indikator kompromi ogé atribut MITRE ATT&CK sayogi и .
sumber: www.habr.com
