Posted on November 18th, 2014
tricks

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;

AV-Results

Antivirus Scan Results

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.

encrypted-xls-data

XLS (Excel) Encrypted Data

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.

BP-MSCOM

Breakpoints

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-in-memory

shellcode in da stack

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.

netids

Drop edilen netids.dll , registry’e eklenerek , rundll32 üzerinden çalıştırılıyor.

cc-server

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