24 C
İstanbul
16/07/2024
Image default
Global Zararlı Analizi RaporlarıHaberlerSiber SaldırılarZararlı Yazılım Analizleri

KONNI RAT RUSYAYI HEDEF ALDI!

GİRİŞ

Siber güvenlik araştırmacıları tarafından Kuzey Kore tabanlı APT37 isimli tehdit grubunun aktiviteleri ile ilişkilendirilen Konni RAT’ın yeni bir varyantının Rusya’da hedefli oltalama saldırılarında kullanıldığı bilgisi paylaşılmıştır. Siber saldırıya ilişkin ilk bulgular Temmuz 2021’in sonlarında tespit edilmiştir. Yapılan değerlendirmelerde saldırının Rusya ve Kore Yarımadası arasındaki ekonomik ilişkilere dayandığı ifade edilmiştir. Bir diğer husus ise Rusya-Moğolistan arasındaki hükumetler arası görüşme olarak ortaya koyulmuştur.

Oltalama saldırısı ile iletilen Rusça ile yazılmış iki doküman tespit edilmiştir. Bu dokümanlar ayrı türde zararlı macro içermektedir.

SİBER SALDIRI DETAYLARI

Aşağıdaki diyagram, saldırının başlangıcından sonuna kadar geçen aşamaları ifade etmektedir.

Resim 1: Kampanya Aktiviteleri

DOKÜMAN ANALİZİ

Yazının başında belirtildiği üzere dokümanlar 2 farklı başlıkla iletilmektedir. Başlıklar, saldırının temel aldığı noktaları ortaya koymaktadır. İlk dosya 12 sayfalık “Economic relations.doc” isimli, 2010’da yazılmış olarak ifade edilen “The regional economic contacts of Far East Russia with Korean States (2010s)” konuludur. İkinci dosya ise “23th meeting of the intergovernmental Russian-Mongolian commission on Trade, Economic, scientific and technical operation” konuludur.

Resim 2: Kullanılan Doküman Örneği

Dokümanlar basit ama etkili makrolar kullanmaktadır. Tek satırlı bir CMD komutu çalıştırmak için Shell fonksiyonu kullanılmaktadır. Bu komut, geçerli belgeyi girdi olarak kabul etmekte ve findstr kullanarak “^var” string’ini aramaktadır ve bulduğu içeriği “y.js” üzerine yazmaktadır. Makronun etkili olduğu nokta, oluşturulan JS dosyasının anti-virüsler tarafından yakalanmasını engellemek için makronun içeriğinin gizlenmesidir.

Resim 3: Macro Yapısı

“y.js” dosyası aktif olan doküman üstünden argüman olarak çağrılmaktadır.  Javascript, aktif olan doküman içinde enkod edilmiş iki tane kalıp (pattern) aramaktadır. En başta her kalıp, içeriğini temp.txt isimli bir dosyaya yazmaktadır, şifrelenmiş içerik dahili base64 çözücü ile şifresi çözülmüş şekilde çıktı olarak ortaya koyulmaktadır. “yy.js”, şifresi çözülmüş içeriğin verilerini tutmak için kullanılmaktadır. “y.ps1” ikinci olarak çözümlemesi yapılan yapının verilerini tutmaktadır. Çıktı dosyalar oluşturulduktan sonra Wscript ve Powershell kullanılarak çalıştırılmaktadır.

Resim 4: j.js

Powershell script’i (y.ps1), URLDownloadToFile’ı urlmon.dll’den ve WinExec’i kernel32.dll’den elde etmek için “DLLImport” fonksiyonunu kullanmaktadır. Bu işlemden sonra aşağıda belirtilen değişkenler tanımlanmaktadır:

  • Dosyanın indirileceği URL adresi
  • İndirilen dosyanın kaydedileceği alan (%APPDATA%/Temp)
  • Kaydedilecek dosyanın ismi

Bu aşamada URLDownloadToFile fonksiyonu, “.cab” uzantılı olduğu görülen dosyayı indirerek %APPDATA%/Temp yoluna, GetTempFileName komutu aracılığıyla rastgele bir dosya adı ile yazılmasını sağlamaktadır. Devamında, WinExec kullanılarak ilgili dosyanın içeriğinin çıkarılması için CMD komutu çalıştırılmaktadır. Sürecin bitiminde WinExec kullanılarak y.ps1 dosyası silinmektedir.

Resim 5: y.ps1

Zarftan çıkarılan içerik 5 adet dosya içermektedir.

  • check.bat
  • install.bat
  • xmlprov.dll
  • xmlprov.ini
  • xwtpui.dll

“yy.js” check.bat isimli dosyanın çalıştırılmasını sağlamakta ve çalıştırdıktan sonra kendini silmektedir.

Resim 6: yy.js

Check.bat

Bu batch türündeki dosya, net session > nul kullanılarak CMD’nin administrator olarak başlatılıp başlatılmadığını kontrol etmektedir ve eğer bu şekilde başlatıldıysa install.bat dosyasını devreye almaktadır. Eğer bu durum geçerli değilse işletim sistemi kontrolünü yapmakta ve eğer Win 10 ise num isimli bir değişkeni 4, eğer Win 10 değilse değerini 1 olarak atamaktadır. Sonrasında check.bat, xwtpui.dll isimli dosyayı, rundll32.exe ile çalıştırmak için EntryPoint(dll çalıştırmak için kullanılan export fonksiyonu), num (İşletim sistemi versiyon kontrolü için atanan değer) ve install.bat parametrelerini kullanmaktadır.

Resim 7: check.bat

Install.bat

Kullanılan bu zararlı yazılım, dışarıdan bakıldığında xmlprov Ağ Sağlama Hizmeti (Network Provisioning Service) gibi görünmektedir. Bu servis, domain tabanlı otomatik ağ hizmetlerinin XML konfigürasyonlarının yönetilmesini sağlamaktadır. Install.bat ise xmlprov.dll dosyanın bir servis olarak yüklenmesinden sorumludur. Bunu yaparken aşağıdaki aksiyonları gerçekleştirmektedir:

  • Çalışan xmlprov servislerinin durdurur.
  • System32’nin altında işlevi durdurulan dosyaları kopyalar ve bulundukları dizinin altından siler.
  • xmlProv servisinin yüklenmiş olma durumunu kontrol eder ve yüklü değil ise svchost.exe üzerinden bir servis oluşturur.
  • Type ve Binpath gibi xmlProv servis değerlerini değiştirir.
  • Svchost’un altına xmlProv servislerini ekler.
  • xmlProv registry key altına yeni xmlProv’u ekler.
  • Son olarak da xmlProv servisini başlatır.
Resim 8: Install.bat

Xwtpui.dll

Hedef alınan makine yeterli ayrıcalıklara sahip değil ise xwtpui.dll, install.bat dosyasını yüklemek için devreye girmektedir. Bu sayede UAC bypass işlemi gerçekleştirerek install.bat dosyasının yüklenmesini sağlamaktadır.

EntryPoint, bu dll için ana export fonksiyonudur. API çağrılarını çözümleyerek aktivitelerine başlamaktadır.

Resim 9: EntryPoint

Resim 9’da görüldüğü üzere Check_Priviledge_Level() fonksiyonu ile yetki kontrolü yapılmaktadır. UAC devre dışı durumda veya kullanıcı yeterli yetki derecesine sahip değil ise aşağıdaki aksiyonlar devreye girmektedir:

RtlQueryElevationFlags çağrılarak PFlags değeri kontrolü yardımıyla yükseltme durumu kontrol edilmektedir. Bu değer sıfıra eşit ise UAC devre dışı durumda demektir.

NtOpenProcessToken kullanılarak geçerli prosesin “Access token” değeri elde edilmektedir. Sonrasında, NtQueryInformationToken çağrılarak TokenElevationType değerinin kontrolü yapılmaktadır. Type değeri 3 değil ise proses yetkisi verilmiş demektir.

Resim 10: Yetki Seviyesi Kontrolü

Yetki kontrolünün ardından gerekli parametrelerin uygulanmasından sonra UAC Bypass için “Token Impersonation Technique” isimli teknik kullanılmaktadır.

Token Impersonation UAC Bypass (Calvary UAC Bypass)

Calvary, bir token impersonation/theft tekniğidir. Bu teknik, install.bat dosyasının çalıştırılabilmesi için Windows Update Standalone Installer prosesinin (wusa.exe) token değerini kullanarak en yüksek yetki derecesinde cmd.exe çalıştırılmasını amaçlamaktadır.

UAC Bypass işlemi, ShellExecuteExw kullanılarak wusa.exe’nin çalıştırılmasıyla başlamaktadır. NtOpenProcessToken kullanılarak bu prosesin token değeri elde edilmektedir. NtDuplicateToken kullanılarak token değeri kopyalanmaktadır. Fonksiyonun DesiredAccess parametresi, yeni token için istenen yetki derecesini belirtmektedir. DesiredAccess parametresinin TOKEN_ALL_ACCESS olarak belirlenmesi kopyalanan token değerine hakların yeni token için de geçerli olmasını sağlamaktadır. Yeni token, ImpersonateLoggedOnUser() fonksiyonuna iletilir ve bu token, NtSetINformationThread kullanılarak bir thread olarak devre alınmaktadır.

Resim 11: Calvary PE

Windows 10 UAC Bypass

Adım 1: “201ef99a-7fa0-444c-9399-19ba84f12a1a” değerine sahip bir interface id isimli string binding handle oluşturulur. Bu değer gerekli erişimde kullanılmak üzere devreye alınır.

Resim 12: RPC Binding

Adım 2: RPC_ASYNC_STATE başlatılarak asenkron çağrılar oluşturulur. NdrAsyncClientCall aracılığıyla yeni yükseltilmemiş (non-elevated) proses (winver.exe) oluşturulur.

Resim 13: RPC AsyncCall

Adım 3: NtQueryInformationProcess kullanılarak oluşturulan prosesin kontrolünü sağlamak üzere debug objesi oluşturulur. Sonrasında, debugger’ı NtRemoveProcessDebug kullanarak işlemden ayırır ve TerminateProcess kullanarak bu işlemi sonlandırır.

Resim 14: Proses Ayırma İşlemi

Adım 4: Adım 1 ve Adım 2 tekrarlanarak Taskmgr.exe prosesi oluşturulur.

Adım 5: İlk debug işlemi sayesinde taskmgr.exe proses handle için tam erişim elde edilir. WaitForDebugEvent fonksiyonu kullanılarak ilk proses oluşturma debug olayını elde edilir ve proses handle sürecine ait tüm erişimi kazanmak için NtDuplicateObject kullanılır.

Resim 15: Auto-Elevated Proses Oluşturulması

Adım 6: Taskmgr.exe’ye ait tüm yetkinin kazanılmasından sonra install.bat’ın çalıştırılması için CMD üzerinde tam erişim kazanılır. Bunu elde etmek için Parent PID Spoofing tekniği kullanılmaktadır.

Resim 16: Parent PID Spoofing

Xmlprov.dll (Konni Rat)

Finalde, svchost.exe kullanılarak asıl payload devreye alınır. Bu RAT birçok anti-analiz tekniklerine ve karmaşıklaştırma yapısına sahiptir. Bu işlemleri gerçekleştirmek için “qwdfr0” isimli bir bölüme sahiptir. SeviceMain isimli bir export fonksiyonu kullanarak kendini bir servis olarak kaydetmektedir.

Resim 17: ServiceMain

Bu RAT, encrypt edilmiş “xmlprov.ini” isimli bir konfigürasyon dosyasına sahiptir. İşlemin başında decrypt edilerek devreye girmektedir. RAT, aşağıdaki komutla toplanan verilerin sonucunda çalışmaya başlamaktadır.

  • cmd /c systeminfo
  • cmd /c tasklist

tasklist komutuyla elde edilen temp dosyaları, cab dosyalarına “cmd /c makecab” komutu kullanılarak dönüştürülmektedir. Elde edilen dosyalar, enkript edilerek saldırganın sunucusuna HTTP Post isteği kullanılarak gönderilir (hxxp://taketodjnfnei898.c1[.]biz/up.php?name=%UserName%).

Resim 18: Sunucuya Veri Gönderimi

SONUÇ

Yapılan inceleme sonucunda Konni RAT aktivitelerinin APT37 ilişkili olduğu değerlendirmesi yapılmıştır. Hedefler ağırlıklı olarak Güney Kore ve Rusya olarak görülmektedir. Japonya, Vietnam, Nepal ve Moğolistan da hedefler arasındadır. Zararlının yeni/eski özellikleri aşağıdaki gibidir:

Makrolarda farklılık bulunmaktadır. Eski versiyonlarda, veri tutmak için TextBox yapıları kullanılmıştır. Güncel versiyonda base64 şifreleme yapılarak content içerisinde tutulmaktadır.

Güncel atakta Javascript dosyaları, batch ve Powershell dosyaları çalıştırmak için kullanılmaktadır.

Powershell ve URLMON API kullanılarak .cab uzantılı dosyalar indirilmektedir. Eski versiyonda cerutil kullanılmıştır.

Bu kampanyada, hedef alınan makinenin işletim sistemi durumuna göre 2 farklı UAC Bypass tekniği kullanılmaktadır. Eski kampanyalarda sadece Token Impersonation tekniği kullanılmaktadır.

IOC LİSTESİ

NameSha256
N/Afccad2fea7371ad24a1256b78165bceffc5d01a850f6e2ff576a2d8801ef94fa
economics relations.docd283a0d5cfed4d212cd76497920cf820472c5f138fd061f25e3cddf65190283f
y.js7f82540a6b3fc81d581450dbdf7dec7ad45d2984d3799084b29150ba91c004fd
yy.js7a8f0690cb0eb7cbe72ddc9715b1527f33cec7497dcd2a1010def69e75c46586
y.ps1617f733c05b42048c0399ceea50d6e342a4935344bad85bba2f8215937bc0b83
 tmpBD2B.tmp10109e69d1fb2fe8f801c3588f829e020f1f29c4638fad5394c1033bc298fd3f
check.bata7d5f7a14e36920413e743932f26e624573bbb0f431c594fb71d87a252c8d90d
install.bat4876a41ca8919c4ff58ffb4b4df54202d82804fd85d0010669c7cb4f369c12c3
xwtpui.dll062aa6a968090cf6fd98e1ac8612dd4985bf9b29e13d60eba8f24e5a706f8311
xmlprov.dllf702dfddbc5b4f1d5a5a9db0a2c013900d30515e69a09420a7c3f6eaac901b12
xmlprov.dll80641207b659931d5e3cad7ad5e3e653a27162c66b35b9ae9019d5e19e092362
xmlprov.ini491ed46847e30b9765a7ec5ff08d9acb8601698019002be0b38becce477e12f6

Domain Listesi

takemetoyouheart[.]c1[.]biz
taketodjnfnei898[.]ueuo[.]com
taketodjnfnei898[.]c1[.]biz
romanovawillkillyou[.]c1[.]biz

Referanslar

https://blog.malwarebytes.com/threat-intelligence/2021/0https://blog.malwarebytes.com/threat-intelligence/2021/08/new-variant-of-konni-malware-used-in-campaign-targetting-russia/8/new-variant-of-konni-malware-used-in-campaign-targetting-russia/

https://any.run/report/d283a0d5cfed4d212cd76497920cf820472c5f138fd061f25e3cddf65190283f/1be25f29-b658-4f49-993f-ba8dd2f31a5f

Related posts

Egregor bu kez Randstad’ı vurdu!

Serdar H.

ZeroLogon (CVE-2020-1472)

Serdar H.

MINEBRIDGE RAT ANALİZİ

Mustafa Okay Maktav

Bu web sitesi, kullanıcı deneyimini iyileştirmek amacıyla çerezler kullanmaktadır. Kabul Et Daha Fazlası