Sunday, December 18, 2011

Karamanın Koyunu

Merhabalar,

Cuma günü elime gelen sample feedleri otomasyon analize tabii tutmakla meşgulken küçük bir arkadaşımız dikkatimi çekti. Detaylı inceleme sonunda “Karamanın Koyunu” dedirten bu zararlı ile ilgili bir şeyler karalamanın iyi olacağını düşündüm.

Hikaye şöyle :

Bildiğiniz gibi her gün 10.000 lerce yeni malware örneği türüyor ve bunların arasında sıradan malwareler çoğunlukta olduğu gibi gayet yetenekli canavarlar da mevcut. Otomasyon sonrası “Alçak Sürünme” (Low Profile) yapanlara odaklanmak her zaman çok daha etkili oluyor. Şöyle ki, her gün gelen sampleların %95’ı çalışır çalışmaz en kötü ihtimalle 45 sn. sonra maharetlerini gösterirler. Esas dikkat edilmesi gereken çalıştırılmasına rağmen kayda değer bir şeyler yapmayanlara odaklanmak. Bu tip zararlılar da ya deşifre rutinlerini çalıştırmak için belirli bir zamanı bekliyorlar, ya da saldırı için gerekli ortam ve koşullar oluşmadığı için çalışmıyorlar. Söz konusu zararlı da aynen bu karakterde bir dosya.

Program aşağıda gördüğünüz gibi popüler bir video downloader gibi görünüyor.

youtube downloader

Şirket içerisinde kullandığımız otomasyon yazılımı, yukarıda gördüğünüz programa, davranış kuralları listesinde bulunan bir hareket gerçekleştirmediği için herhangi bir uyarı vermedi, ben de uzun periyot testi için işaretleyip geçecekken, ekibimizden Yordan Bey telefon etti. Tabii sanal makine bu esnada açık. 15 - 20 dakika sonra analiz makinasına geri döndüğümde, windbg ile yapmam gereken bir incelemeyi hatırladım ve sanal makineye Windbg attach etmek istediğimde başarısız olduğumu gördüm. Benden önce windbg zaten sanal makineye bağlanmıştı.

vmanlayze zavalert

Ben windbg’ı açmadıysam, geriye tek seçenek kalıyordu, bu da “Masum görünen programımız bir şekilde sisteme rootkit yükleme çalışıyordu” ve bunu tespit eden yazılımımız sanal makineyi incelemem için Windbg’ı otomatik attach etmişti. İlk işim sanal makinenin snapshotunu alarak teste devam etmek oldu. Sürücünün yüklenmesine müsade edip, sistem çekirdeğini incelediğimde gördüğüm manzara ntfs.sys sürücüsünün IRP READ handlerının inline kancalanmış olduğuydu. Ayrıca laboskopia scriptleri ile sistem callbacklerine baktığımda zararlı sürücünün, bir tane “Process Create Callback” register ettiğini farkettim.

İlk işim Process Create Callback rutinin görevini incelemek oldu. IDA ile rutini incelediğimde gördüğüm : iexplore.exe yani Internet Explorer’ın çalışmasını monitor eden küçük bir kod bloğu oldu. iexplore.exe çalıştığında kernel moddan user moda “flash9.ocx” adında bir dll enjekte ediyor ve her send requestin bu dllden geçmesi için socket fonksiyonlarını buraya yönlendiriyordu. Bunu görür görmez galiba banker bir trojan ile karşı karşıyayım dedim. Fakat emin olmak için DriverMon ile yakaladığım sürücüyü IDA ile açmanın daha iyi olacağını düşündüm.

drvmon

Sistemde yüklü olan sürücünün base adresi ile IDA’ya yüklediğim sürücüyü REBASE ederek realtime bir görüntü elde ettikten sonra, sürücüyü incelemeye başladım. Manzara işin aslında düşündüğüm gibi olmadığını anlamama yetti Üzgün gülümseme

dosya isimleri

Yazarın encryption konusunda pek de iyi olmadığını söylemeden geçemeyeceğim, küçük bir ida scripti ile 15 – 20 dakika içerisinde XOR ve ROL kullananan birinci layerı hallettim. İkinci layer da sadece XOR kullanıyordu.

Flash9.ocx’in yaptığı tek şey, internet explorer’ın adres alanında her requesti takip ederek request gönderilmeden önce IP\meeting.aspx? sunucusuna username=base64(”dosya adı”) şeklinde bir request göndermekti. IP adresine baktığımda sunucunun çalışmadığını gördüm, ayrıca malc0de gibi sistemlerden ipyi kontrol ettiğimde herhangi bir sonuca ulaşamadım. Belli ki saldırgan bizden önce davranmış ve işini bitirmişti.

Kod içerisinde dosya adı gönderildiğini görünce uzun süre bir çeşit arka kapı açabilecek bir kod aradıysam da bulamadım. Bu da sistemde başka bir trojanin kullanıldığını kanıtlıyordu. Yani dosyaları bulan ve sunucuya isimlerini gönderen bileşen ile dosyaların sistemden alınmasını sağlayan bileşenler ayrı uygulamalar. Peki ne bu dosya isimleri derseniz :

Yukarıda gördüğünüz görüntü, sürücünün NTFS.sys’ye yerleştirdiği hookun içerisinden aldığım bir parça. Kodun inline assemblerda yazıldığı gayet açık. Maksadı ise ntfs diskte erişilmeye çalışılılan dosyaların uzantılarını kontrol ederek temp klasöründe bu dosyaların RC4 ile şifreli birer kopyalarını oluşturmak, kopya oluştururken diske erişmek yerine gelen bufferı şifreleyerek kullanması da ayrıca dikkate değer. Kodu detaylı incelediğimde gördüğüm şuydu : sistemde oluşturulmuş bir section objectte yeni yazılan dosya adlarını (temp klasörü), iexplore.exe’de çalışan dll, her request esnasında kontrol ediyor ve bu dosyaların isimlerini shared sectiondan silerek base64 ile şifreli bir şekilde sunucuya gönderiyor. Dolayısıyla karşımızda bir çeşit kritik bilgi hırsızı var diyebiliriz.

Peki neden böyle dolaylı bir tutum sergilendiği merak ediyorsanız benim tahminim : eğer hedef bir şirketse, ki bence kesinlikle öyle, muhtemelen saldırgan iç işleyiş ile ilgili detaylı bilgi sahibi ve DLP / IDS / IPS gibi bir sistem olduğunu bildiği için bu şekilde bir yaklaşım izlemiş. Asıl merak ettiğim, temp klasörüne kaydedilen dosyaların sistemden nasıl alındığı? Ayrıca eğer ayrı bir bileşen ile dosya gönderimi yapılmadıysa, firma içerisinde saldırganla ortak çalışan bir personelin olma ihtimali nedir?




8 comments:

  1. Hocam, eline saglık. Bahsettigin teknik terimlerden çok anlamıyorum ama durum tehlikeli gibi. Ben sunu sormak istiyorum. Zemana bazen bildigimiz çalıştırdığımız programlarda senin yukarıda ornegini koyduğununkine benzer bı uyarı veriyor. Ornegin flashget, ya da bsplayer. Ve yanında da sunucu dogrulanamadi yazıyor. Bu durumda engelle mı demeliyiz. Engelle dersek calistirmaya niyetlendigimiz program da çalışmıyor. Calistir desek tehlikeli bı is yapmış mı oluyoruz. Degirmen@gmail.com

    ReplyDelete
  2. Çok sofistike birşeymiş :) cd eject edip ekrana wake up neo yazan trojan(!) lardan artık kustuğumuz için ister istemez hoşumuza gidiyor :)

    ReplyDelete
  3. Merhaba,

    HIPS programları nadiren de olsa false positive uyarılar verebiliyor, bu gibi durumlarda yapmanız gereken (bence) dosyayı nereden indirdiğinizi biliyorsanız genel olarak izin vermeniz yönünde. Fakat tabii ki bu yüzde yüz güvenli diyemeyeceğim :(:( Yeni projelerimizde sizlere en az soru sorabilmek için elimizden geleni yapıyoruz.

    ReplyDelete
  4. Hedef firma/kuruluşu bilmiyorum ama, bilgisayarlarında böyle bir canavarın çalıştığını öğrenselerdi pek hoşlarına gideceğini zannetmiyorum :)

    ReplyDelete
  5. Yuh! Uzun zamandan beri blogdan keyif almıyordum. VMAnalyze programınızı nereden indirebiliriz?
    "Attach dbg on load driver" ??

    ReplyDelete
  6. @Adsız :
    Samimiyetiniz için çok sağolun:) Gerçekten epey güldüm:) Ben de uzun zamandan beri teknik yazı yayınlasam mı, sıkıcı olur mu acaba diye düşünüp duruyordum, bu yazı ile açılışı yaptık, artık daha keyifli olacak merak etmeyin:):):)

    Ayrıca bu akşam "Zemana Servisler" hizmetimizi de yayına geçireceğiz, bundan sonra kim bilir nelerle karşılaşacağız?????

    VMAnalyze yalnızca firma içerisinde kullandığımız bir yazılım, şimdilik download edemessiniz fakat ilerleyen süreçte yayınlamayı düşünüyoruz.

    "Attach dbg on load driver" ?? Bu seçeneğe gelince, gördüğünüz VMANalyze'ın Server'ı, ayrıca sanal makinelerde çalışan bir VMAnalyze Clientımız var, sürücü yüklenmeye çalıştığında kontrolü makineden alıp analiste devretmesi için kullanılıyor, böylece sürücü kodu rootkit özelliklerini devreye sokmadan önce kodu trace edebilmemizi sağlıyor.

    ReplyDelete
  7. Hakkaten bloğun tadı geliyor teknik paylaşımlarla. Analizi baştan sona video olarak izleyebilsek gişe rekorları kıran filmlerden daha çok zevk alıcaz. O derece yani. :) VMAnalyzeri de bekliyoruz artık :) ama bi diassembler ekranıda olsa daha güzel olmaz mı?

    ReplyDelete
  8. @osC7h :

    Teşekkürler, bundan sonra teknik yazılara daha fazla yer vereceğiz. Disasm özelliği "Externals" altında mevcut fakat pek kullandığımı söyleyemem, alışkanlıklardan dolayı windbg genellikle ilk tercihim oluyor. Fakat hızlı bir göz atmak için faydalı. Video konusunu not ettim:)

    ReplyDelete