Argitalpen honetan OceanLotus ziber-taldeak (APT32 eta APT-C-00) berriki publikoki eskuragarri dauden ustiapenetako bat nola erabili zuen kontatuko dizugu.
OceanLotus ziber-espioian espezializatuta dago, eta lehentasunezko helburuak Asiako hego-ekialdeko herrialdeak dira. Erasotzaileek biktimen potentzialen arreta erakartzen duten dokumentuak faltsutzen dituzte atzeko atea exekutatzeko konbentzitzeko, eta tresnak garatzen ere ari dira lanean. Honeypot-ak sortzeko erabiltzen diren metodoak erasoen arabera aldatzen dira, "luzapen bikoitzeko" fitxategietatik, auto-erauzten diren artxiboetatik, makroekin dokumentuekin eta ustiapen ezagunetaraino.
Microsoft Equation Editor-en exploit bat erabiliz
2018ko erdialdean, OceanLotusek CVE-2017-11882 ahultasuna ustiatzen duen kanpaina bat egin zuen. Ziber-taldearen dokumentu gaiztoetako bat 360 Threat Intelligence Center-eko espezialistek aztertu zuten (
Lehenengo etapa
Dokumentua FW Report on demonstration of former CNRP in Republic of Korea.doc
(SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3
) goiko azterketan aipatutakoaren antzekoa da. Interesgarria da, Kanbodiako politikan interesa duten erabiltzaileei zuzenduta dagoelako (CNRP - Cambodia National Rescue Party, 2017 amaieran desegin zen). .doc luzapena izan arren, dokumentua RTF formatuan dago (ikus beheko irudia), zabor-kodea dauka eta, gainera, desitxuratuta dago.
1. Irudia "Zaborra" RTFn
Nahiz eta elementu nahasiak egon, Word-ek RTF fitxategi hau ongi irekitzen du. 2. Irudian ikus dezakezun bezala, EQNOLEFILEHDR egitura bat dago 0xC00 desplazamenduan, MTEF goiburua eta gero MTEF sarrera bat (3. Irudia) letra-tipoan.
2. Irudia FONT sarrerako balioak
Figure 3.
Baliteke soroan gainezka egitea izena, bere tamaina ez delako egiaztatzen kopiatu aurretik. Luzeegia den izenak ahultasun bat eragiten du. RTF fitxategiaren edukian ikus dezakezunez (0. irudian 26xC2 desplazamendua), buffer-a shellcodez beteta dago eta jarraian dummy komando batekin (0x90
) eta itzulera helbidea 0x402114
. Helbidea elkarrizketa-elementu bat da EQNEDT32.exe
, argibideak adieraziz RET
. Honek EIP eremuaren hasiera seinalatzea eragiten du izenashellcode duena.
4. irudia. Explotazioaren shellcodearen hasiera
Helbidea 0x45BD3C
deserreferentziatutako aldagai bat gordetzen du, unean kargatutako egituraren erakusle batera iritsi arte MTEFData
. Gainontzeko shellcode-a hemen dago.
Shellcode-ren helburua dokumentu irekian txertatutako bigarren shellcode zatia exekutatzen da. Jatorrizko shell-kodea lehenik dokumentu irekiaren fitxategi deskribatzailea bilatzen saiatzen da sistemaren deskribatzaile guztien gainean errepikatuz (NtQuerySystemInformation
argudioarekin SystemExtendedHandleInformation
) eta bat datozen egiaztatzea PID deskribatzailea eta PID prozesua WinWord
eta dokumentua sarbide-maskara batekin ireki den ala ez - 0x12019F
.
Helduleku egokia aurkitu dela berresteko (eta ez beste dokumentu ireki baten heldulekua), fitxategiaren edukia bistaratzen da funtzioa erabiliz. CreateFileMapping
, eta shellcode-ak dokumentuaren azken lau byteak bat datozen egiaztatzen du "yyyy
"(Arrautza Ehizaren metodoa). Bat-etortze bat aurkitu ondoren, dokumentua behin-behineko karpeta batera kopiatzen da (GetTempPath
) Nola ole.dll
. Ondoren, dokumentuaren azken 12 byteak irakurtzen dira.
5. Irudia. Dokumentuen amaierako markatzaileak
Markatzaileen arteko 32 biteko balioa AABBCCDD
и yyyy
hurrengo shellcodearen desplazamendua da. Funtzioa erabiliz deitzen zaio CreateThread
. Lehenago OceanLotus taldeak erabilitako shellcode bera atera da.
Bigarren etapa
Osagaiak kentzea
Fitxategi eta direktorioen izenak dinamikoki hautatzen dira. Kodeak ausaz hautatzen du fitxategi exekutagarriaren edo DLL fitxategiaren izena C:Windowssystem32
. Ondoren, bere baliabideei eskaera bat egiten die eta eremua berreskuratzen du FileDescription
karpeta-izen gisa erabiltzeko. Honek funtzionatzen ez badu, kodeak ausaz aukeratzen du karpeta-izen bat direktorioetatik %ProgramFiles%
edo C:Windows
(GetWindowsDirectoryW-tik). Lehendik dauden fitxategiekin gatazka izan dezakeen izen bat erabiltzea saihesten du eta hitz hauek ez dituela ziurtatzen du: windows
, Microsoft
, desktop
, system
, system32
edo syswow64
. Direktorioa dagoeneko badago, "NLS_{6 karaktere}" eransten zaio izenari.
baliabidea 0x102
aztertu eta fitxategiak botatzen dira %ProgramFiles%
edo %AppData%
, ausaz hautatutako karpeta batera. Sorkuntza-denbora aldatu da balio berdinak izateko kernel32.dll
.
Adibidez, hona hemen exekutagarria hautatuta sortutako karpeta eta fitxategien zerrenda C:Windowssystem32TCPSVCS.exe
datu-iturri gisa.
6. Irudia. Hainbat osagai ateratzea
Baliabideen egitura 0x102
tanta batean nahiko konplexua da. Laburbilduz, honako hauek ditu:
— Fitxategien izenak
— Fitxategiaren tamaina eta edukia
— Konpresioaren formatua (COMPRESSION_FORMAT_LZNT1
, funtzioak erabiltzen du RtlDecompressBuffer
)
Lehen fitxategia honela berrezarri da TCPSVCS.exe
, zilegi dena AcroTranscoder.exe
(ren arabera FileDescription
, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3
).
Baliteke DLL fitxategi batzuk 11 MB baino handiagoak direla konturatu izana. Fitxategi exekutagarriaren barruan ausazko datuen ondoko buffer handi bat jartzen delako gertatzen da. Baliteke segurtasun-produktu batzuek detektatzea ekiditeko modu bat izatea.
Iraunkortasuna bermatzea
baliabidea 0x101
dropper-ek 32 biteko bi zenbaki oso ditu, iraunkortasuna nola eman behar den zehazten dutenak. Lehenengoaren balioak malwareak administratzaile eskubiderik gabe nola iraungo duen zehazten du.
1. taula. Administratzaile eskubiderik gabeko iraunkortasun mekanismoa
Bigarren zenbaki osoaren balioak malwareak nola iraun behar duen zehazten du administratzaile eskubideekin exekutatzen denean.
2. taula. Administratzaile-eskubideekin iraunkortasun-mekanismoa
Zerbitzuaren izena luzapenik gabeko fitxategiaren izena da; bistaratzeko izena karpetaren izena da, baina dagoeneko badago, " katea erantsiko zaioRevision 1
” (zenbakia handitzen da erabili gabeko izen bat aurkitu arte). Operadoreek zerbitzuaren iraupena sendoa zela ziurtatu zuten - hutsegite kasuan, zerbitzua segundo 1 igaro ondoren berrabiarazi beharko litzateke. Gero balioa WOW64
Zerbitzu berriaren erregistro-gakoa 4-n ezarrita dago, 32 biteko zerbitzua dela adieraziz.
Programatutako zeregin bat COM interfaze batzuen bidez sortzen da: ITaskScheduler
, ITask
, ITaskTrigger
, IPersistFile
и ITaskScheduler
. Funtsean, malwareak ezkutuko zeregin bat sortzen du, kontuaren informazioa ezartzen du uneko erabiltzailearen edo administratzailearen informazioarekin batera eta, ondoren, abiarazlea ezartzen du.
24 orduko iraupena eta 10 minutuko bi exekuzioen arteko tarteak dituen eguneroko zeregina da, hau da, etengabe exekutatzen da.
Bit gaiztoa
Gure adibidean, fitxategi exekutagarria TCPSVCS.exe
(AcroTranscoder.exe
) harekin batera berrezartzen diren DLLak kargatzen dituen software legitimoa da. Kasu honetan, interesgarria da Flash Video Extension.dll
.
Bere funtzioa DLLMain
beste funtzio bat deitzen du. Predikatu lauso batzuk daude:
7. Irudia. Predikatu lausoak
Egiaztapen engainagarri horien ondoren, kodeak atal bat lortzen du .text
fitxategia TCPSVCS.exe
, bere defentsa aldatzen du PAGE_EXECUTE_READWRITE
eta berridazten du argibide finak gehituz:
8. Irudia Argibideen sekuentzia
Amaieran funtzioaren helbidea FLVCore::Uninitialize(void)
, esportatu Flash Video Extension.dll
, instrukzioa gehitzen da CALL
. Horrek esan nahi du DLL gaiztoa kargatu ondoren, exekuzio-denborak deitzen duenean WinMain
в TCPSVCS.exe
, instrukzio-erakusleak NOP-ra adieraziko du, eraginez FLVCore::Uninitialize(void)
, hurrengo etapa.
Funtzioak, besterik gabe, mutex bat sortzen du {181C8480-A975-411C-AB0A-630DB8B0A221}
ondoren uneko erabiltzaile-izena. Ondoren, iraultzen den *.db3 fitxategia irakurtzen du, posizioaren araberako kodea duena, eta erabiltzen du CreateThread
edukia exekutatzeko.
*.db3 fitxategiaren edukia OceanLotus taldeak normalean erabiltzen duen shell-kodea da. Berriro ere arrakastaz deskonprimitu genuen bere karga karga argitaratu genuen emulatzaile-scripta erabiliz
Gidoiak azken etapa ateratzen du. Osagai hau atzeko ate bat da, dagoeneko aztertu duguna {A96B020F-0000-466F-A96D-A91BBF8EAC96}
fitxategi bitarra. Malwarearen konfigurazioa PE baliabidean zifratuta dago oraindik. Gutxi gorabehera konfigurazio bera du, baina C&C zerbitzariak aurrekoetatik desberdinak dira:
- andreagahuvrauvin[.]com
- byronorenstein[.]com
- stienollmache[.]xyz
OceanLotus taldeak berriro ere teknika ezberdinen konbinazioa erakusten du detekzioa saihesteko. Infekzio-prozesuaren diagrama "findu" batekin itzuli ziren. Ausazko izenak aukeratuz eta ausazko datuekin exekutagarriak betez, IoC fidagarrien kopurua murrizten dute (hash eta fitxategi-izenetan oinarrituta). Gainera, hirugarrenen DLL karga erabiltzeari esker, erasotzaileek legezko binarioa bakarrik kendu behar dute. AcroTranscoder
.
Norberak erauzten diren artxiboak
RTF fitxategien ondoren, taldea auto-erauzketa (SFX) artxiboetara joan zen dokumentuaren ikono arruntekin, erabiltzailea gehiago nahasteko. Threatbook-ek honi buruz idatzi zuen ({A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll
. 2019ko urtarrilaren erdialdetik, OceanLotus teknika hau berrerabiltzen ari da, baina denborarekin konfigurazio batzuk aldatuz. Atal honetan teknikaz eta aldaketez hitz egingo dugu.
Lure bat sortzea
Dokumentua THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE
(SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB
) 2018an aurkitu zen lehen aldiz. SFX fitxategi hau zentzuz sortu da - deskribapenean (Bertsioaren informazioa) hau JPEG irudi bat dela dio. SFX script-ak honela dauka:
9. Irudia SFX komandoak
Malwarea berrezarri {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx
(SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC
), baita argazki bat ere 2018 thich thong lac.jpg.
Decoy irudiak itxura hau du:
10. Irudia Dekoituaren irudia
Baliteke SFX script-eko lehen bi lerroek OCX fitxategiari bi aldiz deitzen diotela ohartu izana, baina hau ez da errore bat.
{9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (ShLd.dll)
OCX fitxategi baten kontrol-fluxua OceanLotusen beste osagai batzuen oso antzekoa da - komando-sekuentzia asko JZ/JNZ
и PUSH/RET
, zabor kodearekin txandakatuz.
11. Irudia Kode lausotua
Zabor kodea iragazi ondoren, esportatu DllRegisterServer
, deitua regsvr32.exe
, horrela:
12. Irudia Oinarrizko instalatzailearen kodea
Funtsean, lehen deialdian DllRegisterServer
esportatu erregistro-balioa ezartzen du HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model
DLL-n enkriptatutako desplazamendurako (0x10001DE0
).
Funtzioa bigarren aldiz deitzen denean, balio bera irakurtzen du eta helbide horretan exekutatzen du. Hemendik RAM baliabidea eta ekintza asko irakurtzen eta exekutatzen dira.
Shellcode aurreko OceanLotus kanpainetan erabilitako PE kargatzaile bera da. Erabiliz emulatu daiteke db293b825dcc419ba7dc2c49fa2757ee.dll
, memorian kargatu eta exekutatzen du DllEntry
.
DLL-k bere baliabidearen edukia ateratzen du, deszifratu (AES-256-CBC) eta deskonprimitu (LZMA). Baliabideak formatu zehatz bat du, deskonpilatzeko erraza dena.
13. Irudia. Instalatzailearen konfigurazio-egitura (KaitaiStruct Visualizer)
Konfigurazioa esplizituki zehazten da - pribilegio-mailaren arabera, datu bitarrak idatziko dira %appdata%IntellogsBackgroundUploadTask.cpl
edo %windir%System32BackgroundUploadTask.cpl
(Edo SysWOW64
64 biteko sistemetarako).
Iraunkortasun handiagoa bermatzen da izena duen zeregin bat sortuz BackgroundUploadTask[junk].job
Non [junk]
byte multzo bat adierazten du 0x9D
и 0xA0
.
Ataza-aplikazioaren izena %windir%System32control.exe
, eta parametroaren balioa deskargatutako fitxategi bitarrerako bidea da. Ezkutuko zeregina egunero exekutatzen da.
Egitura aldetik, CPL fitxategi bat barne-izena duen DLL bat da ac8e06de0a6c4483af9837d96504127e.dll
, funtzio bat esportatzen duena CPlApplet
. Fitxategi honek bere baliabide bakarra deszifratzen du {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll
, ondoren DLL hau kargatzen du eta bere esportazio bakarrari deitzen dio DllEntry
.
Backdoor konfigurazio fitxategia
Atzeko atearen konfigurazioa enkriptatuta dago eta bere baliabideetan txertatuta dago. Konfigurazio fitxategiaren egitura aurrekoaren oso antzekoa da.
14. Irudia. Backdoor konfigurazio-egitura (KaitaiStruct Visualizer)
Egitura antzekoa den arren, eremuen balio asko eguneratu egin dira agertzen direnetatik
Array bitarraren lehen elementuak DLL bat dauka (HttpProv.dll
MD5: 2559738D1BD4A999126F900C7357B759
),
Ikerketa osagarriak
Laginak biltzean, ezaugarri batzuk nabaritu ditugu. Deskribatu berri den alea 2018ko uztaila inguruan agertu zen, eta antzeko beste batzuk 2019ko urtarrilaren erdialdetik otsailaren hasierara arte agertu ziren duela gutxi. SFX artxiboa infekzio-bektore gisa erabili zen, legezko decoy dokumentu bat eta OSX fitxategi maltzur bat jareginez.
OceanLotusek denbora-zigilu faltsuak erabiltzen baditu ere, SFX eta OCX fitxategien denbora-zigiluak beti berdinak direla ohartu gara (0x57B0C36A
(08/14/2016 @ 7:15 UTC) eta 0x498BE80F
(02/06/2009 @ 7:34 UTC) hurrenez hurren). Horrek ziurrenik adierazten du egileek txantiloi berberak erabiltzen dituzten eta ezaugarri batzuk besterik gabe aldatzen dituen "diseinatzaile" mota bat dutela.
2018 hasieratik aztertu ditugun dokumentuen artean, erasotzaileen intereseko herrialdeak adierazten dituzten hainbat izen daude:
— Kanbodiako komunikabideen harremanetarako informazio berria (Berria).xls.exe
— 李建香 (个人简历).exe (CV baten pdf dokumentu faltsua)
— iritzia, 28ko uztailaren 29tik 2018ra AEBetako rallya.exe
Atzeko atea aurkitu zenetik {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll
eta hainbat ikertzailek bere analisia argitaratuta, aldaketa batzuk ikusi genituen malwarearen konfigurazio datuetan.
Lehenik eta behin, egileak DLL laguntzaileetatik izenak kentzen hasi ziren (DNSprov.dll
eta bi bertsio HttpProv.dll
). Orduan operadoreek hirugarren DLLa (bigarren bertsioa) ontziratzeari utzi zioten HttpProv.dll
), bakarra txertatzea aukeratuz.
Bigarrenik, atzeko atearen konfigurazio-eremu asko aldatu ziren, litekeena da detekzioa saihestea IoC asko eskuragarri zeuden heinean. Egileek aldatutako eremu garrantzitsuak hauek dira:
- AppX erregistroko gakoa aldatu da (ikus IoCs)
- mutex kodetze katea ("def", "abc", "ghi")
- ataka zenbakia
Azkenik, aztertutako bertsio berri guztiek C&C berriak dituzte IoCs atalean zerrendatuta.
Findings
OceanLotusek garatzen jarraitzen du. Ziber-taldea tresnak eta dekoiak fintzen eta zabaltzen zentratuta dago. Egileek karga gaiztoak mozorrotzen dituzte arreta erakartzen duten dokumentuak erabiliz, zeinen gaia aurreikusitako biktimentzat garrantzitsua den. Eskema berriak garatzen dituzte eta publikoki eskuragarri dauden tresnak ere erabiltzen dituzte, hala nola Equation Editor ustiapena. Gainera, biktimen makinetan geratzen diren artefaktu kopurua murrizteko tresnak hobetzen ari dira, eta horrela birusen aurkako softwareak detektatzeko aukera murrizten du.
Konpromisoaren adierazleak
Konpromisoaren adierazleak eta baita MITRE ATT&CK atributuak eskuragarri daude
Iturria: www.habr.com