Stealth Falcon, Deadglyph ile Orta Doğu semalarında avlanıyor

Stealth Falcon, Deadglyph ile Orta Doğu semalarında avlanıyor

Kaynak Düğüm: 2899203

Yıllardır Orta Doğu, gelişmiş kalıcı tehditler (APT'ler) için verimli bir alan olma ününü korudu. ESET Araştırma, bazıları bu bölgede bulunan yüksek profilli müşterilerin sistemlerindeki şüpheli etkinlikleri rutin olarak izlerken, Deadglyph adını verdiğimiz çok karmaşık ve bilinmeyen bir arka kapıyla karşılaştı. Adı arka kapıda bulunan eserlerden aldık (örneğin 0xÖLÜB001, aynı zamanda şu şekilde de gösterilmiştir: REF _Ref111452440 h tablo 1
), bir homonun varlığıyla birleştiğindekabartma saldırı. Bildiğimiz kadarıyla bu, daha önce belgelenmemiş olan bu arka kapının, kayda değer derecede gelişmişlik ve uzmanlık sergileyen bir grup tarafından kullanılan ilk kamuya açık analizidir. Hedefleme ve ek kanıtlara dayanarak Deadglyph'i yüksek güvenle Stealth Falcon APT grubuna atfediyoruz.

Deadglyph'in mimarisi sıra dışıdır çünkü şunlardan oluşur: işbirliği yapan bileşenler – biri yerel x64 ikili dosyası, diğeri ise .NET derlemesi. Bu kombinasyon olağandışıdır çünkü kötü amaçlı yazılım genellikle bileşenleri için yalnızca tek bir programlama dili kullanır. Bu fark, bu iki bileşenin ayrı ayrı geliştirildiğini ve aynı zamanda kullandıkları farklı programlama dillerinin benzersiz özelliklerinden yararlandıklarını gösteriyor olabilir. Analizi engellemek için farklı dillerden de yararlanılabilir, çünkü karma kodda gezinmek ve hata ayıklamak daha zordur.

Geleneksel arka kapı komutları arka kapı ikili dosyasında uygulanmaz; bunun yerine, ek modüller biçiminde komuta ve kontrol (C&C) sunucusundan dinamik olarak alınırlar. Bu arka kapı aynı zamanda tespit edilmekten kaçınmak için bir takım yeteneklere de sahiptir.

Bu blog yazısında Deadglyph'e daha yakından bakacağız ve bu arka kapının teknik analizini, amacını ve elde ettiğimiz bazı ek bileşenleri sunacağız. Deadglyph ile ilgili bulgularımızı da fuarda sunuyoruz. LABScon 2023 konferans.

Blog gönderisinin önemli noktaları:

  • ESET Araştırması, Deadglyph adını verdiğimiz sıra dışı mimariye sahip karmaşık bir arka kapı keşfetti.
  • Ana bileşenler, makineye özel bir anahtar kullanılarak şifrelenir.
  • Geleneksel arka kapı komutları, C&C sunucusundan alınan ek modüller aracılığıyla uygulanır.
  • Pek çok modülden üçünü elde ettik: süreç oluşturucu, dosya okuyucu ve bilgi toplayıcı.
  • Deadglyph'i Stealth Falcon grubuna atfediyoruz.
  • Ek olarak ilgili bir kabuk kodu indiricisi de bulduk; Deadglyph'in kurulumu için potansiyel olarak kullanılabileceğini düşünüyoruz.

Analiz edilen sızıntının kurbanı, Orta Doğu'da casusluk amacıyla ele geçirilen bir devlet kurumudur. VirusTotal'da bulunan ilgili bir örnek de bu bölgeden, özellikle Katar'dan dosya tarama platformuna yüklendi. Hedeflenen bölge haritada gösterilmektedir. REF _Ref143614671 h şekil 1
.

Ölü Glif Şekil_01
Şekil 1. Deadglyph'in mağduriyeti; İlgili örnek Katar'dan VirusTotal'a yüklenmiştir (koyu renkte)

Stealth Falcon (Project Raven veya FruityArmor olarak da bilinir), Birleşik Arap Emirlikleri'ne bağlı bir tehdit grubudur MITRE'ye göre. 2012'den bu yana aktif olan Stealth Falcon'un Orta Doğu'daki siyasi aktivistleri, gazetecileri ve muhalifleri hedef aldığı biliniyor. İlk kez keşfedildi ve tanımlandı. vatandaş Lab, bir yayınlayan analiz 2016 yılındaki bir casus yazılım saldırıları kampanyasından.

Ocak 2019'da Reuters bir rapor yayınladı. araştırmacı raporu eski NSA görevlilerini çalıştırdığı ve Stealth Falcon ile aynı türdeki hedefleri hedeflediği iddia edilen bir girişim olan Raven Projesi hakkında. Uluslararası Af Örgütü, aynı hedef ve saldırılara atıfta bulunan bu iki rapora dayanarak sonuçlandı (gösterilen REF _Ref144978712 h şekil 2
) Stealth Falcon ve Project Raven'ın aslında aynı grup olduğu.

Ölü Glif Şekil 2
Şekil 2. Claudio Guarnieri, Stealth Falcon'u Project Raven'a bağladı

Eylül 2019'da biz yayınlanan araştırma Stealth Falcon'a atfedilen ve alışılmadık bir teknik kullanan bir arka kapıda, Arka Plan Akıllı Aktarım Hizmeti, C&C iletişimi için. Şimdi, Stealth Falcon'un casusluk araç setine muhtemelen en yeni eklenen şeyin ne olduğuna dair derinlemesine analizimizin sonucunu açıklıyoruz.

Ölü Glif arka kapısı

Deadglyph'in yükleme zinciri, aşağıda gösterildiği gibi birden fazla bileşenden oluşur. REF _Ref144978760 h şekil 3
. İlk bileşen, kayıt defterinden kabuk kodunu yükleyen bir kayıt defteri kabuk kodu yükleyicisidir. Çıkarılan bu kabuk kodu, arka kapının yerel x64 kısmını (Yürütücü) yükler. Yürütücü daha sonra arka kapının .NET kısmını (Orkestratör) yükler. Özellikle, sistem diskinde dosya olarak bulunan tek bileşen, Dinamik Bağlantı Kitaplığı (DLL) biçimindeki başlangıç ​​bileşenidir. Geriye kalan bileşenler şifrelenir ve ikili bir kayıt defteri değeri içinde saklanır.

Ölü Glif Şekil_02
Şekil 3. Deadglyph yükleme zinciri bileşenleri

İlk uzlaşma vektörünün kesin yöntemi henüz belirlenmemiş olsa da, bir yükleyici bileşeninin daha fazla bileşenin dağıtılmasında ve sistem içinde kalıcılığın sağlanmasında rol oynadığı yönünde şüphelerimiz var.

Bu bölümün geri kalanında her bir bileşeni analiz edeceğiz.

Kayıt defteri kabuk kodu yükleyicisi

Deadglyph'in ilk bileşeni, tek bir dışa aktarma işlemine sahip küçük bir DLL'dir. 1. Bu bileşen kullanılarak kalıcı hale getirilir Windows Yönetim Araçları (WMI) olay aboneliği ve kayıt defteri kabuk kodu yükleyicisi olarak görev yapar. Komut satırı aracılığıyla yürütülür rundll32 C:WINDOWSSSystem32pbrtl.dll,#1.

Kayıt defteri kabuk kodu yükleyicisi, RC4'ü kullanarak Windows kayıt defterinde depolanan şifrelenmiş kabuk kodunun yolunun şifresini çözerek işlemine başlar. Yolun her kurban için benzersiz olduğundan şüpheleniyoruz; burada analiz edilen durumda kayıt defteri yolu şuydu:

SoftwareClassesCLSID{5abc7f42-1112-5099-b082-ce8d65ba0c47}cAbRGHLg

Kök kayıt defteri anahtarı ya HKLM or HKCUGeçerli işlemin yükseltilmiş ayrıcalıklarla çalışıp çalışmadığına bağlı olarak. Aynı mantık diğer bileşenlerde de bulunabilir.

Bunu takiben yükleyici, sistem UUID'sini kullanarak makineye özel bir RC4 anahtarı türetir. ham SMBIOS ürün yazılımı tablosu. Bu anahtarı kullanarak kabuk kodunu yükler, şifresini çözer ve ardından çalıştırır. Bu anahtar türetme yaklaşımının, yükleyicinin farklı bir bilgisayarda çalıştırılması durumunda uygun şifre çözme işleminin gerçekleşmeyeceğini garanti ettiğini vurgulamak önemlidir.

İlginç bir şekilde yükleyici, içindeki bir bayrakla da yapılandırılabilir. .veri Kabuk kodunun şifresini çözmek için makineye özgü anahtar yerine sabit kodlu bir anahtar kullanmak için bölüm.

Microsoft Corporation'ı taklit eden bir homoglif saldırısı tespit ettik. VERSİYON BİLGİSİ bunun ve diğer PE bileşenlerinin kaynağı. Bu yöntem, orijinal karakterlere görsel olarak benzer görünen ancak bu durumda aynı olmayan farklı Unicode karakterleri, özellikle de Yunanca Büyük Harf San (U+03FA, Ϻ) ve Kiril Küçük Harf O (U+043E, о) kullanır. Ϻicrоsоft Corpоratiоn.

Kayıt defteri kabuk kodu

İki bölümden oluşan kayıt defteri kabuk kodu, bir şifre çözme rutini ve şifrelenmiş bir gövdeden oluşur. İlk olarak, şifre çözme rutini şifrelenmiş gövdenin her baytını birer birer sola döndürür (ROL 0x01). Daha sonra kontrol, şifresi çözülen bu gövdeye aktarılır. Şifresi çözülmüş gövde, bir PE yükleyici ve bir PE dosyasından oluşur; ikincisi, arka kapının yerel kısmını temsil eden Yürütücüdür. Bu yükleyici, ilgili PE dosyasının ayrıştırılmasından ve yüklenmesinden sorumludur.

vasiyet hükümlerini gerçekleştiren erkek

Executor, Deadglyph arka kapısının yerel x64 kısmıdır ve aşağıdakileri yapar:

  • yapılandırmasını yükler,
  • .NET çalışma zamanını başlatır,
  • arka kapının (Orkestratör) gömülü .NET kısmını yükler ve
  • Orkestratör için bir kütüphane görevi görür.

İlk olarak, yerleşik iki varsayılan yapılandırma .veri bölümün şifresi AES ile çözülmüştür. Yapılandırmalar, şifreleme anahtarları, güvenlik ve kaçınma ayarları ve sonraki bileşenin giriş noktası dahil olmak üzere çeşitli parametreleri kapsar.

İlk yürütme sırasında, bu iki varsayılan yapılandırma Windows kayıt defterinde depolanır ve sonraki çalıştırmalarda buradan yüklenir ve güncellemelerin uygulanmasına olanak sağlanır. Her yapılandırmanın kayıt defteri yolu aşağıdaki biçimde oluşturulur:

{HKCU|HKLM}Yazılım SınıflarıCLSID{ }(Varsayılan)

her kurban için benzersiz olan, oluşturulmuş bir GUID'dir.

Bunu takiben, .NET çalışma zamanı başlatılır ve ardından Yürütücü RC4, arka kapının Orkestratör olarak bilinen .NET kısmının şifresini çözer. Orkestratör, .rsrc Yürütücü bölümü. Yapılandırma, Orkestratörün yürütme yöntemini bir giriş noktası olarak belirtir. Ayrıca Executor fonksiyonlarının Orkestratör tarafından erişilebilirliğini kolaylaştırmak için ayrı bir yapı sağlanmıştır.

Orkestratör başlatıldıktan sonra Yürütücü, Orkestratör için bir destek kitaplığı görevi görür. Yürütücü birçok ilginç fonksiyon içerir; Orkestratör tarafından kullanımları ve diğer yüklenen modüller bağlamında bunlardan bazılarını aşağıdaki bölümde açıklayacağız.

Orchestrator

.NET'te yazılan Orkestratör, Deadglyph arka kapısının ana bileşenidir. Bu bileşenin birincil rolü, C&C sunucusuyla iletişim kurmayı ve genellikle Yürütücünün aracı rolü aracılığıyla kolaylaştırılan komutları yürütmeyi içerir. Önceki bileşenlerin aksine, Orkestratör .NET Reactor kullanılarak gizlenmiştir. Dahili olarak arka kapıya şu ad verilir: ajan, çeşitli kullanım sonrası çerçevelerdeki istemci kısmının ortak adıdır.

Başlatma

Orkestratör ilk önce kendi yapılandırmasını ve her biri kendi yapılandırma kümesiyle birlikte gelen iki yerleşik modülü kaynaklardan yükler. Bu kaynaklar deflate sıkıştırılmış ve AES şifrelenmiş. Bunlara, kaynak adına SHA-1 karma işlemi uygulanmış bir kimlik tarafından başvurulur. Bu kaynaklara genel bir bakış şurada verilmiştir: REF _Ref111452440 h tablo 1
.

Tablo 1. Orkestratör kaynakları

 

Kaynak adı

Kimlik (ondalık)

Kimlik (onaltılık)

Açıklama

43ed9a3ad74ed7ab74c345a876b6be19039d4c8c

2570286865

0x99337711

Orkestratör yapılandırması.

3a215912708eab6f56af953d748fbfc38e3bb468

3740250113

0xDEEFB001

Ağ modülü.

42fb165bc9cf614996027a9fcb261d65fd513527

3740250369

0xDEEFB101

Ağ modülü yapılandırması.

e204cdcf96d9f94f9c19dbe385e635d00caaf49d

3735924737

0xÖLÜB001

Zamanlayıcı modülü.

abd2db754795272c21407efd5080c8a705a7d151

3735924993

0xÖLÜB101

Zamanlayıcı modülü konfigürasyonu.

Orkestratörün ve gömülü modüllerin yapılandırması XML biçiminde saklanır. Orkestratör konfigürasyonunun bir örneği şurada gösterilmektedir: REF _Ref111452611 h
şekil 4
.

Ölü Glif Şekil_04
Şekil 4. Orkestratör yapılandırması

Orkestratör yapılandırma girişlerinin açıklaması şurada gösterilmiştir: REF _Ref111452782 h tablo 2
.

Tablo 2. Orkestratör yapılandırma girişleri

anahtar

Açıklama

k


Kalıcı modül yapılandırmaları için kullanılan AES anahtarı.

a


Ağ modülü başlatma yöntemi adı.

b


Bilinmeyen ağ modülüyle ilgili işaret.

c


Zamanlayıcı modülü başlatma yöntemi adı.

d


Kaynaklar için makineye özgü AES anahtarının (sistem UUID) kullanımını etkinleştirmeyi işaretleyin.

p


Ağ modülü kaynak kimliği.

t


Zamanlayıcı modülü kaynak kimliği.

Kaynak bileşenleri yüklendikten sonra farklı görevleri gerçekleştirmek için birden çok iş parçacığı oluşturulur. Bu iş parçacıklarından biri, Yürütücü içinde uygulanan bir işlev olan ortam kontrollerinin yürütülmesinden sorumludur. Başka bir iş parçacığı, komutların alınmasını sağlayan C&C sunucusuyla periyodik iletişim kurmaya ayrılmıştır. Son olarak, alınan komutları yürütmek ve ardından üretilen herhangi bir çıktıyı C&C sunucusuna geri iletmek amacıyla üç iş parçacığından oluşan bir set kullanılır.

Ortam denetleme iş parçacığı, istenmeyen işlemleri belirlemek için çalışan işlemleri izler. Bu iş parçacığı iki farklı işlem adı listesiyle çalışır. İlk listede bir işlem tespit edilirse, C&C iletişimi ve komut yürütme, istenmeyen işlem artık mevcut olmayana kadar duraklatılır. İkinci listedeki herhangi bir işlem için eşleşme varsa arka kapı hemen kapanır ve kendini kaldırır.

Analiz edilen örnekte her iki liste de yapılandırılmadığından, genellikle hangi süreçlerin kontrol edilebileceğini bilmiyoruz; Muhtemelen şüpheli etkinliği tespit edebilecek ve arka kapının keşfedilmesine yol açabilecek analiz araçlarından kaçmayı amaçladığına inanıyoruz.

Yakın İletişim

Orkestratör, C&C iletişimi için iki yerleşik modül kullanır: Zamanlayıcı ve Ağ. Orkestratör gibi bu modüller de .NET Reactor ile karıştırılmıştır. Her iki modülün yapılandırması Orkestratör tarafından sağlanır. Orkestratörde modüller için önceden ayarlanmış bir yapılandırma bulunur; isteğe bağlı olarak Orkestratör, kayıt defterinden güncelleştirilmiş bir yapılandırma sürümünü de yükleyebilir:

{HKCU|HKLM}Yazılım SınıflarıCLSID{ }

Arka kapı iletişimle ilgili ilginç bir güvenlik önlemi içeriyor. Arka kapı, Yürütücü içinde yapılandırılan önceden tanımlanmış eşiği aşan bir süre boyunca C&C sunucusuyla iletişim kuramazsa, kendi kendini kaldırma mekanizması tetiklenir. Bu süre eşiği saat olarak belirlenmiş ve incelenen vakada bir saat olarak belirlenmiştir.

Bu yaklaşım iki yönlü bir amaca hizmet eder. Bir yandan erişilemeyen bir sunucuya yönelik yedekli ağ isteklerinin oluşturulmasını engeller. Öte yandan, operatörlerin arka kapı üzerindeki kontrolünü kaybetmesi durumunda daha sonra tespit edilme şansı azalır.

Zamanlayıcı modülü

Bu küçük modül, belirtilen geri aramayı yapılandırılabilir bir aralıkta yürütür. Orkestratör tarafından Ağ modülüyle birlikte C&C sunucusuyla periyodik olarak iletişim kurmak için kullanılır. Ağ günlüklerinde algılanabilir modellerin oluşturulmasını önlemek için yürütme aralığı, yapılandırmada belirtilen yüzdeye dayalı olarak rastgele seçime tabi tutulur. Analiz edilen örnekte aralık, rastgelelik için ±%20'lik bir varyasyonla beş dakikaya ayarlandı.

Periyodik iletişimde tespit edilebilir ağ modellerini önlemenin başka bir yöntemi, C&C sunucusuna gönderilen isteklerin oluşturulmasında bulunabilir. Yürütücüde uygulanan bu mekanizma, isteklere rastgele baytlardan oluşan değişen uzunluklarda dolgunun dahil edilmesini içerir ve bu da farklı boyutlarda isteklerle sonuçlanır.

Ağ modülü

Ağ modülü, konfigürasyonunda belirtilen C&C sunucularıyla iletişimi gerçekleştirir. HTTP(S) POST isteklerini kullanarak bir C&C sunucusuna veri gönderebilir. Özellikle proxy yapılandırma ayrıntılarını elde etmek için çeşitli mekanizmalar sunar. Bu özellik, doğrudan internet erişiminin bulunmadığı ortamlara potansiyel olarak odaklanılacağını göstermektedir.

Şifresi çözülmüş (ve güzelleştirilmiş) bir konfigürasyon örneği şurada gösterilmiştir: REF _Ref144978805 h şekil 5
.

Ölü Glif Şekil_06
Şekil 5. Ağ modülü yapılandırması

Yapılandırma girişleri, ağ iletişimleriyle (C&C URL'leri, HTTP Kullanıcı Aracısı ve isteğe bağlı olarak bir proxy yapılandırması) ilgili ayrıntıları içerir.

C&C sunucusuyla iletişim kurarken, HTTPS altında şifrelenmiş içeriğe sahip özel bir ikili protokol kullanılır.

Komutları

Orkestratör, komutları C&C sunucusundan, yürütülmek üzere kuyruğa alınan görevler biçiminde alır. İşlenen üç tür görev vardır:

  • Orkestratör görevleri,
  • Yürütücü görevleri ve
  • Görevleri yükleyin.

İlk iki tür C&C sunucusundan alınır ve üçüncüsü komutların ve hataların çıktısını yüklemek için dahili olarak oluşturulur.

Orkestratör görevleri

Orkestratör görevleri, Ağ ve Zamanlayıcı modüllerinin yapılandırmasını yönetme ve ayrıca bekleyen görevleri iptal etme olanağı sunar. Orkestratör görevlerine genel bakış şurada gösterilmiştir: REF _Ref111101783 h tablo 3
.

Tablo 3. Orkestratör görevleri

Tip

Açıklama

0x80


Ağ ve zamanlayıcı modüllerinin yapılandırmasını ayarlayın.

0x81


Ağ ve zamanlayıcı modüllerinin yapılandırmasını alın.

0x82


Görevi iptal et.

0x83


Tüm görevleri iptal edin.

Yürütücü görevleri

Yürütücü görevleri, arka kapıyı yönetme ve ek modülleri yürütme yeteneği sunar. Geleneksel arka kapı işlevselliğinin ikili programın kendisinde doğal olarak mevcut olmaması dikkat çekicidir. Bunun yerine, bu işlevler C&C sunucusundan PE dosyaları veya kabuk kodu biçiminde alınır. Arka kapının potansiyelinin tamamı, arka kapının gerçek yeteneklerini etkili bir şekilde ortaya çıkaran bu ek modüller olmadan bilinmemektedir. Modül görevlerine genel bakış şurada gösterilmiştir: REF _Ref117677179 h tablo 4
Tanımlanan birkaç modülle ilgili ayrıntıları içeren. Benzer şekilde, REF _Ref117677188 h tablo 5
Yürütücü ile ilişkili yönetim görevlerine genel bir bakış sağlar.

Tablo 4. Yürütücü görevleri – modüller

Tip

Açıklama

0x??–0x63


Bilinmiyor

0x64


Dosya okuyucu

0x65


Bilinmiyor

0x66


Bilinmiyor

0x67


Bilinmiyor

0x68


Bilinmiyor

0x69


Süreç yaratıcısı

0x6A


Bilinmiyor

0x6B


Bilinmiyor

0x6C


Bilgi toplayıcı

0x6D


Bilinmiyor

0x6E


Bilinmiyor

Tablo 5. Yürütücü görevleri – yönetim

Tip

Açıklama

0x6F-0x76

Uygulanmadı

0x77

Yürütücü yapılandırmasını ayarlayın

0x78

Executor yapılandırmasını alın

0x79-0x7C

Uygulanmadı

0x7D

Güncelleme

0x7E

Çıkmak

0x7F

kaldırma

Yürütücü yapılandırmasını ayarlayan komut şunları değiştirebilir:

  • istenmeyen süreç listeleri,
  • C&C iletişim hatasının zaman eşiği ve
  • ek modüllerin yürütülmesi için zaman sınırı.
Modüller

C&C sunucusundan, her biri farklı bir Executor görev türüne karşılık gelen, şekilde gösterildiği gibi üç benzersiz modül almayı başardık. REF _Ref117677179 h tablo 4 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003100310037003600370037003100370039000000
. Mevcut bilgilere dayanarak toplamda dokuz ila on dört modül olduğunu tahmin ediyoruz. Modüller aslında arka kapı komutları olduğundan, yürütülecek bir temel işlemi vardır ve ardından isteğe bağlı olarak çıktılarını geri verirler. Elde ettiğimiz modüller, adsız bir dışa aktarıma sahip DLL'lerdir (sıralı 1), burada gerekli API işlevlerini çözerler ve ana işlevi çağırırlar.

Yürütüldüğünde modüllere, Windows API'lerini ve özel Yürütücü API'lerini çözümleyebilen bir API çözümleme işlevi sağlanır. Windows API'lerine, API'nin adından ve DLL'sinden hesaplanan bir DWORD karma değeriyle başvurulur. Küçük karma değerleri (<41), Yürütücü API işlevine atıfta bulunularak özel olarak ele alınır. Executor API, modüllerin erişebildiği toplam 39 işlevden oluşur. Bu işlevler aşağıdakiler de dahil olmak üzere çeşitli işlemlerle ilgilidir:

  • dosya işlemleri,
  • şifreleme ve karma,
  • sıkıştırma,
  • PE yükleme,
  • Token Kimliğine Bürünmeye erişin ve
  • Yarar.

Bu bölümün geri kalanında elde ettiğimiz modülleri anlatacağız.

Süreç yaratıcısı

modül 0x69 belirtilen komut satırını yeni bir işlem olarak yürütür ve elde edilen çıktıyı Orkestratöre geri sağlar. İşlem farklı bir kullanıcı altında oluşturulabilir ve yürütme süresi sınırlandırılabilir. Dikkat çekici bir şekilde alışılmadık bir İş API'si Bu modülün işlevselliğinde kullanılır.

Bu modül komut satırıyla sunuldu cmd.exe /c görev listesi /v.

Operatörler ele geçirilen bilgisayarda ilginç bir şeyin olmasını beklerken, bunun otomatik olarak verilen boş bir komut olarak hizmet ettiğini varsayıyoruz.

Bilgi toplayıcı

modül 0x6C WMI sorguları aracılığıyla bilgisayar hakkında kapsamlı bilgiler toplar ve bunları Orkestratöre geri iletir. Aşağıdakilerle ilgili bilgiler toplanır:

  • işletim sistemi,
  • ağ bağdaştırıcıları,
  • yüklü yazılım,
  • sürücüler,
  • Hizmetler,
  • sürücüler,
  • süreçleri,
  • kullanıcılar,
  • ortam değişkenleri ve
  • güvenlik yazılımı.
Dosya okuyucu

modül 0x64 belirtilen dosyayı okur ve içeriği Orkestratöre geri iletir. İsteğe bağlı olarak dosyayı okuduktan sonra silebilir.

Bu modülün kurbanın Outlook veri dosyasını almak için kullanıldığını gördük

c:Kullanıcılar AppDataLocalMicrosoftOutlookoutlook.ost.

Kabuk kodu indiricili zincir

Deadglyph'i araştırma sürecinde, süresi dolmuş bir sertifikayla imzalanmış ve zaman damgalı karşı imzanın bulunmadığı, Katar'dan VirusTotal'a yüklenmiş şüpheli bir CPL dosyasıyla karşılaştık. Daha yakından incelendiğinde, bu CPL dosyasının çok aşamalı bir kabuk kodu indiricisi olarak işlev gördüğü ve Deadglyph ile belirli kod benzerliklerini paylaştığı ortaya çıktı. Yükleme zinciri şekilde gösterilmiştir. REF _Ref143693067 h şekil 6
.

Ölü Glif Şekil_03
Şekil 6. Shellcode indirici yükleme zinciri

İlk aşama olarak hizmet veren ilk haliyle, bu dosya bir . Cpl uzantılı (Denetim Masası dosyası) ve çift tıklama eylemiyle yürütülmesi amaçlanıyor. Bu şekilde yürütüldükten sonra, gömülü kabuk kodu XOR şifre çözme işlemine tabi tutulur ve çalışan işlemler, sonraki enjeksiyon için uygun bir ana bilgisayar işleminin belirlenmesi amacıyla kontrol edilir.

If avp.exe (Kaspersky uç nokta güvenlik süreci) çalışıyor, %windir%system32UserAccountBroker.exe kullanıldı. Aksi halde varsayılan tarayıcı kullanılır. Daha sonra, ana iş parçacığını askıya alınmış bir durumda oluşturur, ana iş parçacığını ele geçirerek kabuk kodunu enjekte eder ve iş parçacığını devam ettirir.

İkinci aşama olan kabuk kodu iki bölümden oluşur. Kabuk kodunun ilk kısmı, Deadglyph'te kullanılan aynı benzersiz karma hesaplama tekniğini kullanarak API karmalarını çözer ve süreç adlarıyla dizelerin şifresini çözer. İlk aşamadaki dosyanın üzerine yazılması ve ardından silinmesiyle görevli, kendi kendini silen bir iş parçacığı başlatır. Bunu takiben kabuk kodu, bir güvenlik çözümünü hedefleyerek mevcut aktif süreçleri incelemeye devam eder.

Belirtilen işlemlerden herhangi biri algılanırsa, kabuk kodu en düşük önceliğe sahip uyuyan bir iş parçacığı oluşturur (THREAD_PRIORITY_IDLE) ve çalışmasını sonlandırmadan önce 60 saniye süreyle aktif kalmasını sağlar. Bu aralık muhtemelen güvenlik çözümlerinin kullandığı belirli algılama mekanizmalarından kaçınmak için bir önlem olarak uygulanmaktadır. Son olarak kabuk kodu, kodunun ikinci bölümünün yürütülmesini başlatmaya devam eder.

Kabuk kodunun ikinci kısmı üçüncü aşamadaki gömülü bir PE dosyasını yükler ve dışa aktarımını sıra numarasıyla çağırır 1.

Üçüncü aşama olan DLL, .NET yükleyicisi olarak görev yapar ve veriyi kendi dosyasında içerir. .rsrc Bölüm.

Yükü yüklemek için .NET çalışma zamanı başlatılır. .NET'in başlatılması sırasında, görünüşte Windows'tan kaçmayı amaçlayan iki ilgi çekici teknik gerçekleştirilir. Kötü Amaçlı Yazılımdan Koruma Tarama Arayüzü (AMSI) taraması:

  • .NET yükleyicisi geçici olarak GetModuleHandleW yüklenen içe aktar clr.dll, arama sırasında ICorRuntimeHost::Başlat. Kanca, dönüş değerini değiştirdiğinde GetModuleHandleW ile denir NULL. Hiçbir bölümü olmayan sahte bir PE'ye bir işaretçi döndürür.
  • Daha sonra ince bir şekilde yamalar yapar Amsi Başlatma ad dizesini içe aktar .rdata yüklenen bölüm clr.dll için amsiisıfırlamak.

Dördüncü aşama, ConfuserEx ile gizlenmiş ve kabuk kodu indiricisi olarak hizmet veren bir .NET derlemesidir. İlk olarak, XML formatındaki yapılandırmasının şifresini kaynaklarından XOR ile çözer. Çıkarılan konfigürasyonun güzelleştirilmiş bir versiyonu şurada sunulmaktadır: REF _Ref143695453 h şekil 7
. Yapılandırma girişleri ağ iletişimi ve engellenen işlemlerle ilgili ayrıntıları içerir.

Ölü Glif Şekil_05
Şekil 7. Shellcode indirici yapılandırması

Devam etmeden önce, çalışan işlemleri yapılandırmadaki engellenen işlemler listesine göre kontrol eder. Bir eşleşme tespit edilirse yürütme durdurulur. Analiz edilen örnekte bu engellenenler listesinin kurulmadığını unutmamak önemlidir.

Daha sonra, yapılandırmada belirtilen parametreleri (URL, Kullanıcı Aracısı ve isteğe bağlı olarak Proxy) kullanarak bazı kabuk kodlarını almak için C&C sunucusuna bir HTTP GET isteği gönderir. Maalesef araştırmamız sırasında C&C sunucusundan herhangi bir kabuk kodu alamadık. Bununla birlikte, alınan içeriğin potansiyel olarak Deadglyph'in yükleyicisi olarak hizmet verebileceğini varsayıyoruz.

Bunu takiben, alınan kabuk kodu yeni oluşturulan bir iş parçacığı içinde yürütülür. Kabuk kodu iş parçacığının yürütülmesinin tamamlanmasını bekledikten sonra, kabuk kodu indiricisi dizinde bulunan tüm dosyaları kaldırır. %WINDIR%ServiceProfilesLocalServiceAppDataLocalTempTfsStoreTfs_DAV.

Son olarak, işlemini sonlandırıp çıkmadan önce, sonraki komutu kullanarak 20 saniyelik bir aradan sonra kendini silmeye çalışır:

cmd.exe seçimi /CY /N /DY /T 20 ve Del /f /q

Bu zincirde kendi kendini silmenin bir anlamı yok. Bunun nedeni, kabuk kodu indiricisinin bağımsız bir yürütülebilir dosya olarak çalışmak yerine, enjekte edildikten sonra bir tarayıcı veya sistem işlemi içinde yürütülmesidir. Üstelik ilk dosya ikinci aşamada zaten silinmişti. Bu gözlem, kabuk kodu indiricisinin bu zincirin özel bir yükü olmayabileceğini ve ayrıca diğer işlemlerde ayrı olarak kullanılabileceğini göstermektedir.

Sonuç

Deadglyph adını verdiğimiz Stealth Falcon grubunun kullandığı gelişmiş bir arka kapıyı keşfettik ve analiz ettik. Alışılmadık bir mimariye sahiptir ve arka kapı yetenekleri, C&C tarafından ek modüller şeklinde sağlanmaktadır. Deadglyph'in tüm yeteneklerinin bir kısmını açığa çıkararak bu modüllerden üçünü elde etmeyi başardık.

Özellikle Deadglyph, sistem süreçlerinin sürekli izlenmesi ve rastgele ağ modellerinin uygulanması da dahil olmak üzere bir dizi karşı tespit mekanizmasına sahiptir. Ayrıca arka kapı, belirli durumlarda tespit edilme olasılığını en aza indirmek için kendi kendini kaldırabilme özelliğine sahiptir.

Ayrıca araştırmamız bizi VirusTotal'da çok aşamalı bir kabuk kodu indirici zincirinin keşfine yönlendirdi. Bu indirici zincirinin Deadglyph'in kurulum sürecinde muhtemelen kullanıldığından şüpheleniyoruz.

WeLiveSecurity'de yayınlanan araştırmamızla ilgili herhangi bir sorunuz için lütfen şu adresten bizimle iletişime geçin: tehditintel@eset.com.
ESET Research, özel APT istihbarat raporları ve veri akışları sunar. Bu hizmetle ilgili tüm sorularınız için şu adresi ziyaret edin: ESET Tehdit İstihbaratı gidin.

IOCs

dosyalar

SHA-1

Dosya adı

Bulma

Açıklama

C40F1F46D230A85F702DAA38CFA18D60481EA6C2

pbrtl.dll

Win64/Deadglyph.A

Kayıt Defteri Shellcode Yükleyici.

740D308565E215EB9B235CC5B720142428F540DB

N / A

Win64/Deadglyph.A

Deadglyph Arka Kapı – Yürütücü.

1805568D8362A379AF09FD70D3406C6B654F189F

N / A

MSIL/Deadglyph.A

Deadglyph Arka Kapı – Orkestratör.

9CB373B2643C2B7F93862D2682A0D2150C7AEC7E

N / A

MSIL/Deadglyph.A

Orkestratör Ağ modülü.

F47CB40F6C2B303308D9D705F8CAD707B9C39FA5

N / A

MSIL/Deadglyph.A

Orkestratör Zamanlayıcı modülü.

3D4D9C9F2A5ACEFF9E45538F5EBE723ACAF83E32

N / A

Win64/Deadglyph.A.gen

Süreç oluşturucu modülü.

3D2ACCEA98DBDF95F0543B7C1E8A055020E74960

N / A

Win64/Deadglyph.A

Dosya okuyucu modülü.

4E3018E4FD27587BD1C566930AE24442769D16F0

N / A

Win64/Deadglyph.A

Bilgi toplayıcı modülü.

7F728D490ED6EA64A7644049914A7F2A0E563969

N / A

Win64/Enjektör.MD

Kabuk kodu indirme zincirinin ilk aşaması.

Sertifikalar

Seri numarası

00F0FB1390F5340CD2572451D95DB1D92D

Parmak izi

DB3614DAF58D041F96A5B916281EA0DC97AA0C29

Konu CN

RHM SINIRLI

Konu O

RHM SINIRLI

Konu L

St. Albans

Konu S

Hertfordshire

Konu C

GB

e-posta

rhm@rhmlimited[.]co.uk

Kadar geçerli

2021-03-16 00:00:00

Şuna kadar geçerlidir:

2022-03-16 23:59:59

C&C sunucuları

IP

domain

İlk görüş

Yorum Yap

185.25.50[.]60

chessandlinkss[.]com

2021-08-25

Deadglyph C&C sunucusu.

135.125.78[.]187

easymathpath[.]com

2021-09-11

Deadglyph C&C sunucusu.

45.14.227[.]55

joinussağlık[.]com

2022-05-29

Shellcode indirici C&C sunucusu.

MITRE ATT&CK teknikleri

Bu tablo kullanılarak yapılmıştır sürümü 13 MITRE ATT&CK çerçevesinin

taktik

ID

Name

Açıklama

Kaynak geliştirme

T1583.001

Altyapı Edinme: Etki Alanları

Stealth Falcon, C&C sunucuları için ve kod imzalama sertifikası almak için alan adlarını kaydettirmiştir.

T1583.003

Altyapı Edinme: Sanal Özel Sunucu

Stealth Falcon, C&C sunucuları için VPS barındırma sağlayıcılarını kullandı.

T1587.001

Yetenek Geliştirme: Kötü Amaçlı Yazılım

Stealth Falcon, özel yükleyiciler ve Deadglyph arka kapısı da dahil olmak üzere özel kötü amaçlı yazılımlar geliştirdi.

T1588.003

Yetenekleri Elde Edin: Kod İmzalama Sertifikaları

Stealth Falcon bir kod imzalama sertifikası aldı.

infaz

T1047

Windows Yönetim Araçları

Deadglyph, yükleme zincirini yürütmek için WMI'yı kullanır.

T1059.003

Komut ve Komut Dosyası Yorumlayıcısı: Windows Komut Kabuğu

Shellcode indiricinin kullanım alanları cmd.exe kendisini silmek için.

T1106

Yerel API

Bir Deadglyph modülü şunu kullanır: İşlem OluşturW ve KullanıcıW Olarak Süreç Oluştur Yürütme için API işlevleri.

T1204.002

Kullanıcı Yürütme: Kötü Amaçlı Dosya

Kabuk kodu indirici zinciri, kullanıcının onu çift tıklayıp yürütmesini gerektirir.

Sebat

T1546.003

Olay Tetiklemeli Yürütme: Windows Yönetim Araçları Olay Aboneliği

İlk Deadglyph yükleyicisi, WMI olay aboneliği kullanılarak kalıcı hale getirilir.

Savunmadan Kaçınma

T1027

Gizlenmiş Dosyalar veya Bilgiler

Deadglyph bileşenleri şifrelenmiştir. Deadglyph Orchestrator ve gömülü modüller .NET Reactor ile gizlenmiştir.

Kabuk kodu indiricisi ConfuserEx tarafından gizlenmiştir.

T1070.004

Gösterge Kaldırma: Dosya Silme

Deadglyph kendini kaldırabilir.

Kabuk kodu indirici zinciri kendini siler ve WebDAV önbelleğindeki dosyaları siler.

T1112

Kayıt Defterini Değiştir

Deadglyph, yapılandırmasını ve şifrelenmiş yükünü kayıt defterinde saklar.

T1134

Erişim Belirteci Manipülasyonu

Deadglyph başka bir kullanıcının kimliğine bürünebilir.

T1140

Dosyaları veya Bilgileri Gizleme/Kod Çözme

Deadglyph şifrelenmiş dizelerin şifresini çözer.

Kabuk kodu indirici zinciri, bileşenlerinin ve yapılandırmalarının şifresini çözer.

T1218.011

Sistem İkili Proxy Yürütme: Rundll32

İlk Deadglyph yükleyici kullanılarak yürütülür. rundll32.exe.

T1480.001

Uygulama Korkulukları: Çevresel Anahtarlama

Deadglyph, sistem UUID'sinden türetilen makineye özel bir anahtar kullanılarak şifrelenir.

T1562.001

Savunmaları Bozma: Araçları Devre Dışı Bırakma veya Değiştirme

Kabuk kodu indiricisi yama yaparak AMSI taramasını önler clr.dll bellekte .

T1620

Yansıtıcı Kod Yükleme

Deadglyph, özel bir PE yükleyici kullanarak modüllerini yansıtıcı bir şekilde yükler.

Keşif

T1007

Sistem Hizmeti Keşfi

A Deadglyph modülü, WMI sorgusunu kullanarak hizmetleri keşfeder Win32_Service'DEN * SEÇİN.

T1012

Sorgu Kaydı

Kabuk kodu indirici zinciri, varsayılan tarayıcı için kayıt defterini sorgular.

T1016

Sistem Ağı Yapılandırma Keşfi

Deadglyph modülü, WMI sorgularını kullanarak ağ bağdaştırıcılarını keşfeder Win32_NetworkAdapter'DAN * SEÇİN ve Win32_NetworkAdapterConfiguration'dan SEÇ * burada InterfaceIndex=%d.

T1033

Sistem Sahibi/Kullanıcı Keşfi

Deadglyph modülü, WMI sorgusu ile kullanıcıları keşfeder Win32_UserAccount'TAN * SEÇİN.

T1057

Süreç Keşfi

Deadglyph modülü, WMI sorgusunu kullanarak süreçleri keşfeder Win32_Process'ten * SEÇİN.

T1082

Sistem Bilgisi Keşfi

Deadglyph modülü, WMI sorgularını kullanarak işletim sistemi sürümü, sürücüler, ortam değişkenleri ve sürücüler gibi sistem bilgilerini keşfeder.

T1518

Yazılım Keşfi

Deadglyph modülü, WMI sorgusunu kullanarak yüklü yazılımı keşfeder Win32_Product'tan * SEÇİN.

T1518.001

Yazılım Keşfi: Güvenlik Yazılımı Keşfi

Deadglyph modülü, WMI sorgularını kullanarak güvenlik yazılımını keşfeder AntiVirusÜrününden * SEÇİN, AntiSpywareÜrününden * SEÇİN ve Güvenlik DuvarıÜrününden * SEÇİN.

Kabuk kodu indirici zinciri, bir güvenlik çözümü için çalışan işlemleri kontrol eder.

Koleksiyon

T1005

Yerel Sistemden Veriler

Deadglyph'in dosyaları okumak için bir modülü vardır.

Komuta ve kontrol

T1071.001

Uygulama Katmanı Protokolü: Web Protokolleri

Deadglyph ve kabuk kodu indiricisi, C&C sunucusuyla HTTP protokolü aracılığıyla iletişim kurar.

T1090

vekil

Deadglyph ve kabuk kodu indiricisi, C&C iletişimi için HTTP proxy'yi kullanabilir.

T1573.001

Şifreli Kanal: Simetrik Şifreleme

Deadglyph, C&C iletişimlerini şifrelemek için AES'i kullanır.

dumping

T1041

C2 Kanalı Üzerinden Sızma

Deadglyph, sızma için C&C kanalını kullanır.

Zaman Damgası:

Den fazla Güvenliği Yaşıyoruz