Bir APT ve Siber Istihbarat Saldırısının Anatomisi adlı yazımızda bahsettiğimiz SEDNIT siber espiyonaj grubunun operasyonları hala devam etmekte. SEDNIT ekibi, zero-day exploitler dışında bilinen zafiyet ve exploitleri de sıkça kullanmakta. Özellikle bu ekip , operasyonlarında en çok, Office 2003-2007-2010 sürümlerini hedef alan CVE-2012-0158 zafiyetini ve exploitini kullanıyor. CVE-2012-0158 zafiyeti eski ve exploiti mevcut olduğu için normal şartlar altında Antivirüsler tarafından yakalanıyor. SEDNIT ekibi işte bu noktada Antivirüs firmaları ile bir nevi kedi-fare oyunu oynamakta.
SEDNIT ‘ in en son operasyonlarda kullandığı exploiti 11.11.2014 tarihinde keşfettik. Exploit , VirusTotal’e ilk defa 2 Kasım 2014 tarihinde gönderilmiş. Exploit hala 55 antivirüs’ün 52si tarafından tespit edilemiyor;
Antivirüsleri atlatmak için uyguladıkları yöntem ise gerçekten ilginç. Bildiğiniz üzere bizim için gizliliği önemli olan Office , PDF vb. döküman dosyalarını herhangi bir parola belirleyerek şifreleyebiliyoruz. İşte bu örneğimizde SEDNIT ekibi hazırladıkları excel exploitini , şifreleyerek Antivirüs’leri atlatma yöntemini seçmişler. Dosya içeriği encrypted olduğu için , imza tabanlı çalışan güvenlik ürünlerinin bu zafiyet / exploit için çıkardığı imzalar da faydasız oluyor.
Aslında ilginç olan nokta , saldırganların hazırladıkları Excel exploit dosyasını şifrelemeleri değil. Şifrelemek için seçtikleri parola. Eğer şifrelenmiş bir Office dökümanını açmak isterseniz , bildiğiniz üzere uygulama sizden decrypt işlemi için kullanılacak parolayı girmenizi ister. Bu dosyanın bir exploit olduğunu ve saldırı amaçlı kullanıldığını düşünürsek , hedef kişiden dökümanı açtığında parola girmesini beklemek pek “user-friendly” değil :]
Saldırganlar bu noktada office’in bir özelliğinden faydalanmışlar. Office’in döküman şifreleme için sunduğu bir test / default parolası mevcut ; “VelvetSweatshop” . Eğer herhangi bir dökümanın şifrelenmesi için “VelvetSweatshop” varsayılan parolası kullanılırsa, dosya içeriği şifreleniyor. Ancak bu dosya daha sonra açılmak istediğinde, kullanıcıdan herhangi bir parola girmesi beklenmeden , otomatik decrypt edilip uygulama tarafından açılıyor. İşte saldırganlar hazırladıkları exploitde bu hileyi kullanarak dökümanı şifreleyip Antivirüsleri atlatıyor, exploit dökümanının açılması ve çalışması için kurbanın herhangi bir parola girmesi de gerekmiyor.
CVE-2012-0158 exploitlerinde , ret adres olarak MSCOMCTL.OCX COM kütüphanesindeki 0x27583c30 adresinin kullanıldığını daha önceki yazımızdan da biliyorduk. Bu yüzden önce normal bir excel dosyası açıp , windbg’ı excel processine attach ettik. Daha sonra MSCOMCTL.OCX modülü yüklendiğinde debuggerın break olması için “sxe ld mscomctl” komutunu kullandık. MSCOMCTL kütüphanesi hafıya yüklendikten sonra da , 27583c30 adresine breakpoint’imizi koyduk. Böylece, exploitin, stack’deki shellcode a zıplamak için RET adres olarak kullandığı 0x27583c30 adresinde yani “jmp esp” instructionında durduk. Bu noktadan sonra hafızadan shellcode’u dump edebiliriz;
Shellcode birden fazla aşamadan oluşuyor. Hem sisteme netids.dll zararlı yazılımını drop ediyor hem de kullanıcıya sahte bir excel içeriği gösterip, exploit dosyasını sistemden siliyor.
Drop edilen netids.dll , registry’e eklenerek , rundll32 üzerinden çalıştırılıyor.
netids.dll aynı zamanda bir komuta kontrol sunucusu ile HTTP üzerinden konuşuyor.
Sonuç
Görüldüğü üzere saldırganlar her geçen gün tekniklerini geliştirmeye devam ediyor. Antivirüs vb. imza tabanlı çözümler ise bu yöntem ve tekniklere karşı yetersiz kalıyor. TRAPMINE ise imza tabanlı çalışmadığı için herhangi bir güncelleme ve konfigürasyon gerekmeksizin, bu yazıda bahsettiğimiz exploiti engellemeyi başardı;
Yazarlar
Ebubekir Karul