PMA Lab 9-3 İleri Seviye Malware Analiz

Pentester

Özel Üye
8 Eyl 2016
1,646
995
Merhaba, bugün PMA Lab 9-3 zararlısının analizini gerçekleştireceğiz.
2lqtg5r.png


Yukarıdaki açıklamada bu zararlının 3 adet DLL dosyasını yüklediğini söylüyor. Uygulamayı ilk önce virustotal adresine yükleyip bilgi topluyorum.

a51vd2d.png


Section bölmelerinden görüldüğü üzere portable executable formatı bölmelerinin yer aldığını görüyoruz. Buradan herhangi bir şifreleme olmadığını anlayabiliriz. Hemen altında ise import edilen DLL dosyalarını görüyoruz.

hlti3xm.png


Bu DLL dosyalarının hangi fonksiyonları kullandığını da görüyoruz. Bunların üzerinde duracağız.

İlk soruda da bize bunları soruyordu hangi DLL dosyalarının içe aktarıldığının cevabını vermiş bulunuyoruz. Şimdi de programımı IDA üzerinde açıp elde edeceklerime bakıyorum.

44ycp4h.png


Data segmentine göz attığım zaman DLL3.dll dosyasını da görüyorum.

2.soru da bizden üç dll dosyasının bellek adresini soruyor.

6pdm40y.png


IDA da Imagebase değerinden bunu görebiliyoruz. Tabii benim kullandığım işletim sistemi mimarisinden dolayı farklılık gösteriyor olabilir.

3. soru için ise ollydbg üzerinde memory map sekmesinden bellek değerlerini elde edebilirim.

3pcx95w.png


Mavi ile işaretlediğim adreslere bakabilirsiniz. 4.soru da DLL1.dllden içe aktarılan işlevin ne yaptığını soruyor.

aubk3we.png


Imports tablosundan baktığımız zaman DLL1 dosyası DLL1Print fonksiyonunu içe aktarıyordu. Şimdi bunun ne yaptığını bulalım.

kkr6zet.png


İlgili fonksiyona çağrı burada yapılıyor. Ancak ben burada DLL1.dll dosyasını direkt olarak IDA üzerinde açıp inceliyorum.

krg8yus.png


DLL1Print fonksiyonuna tıklıyorum.

gvsnc5f.png


Buradaki mov ile taşınan dword_10008030 adresine odaklanıyorum.

lcyz0ab.png


Bakın ilgili değerin GetCurrentProcessId fonksiyonuna çağrı yapıldıktan sonra kullanıldığını görüyorum. Burada DLL yükleniyor GetCurrentProcessId ile sürecin kimlik bilgisi sorgulanıyor ve dword_10008030 değişkeni bu kimlik bilgisine ayarlanıyor. DLL 1 Mastery Data çıktısı ile de bu değer yazdırılıyor.

5. soru da ilgili zararlımız WriteFile fonksiyonunu kullanarak hangi dosyayı yazıyor bizden bunu öğrenmemizi istiyor.

b5dbsus.png


Buradaki işlemin bağlantılı olduğu noktanın DLL2.dll tarafından içe aktarılan DLL2ReturnJ fonksiyonu olduğunu söyleyebilirim. Bakın burada bir web adresinin yazıldığını görebiliyorum. Şimdi DLL2.dll dosyasını analiz edelim.

1d1wfhz.png


Burada temp.txt dosyasının oluşturulduğunu gözlemliyorum. Kısacası malwareanalysisbook.com adresi temp.txt dosyası içerisine yazılıyor. 6.soru da NetScheduleJobAdd çağrısının parametrelerini bize soruyor. Ben her zaman imports tablosundan ilgili içe aktarılan veriyi bulur ve yoluna giderim.

h8ui9f2.png


İlgili adrese çift tıklıyorum ardından CTRL+X yani çapraz referansla kod satırlarına erişiyorum.

bsgbi20.png


5ghi8af.png


İlgili fonksiyonumuz 3 parametre alıyor. Servername, Buffer, JobId

NetScheduleJobAdd function (lmat.h) - Win32 apps

Dökümantasyondan da bu parametreleri doğrulayabiliriz.

kevsnss.png


Bakın burada Buffer parametresinin AT_INFO yapısını kullandığını görüyoruz. Ben IDA üzerinde DLL3.DLL dosyasını açıp inceliyorum.

dz2vwf9.png


g1ugdwu.png


Buradaki değerlerden yola çıkarak buradaki değerlerin bir zaman göstergesi olduğu ve belirli sürelerde ilgili web adresine ping gönderdiği kanısını varabiliyoruz. Peki buradaki mov ile taşınan 4 değişkenin aldığı değerler neyi ifade ediyor? Bunun için structures penceresinden AT_INFO structures yapısını ekliyorum.

tfy70l6.png


Bu değerlerin sırasıyla ilgili zaman dilimlerini gösterdiği ve ping işleminin bu zaman dilimlerinde çalışacağını ifade ediyor.

36EE80h = 3600000 mili saniyede yani 60 dakika ping göndereceğini çıkarabiliyoruz.

7.sorunun cevaplarını buraya kadar açıklarken verdik.

8.soru da DLL2.dll için ollydbg üzerinde gösterilen yükleme adresinin IDA üzerindeki yükleme adresiyle eşleşmesi için IDA üzerine nasıl yükleyebilirsiniz bunu soruyor. Neydi Olly üzerindeki DLL2.DLL yükleme adresi?

qi4vfcr.png


Burada sol tarafta yazan DLL2 için olan bellek adresini IDA üzerine yüklemek için DLL2.dll dosyasını IDA da açıyorsunuz ve Manual Load seçerek bu bellek adresini giriyorsunuz.

e3hfohj.png


Bu bölmeye girerek işlemi gerçekleştirmiş oluyorsunuz. Bu konumuz bu kadar. Okuduğunuz için teşekkürler.




















 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.