Uygulamalı Temel Statik Malware Analiz Teknikleri

Pentester

Özel Üye
8 Eyl 2016
1,646
1
1,001
Merhabalar, Blue Team olarak Zararlı Yazılım Analiz teknikleri üzerine eğitimlerimizi başlattık. Bu eğitimin başlangıç noktası olarak ‘Zararlı Yazılım Kaynak Kod incelemesi’ adında serimizi tamamladıktan sonra ‘Temel Statik Zararlı Yazılım Analiz’ tekniklerine geçmiş bulunmaktayız.

Eğitimimizin diğer konularına aşağıdaki bağlantılardan erişebilirsiniz.

C Reverse Shell Kaynak Kod Analizi
C Keylogger Kaynak Kod Analizi
Python Keylogger Kaynak Kod Analizi
Python Reverse Shell Kaynak Kod Analizi
Temel Statik Malware Analiz - C Reverse Shell
Temel Statik Malware Analiz - C Keylogger
Temel Statik Malware Analiz - Python Keylogger
Temel Statik Malware Analiz - Python Reverse Shell
PMA Lab01-02.exe Temel Statik Zararlı Analizi
PMA Lab01-04.exe Temel Statik Zararlı Analizi
C# Backdoor - Temel Statik ve Kod Analizi

Bu konuda sizlere zararlı yazılımlar üzerinde temel statik analizin adımlarını uygulamalı olarak göstermek istiyorum.

Temel Statik Zararlı Yazılım Analizi

Statik analiz, şüpheli dosyayı çalıştırmadan analiz etme tekniğidir. Yani bunu biraz daha açmak gerekirse zararlı dosya sistem üzerinde çalıştırılmaz, işlevini yerine getirmeden o dosya üzerinde analizler ile zararlı hakkında çıkarımlar gerçekleştirilir. İşte biz buna statik zararlı yazılım analizi diyoruz. Tabii biz statik analizi de kendi içerisinde iki başlığa ayırıyoruz. Temel Statik Analiz ve İleri Statik Analiz olmak üzere iki başlığa ayırıyoruz. Her iki seviyede de zararlı çalıştırılmaz. İleri statik analiz olayını temel analiz süreçlerinden sonra işleyeceğiz. Bugün odaklanacağımız konu temel statik analiz teknikleri olacak.

Temel Statik Analiz Adımları

Temel statik analizinde neler elde edeceğimizi birkaç madde ile sıralayalım.


- Zararlı yazılımın hedef mimarisini belirleme
- Zararlı yazılımın virüs total çıktılarını elde etme
- Dosyanın işlevi ile ilgili verileri ayıklama (strings, functions, imports…)
- Var ise analizi engellemek için uygulanan tekniklerin tespit edilmesi



Temel statik analizde genel olarak bu maddeler üzerine yoğunlaşacağız. Kendimize bir adet zararlı dosya belirleyelim ve tekniklerimizi kendisi üzerinde uygulayalım.

OLeAMt.png


Elimizde malware.exe adında bir zararlı dosya var. Dosyanın uzantısına baktığımız zaman exe olduğunu görebiliyoruz. Yani şuan da elimizde çalıştırılabilir bir dosya formatı olduğunu görüyoruz. Ancak sadece uzantıya güvenmek bizi yanılgıya düşülebilir. Bunun için sadece uzantıya değil dosyanın imzasına da bakmamız gerekiyor. Bizim dosyamızın uzantısı exe olarak görünüyor. Şimdi dosyanın mimarisi ile ilgili bilgi edinelim.

Y1s3UD.png


PE32 executable yani 32 bitlik mimaride yürütülebilir bir dosya olduğunu bize söylüyor. Dosyanın hex değerlerinden analizine bakalım. hexeditor malware.exe komutunu uygulayalım.

3hqmNp.png


4D 5A exe dosyasına ait tanımlayıcı numaradır. Buradan da bu dosyanın imza tabanlı olarak exe dosyası olduğunu anlayabiliriz. Bunu da buraya bırakayım

Kod:
https://filesignatures.net/index.php?search=EXE&mode=EXT

GjwjLm.png


İlgili dosya 49 antivirus yazılımı tarafından zararlı olarak algılandı.

w8sv4l.png


Details sekmesinden de uygulamanın mimarisi hakkında bilgiye ulaşmış olduk.

yqILqU.png


Uygulamamız executable formatta bu sebepten Portable Executable formatını kullanmaktadır. Buradaki PE formatının alanlarını biraz açalım.


.text bölmesinde uygulamanın makine hali bulunuyor.
.rdata bölmesinde uygulamanın export ve import bilgileri yer alıyor.
.data bölmesinde global değişkenler yer alıyor.
.rsrc bölmesinde ise uygulamanın kullandığı ikon vs. yer alıyor.



NbFZ2f.png


Uygulamanın import ettiği DLL dosyaları da bize uygulamanın işlevi hakkında bilgiler sunuyor.
ADVAPI32.DLL Windows için önemli bir parçadır kendisi.


fKGsBM.png


Burada iki fonksiyonu kullandığını görüyoruz. Bunlar fonksiyon ayırma, başlatma, serbest bırakma işlevlerini yerine getiriyor.

KERNEL32.DLL ise donanıma erişim ve müdahale de sıklıkla kullanılan DLL dosyasıdır. Yani zararlı yazılım geliştiricileri için bir nimettir kendisi. Bu DLL dosyamızda epey bir function kullanıyor. Bunların hepsini ayrıntılı açıklayamam, hepsi için msdn sayfasında yeteri kadar açıklama var. Burada dikkatimizi çeken fonksiyonlara odaklanacağız.

ZhMqPu.png


CreateFileW, CreateFileA fonksiyonları dosya okuma ve yazma işlevlerini yerine getiriyor. GetFileType fonksiyonu ise belirtilen dosyanın türünü alır. Bu 3 fonksiyonumuz win32 api - file api başlığı altında yer alan fonksiyonlardır. https://docs.microsoft.com/en-us/windows/win32/api/fileapi/ buraya bırakalım.

Sleep, CreateEventA fonksiyonları ise synchapi.h başlığı altında yer alan fonksiyonlardır.

RzvAOl.png


8iRYc9.png


Bunlarda MSDN sayfalarından açıklamalar olsun.

dIDM5F.png


Yine dosya işlemleri ile alakalı birçok fonksiyon yer alıyor. Diğer DLL dosyamıza geçelim.

xvH3gQ.png


Bu DLL için C çalışma zamanı kitaplığı diyebiliriz. Burada realloc fonksiyonu ayrılmış bir bellek alanına yeni bir boyut eklemek için kullanılıyor. Malloc fonksiyonu da bellek alanı ayırmak için kullanılıyor. Yani bu fonksiyonlar dinamik bellek yönetimi için kullanılan fonksiyonlardır. <stdlib.h> ve <malloc.h> kütüphanelerine ihtiyaç duyarlar. Diğer fonksiyonlarda dosya ve çıktı yazma işlevlerini yerine getiriyor.

cd4bq6.png


Bu iki dll dosyamız ağ bağlantıları için kullanılan DLL dosyalarıdır. Üzerlerinde fazla konuşmaya gerek duymuyorum ki zaten ne işlevi yerine getirdikleri çok belli.

MUnWGt.png


Burada ise bir adet IP adres tespit edilmiş. Buradan aslında çıkaracağımız sonuç bu adresin saldırgana ait olduğu yani bağlantının kurulacağı adres olduğunu düşünebiliriz. Bu da aslında ters bağlantı sağlayan bir zararlının olduğuna dair bir ipucudur. Ki zaten ağ işlemleri için de DLL dosyaları yer alıyordu. Bu IP adresini biraz daha araştırabiliriz.(Tamam local adres demeyin hemen senaryo gereği.)


ralpk1.png


İlgili sayfa üzerinde IP adresi için istihbarat araştırması yapıyoruz ancak kabul edilmiyor tabii, e dedik senaryo gereği local bir adres kullandık. Bu aşama da bu adresi güvenlik duvarınız ile engellemeniz gerekiyor.

bKtE42.png


Burada gördüğümüz bilgi gerçekten önemli. Gördüğünüz gibi ilgili IP adresine 4444 portundan bağlantı kuruluyor. Yani zararlı yazılım çalıştığı zaman bu adres üzerinden iki taraf bağlantı kuruyor.

Bu bilgi ışığında ilgili adres ve port filtresi uygulanarak ağın trafiği incelenebilir. Yani zararlının ağ aktivitesi incelenerek neler gerçekleştiği yorumlanabilir.


String Analiz

Burada exe dosyanın içerisinde geçen stringleri inceleyelim. Buradan uygulamanın kullandığı fonksiyonlar, ip adresleri, dll dosyaları vb bilgileri elde edebiliriz. Buradan elde ettiğimiz karakterler bize zararlı hakkında bilgiler verecektir.

Fqw2sk.png


1.txt dosyasına çıktıyı oluşturdum.

p9OkOK.png


Bakın ilk bölümden PE section bilgilerini görebiliyoruz. Şimdi buradan anlamlı karakterler yakalamaya çalışacağız.


DvVvCn.png


Bakın burada epey bir fonksiyon listesi karşıma çıktı. Bunların hepsi C dilinde kullanılan fonksiyonlardır.

TOxrHe.png


Kullanılan DLL dosyaları, fonksiyonları yine buradan görebiliyoruz.

Bu txt dosyasında grep komutu ile çeşitli filtrelerde yaparak hızlıca arama yapabiliriz.

SplmXJ.png


TJQHNt.png


URDryA.png


ikw3aL.png


Bu şekilde filtrelerle de sonuç odaklı ilerleyebiliriz. Şu ana kadar elde ettiğimiz bilgilerle uygulamanın uzak bir adrese bağlantı kurduğu, socket fonksiyonları, kullandığı dll, fonksiyon ve karakterlerden yola çıkarak zararlının reverse shell olduğu kanısına varabiliriz.


Aynı zamanda bu yaptığımız işlemleri tek bir program üzerinden de ayrıntılı olarak görebiliriz. PEstudio programı ile dosyamızı inceleyelim. Bunun için öncelikle kali makinemde yer alan zararlıyı analiz edeceğim XP makinesine transfer edeceğim.

YJwOVt.png


S5G4ZA.png


Masaüstü dizinimi http üzerinden paylaşıma açıp XP makinemde erişiyorum ve malware.exe dosyasını sistemime çekiyorum.

6gzQ31.png


Burada gördüğünüz gibi pestudio 37 stringi blacklist olarak eklemiş. Yani bunların zararlı stringler olduğunu söylüyor.


HiRMj5.png


Kullanılan 5 dll dosyasından 2 tanesini zararlı olarak görüyor. Yani ağ işlemleri gerçekleştiren dll dosyalarını kara listeye eklemiş.

HbZGnn.png


Aynı zamanda virustotal üzerinden de sonuçları bize gösteriyor.

PE analizi yapabileceğimiz bir başka uygulama ise pe viewer aracıdır.


KpPT8b.png


Örneğin uygulamanın import tablosunu incelediğim zaman dahil ettiği DLL dosyalarını görebilmekteyim.

fLaq2T.png


Buradan hafıza adreslerini görebiliyorum. Bir diğer PE analiz aracımız ise PEBrowseDbg aracıdır.

B1NOU8.png


Buradan text section’a göz attığım zaman hafıza adresleri, opcode bölmesi, assembly karşılıklarını net biçimde görebiliyorum. Tabii temel statik analizde bu kısımlara girmeyeceğiz.

6hvKp6.png


Aynı zamanda imports bölmesinden kullanılan DLL ve içerdikleri fonksiyonları da görebilmekteyiz.

KYJ6ur.png


Exports tablosunda da epey bir fonksiyon karşımıza çıkıyor. Burada gördüğünüz gibi soket işlemleri için kullanılan çeşitli fonksiyonlar gözümüze çarpıyor.

Dj7L6B.png


Aynı zamanda her bir fonksiyonun hafızadaki yerini de net biçimde görebiliyoruz. Tabii burada assembly seviyesinde analiz yapmayacağız, buraya ileri seviye statik analizde geleceğiz.

zoeZFA.png


Son olarak da Resource Hacker programı ile uygulamanın .rsrc section inceleyerek bilgi alabiliriz.

NhQjoS.png


Uygulamanın herhangi bir paketleme işlemine tabii tutulup tutulmadığını da PEiD yazılımı ile tespit edebiliriz. Gördüğünüz gibi herhangi bir işleme tabii tutulmamış.

Temel statik analiz de aktaracaklarım bu kadar idi. Okuyan herkese teşekkür ederim.
 

gl0balfox

Üye
9 Tem 2019
228
0
Vay be, tam da malware analizi, tersine mühendislik gibi alanlarda kaynak toplarken bu konuların gökten vahiy gelir gibi ansızın gelmesi çok iyi oldu :D 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.