ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları

Bu yazıda size OceanLotus siber grubunun (APT32 ve APT-C-00) yakın zamanda halka açık güvenlik açıklarından birini nasıl kullandığını anlatacağız. CVE-2017-11882, Microsoft Office'teki bellek bozulması güvenlik açıkları ve grubun kötü amaçlı yazılımlarının güvenliği ihlal edilmiş sistemlerde iz bırakmadan nasıl kalıcılığa ulaştığı. Daha sonra, 2019'un başından bu yana grubun kodu çalıştırmak için kendi kendine açılan arşivleri nasıl kullandığını açıklayacağız.

OceanLotus siber casusluk konusunda uzmanlaşmıştır ve öncelikli hedefleri Güneydoğu Asya'daki ülkelerdir. Saldırganlar, potansiyel kurbanların dikkatini çekecek, onları arka kapıyı çalıştırmaya ikna edecek sahte belgeler hazırlıyor ve aynı zamanda araçlar geliştirmeye de çalışıyor. Honeypot oluşturmak için kullanılan yöntemler, "çift uzantılı" dosyalardan, kendi kendine açılan arşivlerden, makrolu belgelerden bilinen istismarlara kadar saldırılara göre değişiklik gösterir.

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları

Microsoft Denklem Düzenleyicisi'nde bir istismar kullanma

2018 yılının ortalarında OceanLotus, CVE-2017-11882 güvenlik açığından yararlanan bir kampanya yürüttü. Siber grubun kötü amaçlı belgelerinden biri, 360 Tehdit İstihbarat Merkezi uzmanları tarafından analiz edildi (Çince araştırma), istismarın ayrıntılı bir açıklamasını içeren. Aşağıdaki gönderi bu tür kötü amaçlı bir belgeye genel bir bakış içermektedir.

İlk aşamada

Belge FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) yukarıdaki çalışmada bahsedilene benzer. İlginç çünkü Kamboçya siyasetiyle ilgilenen kullanıcıları hedefliyor (CNRP - Kamboçya Ulusal Kurtarma Partisi, 2017 sonunda feshedildi). .doc uzantısına rağmen belge RTF formatındadır (aşağıdaki resme bakınız), çöp kod içermektedir ve ayrıca bozuktur.

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 1. RTF'deki "Çöp"

Bozuk öğeler olmasına rağmen Word bu RTF dosyasını başarıyla açar. Şekil 2'de görebileceğiniz gibi, 0xC00 uzaklığında bir EQNOLEFILEHDR yapısı, ardından bir MTEF başlığı ve ardından yazı tipi için bir MTEF girişi (Şekil 3) bulunmaktadır.

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 2. FONT giriş değerleri

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 3. YAZI TİPİ kayıt formatı

Sahada olası taşma isim, çünkü kopyalamadan önce boyutu kontrol edilmez. Çok uzun bir ad bir güvenlik açığını tetikler. RTF dosyasının içeriğinden görebileceğiniz gibi (Şekil 0'de 26xC2 uzaklığı), arabellek kabuk koduyla ve ardından sahte bir komutla doldurulur (0x90) ve iade adresi 0x402114. Adres bir diyalog öğesidir EQNEDT32.exe, talimatları gösteren RET. Bu, EIP'nin alanın başlangıcını göstermesine neden olur isimkabuk kodunu içerir.

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 4. Açıklardan yararlanma kabuk kodunun başlangıcı

Аdres 0x45BD3C o anda yüklü olan yapıya bir işaretçi ulaşana kadar referansı kaldırılan bir değişkeni saklar MTEFData. Kabuk kodunun geri kalanı burada.

Kabuk kodunun amacı, açık belgeye gömülü olan ikinci kabuk kodunu çalıştırmaktır. Orijinal kabuk kodu ilk önce tüm sistem tanımlayıcılarını yineleyerek açık belgenin dosya tanımlayıcısını bulmaya çalışır (NtQuerySystemInformation bir argümanla SystemExtendedHandleInformation) ve eşleşip eşleşmediklerini kontrol ediyorum PID tanımlayıcı ve PID süreç WinWord ve belgenin erişim maskesiyle açılıp açılmadığı - 0x12019F.

Doğru tanıtıcının bulunduğunu doğrulamak için (başka bir açık belgenin tanıtıcısının değil), dosyanın içeriği şu işlev kullanılarak görüntülenir: CreateFileMappingve kabuk kodu, belgenin son dört baytının eşleşip eşleşmediğini kontrol eder "yyyy"(Yumurta Avı yöntemi). Bir eşleşme bulunduğunda belge geçici bir klasöre kopyalanır (GetTempPath) nasıl ole.dll. Daha sonra belgenin son 12 baytı okunur.

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 5. Belge işaretleyicilerinin sonu

İşaretçiler arasında 32 bit değer AABBCCDD и yyyy bir sonraki kabuk kodunun uzaklığıdır. Fonksiyon kullanılarak çağrılır CreateThread. Daha önce OceanLotus grubu tarafından kullanılan kabuk kodunun aynısı çıkarıldı. Python emülasyon betiğiMart 2018'de yayınladığımız XNUMX. aşama dump için halen çalışmaktadır.

İkinci aşamada

Bileşenleri Kaldırma

Dosya ve dizin adları dinamik olarak seçilir. Kod, yürütülebilir dosyanın veya DLL dosyasının adını rastgele seçer. C:Windowssystem32. Daha sonra kaynaklarına bir istekte bulunur ve alanı alır FileDescription klasör adı olarak kullanmak için. Bu işe yaramazsa kod, dizinlerden rastgele bir klasör adı seçer. %ProgramFiles% veya C:Windows (GetWindowsDirectoryW'den). Mevcut dosyalarla çakışabilecek bir adın kullanılmasını önler ve aşağıdaki kelimeleri içermemesini sağlar: windows, Microsoft, desktop, system, system32 veya syswow64. Dizin zaten mevcutsa ismin sonuna "NLS_{6 karakter}" eklenir.

Kaynak 0x102 analiz edilir ve dosyalar içine dökülür %ProgramFiles% veya %AppData%, rastgele seçilen bir klasöre. Oluşturma zamanı aynı değerlere sahip olacak şekilde değiştirildi kernel32.dll.

Örneğin, yürütülebilir dosya seçilerek oluşturulan klasör ve dosyaların listesi burada C:Windowssystem32TCPSVCS.exe bir veri kaynağı olarak.

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 6. Çeşitli bileşenlerin çıkarılması

Kaynak yapısı 0x102 bir damlalıkta oldukça karmaşıktır. Özetle şunları içerir:
— Dosya adları
— Dosya boyutu ve içeriği
— Sıkıştırma formatı (COMPRESSION_FORMAT_LZNT1, işlev tarafından kullanılır RtlDecompressBuffer)

İlk dosya şu şekilde sıfırlanır: TCPSVCS.exemeşru olan AcroTranscoder.exe (buna göre FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Bazı DLL dosyalarının 11 MB'tan büyük olduğunu fark etmiş olabilirsiniz. Bunun nedeni, çalıştırılabilir dosyanın içine büyük bir bitişik rastgele veri arabelleğinin yerleştirilmesidir. Bunun bazı güvenlik ürünleri tarafından tespit edilmesini önlemenin bir yolu olması mümkündür.

Kalıcılığın sağlanması

Kaynak 0x101 Damlalıktaki kalıcılığın nasıl sağlanması gerektiğini belirten iki adet 32 ​​bitlik tamsayı içerir. İlkinin değeri, kötü amaçlı yazılımın yönetici hakları olmadan nasıl devam edeceğini belirtir.

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Tablo 1. Yönetici hakları olmadan kalıcılık mekanizması

İkinci tam sayının değeri, kötü amaçlı yazılımın yönetici haklarıyla çalışırken nasıl kalıcılığa ulaşması gerektiğini belirtir.

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Tablo 2. Yönetici haklarına sahip kalıcılık mekanizması

Hizmet adı, uzantısı olmayan dosya adıdır; görünen ad klasörün adıdır, ancak zaten mevcutsa " dizesi ona eklenirRevision 1” (kullanılmayan bir ad bulunana kadar sayı artar). Operatörler, hizmet boyunca kalıcılığın sağlam olduğundan emin oldu; arıza durumunda hizmetin 1 saniye sonra yeniden başlatılması gerekiyordu. Daha sonra değer WOW64 Yeni hizmetin kayıt defteri anahtarının 4 olarak ayarlanması, bunun 32 bit bir hizmet olduğunu gösterir.

Zamanlanmış bir görev çeşitli COM arayüzleri aracılığıyla oluşturulur: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. Temel olarak, kötü amaçlı yazılım gizli bir görev oluşturur, hesap bilgilerini mevcut kullanıcı veya yönetici bilgileriyle birlikte ayarlar ve ardından tetikleyiciyi ayarlar.

Bu, 24 saat süren ve 10 dakikalık iki yürütme arasındaki aralıklardan oluşan günlük bir görevdir, yani sürekli çalışacaktır.

Kötü niyetli bit

Örneğimizde yürütülebilir dosya TCPSVCS.exe (AcroTranscoder.exe), kendisiyle birlikte sıfırlanan DLL'leri yükleyen yasal bir yazılımdır. Bu durumda ilgi çekici Flash Video Extension.dll.

İşlevi DLLMain sadece başka bir işlevi çağırır. Bazı bulanık yüklemler mevcuttur:

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 7. Bulanık yüklemler

Bu yanıltıcı kontrollerden sonra kod bir bölüm alır .text dosya TCPSVCS.exe, savunmasını şu şekilde değiştirir: PAGE_EXECUTE_READWRITE ve sahte talimatlar ekleyerek yeniden yazar:

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 8. Talimatların sırası

Fonksiyon adresinin sonunda FLVCore::Uninitialize(void), ihraç edildi Flash Video Extension.dll, talimat eklendi CALL. Bu, kötü amaçlı DLL yüklendikten sonra çalışma zamanı çağrıldığında WinMain в TCPSVCS.exetalimat işaretçisi NOP'u işaret edecek ve bu durum FLVCore::Uninitialize(void), Sonraki etap.

İşlev basitçe şununla başlayan bir muteks oluşturur: {181C8480-A975-411C-AB0A-630DB8B0A221}ve ardından mevcut kullanıcı adı gelir. Daha sonra konumdan bağımsız kod içeren, dökülen *.db3 dosyasını okur ve CreateThread İçeriği yürütmek için.

*.db3 dosyasının içeriği OceanLotus grubunun genellikle kullandığı kabuk kodudur. Yayınladığımız emülatör komut dosyasını kullanarak yükünü yeniden başarıyla paketinden çıkardık GitHub'da.

Senaryo son aşamayı çıkarıyor. Bu bileşen, daha önce analiz ettiğimiz bir arka kapıdır. önceki OceanLotus çalışması. Bu GUID tarafından belirlenebilir {A96B020F-0000-466F-A96D-A91BBF8EAC96} ikili dosya. Kötü amaçlı yazılım yapılandırması PE kaynağında hâlâ şifrelenmiştir. Yaklaşık olarak aynı konfigürasyona sahiptir ancak C&C sunucuları öncekilerden farklıdır:

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

OceanLotus ekibi, tespit edilmekten kaçınmak için farklı tekniklerin bir kombinasyonunu bir kez daha gösteriyor. Enfeksiyon sürecinin "rafine edilmiş" bir diyagramıyla geri döndüler. Rastgele adlar seçerek ve yürütülebilir dosyaları rastgele verilerle doldurarak güvenilir IoC'lerin (karmalara ve dosya adlarına dayalı olarak) sayısını azaltırlar. Üstelik üçüncü taraf DLL yüklemesinin kullanılması sayesinde saldırganların yalnızca meşru ikili dosyayı kaldırması gerekir. AcroTranscoder.

Kendi kendine açılan arşivler

RTF dosyalarından sonra grup, kullanıcının kafasını daha da karıştırmak için ortak belge simgelerine sahip kendi kendine açılan (SFX) arşivlere geçti. Threatbook bunun hakkında yazdı (Çince bağlantı). Başlatma sırasında, kendi kendine açılan RAR dosyaları bırakılır ve .ocx uzantılı DLL'ler yürütülür; bunların son yükü daha önce belgelenmiştir. {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. OceanLotus, Ocak 2019'un ortasından bu yana bu tekniği yeniden kullanıyor ancak zaman içinde bazı yapılandırmaları değiştiriyor. Bu bölümde teknikten ve değişikliklerden bahsedeceğiz.

Yem Yaratmak

Belge THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) ilk olarak 2018'de bulundu. Bu SFX dosyası akıllıca oluşturuldu - açıklamada (Sürüm Bilgisi) bunun bir JPEG görüntüsü olduğunu söylüyor. SFX betiği şuna benzer:

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 9. SFX Komutları

Kötü amaçlı yazılım sıfırlanıyor {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC) ve bir resim 2018 thich thong lac.jpg.

Tuzak görüntüsü şuna benzer:

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 10. Tuzak görüntüsü

SFX betiğindeki ilk iki satırın OCX dosyasını iki kez çağırdığını fark etmiş olabilirsiniz ancak bu bir hata değildir.

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

OCX dosyasının kontrol akışı diğer OceanLotus bileşenlerine çok benzer; birçok komut dizisi JZ/JNZ и PUSH/RET, çöp koduyla dönüşümlü olarak.

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 11. Karmaşık kod

Önemsiz kodu filtreledikten sonra dışa aktarın DllRegisterServer, isminde regsvr32.exe, şuna benziyor:

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 12. Temel kurulumcu kodu

Temel olarak, ilk aramada DllRegisterServer dışa aktarma kayıt defteri değerini ayarlar HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model DLL'de şifrelenmiş ofset için (0x10001DE0).

Fonksiyon ikinci kez çağrıldığında aynı değeri okur ve o adreste çalışır. Buradan kaynak ve RAM'deki birçok eylem okunur ve yürütülür.

Kabuk kodu, geçmiş OceanLotus kampanyalarında kullanılan PE yükleyicinin aynısıdır. Kullanılarak taklit edilebilir senaryomuz. Sonunda sıfırlanıyor db293b825dcc419ba7dc2c49fa2757ee.dll, belleğe yükler ve çalıştırır DllEntry.

DLL, kaynağının içeriğini çıkarır, şifresini çözer (AES-256-CBC) ve sıkıştırmasını açar (LZMA). Kaynağın, kaynak koda dönüştürülmesi kolay belirli bir formatı vardır.

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 13. Yükleyici yapılandırma yapısı (KaitaiStruct Visualizer)

Yapılandırma açıkça belirtilir; ayrıcalık düzeyine bağlı olarak ikili veriler şuraya yazılır: %appdata%IntellogsBackgroundUploadTask.cpl veya %windir%System32BackgroundUploadTask.cpl (ya SysWOW64 64 bit sistemler için).

Adıyla bir görev oluşturularak daha fazla kalıcılık sağlanır. BackgroundUploadTask[junk].jobNerede [junk] bir bayt kümesini temsil eder 0x9D и 0xA0.

Görev Uygulama Adı %windir%System32control.exeve parametre değeri indirilen ikili dosyanın yoludur. Gizli görev her gün çalışır.

Yapısal olarak, bir CPL dosyası dahili adı olan bir DLL'dir ac8e06de0a6c4483af9837d96504127e.dllbir işlevi dışa aktaran CPlApplet. Bu dosya tek kaynağının şifresini çözüyor {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, ardından bu DLL'yi yükler ve onun tek dışa aktarımını çağırır DllEntry.

Arka kapı yapılandırma dosyası

Arka kapı yapılandırması şifrelenir ve kaynaklarına gömülür. Yapılandırma dosyasının yapısı öncekine çok benzer.

ESET: OceanLotus siber grubu için yeni arka kapı dağıtım planları
Şekil 14. Arka kapı yapılandırma yapısı (KaitaiStruct Visualizer)

Yapı benzer olmasına rağmen alan değerlerinin çoğu, şekilde gösterilenlerden güncellenmiştir. eski raporumuz.

İkili dizinin ilk elemanı bir DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), Tencent tarafından tanımlandı. Ancak dışa aktarma adı ikili dosyadan kaldırıldığı için karmalar eşleşmiyor.

Ek Araştırma

Örnekleri toplarken bazı özellikleri fark ettik. Az önce açıklanan örnek Temmuz 2018 civarında ortaya çıktı ve buna benzer diğerleri Ocak ortasından Şubat 2019'un başına kadar yakın bir zamanda ortaya çıktı. SFX arşivi, yasal bir sahte belge ve kötü amaçlı bir OSX dosyası bırakarak bir enfeksiyon vektörü olarak kullanıldı.

OceanLotus sahte zaman damgaları kullansa da SFX ve OCX dosyalarının zaman damgalarının her zaman aynı olduğunu fark ettik (0x57B0C36A (08 @ 14:2016 UTC) ve 0x498BE80F (sırasıyla 02/06/2009 @ 7:34am UTC). Bu muhtemelen yazarların aynı şablonları kullanan ve yalnızca bazı özellikleri değiştiren bir tür "tasarımcıya" sahip olduklarını gösteriyor.

2018 yılının başından bu yana incelediğimiz belgeler arasında saldırganların ilgilendiği ülkeleri belirten çeşitli isimler yer alıyor:

— Kamboçya Medyasının Yeni İletişim Bilgileri(Yeni).xls.exe
— 李建香 (个人简历).exe (bir CV'nin sahte pdf belgesi)
— geri bildirim, 28-29 Temmuz 2018'de ABD'de Rally.exe

Arka kapı keşfedildiğinden beri {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll ve analizinin birkaç araştırmacı tarafından yayınlanmasının ardından, kötü amaçlı yazılım yapılandırma verilerinde bazı değişiklikler gözlemledik.

İlk olarak yazarlar yardımcı DLL'lerden adları kaldırmaya başladılar (DNSprov.dll ve iki versiyon HttpProv.dll). Operatörler daha sonra üçüncü DLL'nin (ikinci sürüm) paketlenmesini durdurdu. HttpProv.dll), yalnızca birini yerleştirmeyi seçiyorsunuz.

İkinci olarak, birçok IoC kullanıma sunuldukça muhtemelen tespit edilmekten kaçınmak için birçok arka kapı konfigürasyon alanı değiştirildi. Yazarlar tarafından değiştirilen önemli alanlar şunlardır:

  • AppX kayıt defteri anahtarı değiştirildi (bkz. IoC'ler)
  • muteks kodlama dizisi ("def", "abc", "ghi")
  • Port numarası

Son olarak, analiz edilen tüm yeni sürümlerde IoC'ler bölümünde listelenen yeni C&C'ler bulunur.

Bulgular

OceanLotus gelişmeye devam ediyor. Siber grup, araçları ve yemleri iyileştirmeye ve genişletmeye odaklanıyor. Yazarlar, konusu hedeflenen kurbanlarla ilgili olan dikkat çekici belgeleri kullanarak kötü amaçlı yükleri gizler. Yeni planlar geliştiriyorlar ve ayrıca Denklem Düzenleyicisi'nin istismarı gibi halka açık araçları kullanıyorlar. Dahası, kurbanların makinelerinde kalan artefaktların sayısını azaltacak araçlar geliştiriyorlar, böylece antivirüs yazılımı tarafından tespit edilme şansı da azaltılıyor.

Uzlaşma göstergeleri

Uzlaşma göstergelerinin yanı sıra MITRE ATT&CK özellikleri de mevcuttur Welivesecurity hakkında и GitHub'da.

Kaynak: habr.com

Yorum ekle