ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor

Në postim, ne do t'ju tregojmë se si grupi kibernetik OceanLotus (APT32 dhe APT-C-00) përdori kohët e fundit një nga shfrytëzimet e disponueshme publikisht për CVE-2017-11882, dobësitë e dëmtimit të kujtesës në Microsoft Office dhe se si malware i grupit siguron qëndrueshmëri në sistemet e komprometuara pa lënë gjurmë. Më pas, ne përshkruajmë se si, që nga fillimi i vitit 2019, grupi ka përdorur arkivat vetë-ekstraktuese për të ekzekutuar kodin.

OceanLotus është i specializuar në spiunazhin kibernetik, objektivat prioritare janë vendet e Azisë Juglindore. Sulmuesit falsifikojnë dokumente që tërheqin vëmendjen e viktimave të mundshme në mënyrë që t'i bindin ata të kryejnë një derë të pasme, dhe gjithashtu të punojnë në zhvillimin e mjeteve. Metodat e përdorura për krijimin e honeypots ndryshojnë në sulme të ndryshme - nga skedarët e "zgjatjes së dyfishtë", arkivat vetë-ekstraktuese, dokumentet makro, deri tek shfrytëzimet e njohura.

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor

Përdorimi i shfrytëzimit në Microsoft Equation Editor

Në mesin e vitit 2018, OceanLotus zhvilloi një fushatë duke shfrytëzuar cenueshmërinë CVE-2017-11882. Një nga dokumentet me qëllim të keq të grupit kibernetik u analizua nga 360 specialistë të Qendrës së Inteligjencës së Kërcënimeve (studim në gjuhën kineze), duke përfshirë një përshkrim të detajuar të shfrytëzimit. Postimi më poshtë përmban një përmbledhje të një dokumenti të tillë keqdashës.

Faza e parë

Dokument FW Report on demonstration of former CNRP in Republic of Korea.doc (sha-1: D1357B284C951470066AAA7A8228190B88A5C7C3) është e ngjashme me atë të përmendur në studimin e mësipërm. Është interesante në atë që u drejtohet përdoruesve që janë të interesuar në politikën kamboxhiane (CNRP - Partia Kombëtare e Shpëtimit të Kamboxhias, e shpërbërë në fund të 2017). Pavarësisht zgjerimit .doc, dokumenti është në formatin RTF (shih figurën më poshtë), përmban kod të padëshiruar dhe gjithashtu është i ngatërruar.

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 1. Mbeturinat në RTF

Pavarësisht pranisë së elementeve të keqformuar, Word hap me sukses këtë skedar RTF. Siç mund ta shihni në figurën 2, këtu është një strukturë EQNOLEFILEHDR në zhvendosje 0xC00 e ndjekur nga një kokë MTEF dhe më pas një hyrje MTEF (Figura 3) për fontin.

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 2. Vlerat e Regjistrimit FONT

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 3. Formati i regjistrimit FONT

Mbushje e mundshme e fushës emër, sepse madhësia e tij nuk kontrollohet para kopjimit. Emri shumë i gjatë shkakton cenueshmërinë. Siç mund ta shihni nga përmbajtja e skedarit RTF (offset 0xC26 në figurën 2), buferi është i mbushur me shellcode i ndjekur nga një komandë dummy (0x90) dhe adresën e kthimit 0x402114. Adresa është një element dialogu në EQNEDT32.exeduke treguar udhëzimet RET. Kjo bën që EIP të tregojë fillimin e fushës emërPërmban kodin shell.

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 4. Fillimi i shellcodit të shfrytëzimit

Adresë 0x45BD3C ruan një variabël që çreferencohet derisa të arrijë një tregues në strukturën e ngarkuar aktualisht MTEFData. Këtu është pjesa tjetër e kodit të shell.

Qëllimi i shellcode është të ekzekutojë pjesën e dytë të shellcode-it të ngulitur në dokumentin e hapur. Së pari, shellcode origjinal përpiqet të gjejë përshkruesin e skedarit të dokumentit të hapur duke përsëritur mbi të gjithë përshkruesit e sistemit (NtQuerySystemInformation me një argument SystemExtendedHandleInformation) dhe kontrolloni nëse përputhen PID përshkrues dhe PID procesi WinWord dhe nëse dokumenti u hap me një maskë aksesi - 0x12019F.

Për të konfirmuar që është gjetur doreza e saktë (dhe jo doreza e një dokumenti tjetër të hapur), përmbajtja e skedarit shfaqet duke përdorur funksionin CreateFileMapping, dhe shellcode kontrollon nëse katër bajtët e fundit të dokumentit përputhen "yyyy» (Metoda e gjuetisë së vezëve). Pasi të gjendet një përputhje, dokumenti kopjohet në një dosje të përkohshme (GetTempPath) Si ole.dll. Më pas lexohen 12 bajtët e fundit të dokumentit.

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 5. Shënuesit e fundit të dokumentit

Vlera 32-bit midis shënuesve AABBCCDD и yyyy është kompensimi i shellkodit të ardhshëm. Ai thirret me një funksion CreateThread. Nxjerrë të njëjtin shellcod të përdorur nga grupi OceanLotus më parë. Skript i emulimit të Python, të cilin e lëshuam në mars 2018, është ende në garë për deponinë e fazës së dytë.

Faza e dytë

Nxjerrja e komponentëve

Emrat e skedarëve dhe dosjeve zgjidhen në mënyrë dinamike. Kodi zgjedh rastësisht emrin e një skedari të ekzekutueshëm ose DLL në C:Windowssystem32. Më pas ai bën një kërkesë për burimet e tij dhe rimerr fushën FileDescription për t'u përdorur si emër dosjeje. Nëse kjo nuk funksionon, kodi zgjedh rastësisht një emër dosjeje nga drejtoritë %ProgramFiles% ose C:Windows (nga GetWindowsDirectoryW). Ai shmang përdorimin e një emri që mund të bie ndesh me skedarët ekzistues dhe sigurohet që të mos përmbajë fjalët e mëposhtme: windows, Microsoft, desktop, system, system32 ose syswow64. Nëse drejtoria ekziston tashmë, emrit i shtohet "NLS_{6 karaktere}".

burime 0x102 analizohen dhe skedarët janë hedhur në %ProgramFiles% ose %AppData%, në një dosje të zgjedhur rastësisht. Koha e krijimit ndryshoi për të pasur të njëjtat vlera si kernel32.dll.

Për shembull, këtu është dosja dhe lista e skedarëve të krijuar duke zgjedhur ekzekutuesin C:Windowssystem32TCPSVCS.exe si burim të dhënash.

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 6. Nxjerrja e komponentëve të ndryshëm

Struktura e burimeve 0x102 në një pikatore është mjaft e komplikuar. Me pak fjalë, ai përmban:
- emrat e skedarëve
— Madhësia dhe përmbajtja e skedarit
— Formati i kompresimit (COMPRESSION_FORMAT_LZNT1përdoret nga funksioni RtlDecompressBuffer)

Skedari i parë hidhet si TCPSVCS.exe, e cila është legjitime AcroTranscoder.exe (sipas FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Ju mund të keni vënë re se disa skedarë DLL janë më të mëdhenj se 11 MB. Kjo është për shkak se një buffer i madh i të dhënave të rastësishme vendoset brenda ekzekutuesit. Është e mundur që kjo është një mënyrë për të shmangur zbulimin nga disa produkte sigurie.

Sigurimi i qëndrueshmërisë

burime 0x101 në pikatore përmban dy numra të plotë 32-bitësh që specifikojnë se si duhet të zbatohet qëndrueshmëria. Vlera e së parës specifikon se si malware do të vazhdojë pa të drejta administratori.

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Tabela 1. Mekanizmi i Qëndrueshmërisë Jo Administrator

Vlera e numrit të dytë të plotë specifikon se si malware duhet të sigurojë qëndrueshmëri duke ekzekutuar me privilegje administrative.

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Tabela 2. Mekanizmi i Qëndrueshmërisë së Administratorit

Emri i shërbimit është emri i skedarit pa shtesë; emri i shfaqur është emri i dosjes, por nëse tashmë ekziston, vargu "Revision 1” (numri rritet derisa të gjendet një emër i papërdorur). Operatorët janë kujdesur që qëndrueshmëria përmes shërbimit të jetë elastike - në rast dështimi, shërbimi duhet të riniset pas 1 sekonde. Pastaj vlera WOW64 Çelësi i ri i regjistrit për shërbimin është vendosur në 4, që tregon se ky është një shërbim 32-bit.

Një detyrë e planifikuar krijohet përmes disa ndërfaqeve COM: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. Në thelb, malware krijon një detyrë të fshehur, vendos informacionin e llogarisë së bashku me informacionin aktual të përdoruesit ose administratorit dhe më pas cakton shkasin.

Kjo është një detyrë ditore me kohëzgjatje prej 24 orësh dhe intervale ndërmjet dy vrapimeve prej 10 minutash, që do të thotë se do të funksionojë vazhdimisht.

Bit keqdashës

Në shembullin tonë, ekzekutuesi TCPSVCS.exe (AcroTranscoder.exe) është softuer legjitim që ngarkon DLL-të që janë hequr me të. Në këtë rast është me interes Flash Video Extension.dll.

Funksioni i saj DLLMain thjesht thërret një funksion tjetër. Ka disa kallëzues të paqartë:

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 7. Kallëzuesit fuzzy

Pas këtyre kontrolleve mashtruese, kodi merr një seksion .text dosje TCPSVCS.exe, ndryshon mbrojtjen e tij në PAGE_EXECUTE_READWRITE dhe e mbishkruan atë me udhëzime mashtruese:

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 8. Sekuenca e udhëzimeve

Në fund në adresën e funksionit FLVCore::Uninitialize(void), të eksportuara Flash Video Extension.dll, shtohet udhëzimi CALL. Kjo do të thotë që pasi të jetë ngarkuar DLL-ja me qëllim të keq, kur koha e ekzekutimit telefonon WinMain в TCPSVCS.exe, treguesi i udhëzimit do të tregojë në NOP, duke rezultuar në thirrje FLVCore::Uninitialize(void), faza tjetër.

Funksioni thjesht krijon një mutex duke filluar me {181C8480-A975-411C-AB0A-630DB8B0A221}e ndjekur nga emri aktual i përdoruesit. Më pas lexon skedarin *.db3 të hedhur, i cili përmban kod të pavarur nga pozicioni dhe përdor CreateThread për të ekzekutuar përmbajtjen.

Përmbajtja e skedarit *.db3 është kodi i guaskës që zakonisht përdor ekipi i OceanLotus. Ne përsëri dekompresuam me sukses ngarkesën e tij duke përdorur skriptin emulator që publikuam. në GitHub.

Skenari rikthehet në fazën përfundimtare. Ky komponent është një derë e pasme që ne e kemi analizuar tashmë Studimi i mëparshëm i OceanLotus. Kjo mund të përcaktohet nga GUID {A96B020F-0000-466F-A96D-A91BBF8EAC96} skedar binar. Konfigurimi i malware është ende i koduar në burimin PE. Ka afërsisht të njëjtin konfigurim, por serverët C&C janë të ndryshëm nga ata të mëparshëm:

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

Grupi OceanLotus përsëri demonstron një kombinim teknikash të ndryshme për të shmangur zbulimin. Ata u kthyen me një skemë “të përfunduar” të procesit të infeksionit. Duke zgjedhur emra të rastësishëm dhe duke mbushur skedarët e ekzekutueshëm me të dhëna të rastësishme, ato zvogëlojnë numrin e IoC-ve të besueshme (bazuar në hash dhe emra skedarësh). Për më tepër, duke përdorur ngarkimin DLL të palës së tretë, sulmuesit duhet vetëm të heqin binarin legjitim AcroTranscoder.

Arkiva që nxjerrin vetë

Pas skedarëve RTF, grupi kaloi në arkivat vetë-ekstraktuese (SFX) me ikona të zakonshme të dokumenteve për të ngatërruar më tej përdoruesin. Threatbook shkroi për të (lidhje në kinezisht). Pas nisjes, skedarët RAR vetë-ekstraktues hidhen dhe ekzekutohen DLL me shtrirjen .ocx, ngarkesa përfundimtare e së cilës ishte dokumentuar më parë {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Që nga mesi i janarit 2019, OceanLotus ka ripërdorur këtë teknikë, por ka ndryshuar disa konfigurime me kalimin e kohës. Në këtë pjesë, ne do të flasim për teknikën dhe ndryshimet.

Krijimi i një joshjeje

Dokument THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (sha-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) u gjet për herë të parë në 2018. Ky skedar SFX u krijua me mendje - në përshkrim (Informacioni i versionit) thotë se është një imazh JPEG. Skripti SFX duket si ky:

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 9. Komandat SFX

Malware rivendoset {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (sha-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), si dhe një foto 2018 thich thong lac.jpg.

Imazhi i mashtrimit duket si ky:

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 10. Imazhi i mashtrimit

Ju mund të keni vënë re se dy rreshtat e parë në skriptin SFX thërrasin skedarin OCX dy herë, por ky nuk është një gabim.

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

Rrjedha e kontrollit të skedarit OCX është shumë e ngjashme me komponentët e tjerë të OceanLotus - shumë sekuenca komandash JZ/JNZ и PUSH/RETndërthurur me kodin e hedhurinave.

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 11. Kodi i turbullt

Pas filtrimit të kodit të mbeturinave, eksporti DllRegisterServer, thirri regsvr32.exe, si në vazhdim:

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 12. Kodi kryesor i instaluesit

Në thelb, hera e parë që telefononi DllRegisterServer vlerat e regjistrit të grupeve të eksportit HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model për kompensimin e koduar në DLL (0x10001DE0).

Kur funksioni thirret për herë të dytë, ai lexon të njëjtën vlerë dhe ekzekutohet në atë adresë. Nga këtu, burimi lexohet dhe ekzekutohet, dhe shumë veprime kryhen në RAM.

Shellcode është i njëjti ngarkues PE i përdorur në fushatat e kaluara të OceanLotus. Mund të imitohet me skenari ynë. Në fund, ai bie db293b825dcc419ba7dc2c49fa2757ee.dll, e ngarkon atë në memorie dhe e ekzekuton DllEntry.

DLL nxjerr përmbajtjen e burimit të tij, deshifron (AES-256-CBC) dhe dekompreson (LZMA). Burimi ka një format specifik që është i lehtë për t'u dekompiluar.

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 13. Struktura e konfigurimit të instaluesit (KaitaiStruct Visualizer)

Konfigurimi është vendosur në mënyrë eksplicite - në varësi të nivelit të privilegjit, të dhënat binare do të shkruhen në %appdata%IntellogsBackgroundUploadTask.cpl ose %windir%System32BackgroundUploadTask.cpl (Ose SysWOW64 për sistemet 64-bit).

Këmbëngulja e mëtejshme sigurohet duke krijuar një detyrë të quajtur BackgroundUploadTask[junk].jobKu [junk] është një grup bajtësh 0x9D и 0xA0.

Emri i aplikacionit të detyrës %windir%System32control.exe, dhe vlera e parametrit është shtegu drejt skedarit binar të shkarkuar. Detyra e fshehur funksionon çdo ditë.

Strukturisht, një skedar CPL është një DLL me një emër të brendshëm ac8e06de0a6c4483af9837d96504127e.dll, i cili eksporton funksionin CPlApplet. Ky skedar deshifron burimin e tij të vetëm {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, pastaj ngarkon atë DLL dhe thërret eksportin e tij të vetëm DllEntry.

Skedari i konfigurimit të Backdoor

Konfigurimi i backdoor është i koduar dhe i ngulitur në burimet e tij. Struktura e skedarit të konfigurimit është shumë e ngjashme me atë të mëparshme.

ESET: Skemat e reja të dorëzimit për OceanLotus Cybergroup Backdoor
Figura 14. Struktura e konfigurimit të Backdoor (KaitaiStruct Visualizer)

Pavarësisht strukturës së ngjashme, vlerat e shumë fushave janë përditësuar në krahasim me të dhënat e treguara në raporti ynë i vjetër.

Elementi i parë i grupit binar përmban DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), identifikuar nga Tencent. Por meqenëse emri i eksportit është hequr nga binar, hash-et nuk përputhen.

Hulumtime shtesë

Duke mbledhur mostra, i kushtuam vëmendje disa karakteristikave. Mostra e përshkruar sapo u shfaq rreth korrikut 2018, dhe të tjera të ngjashme u shfaqën së fundmi, në mes të janarit - në fillim të shkurtit 2019. Një arkiv SFX u përdor si një vektor infeksioni, duke hedhur një dokument të ligjshëm mashtrimi dhe një skedar me qëllim të keq OCX.

Edhe pse OceanLotus përdor vula kohore të rreme, ne vumë re se vulat kohore të skedarëve SFX dhe OCX janë gjithmonë të njëjta (0x57B0C36A (08/14/2016 @ 7:15 UTC) dhe 0x498BE80F (02/06/2009 @ 7:34 UTC) respektivisht). Kjo ndoshta tregon se autorët kanë një lloj "ndërtuesi" që përdor të njëjtat shabllone dhe thjesht ndryshon disa karakteristika.

Ndër dokumentet që kemi studiuar që nga fillimi i vitit 2018, ka emra të ndryshëm që tregojnë vendet sulmuese me interes:

- Informacioni i ri i kontaktit të mediave të Kamboxhias (New).xls.exe
- 李建香 (个人简历).exe (dokument i rremë pdf i një CV)
- reagime, Rally në SHBA nga 28-29 korrik 2018.exe

Që nga zbulimi i derës së pasme {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll dhe publikimi i analizës së tij nga disa studiues, ne vëzhguam disa ndryshime në të dhënat e konfigurimit të malware.

Së pari, autorët filluan të heqin emrat nga DLL-të ndihmëse DLL (DNSprov.dll dhe dy versione HttpProv.dll). Pastaj operatorët ndaluan paketimin e DLL-së së tretë (versioni i dytë HttpProv.dll), duke zgjedhur të futni vetëm një.

Së dyti, shumë fusha të konfigurimit të dyerve të pasme janë ndryshuar, ndoshta për të shmangur zbulimin pasi shumë IoC janë bërë të disponueshme. Ndër fushat e rëndësishme të modifikuara nga autorët janë këto:

  • ndryshoi çelësin e regjistrit AppX (shih IoC-të)
  • vargu i kodimit mutex ("def", "abc", "ghi")
  • numri i portit

Së fundi, të gjitha versionet e reja të analizuara kanë C&C të reja të listuara në seksionin IoC.

Gjetjet

OceanLotus vazhdon të evoluojë. Grupi kibernetik është i fokusuar në rafinimin dhe zgjerimin e mjeteve dhe joshjeve. Autorët maskojnë ngarkesat me qëllim të keq me dokumente që tërheqin vëmendjen që janë të rëndësishme për viktimat e synuara. Ata zhvillojnë qarqe të reja dhe përdorin gjithashtu mjete të disponueshme publikisht si shfrytëzimi i Equation Editor. Për më tepër, ata po përmirësojnë mjetet për të reduktuar numrin e objekteve të mbetura në makinat e viktimave, duke zvogëluar kështu mundësinë për t'u zbuluar nga softueri antivirus.

treguesit e kompromisit

Treguesit e kompromisit si dhe atributet MITER ATT&CK janë në dispozicion në Welivesecurity и në GitHub.

Burimi: www.habr.com

Shto një koment