NetamLoader, Asya’daki devlet Windows 10 sistemlerine sızdı

Anasayfa » NetamLoader, Asya’daki devlet Windows 10 sistemlerine sızdı
NetamLoader, Asya’daki devlet Windows 10 sistemlerine sızdı

Kaspersky’nin bu hafta paylaştığı inceleme, Asya’daki kamu kurumlarına özel hazırlanmış bir Windows 10 sürümünü hedef alan ve daha önce belgelenmemiş bir .NET yükleme çerçevesi kullanan NetamLoader kampanyasını ortaya çıkardı. Araştırmacılar, saldırının kamuya açık şekilde ilişkilendirilmiş bilinen bir tehdit aktörüne bağlanamadığını, tek bir sistemle sınırlı kalıp kalmadığının ve veri sızıntısı yaşanıp yaşanmadığının ise netleşmediğini belirtti.

Kampanyanın ilk izleri 2026’nın ilk yarısında görüldü. Analize göre zararlı bileşen, Windows güncelleme paketlerinin tutulduğu bir dizine bırakılan CAB arşivinin içine gizlenmişti. Bu yerleşim, saldırganların güvenilir bir üçüncü taraf yazılım tedarikçisini ele geçirerek aşağı akışta o yazılıma güvenen kurumlara ulaşmış olabileceği ihtimalini gündeme getirdi. Kaspersky, kullanılan yöntemin tedarik zinciri saldırısı izleri taşıdığını aktardı.

İlk aşama: meşru dosyalar üzerinden .NET enjeksiyonu

İncelenen CAB arşivi, “Patch My PC” adlı uç nokta yönetim yazılımına ait yedi dosya içeriyordu. Bunlar arasında fabric.config, Microsoft.HostIntegration.Connectors.dll, PatchMyPC-Enum.dll, PatchMyPC-Models.dll, PatchMyPC-ScriptRunner.exe, PatchMyPC-ScriptRunner.exe.config ve Resources.resx yer aldı. Kayda göre zararlı kod yalnızca Resources.resx içine gömülmüştü; diğer dosyalar meşru bileşenlerdi.

Kaspersky, CAB arşivi içeren dosyanın “C:\Windows\SoftwareDistribution\Download\e4537a1762fcafd2fd96bfc825bad34f9db9a24” yoluna yerleştirildiğini, içeriğin ise “C:\Windows\SoftwareDistribution\Download\Install\” dizinine çıkarıldığını bildirdi. Arşivi sisteme hangi teslim aracının taşıdığı ise halen bilinmiyor.

Saldırı zinciri, PatchMyPC-ScriptRunner.exe’nin çalıştırılmasıyla başlıyor. Bu dosya, .NET Framework’ün AppDomainManager mekanizmasını suistimal eden AppDomainManager injection tekniğiyle PatchMyPC-ScriptRunner.exe.config dosyasını ayrıştırıyor ve Microsoft.HostIntegration.Connectors.dll’in çalışmasına yol açıyor. Bu teknik, meşru bir .NET uygulaması başlatılırken AppDomainManager akışını ele geçirip keyfi .NET derlemeleri yüklenmesine dayanıyor. DLL sideloading ile aynı hedefe ulaşıyor: zararlı kodu meşru bir uygulamanın süreci içinde çalıştırmak ve gözden kaçmak.

Yüklendikten sonra Microsoft.HostIntegration.Connectors.dll, aynı dizindeki fabric.config dosyasını buluyor ve bunun içeriğini okuyarak Resources.resx’i devreye sokuyor. Bu dosya da kendi içinde şifreli, sıkıştırılmış ya da kodlanmış birden fazla katman taşıyor. Kaspersky’nin aktardığına göre bu katmanlar arasında XAML dosyaları, .NET derlemeleri ve JSON verileri bulunuyor; bileşen bunları sırayla çözüp yüklüyor.

İkinci aşama: XAML zinciri, AMSI atlatma ve C2 bağlantısı

İkinci aşamada XAML-1 adlı yükleyici, gömülü XAML-2 bileşenini açıyor. XAML-2 ise sıkıştırılmış ve Base64 kodlu iki ayrı XAML dosyasını devreye sokuyor: XAML-2-1 ve XAML-2-2. Bunlardan XAML-2-1, Antimalware Scan Interface’i, yani AMSI’yi baypas etmek için kullanılıyor. XAML-2-2 ise iki parçadan oluşuyor: .NET 1 Loader adı verilen bir .NET modülü ve JSON-1 olarak anılan bir JSON veri yükü.

JSON-1’in içinde de iki alt bölüm var. JSON-1-c, komuta ve kontrol yani C2 sunucusunun yapılandırmasını tutuyor. JSON-1-p ise Base64 ile kodlanmış bir .NET 2 Plugin dosyası ile XAML-3’ü oluşturmak için kullanılan sıkıştırılmış ve şifrelenmiş XAML şablonlarını içeriyor. XAML-2-2 bu noktada .NET 1 Loader’ı başlatıyor; bu bileşen de XAML-3’ü çözmek, birleştirmek ve yüklemekle görev yapıyor, ardından durumu C2 sunucusuna bildiriyor. Aynı aşamada CAB arşivinden çıkarılan kötü amaçlı dosyaları, CLR kullanım günlüklerini ve Windows’un Prefetch önbellek dosyalarını siliyor. Amaç, saldırı izlerini temizlemek.

XAML-3, “dllhost.exe” içinde çalışan ve .NET 2 Plugin’i çözmek, sıkıştırmasını açmak ve yüklemek için tasarlanan yük aşaması olarak tanımlandı. .NET 2 Plugin ise C2 yapılandırmasını yükleyip Windows Registry’den sistem bilgisi topluyor, içinde çalıştığı ana sürecin dllhost.exe olup olmadığını kontrol ediyor. Ardından 20 ila 40 dakika arasında rastgele bir bekleme süresi koyuyor ve C2’ye ilk isteğini “openaigpt4v[.]com” alan adına gönderiyor.

Bundan sonra bileşen, XAML dosyası çekmek ve bunu izole bir AppDomain içinde çalıştırmak için periyodik bir yoklama döngüsüne giriyor. Kaspersky, C2’den geçerli bir yanıt gelirse döngünün bir sonraki istekten önce 5 ila 6 dakika durakladığını; yanıt gelmezse 22 ila 28 saat beklediğini, bu süre içinde de her 10 dakikada bir ayrılan zamanın dolup dolmadığını kontrol ettiğini aktardı.

Tek kurban, hükümete özel Windows 10 sürümü

Telemetri verilerine göre Kaspersky, Asya’da tek bir kurban tespit etti. Hedef alınan yapı, yalnızca devlet kurumları için özelleştirilmiş bir Windows 10 sürümüydü. Hangi ülkenin hedef olduğu açıklanmadı; ancak şirket, Microsoft’un Çin hükümeti ve devlete ait kuruluşlar için geliştirdiği Windows 10 China Government Edition nedeniyle odağın Çin olabileceğine işaret etti.

Bu yılın ağustos ayında yayımlanan haberlerde, Çin’in devlet güvenliği otoritesinin bazı kamu kurumlarına Government Edition kullanımını bırakıp Çin üretimi Linux dağıtımlarına geçme talimatı verdiği aktarılmıştı. O dönemde bu adımın, yabancı teknolojiye bağımlılığı azaltma ve veri güvenliği endişeleriyle bağlantılı olduğu belirtilmişti. Kaspersky, mevcut kampanyayı anlatırken devletlerin işletim sistemi, veritabanı, ara yazılım ve bulut hizmetleri dahil kendi çekirdek yazılım platformlarını kurma eğiliminin güçlendiğini, bu yelpazede işletim sistemlerinin çoğu zaman ilk sırada geldiğini vurguladı.

Şirketin değerlendirmesinde, her ülkenin kendi işletim sisteminin geliştirme, işletme ve yükseltme süreçlerini denetlemesinin tam özerklik sağladığı, ancak bunun aynı zamanda geniş ekosistemin tamamını tek başına koruma sorumluluğu anlamına geldiği belirtildi. Kaspersky, bu tür sistemlerin işletme ve bakım süreçlerini olgunlaştırmanın uzun zaman aldığını da ekledi.