anonuser23532
Kıdemli Üye
- 9 Ara 2017
- 2,602
- 12
Statik Analiz : Hedef yazılımın kodlarına bakarak zararlı kodları analiz etmektir.
Malware Analizi hakkında bilginiz yoksa bu konuya gidebilirsiniz
Malware Analizi Nedir ? / SeNZeRo
Analize başlamadan önce dikkat etmemiz gereken hususlar vardır.
Statik analiz yapacağımız için dosyayı açmamıza gerek yok ve biz açmadığımız sürece programın içerisindeki zararlı komutlar bizlere ulaşamaz.
Fakat dalgınlığımıza gelir olurda açarız diye Sanal Makine (Benim kullandığım işletim sistemi Windows 7) kullanmayı unutmuyoruz. )
BİLGİ EDİNELİM / SCAN
Yapacağımız ilk iş program hakkında bilgi edinmek olacaktır.
ExeInfo ve Detect It Easy ile taratıp sonuçlara bakalım.
ExeInfo sonuçlarına bakarsak göreceğiz ki herhangi bir koruması yok ve VB6 ile yazılmış.
Fakat yazılımdaki koruma belki ExeInfo tarafından algılanmamış olabilir.
O yüzden bu sefer Detect It Easy ile taratıyorum.
Evet Detect It Easy sonuçlarına bakınca da göreceğiz ki programda herhangi bir koruma yok ve diğer sonuçlar da ExeInfo ile aynı.
Şimdi kodlarını incelemeye geçmeden önce bir string taraması yapalım.
Bunu BinText adlı program ile yapabiliriz.
Programı sürükle - bırak mantığı ile içeri attığımızda (veya manuel olarak seçebilirsiniz) program içersindeki string değerlerini bize verecek.
Sayfayı aşağı indirmek yerine bizi direkt sonuca götüren değerleri aratalım
Örneğin : keylogger , mail , ftp
**keylogger haricinde bu iki string değerini bir programda gördüğünüz zaman bu yazılımın zararlı bir yazılım olduğu anlamına gelmez.
Evet keylogger stringini arattık ve önemli bir değer bulduk.
HAKOPS KEYLOGGER
Emin olmak için bir kaç kere daha arattığmızda bir çok HAKOPS KEYLOGGER değerine ulaştığımızı göreceğiz.
Şimdi yazılım ile alakalı topladığımız bilgilere bir göz atalım.
: Tarama Sonuçları :
Yazıldığı Dil : MS Visual Basic 5.0-6.0 EXE
Packed or Unpacked ? : Unpacked
EntryPoint : 00002288
Original FileName : mscvin.exe
Zararlı Yazılım Türü : Keylogger
Zararlı Yazılım Marka : HAKOPS KEYLOGGER 16
Buraya kadar bu bilgilere eriştik.
Şimdi gelelim yapacağımız asıl işe
KODLARI İNCELEYELİM / Disassemble
Tarama sonuçlarında yazıldığı dil bölümüne bakacak olursak VB6 ile yazılmış.
VB6 ' nın kodlarına VB DECOMPİLER ile bakacağız.
Programı açtığımız vakit bu ekran ile karşılaşacağız
Burada bakacağımız veriler şu şekilde :
Programda FTP , MAİL ve TİMER fonksiyonlarının bulunduğunu biliyoruz.
Ve birazcık aşağı bakacak olursak Startup Form yani program başladığı zaman ilk çalışacak form ' u göreceğiz.
Startup Form = SubMain
Hemen Soldan SubMain'e gidelim.
Evet kodlara baktığımızda görüyoruzki bu aşamada program bazı windows apilerini yüklüyor.
Örneğin shell32 apisi
Nedir bu shell32 apisi kısaca tanımlayacak olursak
Windows üzerinde bir çok işlem yapmamıza yarayan bir api
Program başlangıçta hemen bunu yüklüyor.
Bu Api ile ilgili daha fazla şey bilmek için bu link size yardımcı olacaktır TIKLA !
SubMain altında bulunan FrmMain ' e girdiğimiz zaman burda bazı fonksiyonları ve bazı kodları çalıştırdığını göreceğiz.
Yukarıdaki resimde görüyoruz ;
FrmMain içerisinde 5 adet fonksiyon göreceğiz ve en üstteki yani ilk fonksiyonumuz "basla" adlı fonksiyonumuz.
İçerisine girdiğimiz vakit En başta Me.Hide kodunu çalıştırıyor.
Me.Hide = Form kendini gizlesin kodu.
Daha sonrasında aşağılara indiğiniz de göreceksiniz ki diğer fonksiyonları çalıştırıyor CTimer , CFTP gibi.
Sağa baktığımızda bir Replace fonksiyonunun çalıştığını görüyoruz.
Bu Replace fonksiyonu Yer Değiştirme işlemi yapar
Örnek verecek olursak
string a = "Phemis"; //a string değerine Phemis değerini atadık.
a.Replace("e" , "T"); //e yerine T harfini koyduk.
Console.WriteLine(a); //Yazdırdık (Output Aldık)
: ÇIKTI :
PhTmis
Çıktıyı bu şekilde verecektir.
Şimdi gelelim size bunu niye anlattığıma
Yukarıdaki resimde sağda göreceğimiz üzere bir Replace fonksiyonu çalışmış
@Swkonum diye bir şeye exepath atanmış
@OS diye bir şeye işletim sistemi atanmış
@PcName diye bir şeye bilgisayar ismi atanmış
@Ulkedil diye bir şeye bilgisayarın bulunduğu ülke atanmış
Bu atanma işlemleri log hazırlama demektir.
Keylogger'lar hafızada bir mail örneği veya gelişmişliğe göre bir html örneği tutarlar ve içerisinde bu şekilde yazılar olur.
Log hazırlarken replace fonksiyonu ile değerleri düzenler ve keylogger sahibine gönderir.
Bulunduğumuz fonksiyon içerisinde aşağı indiğimiz zaman iki replace daha çalıştırdığını görüyoruz.
@Time ve @ZamanAraligi şeylerine de sırasıyla Sistem saati ve Zaman aralığı atanmış.
Ve biraz daha aşağı indiğimizde keylogger'a ait bir mesaj çıkarttığını görüyoruz.
Soldan , Proc_2... adlı fonksiyonumuza geçelim.
Resimde gördüğünüz üzere Bu process ' de bir ekran görüntüsü alma işlemi atanmış.
Yukarıdaki resimde gördüğümüz işlem şudur.
Keylogger bir screenShot çekiyor ve bunu temp klasöründe depoluyor. ScreenShot.jpg adında..
Biraz daha aşağı indiğimizde @Country ve benzeri değerlere kendi atama işlemlerini yapıyor.
Daha sonraki FrmMain içerisinde bulunan processlerde son log düzenleme işlemi ile sahibe ulaştırıyor.
Şimdi gelelim bütün fonksiyonları içerisinde barındıran MdlFunction ' a
Burada FrmMain'de çağırılan işlemlerin tümünü göreceğiz.
Örnek olarak yukarıdaki resimde gördüğümüz işlem DisableRegistryTools işlemidir.
Proc_1_11.. de gördüğümüz kodlar DisableTaskMgr yani Görev Yöneticisi Engelleme kodlarıdır.
Burada gerçekleştirilen işlem Firewall engelleme işlemi.
Burada gerçekleştirilen işlemde keylogger kendini başlangıca ekliyor.
ULAŞTIĞIMIZ BİLGİLER
+ Program hakkında bilgiler edindik. (EntryPoint , Yazıldığı dil , Korumalı mı , hem zararlı yazılım türüne hem de yazılımın markası hakkında..)
+ Programın çalıştırdığı kodlar
...
Programı virustotalde de taratalım.
53/69
Sonuç beklediğimiz gibi
Araçlar için :
https://www.turkhackteam.org/tersine-muhendislik/1803909-malware-analiz-araclarim-ve-kullanimlari-black-turtle.html