Winnti Group “Oyuna Devam Ediyor”

Mathieu Tartare ve Martin Smolár

Şubat 2020de, PipeMon adını verdiğimiz yeni, modüler bir arka kapı keşfettik. Yazdırma İşlemcisi işlevine sahip olan bu arka kapı, Winnti Group tarafından Güney Kore ve Tayvandaki MMO (Devasa Çok Oyunculu Çevrimiçi) oyunları geliştiren çeşitli oyun şirketlerine karşı kullanıldı. Bu şirketlerin geliştirdiği oyunlar, popüler oyun oynama platformlarında yer alıyor ve eş zamanlı oynayan binlerce oyuncuya sahip.

Olaylardan en az birinde, kötü amaçlı yazılım operatörleri bir kurbanın derleme sisteminin gizliliğini tehlikeye attı. Bu da, saldırganların oyun yürütülebilir dosyalarına truva atı yerleştirmelerine olanak veren bir zincir saldırısına neden olabilecekti. Başka bir olayda ise oyun sunucularının gizliliği tehlikeye atıldı. Bu kez saldırganlar, finansal kazanç elde etmek için oyun içi para birimlerini manipüle edebileceklerdi.

2012den beri faaliyet gösteren Winnti Group, sonradan daha fazla kurbanın gizliliğini tehlikeye atmak için kullanılacak olan truva atı yerleştirilmiş yazılımların (CCIeaner, ASUS LiveUpdate ve birden fazla video oyunu) dağıtımına neden olmuş, yazılım sektörüne karşı yapılan yüksek profilli zincir saldırılardan sorumludur. ESET araştırmacıları yakın zamanda, ShadowPad ve Winnti kötü amaçlı yazılımları aracılığıyla Winnti Groupun Hong Kongdaki birkaç üniversiteyi hedef alan bir kampanyasını keşfetti.

Winnti Groupadlandırması hakkında: Kaspersky bu saldırganları ilk kez 2013 yılında bu adla tanımladığından, Winnti Groupadını tutmayı tercih ettik.Winnti de bir kötü amaçlı yazılım ailesi olduğundan, saldırıların sorumlularından bahsederken her zaman Winnti Groupyazıyoruz. 2013te Winntinin, Winnti Group tarafından kullanılan pek çok kötü amaçlı yazılım ailesinden yalnızca biri olduğu ortaya koyulmuştur.

Winnti Group ile ilişkilendirme

Bu saldırıyı Winnti Group ile ilişkilendirmemizin ardında birden çok gösterge bulunuyor. PipeMon tarafından kullanılan C&C etki alanlarının bazıları, önceki saldırılarda Winnti kötü amaçlı yazılımı tarafından kullanıldı. Bunlardan Winnti Groupun cephanesi hakkındaki teknik incelememizde bahsettik.Bunun yanı sıra, sonradan PipeMon ile gizliliği tehlikeye atılmış bazı şirketlerde de 2019da Winnti kötü amaçlı yazılımına rastlandı.

Bu saldırıda Winnti kötü amaçlı yazılımının yanı sıra, Winnti Groupun diğer kurbanlarında tespit edilen ve grubun kullandığı meşhur bir çalıntı sertifika (Wemade 10) ile imzalanmış özel bir AceHash (kimlik bilgisi toplayıcısı) ikili dosyasına da rastlandı.

PipeMon yükleyicisini, modülleri ve ek araçları imzalamakta kullanılan sertifika, Winnti Group tarafından 2018in sonlarında yapılan bir zincir saldırıda gizliliği tehlikeye atılan bir şirketle ilişkilidir ve muhtemelen bu sırada çalınmıştır.

İlginç bir şekilde, PipeMon modülleri %SYSTEM32%\spool\prtprocs\x64\ yoluna yüklenir ve bu yol, truva atı yerleştirilmiş CCleanerın ikinci aşamasını çıkarmak için kullanılmıştır.

Bunun yanı sıra, daha sonradan asıl yazılımın gizliliğini tehlikeye atmak için bir şirketin derleme ortamının gizliliğini tehlikeye atmak, Winnti Groupun bilinen çalışma yöntemlerinden biridir.

Hedeflenen şirketler

Bu saldırıda hedeflenen şirketler, Güney Kore ve Tayvandaki MMO oyunları üreten oyun geliştiricileridir. Olaylardan en az birinde saldırganlar, şirketin yapı düzenleme sunucusunun gizliliğini tehlikeye atabildi ve bu sayede otomatik yapı sistemlerinin denetimini ele geçirdiler. Bu durum, saldırganların tercih ettikleri herhangi bir kodu oyun yürütülebilir dosyalarına dahil edebilmesini sağladı.

ESET, etkilenen şirketlere ulaştı ve gizlilik açığını iyileştirmek için gereken bilgileri sağladı.

Teknik analiz

Hedeflenen şirketlerde PipeMonun iki farklı varyantına rastlandı. Yalnızca ilk aşamadaki, PipeMonun yüklenip kalıcı hale getirilmesinden sorumlu olan daha yeni varyantı tanımlayabildik.

İlk aşama

PipeMonun ilk aşaması, başlatıcısının .rsrc bölümüne eklenmiş, parola korumalı bir RARSFX yürütülebilir dosyasını içerir. Başlatıcı, RARSFXi GetTempPath tarafından döndürülen dizindeki rastgele oluşturulmuş, sekiz karakterli ASCII dizesiyle adlandırılan bir dizinde setupO.exe dosyasına yazar. Aşağıda gösterildiği gibi, RARSFX diske yazıldıktan sonra, bağımsız bir değişkendeki şifre çözme parolasını sağlayarak CreateProcess ile yürütülür.

setup0.exe -p*|T/PMR{|T2^J*

Parolanın her örnekte farklı olduğunu unutmayın.

Daha sonra RARSFXin içeriği %TMP%\RarSFXO dizinine ayıklanır ve şu dosyaları içerir:

  • CrLnc.dat - Şifrelenmiş yük
  • Duser.dll - UAC atlama için kullanılır
  • osksupport.dll - UAC atlama için kullanılır
  • PrintDialog.dll - Kötü amaçlı yazdırma işlemcisinin başlatılması için kullanılır
  • PrintDialog.exe - PrintDialog.dllyi yüklemek için kullanılan geçerli Windows yürütülebilir dosyası
  • setup.dll - Yükleme DLLsi
  • setup.exe - Asıl yürütülebilir dosya

Klasör adı çakışması durumunda, çakışma önlenene kadar RarSFXO dizesinin sonundaki sayı artırılır. Yükleyiciye bağlı olarak, bu dosyaların hepsi arşivde bulunmayabilir.

Ayıklandıktan sonra, setup.exe bağımsız değişkenler olmadan yürütülür. Bunun tek amacı, LoadLibraryA kullanılarak setup.dllyi yüklemektir. Setup.dll yüklendikten sonra, -x:n (nnin tamsayı olduğu) biçiminde bir bağımsız değişken sağlanıp sağlanmadığını denetler. İşlemin modu, nnin varlığına bağlı olarak değişiklik gösterir. Desteklenen bağımsız değişkenler ve bunlara karşılık gelen davranışlar Tablo 1de gösterilmiştir. Setup.exe, RARSFX tarafından bağımsız değişkenler olmadan yürütülür ve artırılmış ayrıcalıklarla çalışıp çalışmadığını denetler. Artırılmış ayrıcalıklarla çalışmıyorsa ve Windows sürümü Windows 7 derleme 7601dan daha eskiyse kimliğe bürünme belirteci kullanarak bu ayrıcalıkları elde etmeyi dener. Aksi takdirde, yük yükleyicisinin şunlardan birine yüklenmesine olanak veren farklı UAC atlama tekniklerini dener:

Buna, değişkeni dikkate alarak karar verir.

Komut satırı bağımsız değişken değeri

Davranış

-x:0

Yük yükleyicisini yükleme

-x:l

Geçerli işlem için
SeLoadDriverPrivilege ayrıcalığını etkinleştirmeyi deneme. Başarılı olursa yük yükleyicisini yüklemeyi deneme, olmazsa üst işlem sahtekarlığını kullanarak -x : 2 bağımsız değişkeniyle setup.exe’yi yeniden başlatma.

-x:2

Geçerli işlem için
SeLoadDriverPrivilege ayrıcalığını etkinleştirmeyi deneme. Başarılı olursa yük yükleyicisini yüklemeyi deneme.

Tablo 1: setup.exe desteklenen bağımsız değişkenleri ve bunlara karşılık gelen davranışlar.

Bu yükleyici, yukarıdaki konuma yazmadan önce yükleyicinin şifresini çözecek olan setup.dll’nin içinde depolanıp şifrelenir.

Windows Yazdırma İşlemcilerini kullanarak kalıcılık sağlama

Kötü amaçlı DLLnin bırakılacağı konum rastgele seçilmemiştir. Bu yol, Windows Yazdırma İşlemcilerinin yerleştirildiği yoldur ve setup.dll kötü amaçlı DLL yükleyicisini, aşağıdaki kayıt defteri anahtarını kaydederek Yazdırma İşlemcisine bir alternatif olarak kaydeder:

HKLM\SYSTEM\ControlSet0 01\Control\Print\Environments\Windows x64\Print Processors\PrintFiiterPipelineSvc\Driver - DEment.dll

veya

HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Print Processors\lltdsvcl\Driver - EntAppsvc.dll

Buna, değişkeni dikkate alarak karar verir. PrintFiiterPipelineSvcdeki yazım hatasına dikkat edin. (Herhangi bir ad kullanılabileceğinden, Yazdırma İşlemcisinin yüklenmesini etkilemez.)

Yazdırma İşlemcisi kaydedildikten sonra, PipeMon yazdırma sahtekarlık hizmetini (spoolsv.exe) yeniden başlatır. Sonuç olarak, sahtekarlık hizmeti başlatıldığında kötü amaçlı yazdırma işlemi yüklenir. Yazdırma Sahtekarlığı hizmetinin sistem sıfırlamalarında kalıcılığının sağlanması için bilgisayar her başlatıldığında başladığını unutmayın.

Bu teknik, Yazdırma İzleyicisi kalıcılığı tekniğine (örneğin DePriMon tarafından kullanılan) oldukça benzer ve bildiğimiz kadarıyla önceden belgelenmemiştir.

Ayrıca, RARSFXten ayıklanan şifrelenmiş yük dosyası CrLnc.dat, yükleyiciye bağlı olarak aşağıdaki yolda bulunan kayıt defterine yazılır:

Daha sonra bu şifrelenmiş kayıt defteri yükü yüklenir, şifresi çözülür ve önceden kaydedilmiş Yazdırma İşlemcisi kitaplığı tarafından yürütülür. PipeMon aşamalarının ve kalıcılığının tamamı Şekil 1de gösterilmiştir.

Şekil 1. PipeMon aşamaları ve kalıcılığı

PipeMon

Modüller arası iletişimde birden çok ada sahip kanallar kullandığından ve PDB yoluna göre, geliştiricisi tarafından kullanılan Visual Studio projesinin adı İzleyiciolduğundan, bu yeni implant PipeMona isim verdik.

Önceden bahsettiğimiz gibi, iki farklı PipeMon değişkeni bulunuyor. İlk değişkeni düşündüğümüzde, kullanılan kalıcılık tekniğinden emin olmadığımızdan yükleyiciyi alamadık. Ancak PipeMonun bu ilk değişkeninin Yazdırma İşlemcisi dizininde de yer aldığını düşünürsek, aynı kalıcılık mekanizmasının kullanılmış olma olasılığı yüksektir.

Özgün değişken

PipeMon, her modülün IntelLoader adlı bir işlevi dışarı aktaran tek bir DLL olduğu ve yansıtmalı yükleme tekniği kullanılarak yüklenen bir modüler arka kapıdır. Her modül, Tablo 2de gösterilen farklı işlevsellikler sergiler.

Asıl modülleri (ManagerMain ve GuardClient) yüklemekten sorumlu yükleyici Win32CmdDll.dlldir ve Yazdırma İşlemcileri dizininde yer alır. Modüller, aşağıdaki gibi zararsız görünen adlara sahip dosyalarla aynı konumda bulunan diskte depolanıp şifrelenir:

  • banner.bmp
  • certificate.cert
  • License.hwp
  • JSONDIU7c9djE
  • D8JNCKS0DJE
  • BOSDFUWEkNCj.logN

Hwpnin, Güney Korede oldukça popüler olan Hangul Officein sunduğu Hangul Word Processor tarafından kullanılan bir uzantı olduğunu göz önünde bulundurun.

Modüller RC4 şifrelidir ve şifre çözme anahtarı Com! 123Qasdz her modülde sabit kodlanmıştır. Win32CmDII; ManagerMain ve GuardClient modüllerinin şifresini çözüp bunları yerleştirir. ManagerMain modülü, Communication modülünün şifresinin çözmekten ve bu modülü yerleştirmekten sorumludur. GuardClient modülü ise Communication modülünün çalışmasını ve gerekirse yeniden yüklenmesini sağlar. PipeMonun nasıl çalıştığına ilişkin bir genel bakış, Şekil 2de gösterilmiştir.

Win32CmDII ilk olarak, ManagerMain ve GuardClient modüllerini lsass.exe, wininit.exe veya lsm.exe adıyla bir işleme yerleştirmeyi dener. Bu işlem başarısız olursa spoolsv.exe, ekrn.exe (ESET), avp.exe (Kaspersky) veya dllhost adlı işlemleri dışlayarak kayıtlı Windows hizmetleri işlemlerinden birine yerleştirmeyi dener. Her şey başarısız olursa son seçenek olarak taskhost.exe, taskhostw.exe veya explorer.exe işlemlerini kullanmayı dener.

Communication modülünü yerleştirme işlemi adayları, yerel adres olarak 0. 0. 0. 0 ile TCP bağlantı tablosunda yer almalıdır veya YEREL HİZMET belirtecine sahip KURULMUŞ bir bağlantı olmalıdır. Bu koşullar genellikle, Communication modülünden gelen trafiğin göze çarpmaması ve güvenlik duvarında güvenli listeye alınması için modülü zaten ağ üzerinden iletişim kuran bir işleme gizlemek amacıyla kullanılır. Önceki gereksinimleri karşılayan bir işlem yoksa Communication modülünü explorer.exe işlemine yerleştirmeyi dener. Windows Mağazası Uygulamalarına ait işlemler ve egui.exe (ESET) ile avpui.exe (Kaspersky) adlı işlemler seçim sırasında yoksayılır.

Modül Adı

Açıklama

PDB Yolu

Win32CmdDII

ManagerMain ve GuardClient modüllerinin şifresini çözüp bunları yükler

S:\Monitor\Monitor_RAW\Laun
cher\x64\Release\Win32CmdDII
.pdb
S:\Monitor\Monitor_RAW\libs\x
64\Release\Win32CmdDll.pdb

GuardClient

Belirli aralıklarla Communication modülünün çalışıp çalışmadığını denetler veya çalışmıyorsa modülü yükler

S:\Monitor\Monitor_RAW\Clien t\x64\Release\GuardClient.pdb

ManagerMain

Yürütüldüğünde Communication modülünü yükler, adlandırılmış kanal aracılığıyla Communication modülüne geçirilen şifrelenmiş C&C etki alanını içerir.

S:\Monitor\Monitor_RAW\Clien t\x64\Release\ManagerMain.pd b

Communication modülünden alınan verilere göre birkaç tane komut yürütebilir (çoğunlukla sistem bilgileri toplama, yükleri yerleştirme)

 

Communication

Adlandırılmış kanallar aracılığıyla C&C sunucusu ve tek modüller arasındaki iletişimi yönetmekten sorumludur.

S:\Monitor\Monitor_RAW\Clien
t\x64\Release\Communication.p
db
F:\PCC\trunk\CommunicationCli
ent\x64\Release\Communicatio
n.pdb

Tablo 2. PipeMon modül açıklamaları ve ilgili PDB yolu

 

Ek modüller, özel komutlar (aşağıya bakın) kullanılarak isteğe bağlı olarak yüklenebilir, ancak ne yazık ki bunlardan herhangi birisi keşfedilememiştir. Bu modüllerin adları, modüllerle iletişim kurmak için kullanılan adlandırılmış kanallar temel alınarak yapılan bilgiye dayalı tahminlerdir:

  • Screen
  • Route
  • CMD
  • InCmd
  • File

Modüller arası iletişim

Modüller arası iletişim adlandırılmış kanallar aracılığıyla, her tek modülün arasındaki iletişim kanalı başına adlandırılmış iki kanal (biri göndermek, diğeri almak için) kullanılarak gerçekleştirilir. Tablo 3te iletişim kanalları ve bunlara karşılık gelen adlandırılmış kanallar listelenmiştir.

İletişim kanalı

Adlandırılmış kanal

Communication, Screen

\\.\pipe\ScreenPipeRead%CNC_DEFIN
ED%
\\.\pipe\ScreenPipeWrite%CNC_DEFI
NED%

Communication, Route

\\.\pipe\RoutePipeWriite%B64_TIME
STAMP%

Communication, ManagerMain

\\.\pipe\MainPipeWrite%B64_TIMEST
AMP%
\\.\pipe\MainPipeRead%B64_TIMESTA
MP%

GuardClient, ManagerMain

\\.\pipe\MainHeatPipeRead%B64_TIMESTAMP%

Communication, InCmd

\\.\pipe\InCmdPipeWrite%B64_TIMES
TAMP%
\\.\pipe\InCmdPipeRead%B64_TIMEST
AMP%

Communication, File

\\.\pipe\FilePipeRead%B64_TIMESTA
MP%
\\.\pipe\FilePipeWrite%B64_TIMEST
AMP%

GuardClient, Communication

\\.\pipe\ComHeatPipeRead%B64_TIMESTAMP%

Communication, CMD

\\.\pipe\CMDPipeRead
\\.\pipe\CMDPipeWrite

Tablo 3. PipeMon iletişim kanalı ve ilgili adlandırılmış kanalları

%CNC_DEFINED% dizesi C&C sunucusundan alınır. %B64_TIMESTAMP% değişkenleri ise Tablo 4te gösterilenler gibi base64 kodlu zaman damgalarıdır.

%BASE64 TIMESTAMP%

Kodu çözülmüş zaman damgası

"MjAxOTAyMjgxMDElMzc="

"20190228101537"

"MjAxOTAlMjEyMzU2MjQ="

"20190521235624"

"MjAxOTExMj ExMj E2Mj Y="

"20191121121626"

Tablo 4. Adlandırılmış kanallarla kullanılan zaman damgaları örneği

 

Şekil 2. PipeMon IPC şeması (özgün PipeMon değişkeni)

 

Komut ve Kontrol İletişimi

Communication modülü, Winnti cephanesi hakkındaki teknik incelememizde ele alınmış olan PortReuse arka kapısına benzer şekilde, adlandırılmış kanallar aracılığıyla C&C sunucusu ve diğer modüller arasında kurulan iletişimi yönetmekten sorumludur.

C&C adresi ManagerMain modülünde sabit kodlanmıştır ve RC4 ile sabit kodlu anahtar Com!213Qasdz kullanılarak şifrelenmiştir.Adlandırılmış bir kanal üzerinden Communication modülüne gönderilir.

Her yüklü modül için ayrı bir iletişim kanalı oluşturulur. Kullanılan iletişim protokolü TCP üzerinden TLStir. İletişim, HP-Socket kitaplığı ile sağlanır. Tüm iletiler, sabit kodlu anahtar kullanılarak RC4 şifreli hale getirilir. Aktarılan iletinin boyutu 4 KB veya daha fazlaysa zlibin Deflate uygulaması kullanılarak da sıkıştırılır.

Şekil 3. C&C ileti ve işaret biçimleri

 

C&C sunucusuyla iletişimi başlatmak için öncelikle şu bilgileri içeren bir işaret iletisi gönderilir:

  • İşletim sistemi sürümü
  • bağlı ağ bağdaştırıcılarının %B64_TIMESTAMP% ile birleştirilmiş fiziksel adresleri
  • kurbanın yerel IP adresi
  • arka kapı sürümü/saldırı kimliği; aşağıdaki değerleri gözlemledik:
    • "1.1.1.4beat"
    • "1.1.1.4Bata"
    • "1.1.1.5"
  • Kurbanın bilgisayar adı

Kurbanın makinesi hakkındaki bilgiler ManagerMain modülü tarafından toplanıp adlandırılmış kanal aracılığıyla Communication modülüne gönderilir. Arka kapı sürümü, Communication modülünde düz metin olarak sabit kodlanmıştır.

İşaret iletisinin biçimi Şekil 3te, desteklenen komutlar Tablo 5te gösterilir.

Komut türü

Komut bağımsız değişkeni

Açıklama

0x02

0x03

File modülünü yükleme

0x03

0x03

CMD modülünü yükleme

0x03

0x0B

InCmd modülünü yükleme

0x04

0x02

Route modülü için Queue komutu

0x04

0x03

Route modülünü yükleme

0x05

*

Kurbanın RDP bilgilerini C&C sunucusuna gönderme

0x06

0x05

İşletim sistemi, CPU, PC ve saat dilimi bilgilerini C&C sunucusuna gönderme

0x06

0x06

Ağ bilgilerini C&C sunucusuna gönderme

0x06

0x07

Disk sürücüsü bilgilerini C&C sunucusuna gönderme

0x07

*

Çalışan işlemler hakkındaki bilgileri C&C sunucusuna gönderme

0x09

*

DLL yerleştirme

0x0C

0x15

“InCmd” kanallarının adlarını ve olayları C&C sunucusuna gönderme

0x0C

0x16

“Route” kanalının adını C&C sunucusuna gönderme

0x0C

0x17

“File” kanallarının adlarını C&C sunucusuna gönderme

Tablo 5. Komutların listesi

 

Güncelleştirilmiş değişken

Önceden bahsedildiği üzere saldırganlar, yukarıda tanımlanan ilk aşama için alabildiğimiz PipeMonun güncelleştirilmiş bir sürümünü de kullanır. Özgün değişkene hayli benzer bir mimari sergilemesine rağmen, kodunun sıfırdan yeniden yazılmış olması mümkündür.

Modül ve dizelerin şifresini çözmek için kullanılan RC4 kodu, 0x75E8EEAF anahtarına sahip basit bir XOR ile değiştirildi ve tüm sabit kodlanmış dizeler kaldırıldı. Modüller arası iletişim için kullanılan adlandırılmış kanallar, açık adlar yerine rastgele değerler kullanılarak ve \\ biçimine uyacak şekilde adlandırılır. \pipe\%rand% değerindeki %rand% öğesi, 31 karakterden oluşan ve yalnızca alfabetik karakterler içeren sözde rastgele oluşturulmuş bir dizedir.

Burada yalnızca asıl yükleyici (ör. Yazdırma İşlemcisi olarak yüklenen kötü amaçlı DLL) diskte tek bir dosya olarak depolanır. Modüller ise yükleyici (CrLnc.dat dosyasından) tarafından kayıt defterinde depolanır ve Tablo 6da açıklanmıştır:

Modül adı

Açıklama

CoreLnc.dll

Kötü amaçlı Yazdırma İşlemcisi tarafından yüklenir. Yalnızca .data bölümünde ekli olan Core.dll modülünün yüklenmesinden sorumludur.

Core.dll

.data bölümünde ekli olan Net.dll modülünü yükler. C&C sunucusundan gelen komutları ve adlandırılmış kanallar aracılığıyla tek modüller ile C&C sunucusu arasında kurulan iletişimi ele alır

Tablo 6. Güncelleştirilmiş modüller

Net.dll Yeni Communication modülü. Ağ oluşturmayı ele alır.

Modül yerleştirme artık dışarı aktarma işlevine sahip yansıtmalı yükleme tekniği kullanarak gerçekleştirilmez. Bunun yerine, özel bir yükleyici kabuk kodu kullanılır ve yüklenecek olan modülle birlikte yerleştirilir.

C&C ileti biçimi de değiştirilmiştir ve Şekil 4te gösterilir.

Şekil 4. Önceki (soldaki) ve güncelleştirilmiş (sağdaki) C&C ileti biçimi

 

Arka kapının yapılandırması ilginç bir şekilde yükleyici DLLye eklenmiş ve burada şifrelenmiştir. Yapılandırmada şunlar yer alır:

  • Kayıt defteri değerinin adı
  • Saldırı tanımlayıcısı
  • C&C IP adresleri veya etki alanları
  • Yapılandırmada #ile işaretlenmiş ikinci bir C&C etki alanının kullanılmaya başlama zamanına karşılık gelen zaman damgası (FILETIME biçiminde).

Yükleyici DLLye eklenmiş bir yapılandırma dökümünün örneği Şekil 5te gösterilmiştir. Çeşitli yükleyici DLLlerden ayıklanmış yapılandırmalar Tablo 7de gösterilir.

Şekil 5. Şifresi çözülmüş yapılandırma örneği (resim boyutundan dolayı birkaç sıfır bayt kaldırılmış biçimde)

 

Yükleyici SHA-1

Saldırı Kimliği

Zararlı iş yükü kayıt defteri adı

C&C IP/dom

6c97039605f93ccflafccbab8174d26a43f91b20

KOR2

DC20FD7E-4B1B-
4B88-8172-
61F0BED7D9E8

154.223.2 ssl2.dyn-#client.c

97da4f938166007ce365c29eld685alb850c5bb0

KOR

DC20FD7E-4B1B-
4B88-8172-
61F0BED7D9E8

203.86.23 tracker.c #client.c

7ca43f3612db0891b2c4c8ccabl543f581d0dl0c

korl

DC20FD7E-4B1B-
4B88-8172-
61F0BED7D9E8

203.86.23 www2.dyn. (#nmn.nhnc

b02ad3e8blcf0b78ad9239374d535a0ac57bf27e

twl

A66F35-4164-45FF-9CB4-69ACAA10E52D

ssl.lcres

Tablo 7. Çeşitli yükleyicilerden ayıklanmış yapılandırma

 

Çalınmış kod imzalı sertifika

PipeMon modül ve yükleyicilerinin tamamı, muhtemelen Winnti Groupun önceki saldırılarından birinde çalınmış olan aynı geçerli kod imzalama sertifikasıyla imzalanmıştır.

Şekil 6. PipeMon ilk aşamasını ve modüllerini imzalamak için kullanılan kod imzalama sertifikası

 

Gizliliği tehlikeye atılmış şirketlerden bazılarında, bu sertifikayla imzalanmış bir bağlantı geri döndürücüsü olan HTRan’ın Enigma paketli bir sürümünü bulduk ve bu, telemetrimize göre geçmişte Winnti kötü amaçlı yazılımı ile gizliliği tehlikeye atılmış birden fazla kurbana karşı kullanılmış. Bunun yanı sıra bir örnek paylaşım platformunda, bu sertifika ile imzalanmış WinEggDrop bağlantı noktası tarayıcısı, Netcat ve Mimikatz gibi, saldırganların kullanmış olabileceği başka araçlara rastladık.
Ayrıca, PipeMon ile gizliliği tehlikeye atılmış bazı makinelerde önceki teknik incelememizde ele aldığımız ve Winnti Group tarafından sıkça kullanılan çalıntı bir Wemade 10 sertifikasıyla imzalanmış özel bir AceHash yapısı da bulunmuştur.

Sonuç

Tekrar belirtmek gerekirse Winnti Group, muhtemelen önceki bir saldırıda çalınmış ve PortReuse arka kapısıyla bazı benzerliklere sahip bir kod imzalama sertifikasıyla imzalanmış yeni bir modüler arka kapıyı kullanarak Asya’daki oyun sektörünü hedef almış. Bu yeni implant, saldırganların muhtemelen önceki saldırılar sırasında çalınan kod imzalama sertifikalarını kullanmaya devam ettiğini ve yalnızca en iyi arka kapıları olan ShadowPad ve Winnti kötü amaçlı yazılımına güvenmeden, birden çok açık kaynaklı projeyi kullanarak hâlâ etkin bir şekilde yeni araçlar geliştirdiklerini gösteriyor.

Winnti Group’un yeni etkinliklerini takip etmeye devam edeceğiz ve blogumuzda ilgili bilgileri yayımlayacağız. Sorularınız için threatintel@eset.com adresinden bizimle iletişim kurun. IoC’leri de GitHub depomuzda bulabilirsiniz.

Tehlike Göstergeleri

ESET algılama adları

Win64/PipeMon.A
Win64/PipeMon.B
Win64/PipeMon.C
Win64/PipeMon.D

Dosya adları
100.exe
103.exe
Slack.exe
setup.exe
%SYSTEM32%\spool\prtprocs\x64\DEment.dll
%SYSTEM32%\spool\prtprocs\x64\EntAppsvc.dll
%SYSTEM32%\spool\prtprocs\x64\Interactive.dll
%SYSTEM32%\spool\prtprocs\x64\banner.bmp
%SYSTEM32%\spool\prtprocs\x64\certificate.cert
%SYSTEM32%\spool\prtprocs\x64\banner.bmp
%SYSTEM32%\spool\prtprocs\x64\License.hwp
%SYSTEM32%\spool\prtprocs\x64\D8JNCKS0DJE
%SYSTEM32%\spool\prtprocs\x64\B0SDFUWEkNCj.log
%SYSTEM32%\spool\prtprocs\x64\K9ds0fhNCisdjf
%SYSTEM32%\spool\prtprocs\x64\JSONDIU7c9djE
%SYSTEM32%\spool\prtprocs\x64\NTFSSSE.log
AceHash64.exe
mz64x.exe

Adlandırılmış kanallar
\\.\pipe\ScreenPipeRead%CNC_DEFINED%
\\.\pipe\ScreenPipeWrite%CNC_DEFINED%
\\.\pipe\RoutePipeWriite%B64_TIMESTAMP%
\\.\pipe\MainPipeWrite%B64_TIMESTAMP%
\\.\pipe\MainPipeRead%B64_TIMESTAMP%
\\.\pipe\MainHeatPipeRead%B64_TIMESTAMP%
\\.\pipe\InCmdPipeWrite%B64_TIMESTAMP%
\\.\pipe\InCmdPipeRead%B64_TIMESTAMP%
\\.\pipe\FilePipeRead%B64_TIMESTAMP%
\\.\pipe\FilePipeWrite%B64_TIMESTAMP%
\\.\pipe\ComHeatPipeRead%B64_TIMESTAMP%
\\.\pipe\CMDPipeRead
\\.\pipe\CMDPipeWrite

Kayıt Defteri
HKLM\SYSTEM\ControlSet0 01\Control\Print\Environments\Windows x64\Print
Processors\PrintFiiterPipelineSvc\Driver - DEment.dll
HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows
x64\Print Processors\lltdsvcl\Driver - EntAppsvc.dll
HKLM\SOFTWARE\Microsoft\Print\Components\DC2 0FD7E-4BIB-4B88-817 2-
61F0BED7D9E8

Örnekler 

İlk Aşama
4B90E2E2D1DEA7889DC15059E11E11353FA621A6
C7A9DCD4F9B2F26F50E8DD7F96352AEC7C4123FE
3508EB2857E279E0165DE5AD7BBF811422959158
729D526E75462AA8D33A1493B5A77CB28DD654BC
5663AF9295F171FDD41A6D819094A5196920AA4B

PipeMon
23789B2C9F831E385B22942DBC22F085D62B48C7
53C5AE2655808365F1030E1E06982A7A6141E47F
E422CC1D7B2958A59F44EE6D1B4E10B524893E9D
5BB96743FEB1C3375A6E2660B8397C68BEF4AAC2
78F4ACD69DC8F9477CAB9C732C91A92374ADCACD
B56D8F826FA8E073E6AD1B99B433EAF7501F129E
534CD47EB38FEE7093D24BAC66C2CF8DF24C7D03

PipeMon şifrelenmiş ikili dosyaları
168101B9B3B512583B3CE6531CFCE6E5FB581409
C887B35EA883F8622F7C48EC9D0427AFE833BF46
44D0A2A43ECC8619DE8DB99C1465DB4E3C8FF995
E17972F1A3C667EEBB155A228278AA3B5F89F560
C03BE8BB8D03BE24A6C5CF2ED14EDFCEFA8E8429

2B0481C61F367A99987B7EC0ADE4B6995425151C

Ek araçlar
WinEggDrop
AF9C220D177B0B54A790C6CC135824E7C829B681

Mimikatz
4A240EDEF042AE3CE47E8E42C2395DB43190909D
FD4567BB77F40E62FD11BEBF32F4C9AC00A58D53

Netcat
751A9CBFFEC28B22105CDCAF073A371DE255F176

HTran
48230228B69D764F71A7BF8C08C85436B503109E

AceHash
D24BBB898A4A301870CAB85F836090B0FC968163

Kod imzalama sertifikası SHA-1 parmak izleri
745EAC99E03232763F98FB6099F575DFC7BDFAA3
2830DE648BF0A521320036B96CE0D82BEF05994C

Etki Alanları
n8.ahnlabinc[.]com
owa.ahnlabinc[.]com
ssl2.ahnlabinc[.]com
www2.dyn.tracker[.]com
ssl2.dyn-tracker[.]com
client.gnisoft[.]com
nmn.nhndesk[.]com

MITRE ATT&CK teknikleri

Taktik

Kimlik

Ad

Açıklama

Kararlılık

T1013

Bağlantı Noktası İzleyicisi

PipeMon, Yazdırma İşlemcilerini temel alan Bağlantı Noktası İzleyicisi’ne benzer bir kalıcı teknik kullanır.

Ayrıcalık Artırma

T1134

Erişim Belirteci Manipülasyonu

PipeMon yükleyicisi, kimliğe bürünme belirteci kullanarak yönetici ayrıcalıkları elde etmeye çalışır.

 

T1088

Kullanıcı Hesabı Denetimini Atlama

PipeMon yükleyicisi, yükü yüklemek için UAC atlama tekniklerini kullanır.

 

T1502

Üst PID Sahtekarlığı

PipeMon yükleyicisi, ayrıcalıkları artırmak için

 

 

 

Üst PID sahtekarlığını kullanır.

Savunmadan Kaçınma

T1116

Kod İmzalama

PipeMon, yükleyicisi ve ek araçları çalıntı kod imzalama sertifikalarıyla imzalanmıştır.

 

T1027

Dosyaları veya Bilgileri Karartma

PipeMon modülleri diskte şifreli bir şekilde depolanır.

 

T1112

Kayıt Defterini Değiştirme

PipeMon yükleyicisi, PipeMon’u Yazdırma İşlemcisi olarak yüklemek için kayıt defterini değiştirir.

 

T1055

İşlem Yerleştirme

PipeMon, yansıtmalı yükleme kullanarak modüllerini çeşitli işlemlere yerleştirir.

Keşfetme

T1057

Süreç Keşfetme

PipeMon, uygun bir yerleştirme hedefi bulmak için çalışmakta olan işlemleri sürekli yineler.

 

T1063

Güvenlik Yazılımı bulma

PipeMon, ESET ve Kaspersky yazılımlarının olup olmadığını denetler.

Toplama

T1113

Ekran Görüntüsü Alma

PipeMon modüllerden biri muhtemelen ekran görüntüsü yakalayıcısıdır.

Komuta ve Kontrol

T1043

Sık Kullanılan Bağlantı Noktaları

PipeMon
bağlantı noktası 443 üzerinden iletişim kurar.

 

T1095

Özel Komut ve Denetim Protokolü

PipeMon Communication modülü TCP üzerinden TLS temelli özel bir protokol kullanır.

 

T1032

Standart Kriptografik Protokol

PipeMon
iletişimi RC4 şifrelidir.

 

T1008

Yedek Kanallar

Güncelleştirilmiş PipeMon sürümü, belirli bir tarihe ulaşıldığında geri dönüş kanalı kullanır.