PamStealer, macOS’ta canlı C2 anahtarıyla şifre çözüp kalıcılık ekliyor

Anasayfa » PamStealer, macOS’ta canlı C2 anahtarıyla şifre çözüp kalıcılık ekliyor
PamStealer, macOS’ta canlı C2 anahtarıyla şifre çözüp kalıcılık ekliyor

macOS hedefli PamStealer kampanyası, artık yükünü yalnızca saldırganın canlı komuta-kontrol altyapısıyla çözülebilecek şekilde teslim ediyor. Jamf Threat Labs’in son incelemelerine göre zararlı, JavaScript for Automation (JXA) tabanlı ilk aşama düzenini koruyor; ancak kandırma sayfası, indirme akışı ve şifre çözme zinciri yeniden tasarlanmış durumda.

Yeni varyantta kullanıcılar, daha önce Maccy, Scoppr ve Nancy Clipboard kılığına giren sahte sitelerin yerine bu kez var olmayan bir kripto cüzdan hizmeti tanıtan wavel[.]app alanına yönlendiriliyor. Sahte sayfadaki “Download for macOS” düğmesine tıklayan kurbanlar, içinde derlenmiş bir AppleScript dosyası bulunan Wavel.dmg disk imajını indiriyor. Dosya açıldığında Apple’ın yerleşik Script Editor aracı devreye giriyor ve JXA dropper’ının çalışmasını tetikleyen komutlar ekrana geliyor.

Güvenlik araştırmacısı Thijs Xhaflaire, önceki sürümlerde yük anahtarının doğrudan JXA kodunun içine gömüldüğünü, yeni sürümde ise bunun yerini sunucudan indirilen özel bir şifre çözme aracının aldığını belirtti. Zararlı, yürütme sırasında sunucuyla bir anahtar değişimi yapıyor; böylece ana yükün paketinden çıkarılması için uzaktaki altyapının onayı gerekiyor. Xhaflaire, sunucu desteği olmadan yükün statik olarak geri getirilemediğini söyledi.

Eski örneklerde JXA katmanı RC4 ile şifre çözme yapıyor, Objective-C çerçevelerine Foundation ve NSData üzerinden ulaşıyor ve indirme ile sahneleme sürecinin tamamını yönetiyordu. Wavel sürümünde bu işlevlerin hiçbirinin JXA içinde bulunmadığı, katmanın artık yalnızca taşıyıcı rolü üstlendiği görülüyor. Script Editor dosyayı çalıştırdığında kod, base64 dizisini çözüyor ve sonucu /bin/zsh -s komutuna iletiyor. Burada zsh, standart girişten okuduğu baytları yürütüyor; JXA süreci kısa sürede kapanırken zsh dropper arka planda çalışmayı sürdürüyor.

Bu noktadan sonra zincir, wavel.apple03cloudstore[.]com adresinden pkgunpack adlı şifre çözme aracını indirip çalıştırıyor, X25519 anahtar değişimini başlatıyor ve yük paketini çözüp sahnelemeye geçiriyor. Ardından macOS’un yeni bir arka plan giriş öğesi eklendiğinde gösterdiği bildirimler bastırılıyor. Kampanya, kalıcılık için tek bir mekanizmaya yaslanmak yerine LaunchAgent, eksikse hem yük paketini hem de LaunchAgent’i geri getiren bir onarım zsh betiği ve ~/.zshrc dosyasına eklenen bir shell hook kullanıyor. Bu hook, her yeni etkileşimli zsh oturumunda onarım betiğini çalıştırıyor.

İncelemeye göre zararlı, sahneleme dizinini ZIP arşivi olarak denetleyip saldırgan tarafına yükleyen bir izleme davranışı da sergiliyor. Aynı zamanda onarım betiği, ~/Library/Application Support/System/.githooks/ altındaki post-checkout ve pre-commit klasörlerine kopyalanıyor. git config --global core.hooksPath ayarı da bu dizine çevriliyor. Böylece sistemdeki herhangi bir depoda yapılacak git checkout ya da git commit işlemi, onarım betiğini fark ettirmeden çalıştırıyor.

Sunucunun özel anahtarı anahtar değişimini tamamlayan parça olduğu için veri şifreleme anahtarı, yani DEK, canlı bağlantı olmadan elde edilemiyor. Her çalıştırmada yeni bir geçici anahtar çifti üretildiğinden, ele geçirilmiş bir DEK değeri sonradan yeniden kullanılamıyor. Bu yapı, şifreli yükün statik analizini pratikte boşa düşürüyor ve yükün içeriğine ulaşmak için canlı bir C2 oturumunu zorunlu hale getiriyor.

Kampanyanın son aşamasında Swift ile yazılmış bir hırsız bileşeni devreye giriyor. Bu, önceki sürümde kullanılan Rust tabanlı bileşenden farklı bir mimariye işaret ediyor. Kod dili değişse de amaç aynı kalıyor: sahte bir çökme penceresi göstererek sistem parolasını toplamak ve girilen bilgiyi PAM tabanlı doğrulamayla karşılaştırmak, anahtar zinciri kayıtlarını çekmek, tarayıcı kimlik bilgilerini almak ve sistemi ayrıntılı biçimde parmak iziyle tanımlamak.

Hedef listesi Chromium ve Firefox tabanlı tarayıcılarla sınırlı değil. Google Chrome, Microsoft Edge, Mozilla Firefox, Brave, Vivaldi, Opera, Opera GX, Arc, Zen, Waterfox, LibreWolf, Yandex Browser ve Cốc Cốc dahil çok sayıda tarayıcıdan kimlik bilgisi toplandığı belirtiliyor. Zararlı ayrıca sistem profili fotoğrafını, cihazın geniş meta verisini, çalışan süreçleri ve yüklü uygulamaları da çıkarıyor. Kullanıcıya ait .zsh_history, .zshrc, .bash_history ve .gitconfig gibi dosyalar da toplanan veriler arasında yer alıyor.

Xhaflaire, Arc ve Zen ile birlikte daha az yaygın bölgesel ve gizlilik odaklı tarayıcıların eklenmesinin, PamStealer’ın hedef kapsamını tipik macOS hırsızlarının ötesine taşıdığını vurguladı. Ona göre bu varyant, teslimat altyapısına bilinçli biçimde yatırım yapıldığını gösteriyor. pkgunpack aracı, yükün şifre çözümünü sunucunun erişilebilirliğine bağlayan canlı bir anahtar değişimi ekliyor; C2 tarafı devreye girmeden ikinci aşama açılamıyor. Bu tasarım, statik geri kazanımı daha güç hale getiriyor ve operasyonel kontrolün bir bölümünü sunucu işletmecisine bırakıyor.

Jamf Threat Labs’in son bulguları, PamStealer’ın dağıtım tarafında daha karmaşık, yük tarafında ise daha kapalı bir modele geçtiğini ortaya koyuyor. JXA taşıyıcısının sadeleştirilmesi, zsh zinciri, Git hook’ları üzerinden ek kalıcılık ve Swift tabanlı hırsız bileşeni, kampanyanın macOS ekosisteminde izini sürmeyi zorlaştıran temel unsurlar olarak öne çıkıyor.