İşe alım kılığıyla dağıtılan NodeRabbit ve PollCat macOS ile Linux’a sıçradı

Anasayfa » İşe alım kılığıyla dağıtılan NodeRabbit ve PollCat macOS ile Linux’a sıçradı
İşe alım kılığıyla dağıtılan NodeRabbit ve PollCat macOS ile Linux’a sıçradı

Nimbus Manticore adlı İran bağlantılı tehdit grubu, LinkedIn ve benzeri iş platformlarındaki işe alım kurgularını kullanarak Windows’un ötesine geçen yeni erişim araçları dağıtıyor. Yapılan son analizlere göre grup, NodeRabbit ve PollCat adı verilen iki yeni zararlı yazılım ailesiyle Linux ve Apple macOS sistemlerine de ulaşan çapraz platform RAT’lar kullanıyor. Kampanya, özellikle mühendislik ve yazılım geliştirme rolleri için gönderilen sahte teknik testler üzerinden ilerliyor.

Kaspersky’nin incelediği örnekler, grubun son aylarda araç setini hızla genişlettiğini gösteriyor. Aynı operasyon dizisinde NightLedger adlı bir Windows arka kapısı, BridgeHead ve ArcBridge isimli iki özel WebSocket tünelleyici, bir ters SSH tünelleme aracı ve TWOSTROKE ile benzerlik taşıyan başka bir arka kapı da yer alıyor. Şimdi buna Node.js ve obfuskasyonlu JavaScript ile yazılmış çapraz platform RAT’lar eklenmiş durumda. Araştırmacı Omar Amin, NodeRabbit’in LinkedIn ve diğer iş arama platformlarındaki spear phishing mesajlarıyla, içine trojan yerleştirilmiş kodlama görevleri üzerinden dağıtıldığını belirtti.

İlk NodeRabbit örneği Afganistan’daki bir sistemde bulundu; ardından Mısır ve Etiyopya’daki iki ayrı makinede daha izine rastlandı. Tehdit aktörü, büyük bir teknoloji şirketinde yetenek kazanımı uzmanı gibi davranıp bir yazılım mühendisini hedef aldı ve onu teknik bir görev tamamlamaya davet etti. Bu sahte teklifin içinde AWS üzerinde barındırılan “Front-Technical-Challenge.zip” adlı bir ZIP arşivi vardı. Grup, bu yöntem nedeniyle uzun süredir “Iranian Dream Job” adıyla da izleniyor; benzer işe alım yemlerini kullanan Kuzey Kore bağlantılı Lazarus grubunun taktiklerini hatırlatan bir operasyon yürütüyor.

Arşivde, Taskflow adlı bir proje yönetim aracının kaynak kodu bulunuyordu. Adaylardan, “frontend kodundaki tüm hataları bulun ve düzeltin” denilerek üç saat içinde, yapay zeka destekli araçlara başvurmadan işi tamamlamaları istendi. Talimatlarda server.js dosyasına dokunulmaması özellikle vurgulandı; dosyanın “hatadan arındırılmış ve doğru çalıştığı” iddia edildi. Ancak kötü amaçlı kodun gömüldüğü yer tam olarak bu dosyaydı.

Kaspersky’ye göre server.js’nin ilk satırı, colorized_terminal sürüm 2.1.0 adlı trojanlaştırılmış bir npm paketini içe aktarıyordu. Paket npm deposuna yüklenmemişti; saldırganlar onu doğrudan görev arşivinin node_modules dizinine koymuştu. İçe aktarıldığında paket, node_modules/.cache/.320697f1/index.js yolundaki yükü ana süreçten ayrık bir arka plan işlemi olarak çalıştırıyordu. Bu yük, NodeRabbit olarak tanımlandı.

NodeRabbit, Azure üzerinde barındırılan üç komuta ve kontrol adresi üzerinden iletişim kuruyor: plugplay.azurewebsites[.]net, rgbteller.azurewebsites[.]net ve wslwebui.azurewebsites[.]net. Zararlı yazılım, üç API ucu kullanıyor: /api/rabbit/checkin kayıt ve ana makine bilgisi toplamak için, /api/rabbit/task komutları yoklamak için, /api/rabbit/result ise sonuçları iletmek için. Toplam 11 komut destekleyen sürüm; sistem ayrıntısı toplama, çalışan süreçleri listeleme, rastgele shell komutları çalıştırma, dizinleri keşfetme, dosyaları parça parça okuyup Base64 olarak geri döndürme, Base64 verisini çözüp belirli bir dosya ofsetine yazma, dosya ve dizin silme, alt dizinler oluşturma, ağ bağdaştırıcılarını, MAC adreslerini, IP adreslerini ve DNS ayarlarını listeleme ile beacon aralığını değiştirme yeteneklerine sahip.

NodeRabbit’in iz bırakmamak için Base64 ile kodlanmış bir Node.js betiğini rastgele adlandırılmış “.tmp” dosyasına yazması, çalıştırması ve ardından silmesi de araştırmacıların kayda geçirdiği davranışlar arasında. Kaspersky, aynı soy hattını paylaşan iki NodeRabbit varyantı daha bulduğunu da açıkladı. Bunlardan biri colorized_terminal yerine pretty-log adlı başka bir trojanize npm paketini kullanıyor, kurumsal proxy desteğini kısmen uyguluyor ve analiz ortamında çalıştığını anlarsa kapanıyor. Üçüncü varyant da yine pretty-log üzerinden başlatılıyor ancak görev almak için farklı API uçlarına bağlanıyor: /sdk/v2/ready, /sdk/v2/config ve /sdk/v2/events.

Kalıcılık mekanizması işletim sistemine göre değişiyor. Windows’ta Run kayıt anahtarı açılıyor, Linux’ta cron girdisi ekleniyor, macOS’ta ise launch agent kuruluyor. İlk varyant, bunu Microsoft Edge tarayıcı güncellemesi gibi göstermeye çalışıyor; ikinci varyant Intel’in Driver & Support Assistant yazılımını taklit ediyor. Üçüncü varyant ise meşru bir uygulamayı kopyalamıyor, ama Windows Subsystem for Linux’u da hesaba katarak her gün saat 10.00’da çalışan bir Windows görevi oluşturuyor. Bu görev Visual Basic Script dosyasını “wscript.exe” ve “wsl.exe” üzerinden başlatıyor.

Üçüncü sürümde ayrıca 12 yeni komut daha yer alıyor. Bunlar arasında erişilebilen Windows sürücü harflerini veya WSL ile bağlanmış diskleri listeleme, süreç çalıştırma, PID’ye ya da imaj adına göre süreç sonlandırma, aktif C2 sunucusunu değiştirme ve yeni ayarı kalıcı tutmaya çalışma, geçerli C2 sunucusunu döndürme, Outlook OST ve PST kalıntılarından hesap adresleri toplama, sahte “GitHub Copilot Helper” adlı bir VS Code uzantısı ve Windows Run değeri kurarak kalıcılık ekleme, seçili VS Code, zamanlanmış görev ve Run anahtarı kalıcılık göstergelerini kontrol etme, sahte uzantıyı kaldırma, son ve yaygın geliştirme konumlarında Git deposu arama, bir depoya Git hook’ları üzerinden başlatıcı enjekte etme ve işaretli Git hook başlatıcısını silme bulunuyor.

PollCat adı verilen bir diğer çapraz platform RAT da benzer şekilde geliştirme görevleri üzerinden dağıtıldı. Bu kez “RankChallenge-react-6uJSX3-main.zip” adlı arşiv, süre kısıtlı geliştirici değerlendirmeleri gibi sunuldu. Kaspersky, görünürdeki uygulamanın bir güvenlik CTF’i olmadığını, ancak proje içinde CTF terminolojisinin tekrar tekrar kullanıldığını aktardı. Kök paket adı ctf-server, arka uç çıktısı “CTF server running”, ön yüz ise çeşitli ctf-* saklama anahtarları kullanıyor. Hazırlık kılavuzunda da “path/to/ctf” ifadesi geçiyor. Araştırmacılara göre bu tekrarlar, teslim edilen uygulamayla tam örtüşmeyen talimatlarla birleşince, saldırganın bir yapay zeka kod asistanına CTF tarzı bir React platformu ürettirmiş olabileceğini düşündürüyor.

Arşivde bulunan PDF eğitim dosyası, hedef kişiden “Continue” düğmesine basmasını, saldırganın sağladığı ve 30 saniyede bir yenilenen altı haneli tek kullanımlık şifreyi girmesini ve görevi bir saatlik oturum içinde tamamlamasını istiyor. Bu sıkıştırılmış zaman çizelgesinin, deneği aceleyle çalıştırma olasılığını artırmak için kurulduğu değerlendiriliyor. Ancak PollCat’in çalışması OTP doğrulama akışından bağımsız ilerliyor; doğrulama başarısız olsa da başarılı olsa da zararlı yazılım kendi C2 bağlantısını sürdürüyor. Başarılı doğrulama ise bir JWT üretip PollCat’in ek bir örneğini daha başlatıyor.

PollCat, Windows, Linux ve macOS üzerinde günlük zamanlanmış görev kurarak kalıcılık sağlıyor, ardından C2 sunucusuna bağlanıp temel sistem bilgilerini gönderiyor ve yeni talimat bekliyor. Zararlı yazılımın 22 komut desteklediği, yedi API ucu üzerinden iletişim kurduğu belirtildi. Bu uçlar arasında /beacon ile istemci kaydı ve socketId alma, /gate/hello ile ana makine, kullanıcı, alan adı, işletim sistemi ve ayrıcalık seviyesini gönderme, /gate/fetch?token=<socketid> ile komut yoklama, /gate/submit ile Base64 kodlu komut-sonuç yapısı iletme, /vault/<uuid> ile barındırılan bir dosyayı indirip hedef makineye yazma, /vault/push ile yerel dosya veya dosya parçasını C2’ye yükleme ve /gate/track ile parça yükleme ilerlemesini bildirme yer alıyor.

Komut seti, tipik bir arka kapının sağlayabileceği işlevlerin çoğunu kapsıyor. Dosya işlemleri, shell komutları, dosya yükleme ve indirme, JavaScript çalıştırma, DLL yükleme, ZIP arşivi oluşturma veya açma, çalışan süreçleri ve sürücüleri, volümleri ya da mount noktalarını listeleme gibi yetenekler bunların arasında. Üç komut, WS_DOWNLOAD, REQUEST_ELEVATION ve PERSIST ise şu an uygulanmamış durumda. PollCat ayrıca Google, Microsoft, Palo Alto Networks, Cisco, VMware, Fortinet, Citrix, Check Point, Juniper Networks, LogMeIn, Sophos, Symantec, Trend Micro, McAfee, Kaspersky Lab, ESET, Bitdefender, Avast, CrowdStrike, SentinelOne, Malwarebytes, Brave, Tencent ve Naver dahil 24 yazılım ve güvenlik tedarikçisine ait sabit dizin adlarını arıyor. Eşleşme bulduğunda klasörün kök içeriğini envanterleyip alt dizinleri taramadan sonucu /api/system-details/result uç noktasına JSON biçiminde gönderiyor.

Kaspersky, PollCat ile daha önce gruba atfedilen MiniFast, MiniUpdate ya da Retrograde olarak da bilinen arka kapı arasında yapı, komut çekme yöntemi, beacon zamanlaması ve komut seti açısından benzerlikler bulunduğunu, ayrıca C2 için Azure Websites ve Cloudflare destekli alan adlarının kullanıldığını aktardı. İncelemeye göre çapraz platform betiklere geçiş, operatörlere Windows, Linux ve macOS üzerinde çalışan tek bir kod tabanı sağlıyor ve yüklerin geliştirici iş istasyonlarına doğal biçimde karışmasına imkan veriyor. Aynı operasyon çizgisi ise değişmiyor: LinkedIn üzerinden kurulan işe alım personası, Orta Doğu ve Afrika’daki kritik sektör çalışanlarını siber casusluk amacıyla hedef almaya devam ediyor.