Bu makaleyle bulunması zor kötü amaçlı yazılımlarla ilgili bir dizi yayına başlıyoruz. Dosyasız bilgisayar korsanlığı programları olarak da bilinen dosyasız bilgisayar korsanlığı programları, değerli içeriği aramak ve çıkarmak üzere komutları sessizce çalıştırmak için genellikle Windows sistemlerinde PowerShell'i kullanır. Kötü amaçlı dosyalar olmadan bilgisayar korsanı etkinliğini tespit etmek zor bir iştir çünkü... antivirüsler ve diğer birçok algılama sistemi imza analizine dayalı olarak çalışır. Ancak iyi haber şu ki böyle bir yazılım var. Örneğin,
Baş belası bilgisayar korsanları konusunu araştırmaya ilk başladığımda,
Muhteşem ve Güçlü PowerShell
Bu fikirlerin bazıları hakkında daha önce yazmıştım.
Örneklerin yanı sıra sitede bu programların ne yaptığını da görebilirsiniz. Hibrit analiz, kötü amaçlı yazılımları kendi sanal alanında çalıştırır ve sistem çağrılarını, çalışan işlemleri ve ağ etkinliğini izler ve şüpheli metin dizelerini çıkarır. İkili dosyalar ve diğer yürütülebilir dosyalar için; Gerçek üst düzey koda bile bakamadığınız durumlarda hibrit analiz, çalışma zamanı etkinliğine bağlı olarak yazılımın kötü amaçlı mı yoksa yalnızca şüpheli mi olduğuna karar verir. Ve bundan sonra numune zaten değerlendiriliyor.
PowerShell ve diğer örnek betiklerde (Visual Basic, JavaScript vb.) kodun kendisini görebildim. Örneğin, şu PowerShell örneğine rastladım:
Algılanmayı önlemek için PowerShell'i base64 kodlamasında da çalıştırabilirsiniz. Etkileşimsiz ve Gizli parametrelerin kullanımına dikkat edin.
Gizlemeyle ilgili yazılarımı okuduysanız -e seçeneğinin içeriğin base64 kodlu olduğunu belirttiğini biliyorsunuzdur. Bu arada, hibrit analiz de her şeyin kodunu çözerek bu konuda yardımcı oluyor. Base64 PowerShell'in (bundan sonra PS olarak anılacaktır) kodunu kendiniz çözmeyi denemek istiyorsanız, şu komutu çalıştırmanız gerekir:
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
Daha derine git
Bu yöntemi kullanarak PS scriptimizin kodunu çözdüm, aşağıda benim tarafımdan biraz değiştirilmiş olsa da programın metni bulunmaktadır:
Komut dosyasının 4 Eylül 2017 tarihine bağlı olduğunu ve oturum çerezlerini ilettiğini unutmayın.
Bu saldırı tarzı hakkında yazmıştım.
Ne işe yarar?
Windows olay günlüklerini veya güvenlik duvarlarını tarayan güvenlik yazılımı için, base64 kodlaması, böyle bir web isteğinde bulunmaya karşı koruma sağlamak amacıyla "WebClient" dizisinin düz metin modeli tarafından algılanmasını önler. Kötü amaçlı yazılımın tüm "kötülüğü" daha sonra indirilip PowerShell'imize aktarıldığı için, bu yaklaşım tespitten tamamen kurtulmamıza olanak tanır. Daha doğrusu ilk başta ben de öyle düşündüm.
Windows PowerShell Gelişmiş Günlük Kaydı etkinleştirildiğinde (makaleme bakın), yüklü satırı olay günlüğünde görebileceksiniz. Gibiyim
Ek senaryolar ekleyelim
Bilgisayar korsanları, PowerShell saldırılarını Visual Basic ve diğer kodlama dillerinde yazılan Microsoft Office makrolarında akıllıca gizler. Buradaki fikir, mağdurun örneğin bir dağıtım servisinden .doc formatında bir rapor ekinde olan bir mesaj almasıdır. Makroyu içeren bu belgeyi açtığınızda, kötü amaçlı PowerShell'in kendisi başlatılır.
Genellikle Visual Basic komut dosyasının kendisi gizlenir, böylece antivirüs ve diğer kötü amaçlı yazılım tarayıcılarından serbestçe kaçar. Yukarıdakilerin ruhuna uygun olarak, yukarıdaki PowerShell'i bir alıştırma olarak JavaScript'te kodlamaya karar verdim. Çalışmamın sonuçları aşağıdadır:
PowerShell'imizi gizleyen karmaşık JavaScript. Gerçek bilgisayar korsanları bunu bir veya iki kez yapar.
Bu, web'de dolaşırken gördüğüm başka bir tekniktir: kodlanmış PowerShell'i çalıştırmak için Wscript.Shell'i kullanmak. Bu arada, JavaScript'in kendisi
Bizim durumumuzda, kötü amaçlı JS betiği .doc.js uzantılı bir dosya olarak gömülüdür. Windows genellikle yalnızca ilk son eki gösterir, dolayısıyla kurbana bir Word belgesi olarak görünecektir.
JS simgesi yalnızca kaydırma simgesinde görünür. Pek çok kişinin bu eki bir Word belgesi olduğunu düşünerek açması şaşırtıcı değil.
Örneğimde, betiği web sitemden indirmek için yukarıdaki PowerShell'i değiştirdim. Uzak PS komut dosyası yalnızca "Evil Malware" yazdırır. Gördüğünüz gibi o hiç de kötü biri değil. Elbette gerçek bilgisayar korsanları, örneğin bir komut kabuğu aracılığıyla bir dizüstü bilgisayara veya sunucuya erişim sağlamakla ilgileniyorlar. Bir sonraki makalede, bunu PowerShell Empire kullanarak nasıl yapacağınızı göstereceğim.
Umarım ilk giriş yazımızda konuyu fazla derinlemesine ele almamışızdır. Şimdi biraz nefes almanıza izin vereceğim ve bir dahaki sefere gereksiz giriş sözcükleri veya hazırlıklar olmadan, dosyasız kötü amaçlı yazılım kullanan gerçek saldırı örneklerine bakmaya başlayacağız.
Kaynak: habr.com