ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri

Bu yazıda sizə OceanLotus kiberqrupunun (APT32 və APT-C-00) bu yaxınlarda ictimaiyyətə açıq olan istismarlardan birini necə istifadə etdiyini izah edəcəyik. CVE-2017-11882, Microsoft Office-də yaddaşın pozulması ilə bağlı zəifliklər və qrupun zərərli proqram təminatının təhlükəyə məruz qalmış sistemlərdə iz qoymadan davamlılığa necə nail olması. Sonra, 2019-cu ilin əvvəlindən qrupun kodu işlətmək üçün öz-özünə açılan arxivlərdən necə istifadə etdiyini təsvir edəcəyik.

OceanLotus kibercasusluq üzrə ixtisaslaşıb, prioritet hədəfləri Cənub-Şərqi Asiya ölkələridir. Təcavüzkarlar potensial qurbanların diqqətini cəlb edən sənədləri saxtalaşdıraraq onları arxa qapını yerinə yetirməyə inandırır və həmçinin alətlər hazırlamaq üzərində işləyirlər. Bal küpləri yaratmaq üçün istifadə edilən üsullar "ikiqat genişləndirmə" fayllarından, öz-özünə açılan arxivlərdən, makroları olan sənədlərdən, məlum istismarlara qədər müxtəlif hücumlara görə dəyişir.

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri

Microsoft Equation Editor-da istismardan istifadə

2018-ci ilin ortalarında OceanLotus CVE-2017-11882 zəifliyindən istifadə edən kampaniya keçirdi. Kiberqrupun zərərli sənədlərindən biri 360 Təhdid Kəşfiyyat Mərkəzinin mütəxəssisləri tərəfindən təhlil edilib (Çin dilində araşdırma), istismarın ətraflı təsviri daxil olmaqla. Aşağıdakı yazıda belə bir zərərli sənədin icmalı var.

Birinci mərhələ

Sənəd FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) yuxarıdakı tədqiqatda qeyd olunanlara bənzəyir. Maraqlıdır, çünki Kamboca siyasəti ilə maraqlanan istifadəçilərə yönəlmişdir (CNRP - Kamboca Milli Xilasetmə Partiyası, 2017-ci ilin sonunda ləğv edilmişdir). .doc genişlənməsinə baxmayaraq, sənəd RTF formatındadır (aşağıdakı şəklə baxın), zibil kodunu ehtiva edir və həmçinin təhrif edilmişdir.

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 1. RTF-də “Zibil”

Bozuk elementlər olsa da, Word bu RTF faylını uğurla açır. Şəkil 2-də gördüyünüz kimi, 0xC00 ofsetində EQNOLEFILEHDR strukturu, ardınca MTEF başlığı, sonra isə şrift üçün MTEF girişi (Şəkil 3) mövcuddur.

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 2. FONT giriş qiymətləri

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 3. FONT qeyd formatı

Sahədə mümkün daşqın ad, çünki kopyalamadan əvvəl onun ölçüsü yoxlanılmır. Çox uzun ad zəifliyə səbəb olur. RTF faylının məzmunundan göründüyü kimi (Şəkil 0-də 26xC2 ofset), bufer shellcode ilə doldurulur və ardınca dummy komanda (0x90) və qayıdış ünvanı 0x402114. Ünvan dialoq elementidir EQNEDT32.exe, təlimatları göstərən RET. Bu, EIP-nin sahənin başlanğıcını göstərməsinə səbəb olur adqabıq kodunu ehtiva edir.

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 4. Exploit shellcode-un başlanğıcı

ünvan 0x45BD3C hal-hazırda yüklənmiş strukturun göstəricisinə çatana qədər referensiyadan çıxarılan dəyişəni saxlayır MTEFData. Qabıq kodunun qalan hissəsi buradadır.

Shellcode-un məqsədi açıq sənədə daxil edilmiş ikinci shellcode parçasını icra etməkdir. Orijinal qabıq kodu əvvəlcə bütün sistem deskriptorları üzərində təkrarlamaqla açıq sənədin fayl deskriptorunu tapmağa çalışır (NtQuerySystemInformation arqumentlə SystemExtendedHandleInformation) və uyğun olub olmadığını yoxlayın PID təsviri və PID proses WinWord və sənədin giriş maskası ilə açılıb-açılmaması - 0x12019F.

Düzgün tutacaq tapıldığını təsdiqləmək üçün (başqa açıq sənədin tutacağı deyil) funksiyadan istifadə edərək faylın məzmunu göstərilir. CreateFileMapping, və shellcode sənədin son dörd baytının uyğun olub olmadığını yoxlayır "yyyy"(Yumurta ovlama üsulu). Uyğunluq tapıldıqdan sonra sənəd müvəqqəti qovluğa kopyalanır (GetTempPath) Necə ole.dll. Sonra sənədin son 12 baytı oxunur.

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 5. Sənəd markerlərinin sonu

Markerlər arasında 32 bit dəyər AABBCCDD и yyyy növbəti qabıq kodunun ofsetidir. Funksiyadan istifadə etməklə deyilir CreateThread. Əvvəllər OceanLotus qrupu tərəfindən istifadə edilən eyni qabıq kodu çıxarıldı. Python emulyasiya skripti2018-ci ilin mart ayında buraxdığımız , hələ də ikinci mərhələ dump üçün işləyir.

İkinci mərhələ

Komponentlərin çıxarılması

Fayl və kataloq adları dinamik olaraq seçilir. Kod təsadüfi olaraq icra olunan və ya DLL faylının adını seçir C:Windowssystem32. Daha sonra öz resurslarına sorğu göndərir və sahəni götürür FileDescription qovluq adı kimi istifadə etmək. Bu işləmirsə, kod təsadüfi olaraq qovluqlardan qovluq adını seçir %ProgramFiles% və ya C:Windows (GetWindowsDirectoryW-dən). O, mövcud fayllarla ziddiyyət təşkil edə biləcək addan istifadə etməkdən çəkinir və tərkibində aşağıdakı sözlərin olmamasına zəmanət verir: windows, Microsoft, desktop, system, system32 və ya syswow64. Əgər kataloq artıq mövcuddursa, adına "NLS_{6 simvol}" əlavə olunur.

vəsait 0x102 təhlil edilir və fayllar içəriyə atılır %ProgramFiles% və ya %AppData%, təsadüfi seçilmiş qovluğa. Eyni dəyərlərə sahib olmaq üçün yaradılış vaxtı dəyişdirildi kernel32.dll.

Məsələn, burada icra olunanı seçməklə yaradılan qovluq və faylların siyahısı var C:Windowssystem32TCPSVCS.exe məlumat mənbəyi kimi.

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 6. Müxtəlif komponentlərin çıxarılması

Resurs strukturu 0x102 bir damcı olduqca mürəkkəbdir. Bir sözlə, tərkibində:
- Fayl adları
- Fayl ölçüsü və məzmunu
— Sıxılma formatı (COMPRESSION_FORMAT_LZNT1, funksiyası tərəfindən istifadə olunur RtlDecompressBuffer)

Birinci fayl olaraq sıfırlanır TCPSVCS.exe, bu qanunauyğundur AcroTranscoder.exe (görə) FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Bəzi DLL fayllarının 11 MB-dən böyük olduğunu görmüsünüz. Bunun səbəbi, icra edilə bilən faylın içərisində təsadüfi məlumatların böyük bir bitişik buferinin yerləşdirilməsidir. Mümkündür ki, bu, bəzi təhlükəsizlik məhsulları tərəfindən aşkarlanmamaq üçün bir yoldur.

Davamlılığın təmin edilməsi

vəsait 0x101 damcıda əzmkarlığın necə təmin edilməli olduğunu göstərən iki 32 bitlik tam ədəd var. Birincinin dəyəri zərərli proqramın administrator hüquqları olmadan necə davam edəcəyini müəyyənləşdirir.

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Cədvəl 1. Administrator hüquqları olmadan davamlılıq mexanizmi

İkinci tam ədədin dəyəri zərərli proqramın administrator hüquqları ilə işləyərkən davamlılığa necə nail olacağını müəyyənləşdirir.

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Cədvəl 2. Administrator hüquqları ilə davamlılıq mexanizmi

Xidmət adı uzantısız fayl adıdır; ekran adı qovluğun adıdır, lakin artıq mövcuddursa, ona “ sətri əlavə olunurRevision 1” (istifadə olunmamış ad tapılana qədər rəqəm artır). Operatorlar xidmət vasitəsilə davamlılığın möhkəm olduğuna əmin oldular - uğursuzluq halında xidmət 1 saniyədən sonra yenidən işə salınmalıdır. Sonra dəyər WOW64 Yeni xidmət reyestrinin açarı 4-ə təyin edilib ki, bu da onun 32 bitlik xidmət olduğunu göstərir.

Planlaşdırılmış tapşırıq bir neçə COM interfeysi vasitəsilə yaradılır: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. Əslində, zərərli proqram gizli tapşırıq yaradır, cari istifadəçi və ya administrator məlumatı ilə birlikdə hesab məlumatlarını təyin edir və sonra tətiyi təyin edir.

Bu, 24 saat davam edən və 10 dəqiqəlik iki icra arasındakı fasilələrlə gündəlik işdir, yəni davamlı işləyəcək.

Zərərli bit

Bizim nümunəmizdə icra olunan fayl TCPSVCS.exe (AcroTranscoder.exe) onunla birlikdə sıfırlanmış DLL-ləri yükləyən qanuni proqramdır. Bu halda maraq doğurur Flash Video Extension.dll.

Onun funksiyası DLLMain sadəcə başqa funksiyanı çağırır. Bəzi qeyri-səlis predikatlar mövcuddur:

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 7. Qeyri-səlis predikatlar

Bu yanlış yoxlamalardan sonra kod bir bölmə alır .text fayl TCPSVCS.exe, müdafiəsini dəyişdirir PAGE_EXECUTE_READWRITE və dummy təlimatlar əlavə edərək onu yenidən yazır:

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 8. Təlimatların ardıcıllığı

Funksiya ünvanının sonunda FLVCore::Uninitialize(void), ixrac edilir Flash Video Extension.dll, təlimat əlavə olunur CALL. Bu o deməkdir ki, zərərli DLL yükləndikdən sonra iş vaxtı çağırıldıqda WinMain в TCPSVCS.exe, göstəriş göstəricisi səbəb olan NOP-a işarə edəcək FLVCore::Uninitialize(void), növbəti mərhələ.

Funksiya sadəcə olaraq ilə başlayan mutex yaradır {181C8480-A975-411C-AB0A-630DB8B0A221}ardınca cari istifadəçi adı. Daha sonra mövqedən asılı olmayan kodu ehtiva edən boşaltılmış *.db3 faylını oxuyur və istifadə edir CreateThread məzmunu yerinə yetirmək üçün.

*.db3 faylının məzmunu OceanLotus qrupunun adətən istifadə etdiyi qabıq kodudur. Biz dərc etdiyimiz emulator skriptindən istifadə edərək onun faydalı yükünü yenidən uğurla açdıq GitHub-da.

Ssenari son mərhələni çıxarır. Bu komponent artıq təhlil etdiyimiz arxa qapıdır əvvəlki OceanLotus tədqiqatı. Bu GUID tərəfindən müəyyən edilə bilər {A96B020F-0000-466F-A96D-A91BBF8EAC96} ikili fayl. Zərərli proqram konfiqurasiyası hələ də PE resursunda şifrələnir. Təxminən eyni konfiqurasiyaya malikdir, lakin C&C serverləri əvvəlkilərdən fərqlidir:

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

OceanLotus komandası aşkarlanmamaq üçün yenidən müxtəlif texnikaların birləşməsini nümayiş etdirir. Onlar yoluxma prosesinin “zərif” diaqramı ilə qayıtdılar. Təsadüfi adlar seçmək və icra olunanları təsadüfi məlumatlarla doldurmaqla, onlar etibarlı IoC-lərin sayını azaldırlar (heşlər və fayl adları əsasında). Üstəlik, üçüncü tərəfin DLL yüklənməsinin istifadəsi sayəsində təcavüzkarlar yalnız qanuni ikili faylı silməlidirlər. AcroTranscoder.

Öz-özünə açılan arxivlər

RTF fayllarından sonra qrup istifadəçini daha da çaşdırmaq üçün ümumi sənəd nişanları olan öz-özünə açılan (SFX) arxivlərə keçdi. Bu barədə Threbook yazıb (Çin dilində keçid). Başladıqdan sonra, öz-özünə açılan RAR faylları atılır və son faydalı yükü əvvəllər sənədləşdirilmiş .ocx uzantılı DLL-lər icra olunur. {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. 2019-cu ilin yanvar ayının ortalarından etibarən OceanLotus bu texnikadan təkrar istifadə edir, lakin zamanla bəzi konfiqurasiyaları dəyişir. Bu bölmədə texnika və dəyişikliklər haqqında danışacağıq.

Cazibədarlığın yaradılması

Sənəd THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) ilk dəfə 2018-ci ildə tapılıb. Bu SFX faylı ağıllı şəkildə yaradılmışdır - təsvirdə (Versiya haqqında məlumat) bunun JPEG şəkli olduğunu deyir. SFX skripti belə görünür:

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 9. SFX Əmrləri

Zərərli proqram sıfırlanır {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), həmçinin şəkil 2018 thich thong lac.jpg.

Aldatma şəkli belə görünür:

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 10. Aldatma şəkli

SFX skriptindəki ilk iki sətirin OCX faylını iki dəfə çağırdığını fərq etmiş ola bilərsiniz, lakin bu, xəta deyil.

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

OCX faylının idarəetmə axını digər OceanLotus komponentlərinə çox oxşardır - bir çox əmr ardıcıllığı JZ/JNZ и PUSH/RET, zibil kodu ilə növbə ilə.

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 11. Qarışıq kod

Lazımsız kodu süzdükdən sonra ixrac edin DllRegisterServer, çağırdı regsvr32.exe, göstərildiyi kimi:

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 12. Əsas quraşdırıcı kodu

Əsasən, ilk zəngdə DllRegisterServer ixrac reyestr dəyərini təyin edir HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model DLL-də şifrələnmiş ofset üçün (0x10001DE0).

Funksiya ikinci dəfə çağırılanda eyni dəyəri oxuyur və həmin ünvanda yerinə yetirilir. Buradan resurs və RAM-da bir çox hərəkətlər oxunur və yerinə yetirilir.

Shellcode keçmiş OceanLotus kampaniyalarında istifadə edilən eyni PE yükləyicisidir. Istifadə edərək təqlid edilə bilər bizim skriptimiz. Sonda sıfırlanır db293b825dcc419ba7dc2c49fa2757ee.dll, onu yaddaşa yükləyir və icra edir DllEntry.

DLL öz resursunun məzmununu çıxarır, şifrəsini açır (AES-256-CBC) və onu açar (LZMA). Resursun dekompilyasiyası asan olan xüsusi formatı var.

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 13. Quraşdırıcının konfiqurasiya strukturu (KaitaiStruct Visualizer)

Konfiqurasiya açıq şəkildə göstərilmişdir - imtiyaz səviyyəsindən asılı olaraq, binar məlumatlar yazılacaqdır %appdata%IntellogsBackgroundUploadTask.cpl və ya %windir%System32BackgroundUploadTask.cpl (Və ya SysWOW64 64 bit sistemlər üçün).

Daha davamlılıq adı ilə bir tapşırıq yaratmaqla təmin edilir BackgroundUploadTask[junk].jobHara [junk] bayt dəstini təmsil edir 0x9D и 0xA0.

Tapşırıq Tətbiqinin Adı %windir%System32control.exe, və parametr dəyəri yüklənmiş ikili faylın yoludur. Gizli tapşırıq hər gün işləyir.

Struktur olaraq, CPL faylı daxili adı olan DLL-dir ac8e06de0a6c4483af9837d96504127e.dllfunksiyanı ixrac edən CPlApplet. Bu fayl yeganə resursunun şifrəsini açır {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, sonra bu DLL-ni yükləyir və onun yeganə ixracını çağırır DllEntry.

Arxa qapı konfiqurasiya faylı

Arxa qapı konfiqurasiyası şifrələnir və onun resurslarına daxil edilir. Konfiqurasiya faylının strukturu əvvəlki ilə çox oxşardır.

ESET: OceanLotus kiberqrupu üçün yeni arxa qapı çatdırılması sxemləri
Şəkil 14. Arxa qapı konfiqurasiya strukturu (KaitaiStruct Visualizer)

Struktur oxşar olsa da, bir çox sahə dəyərləri göstərilənlərdən yeniləndi köhnə hesabatımız.

İkili massivin ilk elementi DLL-dən ibarətdir (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), Tencent tərəfindən müəyyən edilmişdir. Lakin ixrac adı binar sistemdən silindiyi üçün hashlar uyğun gəlmir.

Əlavə tədqiqat

Nümunələri toplayarkən bəzi xüsusiyyətlərə diqqət yetirdik. İndicə təsvir edilən nümunə 2018-ci ilin iyulunda, digərləri isə 2019-cu ilin yanvar ayının ortalarından fevralın əvvəlinə kimi ortaya çıxdı. SFX arxivi qanuni saxtakarlıq sənədini və zərərli OSX faylını ataraq infeksiya vektoru kimi istifadə edilmişdir.

OceanLotus saxta vaxt ştamplarından istifadə etsə də, SFX və OCX fayllarının vaxt damğalarının həmişə eyni olduğunu gördük (0x57B0C36A (08/14/2016 @ 7:15 UTC) və 0x498BE80F (02/06/2009 @ 7:34 UTC) müvafiq olaraq). Bu, yəqin ki, müəlliflərin eyni şablonlardan istifadə edən və sadəcə bəzi xüsusiyyətləri dəyişdirən bir növ "dizayner" olduğunu göstərir.

2018-ci ilin əvvəlindən tədqiq etdiyimiz sənədlər arasında təcavüzkarları maraqlandıran ölkələri göstərən müxtəlif adlar var:

— Kamboca Mediasının Yeni Əlaqə Məlumatı(Yeni).xls.exe
— 李建香 (个人简历).exe (CV-nin saxta pdf sənədi)
— rəy, 28-29 iyul 2018-ci il tarixlərində ABŞ-da Rally.exe

Arxa qapı aşkar edildikdən bəri {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll və onun təhlilinin bir neçə tədqiqatçı tərəfindən dərc edilməsi, biz zərərli proqram konfiqurasiya məlumatlarında bəzi dəyişiklikləri müşahidə etdik.

Əvvəlcə müəlliflər köməkçi DLL-lərdən adları silməyə başladılar (DNSprov.dll və iki versiya HttpProv.dll). Bundan sonra operatorlar üçüncü DLL-nin (ikinci versiya HttpProv.dll), yalnız birini yerləşdirməyi seçmək.

İkincisi, bir çox arxa qapı konfiqurasiya sahələri dəyişdirildi, çox güman ki, bir çox IoC əlçatan olduqda aşkarlanmaqdan yayına bilər. Müəlliflər tərəfindən dəyişdirilmiş mühüm sahələrə aşağıdakılar daxildir:

  • AppX qeyd açarı dəyişdirildi (bax IoCs)
  • mutex kodlaşdırma sətri ("def", "abc", "ghi")
  • port nömrəsi

Nəhayət, təhlil edilən bütün yeni versiyalarda IoCs bölməsində sadalanan yeni C&C-lər var.

Tapıntılar

OceanLotus inkişaf etməyə davam edir. Kiberqrup alətləri və hiylələri təkmilləşdirməyə və genişləndirməyə yönəlib. Müəlliflər mövzusu nəzərdə tutulan qurbanlara aid olan diqqəti cəlb edən sənədlərdən istifadə edərək zərərli yükləri gizlədirlər. Onlar yeni sxemlər hazırlayır və eyni zamanda Equation Editor exploit kimi ictimaiyyətə açıq alətlərdən istifadə edirlər. Bundan əlavə, onlar qurbanların maşınlarında qalan artefaktların sayını azaltmaq üçün alətləri təkmilləşdirirlər və bununla da antivirus proqramı tərəfindən aşkarlanma şansını azaldırlar.

Güzəşt göstəriciləri

Kompromis göstəriciləri, eləcə də MITER ATT&CK atributları mövcuddur Welivesecurity haqqında и GitHub-da.

Mənbə: www.habr.com

Добавить комментарий