HERHANGİ BİR ÇALIŞMAEtkileşimli kötü amaçlı yazılım analizi ve tehdit istihbaratında lider olan , tarafından yazılan bir teknik analiz yayınladı. RacWatchin8872 AsyncRAT’ı içeren çok aşamalı saldırılarda kullanılan yeni tekniklerin belgelenmesi. Rapor, saldırganların AsyncRAT’ı dağıtmak için açık dizinlerden nasıl yararlandığını ayrıntılarıyla anlatıyor, bulaşma mekanizmalarını inceliyor ve bu kalıcı tehdidi tanımlamak ve azaltmak için uzlaşma göstergeleri (IOC’ler) sunuyor.
Genel Bakış
AsyncRAT, sistemlere gizlice sızmak ve saldırganlara virüslü cihazlar üzerinde uzaktan kontrol sağlamak için tasarlanmış bir tür Uzaktan Erişim Truva Atı (RAT) kötü amaçlı yazılımıdır. Genellikle casusluk, veri hırsızlığı ve güvenliği ihlal edilmiş sistemlerin manipülasyonu için kullanılır.
Son zamanlarda, her biri mağdurlara AsyncRAT dağıtmak ve bulaştırmak için benzersiz yöntemler kullanan iki açık dizin ortaya çıktı. Bu teknikler, bu kötü amaçlı yazılımın oluşturduğu kalıcı tehdidi ve çeşitli bulaşma stratejilerini vurgulamaktadır.
Teknik 1: Açık Dizin Yapısı Yoluyla Sızma
Dizini Aç
İnternete maruz kalan kötü amaçlı açık dizinleri araştırırken alışılmadık yapıya sahip bir dizin keşfettim.
Dizin aşağıdaki dosyaları içeriyordu:
Şekil 1 – Açık dizin yapısı
Txt dosyasının analizi
Metin dosyasının kapsamlı dizesi, karmaşık bir VBS komut dosyasını gizler. JPG dosyasını indirmek için kullanılacak metnin bölümlerini depolamak için rastgele değişkenler kullanır.
Şekil 2 – Gizlenmiş VBS kodu
Okumayı kolaylaştırmak için birkaç değişiklik yapmamız gerekiyor:
-
Değişkenleri gerçek metinle değiştirin,
-
Dosya yazmak veya indirmek için kullanılan değişkenler için sezgisel adlar kullanın.
Şekil 3 – Gizlemesi kaldırılmış VBS kodu
Şimdi VBS betiğinin bir XML dosyası oluşturduğunu görüyoruz. OMjRRRRRRRRRRRRRRRRRRvbK.xml bulunduğu yer C:KullanıcılarHerkese Açık. XML dosyasının içeriği, gizlenmiş JPG dosyasını indiren, kaydeden ve aynı dizine çıkaran bir PowerShell betiği içerir.
Çıkarıldıktan sonra süreç başka bir komut dosyasını çalıştırarak devam eder, TesKKKeLAvaYdAfbBS.vbs. Daha sonra hem XML hem de ZIP dosyalarını silerek temizler.
Şekil 4 – TesKKKeLAvaYdAfbBS.vbs karartılmış
Okumayı kolaylaştırmak için birkaç değişiklik yapmamız yeterli:
-
Değişkenleri gerçek metinle değiştirin,
-
Kullanılan değişkenler için sezgisel adlar kullanın,
-
Sonuçtan bağımsız olarak aynı kodu çalıştıran tüm If İfadelerini silin.
Bu değişiklikleri yaparak 34 satırlık bir VBS betiğini daha basit, okunması daha kolay 6 satırlık bir sürüme dönüştürebiliriz.
Şekil 5 – TesKKKeLAvaYdAfbBS.vbs’yi temizleyin
ANY.RUN’un Etkileşimli Sandbox’ındaki kötü amaçlı yazılımları ücretsiz analiz edin →
Bat dosyasının analizi
BAT betiği de karmaşıktır ancak değişkenlerin içinde saklanan değerleri dikey olarak okuyarak amacını anlamak mümkündür.
Şekil 6 – KKKKKKllLavIOOOOotesAA.bat dosyası
Rolü PowerShell’i bir bilgi istemi penceresi olmadan yürütmektir. KiLOvBeRNdautESaatnENn.ps1’i çalıştırarak bir sonraki aşamayı başlatır.
PowerShell (PS1) dosyasının analizi
PS1 dosyası, her 2 dakikada bir UhLQoyDAMaCUTPaE.vbs’yi çalıştıran ‘tMicNet Work40’ adlı zamanlanmış bir görev oluşturan basit bir komut dosyasıdır.
Şekil 7 – PowerShell tarafından oluşturulan zamanlanmış görev
İkinci VBS dosyasının analizi
UhLQoyDAMaCUTPaE.vbs, önceki VBS (TesKKKeLAvaYdAfbBS.vbs) ile aynı yapıya sahiptir, dolayısıyla betiğin okunmasını ve analiz edilmesini kolaylaştırmak için aynı tekniği kullanabiliriz.
Şekil 8 – UhLQoyDAMaCUTPaE.vbs karartılmış
Aynı tekniği kullanarak şu sonucu elde edeceğiz:
Şekil 9 – UhLQoyDAMaCUTPaE.vbs’nin gizliliği kaldırıldı
İkinci BAT dosyasının analizi
aaaNOOTKiiiLAViiiiOOs.bat önceki BAT (KKKKKKllLavIOOOOOtesAA.bat) ile aynı yapıya sahiptir, dolayısıyla onu dikey olarak okuyarak dosyanın ne yaptığını anlayabiliriz.
Şekil 10 – aaaNOOTKiiiLAViiiiOOs.bat
BAT dosyası bir Powershell dosyası olan son aşamayı yürütür.
Son Aşamanın Analizi
Son aşamada, kodun yorumlanmasını zorlaştırmak için değişken adları değiştirilerek karartılır. Değişkene doğrudan bir isim vermek yerine, kelimeyi parçalara ayırır, karıştırır ve ardından değişken adını yeniden oluşturmak için her konumu çağırırlar.
Analizi basitleştirmek için kodun yapısını benzer şekilde çözebiliriz, her parçayı izole ederek senaryoyu daha net ve anlaşılır hale getirebiliriz.
Şekil 11 – Son aşamanın analizi
Kodun ilk kısmı, bir dize alan ve onu onaltılı sayıdan 32 bitlik bir tam sayıya dönüştüren bir işlevdir.
Şekil 12 – Son aşamanın ilk kısmı
Kodun ikinci kısmı büyük dizelere sahip iki değişken içerir. Her iki dize de doğru değeri almak için değiştirme işlevini kullanır ve bunlar daha sonra işlenmek üzere ‘PARSer’a gönderilir.
Şekil 13 – Son aşamanın ikinci kısmı
Son aşamanın son kısmı, dosyaları yürütmek için belleğe yüklemektir.
Şekil 14 – Son aşamanın son kısmı
CyberChef’in yardımıyla, iki değişkenin içindeki değerleri almak ve gerçekte ne olduklarını görmek için son aşamanın ikinci bölümünde gösterilen tekniğin aynısını uygulayabiliriz:
İlk değişken bir DLL’dir:
Şekil 15 – AsyncRAT DLL
İkinci değişken bir EXE’dir:
Şekil 16 – AsyncRAT EXE
Her ikisini de ANY.RUN sanal alanında çalıştırarak C2, bağlantı noktaları, sertifikalar, mutex ve daha fazlası hakkında bilgi toplamak mümkündür.
Şekil 17 – ANY.RUN sanal alanı tarafından oluşturulan metin raporu
– İkinci Teknik
Dizini Aç
İkinci açık dizinin yapısı, iki dosya içeren ilkini yansıtır: bir TXT dosyası ve bir JPG dosyası.
Daha kısa adı olan TXT dosyası bir VBS betiğidir, JPG dosyası ise bir PowerShell betiğini kılık değiştirerek gizler.
Şekil 18 – Dizini aç
Txt dosyasının analizi
Bu durumda TXT dosyası, yorumları nedeniyle yorumlanması daha kolay olan bir VBS betiği içerir. Gizlenmiş JPG dosyasını indirmek için komutları saklayan bir dizi içerir.
Şekil 19- VBS betiği
Komut dosyasını daha da basitleştirmek için diziyi silebilir ve tüm dizi değerlerini tek bir değişkende saklayabiliriz.
Şekil 20 – VBS betiğini temizleme
Powershell dosyasının analizi
PowerShell dosyası 2 ana işlevi gerçekleştirir:
1.Dosya oluşturma ve içerik yazma – Bulaşma süreci için gerekli üç dosya oluşturur.
2.Zamanlanmış görev kurulumu – Tekrarlanan yürütmeyi sağlamak için bir görevi zamanlar ve böylece AsyncRAT bulaşmasını sürdürür.
Dosya Oluşturma
Powershell 3 dosya oluşturur:
İlk dosya:
Bu gizlenmiş dosya, AsyncRAT ile ilgili EXE ve DLL dosyalarının değerlerini doğrudan bellekte saklar ve yürütür.
Şekil 21 – Powershell dosyası tarafından oluşturulan ilk dosya
Dosyayı temizledikten sonra, her iki değişkenden de ‘%&%’yi kaldırır, bunları onaltılı sayıya dönüştürür ve ardından bunları belleğe yükleyip çalıştırır.
Şekil 22 – Dosyanın belleğe yüklenmesi
Yukarıda belirtilen işlemleri CyberChef üzerinden gerçekleştirdiğimizde aşağıdaki sonuçları elde ediyoruz:
Şekil 23 – AsyncRAT Exe
Şekil 24 – AsyncRAT DLL
İkinci dosya:
İkinci dosya PowerShell’i önceki dosyayı (roox.ps1) yürütmesi için tetikler.
Şekil 25 – Powershell dosyası tarafından oluşturulan ikinci dosya
Üçüncü dosya:
Üçüncü ve son dosya, yürütmeyi kurbandan gizli tutarken önceki roox.bat dosyasını çalıştırır. Bu, enfeksiyon sürecinin görünmez kalmasını sağlar ve görünür göstergeleri en aza indirerek mağdurun devam eden etkinliği tespit etmesini zorlaştırır.
Şekil 26- Powershell dosyasının oluşturduğu üçüncü dosya
Zamanlanmış Görev
thepiratMicrosoftEdgeUpdateTask olarak adlandırılan zamanlanmış görev, her iki dakikada bir roox.vbs dosyasını çalıştırarak enfeksiyonun devam etmesini sağlar.
Şekil 27 – thepiratMicrosoftEdgeUpdateTask adlı zamanlanmış görev
ANY.RUN sanal alanı içinde PowerShell betiğini çalıştırdıktan sonra, dosyaların oluşturulduğunu ve yürütüldüğünü görebiliriz. Komuta ve kontrol (C2) altyapısı hakkında da daha fazla bilgi toplayabiliriz.
Şekil 28- Powershell scripti ile oluşturulan dosyalar
Şekil 29 – C2 IP ve DNS
Çözüm
Araştırmamız, AsyncRAT’ı farklı yöntemlerle aktif olarak yayan iki IP’yi ortaya çıkardı. İlk yöntem, bulaşmayı tamamlamak için çeşitli dosya ve komut dosyalarının kullanıldığı çok aşamalı bir süreci izler.
ANY.RUN Interactive Sandbox’ın tüm PRO özelliklerini ücretsiz deneyin →
İkinci yöntem yalnızca iki aşamayı kullanır; bunlardan biri, aşağıdaki resimde gösterildiği gibi zamanlanmış bir görev tarafından tetiklenen dosyaların oluşturulmasını içerir:
Şekil 30 – İki yöntem arasındaki fark
Reklam