ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group

Sa post na ito sasabihin namin sa iyo kung paano ginamit kamakailan ng cyber group na OceanLotus (APT32 at APT-C-00) ang isa sa mga magagamit na pampublikong pagsasamantala para sa CVE-2017-11882, mga kahinaan sa pagkasira ng memorya sa Microsoft Office, at kung paano nakakamit ng malware ng grupo ang pagtitiyaga sa mga nakompromisong system nang hindi nag-iiwan ng bakas. Susunod, ilalarawan namin kung paano, mula noong simula ng 2019, ang grupo ay gumagamit ng mga self-extracting archive para magpatakbo ng code.

Dalubhasa ang OceanLotus sa cyber espionage, na ang mga priority target ay mga bansa sa Southeast Asia. Gumagawa ng mga dokumento ang mga attacker na nakakaakit ng atensyon ng mga potensyal na biktima para kumbinsihin silang isagawa ang backdoor, at gumagawa din ng mga tool. Ang mga paraan na ginagamit upang lumikha ng mga honeypot ay nag-iiba-iba sa mga pag-atake, mula sa "double-extension" na mga file, self-extracting archive, mga dokumentong may mga macro, hanggang sa mga kilalang pagsasamantala.

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group

Paggamit ng pagsasamantala sa Microsoft Equation Editor

Noong kalagitnaan ng 2018, nagsagawa ang OceanLotus ng kampanyang nagsasamantala sa kahinaan ng CVE-2017-11882. Ang isa sa mga malisyosong dokumento ng cyber group ay sinuri ng mga espesyalista mula sa 360 Threat Intelligence Center (pananaliksik sa Chinese), kasama ang isang detalyadong paglalarawan ng pagsasamantala. Ang post sa ibaba ay naglalaman ng isang pangkalahatang-ideya ng naturang malisyosong dokumento.

Ang unang yugto

dokumento FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) ay katulad ng nabanggit sa pag-aaral sa itaas. Ito ay kawili-wili dahil ito ay naglalayong sa mga user na interesado sa Cambodian na pulitika (CNRP - Cambodia National Rescue Party, dissolved sa katapusan ng 2017). Sa kabila ng extension na .doc, ang dokumento ay nasa format na RTF (tingnan ang larawan sa ibaba), naglalaman ng code ng basura, at nasira din.

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 1. "Basura" sa RTF

Kahit na may mga gusot na elemento, matagumpay na binuksan ng Word ang RTF file na ito. Gaya ng makikita mo sa Figure 2, mayroong EQNOLEFILEHDR structure sa offset 0xC00, na sinusundan ng MTEF header, at pagkatapos ay isang MTEF entry (Figure 3) para sa font.

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 2. FONT entry values

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 3. Format ng pag-record ng FONT

Posibleng pag-apaw sa field pangalan, dahil hindi sinusuri ang laki nito bago kopyahin. Ang isang pangalan na masyadong mahaba ay nagti-trigger ng isang kahinaan. Tulad ng nakikita mo mula sa mga nilalaman ng RTF file (offset 0xC26 sa Figure 2), ang buffer ay puno ng shellcode na sinusundan ng isang dummy command (0x90) at return address 0x402114. Ang address ay isang elemento ng diyalogo sa EQNEDT32.exe, na nagpapahiwatig ng mga tagubilin RET. Nagiging sanhi ito ng EIP na tumuro sa simula ng field pangalannaglalaman ng shellcode.

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 4. Simula ng exploit shellcode

address 0x45BD3C nag-iimbak ng isang variable na na-dereference hanggang sa umabot ito sa isang pointer sa kasalukuyang na-load na istraktura MTEFData. Ang natitirang shellcode ay narito.

Ang layunin ng shellcode ay isagawa ang pangalawang piraso ng shellcode na naka-embed sa bukas na dokumento. Ang orihinal na shellcode ay unang sumusubok na hanapin ang file descriptor ng bukas na dokumento sa pamamagitan ng pag-ulit sa lahat ng system descriptor (NtQuerySystemInformation na may argumento SystemExtendedHandleInformation) at tingnan kung magkatugma ang mga ito PID deskriptor at PID proseso WinWord at kung ang dokumento ay binuksan gamit ang isang access mask - 0x12019F.

Upang kumpirmahin na ang tamang hawakan ay natagpuan (at hindi ang hawakan sa isa pang bukas na dokumento), ang mga nilalaman ng file ay ipinapakita gamit ang function. CreateFileMapping, at sinusuri ng shellcode kung tumutugma ang huling apat na byte ng dokumento "yyyy"(Paraan ng Egg Hunting). Kapag natagpuan ang isang tugma, ang dokumento ay kinokopya sa isang pansamantalang folder (GetTempPath) Paano ole.dll. Pagkatapos ay basahin ang huling 12 byte ng dokumento.

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 5. End of Document Marker

32-bit na halaga sa pagitan ng mga marker AABBCCDD и yyyy ay ang offset ng susunod na shellcode. Tinatawag itong gamit ang function CreateThread. Na-extract ang parehong shellcode na ginamit ng OceanLotus group kanina. script ng pagtulad sa Python, na inilabas namin noong Marso 2018, gumagana pa rin para sa pangalawang yugto ng dump.

Ang pangalawang yugto

Pag-alis ng Mga Bahagi

Ang mga pangalan ng file at direktoryo ay dynamic na pinili. Ang code ay random na pinipili ang pangalan ng executable o DLL file sa C:Windowssystem32. Pagkatapos ay humiling ito sa mga mapagkukunan nito at kinukuha ang field FileDescription gamitin bilang pangalan ng folder. Kung hindi ito gumana, random na pipili ang code ng pangalan ng folder mula sa mga direktoryo %ProgramFiles% o C:Windows (mula sa GetWindowsDirectoryW). Iniiwasan nito ang paggamit ng isang pangalan na maaaring sumalungat sa mga kasalukuyang file at tinitiyak na hindi ito naglalaman ng mga sumusunod na salita: windows, Microsoft, desktop, system, system32 o syswow64. Kung mayroon nang direktoryo, ang "NLS_{6 na character}" ay idinagdag sa pangalan.

mapagkukunan 0x102 ay sinusuri at ang mga file ay itinapon sa %ProgramFiles% o %AppData%, sa isang random na napiling folder. Binago ang oras ng paglikha upang magkaroon ng parehong mga halaga tulad ng kernel32.dll.

Halimbawa, narito ang folder at listahan ng mga file na ginawa sa pamamagitan ng pagpili sa executable C:Windowssystem32TCPSVCS.exe bilang pinagmumulan ng datos.

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 6. Pagkuha ng iba't ibang bahagi

Istraktura ng mapagkukunan 0x102 sa isang dropper ay medyo kumplikado. Sa madaling salita, naglalaman ito ng:
— Mga pangalan ng file
— Laki ng file at nilalaman
— Format ng compression (COMPRESSION_FORMAT_LZNT1, ginagamit ng function RtlDecompressBuffer)

Ang unang file ay na-reset bilang TCPSVCS.exe, na lehitimo AcroTranscoder.exe (ayon kay FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Maaaring napansin mo na ang ilang DLL file ay mas malaki sa 11 MB. Ito ay dahil ang isang malaking magkadikit na buffer ng random na data ay inilalagay sa loob ng executable na file. Posible na ito ay isang paraan upang maiwasan ang pagtuklas ng ilang mga produkto ng seguridad.

Tinitiyak ang pagtitiyaga

mapagkukunan 0x101 sa dropper ay naglalaman ng dalawang 32-bit integer na tumutukoy kung paano dapat ibigay ang pagtitiyaga. Tinutukoy ng halaga ng una kung paano magpapatuloy ang malware nang walang mga karapatan ng administrator.

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Talahanayan 1. Mekanismo ng pagtitiyaga nang walang mga karapatan ng administrator

Ang halaga ng pangalawang integer ay tumutukoy kung paano dapat makamit ng malware ang pagtitiyaga kapag tumatakbo nang may mga karapatan ng administrator.

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Talahanayan 2. Mekanismo ng pagtitiyaga na may mga karapatan ng administrator

Ang pangalan ng serbisyo ay ang pangalan ng file na walang extension; ang display name ay ang pangalan ng folder, ngunit kung mayroon na ito, ang string na " ay nakadugtong ditoRevision 1” (ang bilang ay tataas hanggang sa makita ang hindi nagamit na pangalan). Tiniyak ng mga operator na ang pagtitiyaga sa pamamagitan ng serbisyo ay matatag - kung sakaling mabigo, ang serbisyo ay dapat na i-restart pagkatapos ng 1 segundo. Pagkatapos ang halaga WOW64 Ang registry key ng bagong serbisyo ay nakatakda sa 4, na nagpapahiwatig na ito ay isang 32-bit na serbisyo.

Ang isang naka-iskedyul na gawain ay nilikha sa pamamagitan ng ilang COM interface: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. Sa pangkalahatan, ang malware ay gumagawa ng isang nakatagong gawain, itinatakda ang impormasyon ng account kasama ang kasalukuyang impormasyon ng user o administrator, at pagkatapos ay itinatakda ang trigger.

Ito ay isang pang-araw-araw na gawain na may tagal na 24 na oras at mga pagitan sa pagitan ng dalawang execution na 10 minuto, na nangangahulugang ito ay tatakbo nang tuluy-tuloy.

Malicious bit

Sa aming halimbawa, ang executable file TCPSVCS.exe (AcroTranscoder.exe) ay lehitimong software na naglo-load ng mga DLL na na-reset kasama nito. Sa kasong ito, ito ay interesado Flash Video Extension.dll.

Ang function nito DLLMain tumatawag lang ng ibang function. Mayroong ilang malabo na predicate:

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 7. Malabo na panaguri

Pagkatapos ng mga mapanlinlang na pagsusuring ito, nakakakuha ang code ng isang seksyon .text file TCPSVCS.exe, binabago ang depensa nito sa PAGE_EXECUTE_READWRITE at muling isinulat ito sa pamamagitan ng pagdaragdag ng mga dummy na tagubilin:

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 8. Pagkakasunod-sunod ng mga tagubilin

Sa dulo sa address ng function FLVCore::Uninitialize(void), na-export Flash Video Extension.dll, idinagdag ang pagtuturo CALL. Nangangahulugan ito na pagkatapos ma-load ang nakakahamak na DLL, kapag tumawag ang runtime WinMain в TCPSVCS.exe, ang pagtuturo pointer ay ituturo sa NOP, nagiging sanhi FLVCore::Uninitialize(void), susunod na yugto.

Ang function ay lumilikha lamang ng isang mutex na nagsisimula sa {181C8480-A975-411C-AB0A-630DB8B0A221}sinusundan ng kasalukuyang username. Pagkatapos ay binabasa nito ang na-dump na *.db3 file, na naglalaman ng code na independyente sa posisyon, at mga gamit CreateThread upang maisagawa ang nilalaman.

Ang mga nilalaman ng *.db3 file ay ang shellcode na karaniwang ginagamit ng grupong OceanLotus. Muli naming matagumpay na na-unpack ang payload nito gamit ang emulator script na na-publish namin sa GitHub.

Kinukuha ng script ang huling yugto. Ang bahaging ito ay isang backdoor, kung saan nasuri na namin nakaraang pag-aaral ng OceanLotus. Maaari itong matukoy ng GUID {A96B020F-0000-466F-A96D-A91BBF8EAC96} binary file. Naka-encrypt pa rin ang configuration ng malware sa resource ng PE. Ito ay may humigit-kumulang na parehong configuration, ngunit ang mga C&C server ay iba sa mga nauna:

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

Ang koponan ng OceanLotus ay muling nagpakita ng kumbinasyon ng iba't ibang mga diskarte upang maiwasan ang pagtuklas. Bumalik sila na may "pinong" diagram ng proseso ng impeksyon. Sa pamamagitan ng pagpili ng mga random na pangalan at pagpuno sa mga executable ng random na data, binabawasan nila ang bilang ng mga maaasahang IoC (batay sa mga hash at mga pangalan ng file). Bukod dito, salamat sa paggamit ng third-party na pag-load ng DLL, kailangan lang alisin ng mga umaatake ang lehitimong binary AcroTranscoder.

Self-extracting archive

Pagkatapos ng mga RTF file, lumipat ang grupo sa self-extracting (SFX) na mga archive na may mga karaniwang icon ng dokumento para lalong malito ang user. Sumulat ang Threatbook tungkol dito (link sa Chinese). Sa paglunsad, ang mga self-extracting RAR file ay ibinabagsak at ang mga DLL na may extension na .ocx ay ipapatupad, ang huling kargamento na dati nang naidokumento. {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Mula noong kalagitnaan ng Enero 2019, muling ginagamit ng OceanLotus ang diskarteng ito, ngunit binabago ang ilang configuration sa paglipas ng panahon. Sa seksyong ito ay pag-uusapan natin ang tungkol sa pamamaraan at mga pagbabago.

Paglikha ng Lure

dokumento THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) ay unang natagpuan noong 2018. Ang SFX file na ito ay nilikha nang matalino - sa paglalarawan (Impormasyon sa Bersyon) sinasabi nito na ito ay isang JPEG na imahe. Ang script ng SFX ay ganito ang hitsura:

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Larawan 9. Mga Utos ng SFX

Nagre-reset ang malware {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), pati na rin ang isang larawan 2018 thich thong lac.jpg.

Ganito ang hitsura ng decoy image:

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 10. Decoy na imahe

Maaaring napansin mo na ang unang dalawang linya sa script ng SFX ay tumatawag sa OCX file nang dalawang beses, ngunit hindi ito isang error.

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

Ang kontrol na daloy ng isang OCX file ay halos kapareho sa iba pang bahagi ng OceanLotus - maraming mga pagkakasunud-sunod ng command JZ/JNZ и PUSH/RET, alternating gamit ang garbage code.

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 11. Obfuscated code

Pagkatapos i-filter ang junk code, i-export DllRegisterServer, tinawag regsvr32.exe, mukhang sumusunod:

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 12. Basic installer code

Talaga, sa unang tawag DllRegisterServer Ang pag-export ay nagtatakda ng halaga ng pagpapatala HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model para sa naka-encrypt na offset sa DLL (0x10001DE0).

Kapag tinawag ang function sa pangalawang pagkakataon, babasahin nito ang parehong halaga at ipapatupad sa address na iyon. Mula dito ang mapagkukunan at maraming mga aksyon sa RAM ay binabasa at naisakatuparan.

Ang shellcode ay ang parehong PE loader na ginamit sa mga nakaraang kampanya ng OceanLotus. Maaari itong tularan gamit ang ang aming script. Sa huli ay nagre-reset siya db293b825dcc419ba7dc2c49fa2757ee.dll, nilo-load ito sa memorya at ini-execute DllEntry.

Kinukuha ng DLL ang mga nilalaman ng mapagkukunan nito, nagde-decrypt (AES-256-CBC) at nagde-decompress (LZMA) nito. Ang mapagkukunan ay may partikular na format na madaling i-decompile.

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Larawan 13. Istraktura ng pagsasaayos ng installer (KaitaiStruct Visualizer)

Ang configuration ay tahasang tinukoy - depende sa antas ng pribilehiyo, ang binary data ay isusulat sa %appdata%IntellogsBackgroundUploadTask.cpl o %windir%System32BackgroundUploadTask.cpl (O SysWOW64 para sa 64-bit system).

Ang karagdagang pagtitiyaga ay tinitiyak sa pamamagitan ng paglikha ng isang gawain na may pangalan BackgroundUploadTask[junk].jobSaan [junk] kumakatawan sa isang hanay ng mga byte 0x9D и 0xA0.

Pangalan ng Aplikasyon ng Gawain %windir%System32control.exe, at ang value ng parameter ay ang path patungo sa na-download na binary file. Ang nakatagong gawain ay tumatakbo araw-araw.

Sa istruktura, ang isang CPL file ay isang DLL na may panloob na pangalan ac8e06de0a6c4483af9837d96504127e.dll, na nag-e-export ng isang function CPlApplet. Idini-decrypt ng file na ito ang tanging mapagkukunan nito {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, pagkatapos ay nilo-load ang DLL na ito at tinatawag ang tanging export nito DllEntry.

Backdoor configuration file

Ang configuration ng backdoor ay naka-encrypt at naka-embed sa mga mapagkukunan nito. Ang istraktura ng file ng pagsasaayos ay halos kapareho sa nauna.

ESET: bagong backdoor delivery scheme para sa OceanLotus cyber group
Figure 14. Backdoor configuration structure (KaitaiStruct Visualizer)

Bagama't magkapareho ang istraktura, marami sa mga value ng field ang na-update mula sa mga ipinapakita sa ang aming lumang ulat.

Ang unang elemento ng binary array ay naglalaman ng isang DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), kinilala ni Tencent. Ngunit dahil ang pangalan ng pag-export ay inalis mula sa binary, ang mga hash ay hindi tumutugma.

Karagdagang pagsasaliksik

Habang nangongolekta ng mga sample, napansin namin ang ilang mga katangian. Ang specimen na inilarawan ay lumitaw noong Hulyo 2018, at ang iba pang katulad nito ay lumitaw kamakailan noong kalagitnaan ng Enero hanggang unang bahagi ng Pebrero 2019. Ginamit ang archive ng SFX bilang isang vector ng impeksyon, nag-drop ng isang lehitimong dokumento ng decoy at isang malisyosong OSX file.

Kahit na gumagamit ang OceanLotus ng mga pekeng timestamp, napansin namin na ang mga timestamp ng SFX at OCX file ay palaging pareho (0x57B0C36A (08/14/2016 @ 7:15pm UTC) at 0x498BE80F (02/06/2009 @ 7:34am UTC) ayon sa pagkakabanggit). Ito ay malamang na nagpapahiwatig na ang mga may-akda ay may ilang uri ng "designer" na gumagamit ng parehong mga template at binago lamang ang ilang mga katangian.

Kabilang sa mga dokumento na aming pinag-aralan mula noong simula ng 2018, mayroong iba't ibang mga pangalan na nagpapahiwatig ng mga bansang interesado sa mga umaatake:

— Ang Bagong Impormasyon sa Pakikipag-ugnayan Ng Cambodia Media(Bago).xls.exe
— 李建香 (个人简历).exe (pekeng pdf na dokumento ng isang CV)
— feedback, Rally sa USA mula Hulyo 28-29, 2018.exe

Dahil ang backdoor ay natuklasan {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll at ang paglalathala ng pagsusuri nito ng ilang mananaliksik, naobserbahan namin ang ilang pagbabago sa data ng configuration ng malware.

Una, sinimulan ng mga may-akda na tanggalin ang mga pangalan mula sa mga helper DLL (DNSprov.dll at dalawang bersyon HttpProv.dll). Pagkatapos ay itinigil ng mga operator ang pag-package ng ikatlong DLL (ang pangalawang bersyon HttpProv.dll), pinipiling mag-embed ng isa lang.

Pangalawa, maraming mga field ng configuration sa backdoor ang binago, malamang na umiwas sa pagtuklas dahil maraming IoC ang naging available. Ang mga mahahalagang field na binago ng mga may-akda ay kinabibilangan ng:

  • Binago ang registry key ng AppX (tingnan ang mga IoC)
  • mutex encoding string ("def", "abc", "ghi")
  • numero ng port

Sa wakas, lahat ng bagong bersyon na nasuri ay may mga bagong C&C na nakalista sa seksyong IoCs.

Natuklasan

Ang OceanLotus ay patuloy na umuunlad. Nakatuon ang cyber group sa pagpino at pagpapalawak ng mga tool at decoy. Ang mga may-akda ay nagbabalatkayo ng mga malisyosong payload gamit ang mga dokumentong nakakaakit ng pansin na ang paksa ay nauugnay sa mga nilalayong biktima. Bumubuo sila ng mga bagong scheme at gumagamit din ng mga tool na magagamit sa publiko, tulad ng pagsasamantala ng Equation Editor. Bukod dito, pinapabuti nila ang mga tool upang bawasan ang bilang ng mga artifact na natitira sa mga makina ng mga biktima, sa gayon ay binabawasan ang pagkakataong matukoy ng antivirus software.

Mga tagapagpahiwatig ng kompromiso

Available ang mga indicator ng kompromiso gayundin ang mga katangian ng MITRE ATT&CK sa Welivesecurity и sa GitHub.

Pinagmulan: www.habr.com

Magdagdag ng komento