Finding Malwares by Performing Static Analysis with PeStudio

PeStudio, executable'lar hakkΔ±nda onlarΔ± Γ§alΔ±ΕtΔ±rmadan da bilgi alabileceΔimiz bir analiz aracΔ±dΔ±r. PeStudion ile bir malware'in statik analizini yapabiliriz. Statik analiz, bir dosyanΔ±n iΓ§eriΔini ve ΓΆzelliklerini inceleyerek, dosyanΔ±n run time'da yapabileceΔi hakkΔ±nda bilgi edinmeye Γ§alΔ±ΕΔ±r. YazΔ±lΔ±mΔ±n kod ve veri yapΔ±larΔ±nΔ± inceleyerek yapΔ±lan bir analiz Γ§eΕididir.
Bir PE, temel olarak aΕaΔΔ±daki bileΕenlerden oluΕur ve PeStudio ise bu bileΕenleri inceler.
PeStudio, kurulum gerektirmeyen bir yapΔ±dadΔ±r. AΕaΔΔ±daki linkten indirebiliriz. https://www.winitor.com/download

Δ°ndirmemizin ardΔ±ndan dosyamΔ±zΔ± seΓ§erek analize baΕlayabiliriz.
Εimdi gerΓ§ek bir zararlΔ± kullanarak PeStudio ile bu zararlΔ±nΔ±n statik analizini yapalΔ±m.
Executable dosyamΔ±zΔ± PeStudio'ya import ettiΔimizde genel tab'da direkt olarak bu dosyanΔ±n ilk byte'Δ±nΔ±n hex formatΔ±nda 4D 5A olduΔunu gΓΆrΓΌyoruz. Text olarak ise MZ'ye denk gelmektedir. Bu da, bu dosyanΔ±n bir PE olduΔunu anlamamΔ±z iΓ§in yeterlidir.

Bu zararlΔ±nΔ±n Visual Studio 2015 kullanΔ±larak compile edildiΔini gΓΆrmekteyiz.

Indicators
Indicators kΔ±smΔ±nda ise PeStudio'nun, pe ΓΌzerindeki analizi sonucunda ΕΓΌpheli olarak gΓΆrdΓΌΔΓΌ kΔ±sΔ±mlarΔ± bizlere gΓΆstermektedir. Daha detaylΔ± analiz iΓ§in yoΔunlaΕΔ±lmasΔ± gereken noktalara dikkat Γ§ekmektedir.

VirusTotal
Virustotal sekmesine geldiΔimizde ise bu zararlΔ±nΔ±n hangi gΓΌvenlik ΓΌreticileri tarafΔ±ndan zararlΔ± ve zararsΔ±z olarak algΔ±landΔ±ΔΔ±nΔ±n bilgisini gΓΆrebilmekteyiz.

Sections
Executable'ler, dosynΔ±n iΓ§ yapΔ±sΔ±nΔ± dΓΌzenlemek, bellek alanΔ±nΔ± yΓΆnetmek ve optimize etmek adΔ±na mantΔ±ksal bΓΆlΓΌmler olan section'lardan oluΕurlar. Bu section'lar pe dosyasΔ±nΔ± oluΕturan kod ve veri bloklarΔ±dΔ±r. Her section ayrΔ±dΔ±r ve belirli bellek eriΕim izinlerine sahip olabilirler. Standart bΓΆlΓΌmler ΕunlarΔ± iΓ§erir: Bu section'larΔ±n bazΔ±larΔ±;
.text: Kod bΓΆlΓΌmΓΌ, programΔ±n talimatlarΔ±nΔ± iΓ§erir - salt okunurdur-. Yani makina kod'larΔ±nΔ± iΓ§erir. Makina kodu ise bilgisayarΔ±n yΓΌrΓΌteceΔi talimatlardΔ±r..data: Bu bΓΆlΓΌm, dosyanΔ±n deΔiΕkenlerini ve diΔer verilerini iΓ§erir..bss: Bu bΓΆlΓΌm, dosyanΔ±n henΓΌz baΕlatΔ±lmamΔ±Ε deΔiΕkenlerini iΓ§erir..rdata: Bu bΓΆlΓΌm, dosyanΔ±n okumaya aΓ§Δ±k verilerini iΓ§erir..edata:Bu bΓΆlΓΌm, dosyanΔ±n dΔ±Εa aktarΔ±lan verilerini iΓ§erir..idata: Bu bΓΆlΓΌm, dosyanΔ±n iΓ§e aktarΔ±lan verilerini iΓ§erir.

File-ration kΔ±smΔ±nda ise hangi section'un binary iΓ§inde ne kadar yer kapladΔ±ΔΔ±nΔ± gΓΆrebilmekteyiz. .rdata ve .data section'larΔ±nΔ±n kapladΔ±ΔΔ± alan, .text section'unun kapladΔ±ΔΔ± alanΔ±n yarΔ±sΔ±ndan bΓΌyΓΌk olduΔu durumlarda executable'nin ΕΓΌpheli olduΔu sΓΆylenebilir. ΓΓΌnkΓΌ bu, executablenin Γ§ok fazla veri veya deΔiΕken iΓ§erdiΔi anlamΔ±na gelmektedir.
Buradaki Raw-Size ve Virtual-Size kΔ±sΔ±mlarΔ±ndan bahsedecek olursakta, Raw-Size, section'un binary'de kapladΔ±ΔΔ± byte deΔerini ifade ederken, Virutal-Size ise executable'nin memory'e load edildikten sonraki byte deΔerini ifade eder. KΓΌΓ§ΓΌk byte farklarΔ± ΓΆnemsizken aradaki bΓΌyΓΌk farklar payload olabileceΔine iΕaret ediyor olabilir ki bu da son derece ΕΓΌpheli bir durum haline gelebilir.
Libraries
Libraries kΔ±smΔ± ise, bu executable tarafΔ±ndan kullanΔ±lmΔ±Ε olan .dll dosyalarΔ±nΔ± iΓ§ermektedir.

Burada bazΔ± .dll dosyalarΔ±nΔ± PeStudio'nun iΕaretlediΔini gΓΆrmekteyiz. Bunlar kesinlikle daha fazla dikkat isteyen .dll dosyalarΔ±dΔ±r. Sebebine gelecek olursak;
WS2_32.dll : Winsock api fonkisyonlarΔ±nΔ± iΓ§eren bir .dll'dir. Bu .dll, TCP/IP ve diΔer aΔ protokollerini kullanarak aΔ iletiΕimi iΓ§in gerekli olan fonksiyonlarΔ± iΓ§erir. Yani baΕka bir deyiΕle bu executable'nin C2 sunucusuna istekte bulunuyor olabileceΔi anlamΔ±nΔ± taΕΔ±maktadΔ±r.
SETUPAPI.dll : Bu .dll dosyasΔ±, yazΔ±lΔ±mΔ± yΓΌklemek veya kaldΔ±rmak, yazΔ±lΔ±m gΓΌncellemek ve yazΔ±lΔ±m bileΕenlerini yΓΆnetmek iΓ§in kullanΔ±lmaktadΔ±r. DolayΔ±sΔ±yla WS2_32.dll ile birlikte C2'ya gidip baΕka zararlΔ± payload'lar indirebilir ve bu .dll'deki fonksiyonlar ile de bu yazΔ±lΔ±mlarΔ± yΓΌkleyebilir hale gelebilir.
CRYPT32.dll : Bu .dl dosyasΔ±, genel olarak Εifreleme ve Εifre Γ§ΓΆzme amacΔ±yla kullanΔ±lmaktadΔ±r. Yani executable bu .dll dosyasΔ±nΔ± kullanarak bulunduΔu host ΓΌzerindeki verileri Εifreleyebilir.
Imports
Import sekmesi ise pe'nin kullandΔ±ΔΔ± executable'nin kullandΔ±ΔΔ± native api'leri bizlere gΓΆstermektedir.

Sadece gΓΆstermekle kalmayΔ±p aynΔ± zamanda ΕΓΌpheli kullanΔ±ma sebebiyet verebilecek bazΔ± api'leri de bizler iΓ§in flaglemekte ve bunlarΔ±n hangi mitre tekniΔine karΕΔ±lΔ±k geldiΔini gΓΆstermektedir.

Resources
Resources kΔ±smΔ±nda ise pe'nin kullandΔ±ΔΔ± imagelarΔ±, simgeleri ve meta verilerini gΓΆsterir. Burada gΓΆrΓΌldΓΌΔΓΌ gibi dil rusΓ§a olarak gΓΆzΓΌkmekte ve bu da pe'den ΕΓΌphelenilmesi iΓ§in bir nedendir.

Strings
Strings kΔ±smΔ±na geldiΔimizde ise executable iΓ§erisinde yer alan ve bizim de okuyabileceΔimiz format olan ASCII formatΔ±ndaki string'leri gΓΆrebilmekteyiz.

String'lere dikkat ettiΔimizde ise ΕΓΌpheleri ΓΌzerine toplayan yapΔ±lar gΓΆrmekteyiz. 1. kΔ±sΔ±mda birΓ§ok SQL sorgusu yer almaktadΔ±r. String'lerin devamΔ±nda da bu sorgulardan Γ§okΓ§a gΓΆrmekteyiz. 2. kΔ±sΔ±mda ise 193.233.255.91 IP'sinin yer aldΔ±ΔΔ±nΔ± gΓΆrΓΌyoruz. Virus Total'de incelediΔimizde ise bu ip'nin 5 farklΔ± gΓΌvenlik ΓΌreticisi tarafΔ±ndan zararlΔ± IP olarak etiketlendiΔini gΓΆrmekteyiz. Executable'nin run time sΔ±rasΔ±nda bu IP adresine istek attΔ±ΔΔ±nΔ± dΓΌΕΓΌnmekteyim.

kΔ±sΔ±mda ise Γ§alΔ±ΕtΔ±ΔΔ± host'un IP adresini elde edebileceΔi bir URL bulunmakta.
kΔ±sΔ±mda ise karmaΕΔ±k harflerin yer aldΔ±ΔΔ± stringler gΓΆrmekteyiz ki bu da bir executable iΓ§erisinde olmasΔ±nΔ± pek fazla bekelmediΔimiz bir durumdur.
Overlay
Overlay kΔ±smΔ±na geldiΔimizde executable'nin bir imzasΔ±nΔ±n olmadΔ±ΔΔ±nΔ± gΓΆrmekteyiz. Bu da ilgili executable 'nin zararlΔ± olduΔu konusundaki ΕΓΌphelerimizi arttΔ±rmaktadΔ±r.

GΓΆrΓΌldΓΌΔΓΌ ΓΌzere PsStudio kullanarak bir pe'yi Γ§alΔ±ΕtΔ±rmadan bu Εekilde statik analizi yapΔ±labilmektedir. Bu da pe'nin zararlΔ± olup olmama durumu hakkΔ±nda bizlere daha geniΕ bir bakΔ±Ε saΔlamaktadΔ±r.
Kaynaklar
https://thesecmaster.com/how-to-analyze-windows-executable-files-using-pestudio/ https://www.youtube.com/watch?v=7yKLn27i72Ehttps://stackoverflow.com/questions/42305467/executable-section-headers-meaning-and-use
Last updated
