# Finding Malwares by Performing Static Analysis with PeStudio

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2FQkWE3JvHI14ZnXKTabzp%2Fimage.png?alt=media&#x26;token=c5036949-8651-4e63-9b51-57fa9ac9271d" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2FNNyKoaCrAtRSt801hFhe%2Fimage.png?alt=media&#x26;token=2bf79684-b0d8-4c2e-b153-d241cdfeb8b8" alt=""><figcaption><p>Image Source:<a href="https://en.wikipedia.org/wiki/Portable_Executable#/media/File:Portable_Executable_32_bit_Structure_in_SVG_fixed.svg">https://en.wikipedia.org/wiki/Portable_Executable#/media/File:Portable_Executable_32_bit_Structure_in_SVG_fixed.svg</a></p></figcaption></figure>

PeStudio, kurulum gerektirmeyen bir yapıdadır. Aşağıdaki linkten indirebiliriz.\
<https://www.winitor.com/download>

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2FGx4M8x5rvduBhlymADJV%2Fimage.png?alt=media&#x26;token=be2d2f8d-2593-404a-ba6d-38a9c63a12cd" alt=""><figcaption></figcaption></figure>

İndirmemizin ardından dosyamızı seçerek analize başlayabiliriz.

### Şimdi <mark style="color:yellow;">gerçek bir zararlı</mark> 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 *<mark style="color:yellow;">**4D 5A**</mark>* olduğunu görüyoruz. Text olarak ise *<mark style="color:yellow;">**MZ**</mark>*'ye denk gelmektedir. Bu da, bu dosyanın bir PE olduğunu anlamamız için yeterlidir.&#x20;

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2F7KtpqPrpwCBCpMZww0B2%2Fimage.png?alt=media&#x26;token=f35fd3a7-c267-4a82-b2fa-e545cd564b6c" alt=""><figcaption></figcaption></figure>

Bu zararlının *<mark style="color:yellow;">**Visual Studio 2015**</mark>* kullanılarak compile edildiğini görmekteyiz.&#x20;

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2Fo4MOf5HE8XCi8AvJUsdA%2Fimage.png?alt=media&#x26;token=89513cb8-c25d-4013-ba8b-145cc8ad4718" alt=""><figcaption></figcaption></figure>

### 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.

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2FeKdhSNBCUmzySf8lcISU%2Fimage.png?alt=media&#x26;token=f7e5d07c-13b8-427d-9f7f-32467c9f8ad8" alt=""><figcaption></figcaption></figure>

### VirusTotal&#x20;

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.

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2FSOVHQscvpPGJzBmSEksJ%2Fimage.png?alt=media&#x26;token=c74e3650-7d0e-4308-8e2f-3ccdc9bb7311" alt=""><figcaption></figcaption></figure>

### 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.

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2FALcYzmS9kHUoUtT9wHNh%2Fimage.png?alt=media&#x26;token=4404533d-b21c-4d1e-b95e-662a89abc7f5" alt=""><figcaption></figcaption></figure>

File-ration kısmında ise hangi section'un binary içinde ne kadar yer kapladığını görebilmekteyiz. *<mark style="color:yellow;">**.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.**</mark>* Çünkü bu, executablenin çok fazla veri veya değişken içerdiği anlamına gelmektedir.&#x20;

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. <mark style="color:yellow;">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.</mark>

### Libraries

Libraries kısmı ise, bu executable tarafından kullanılmış olan .dll dosyalarını içermektedir.\\

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2Fmk04oUNC9lIYWib7RxbD%2Fimage.png?alt=media&#x26;token=0a4d56bd-21a3-459a-8696-046a1805359c" alt=""><figcaption></figcaption></figure>

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. <mark style="color:yellow;">Yani başka bir deyişle bu executable'nin C2 sunucusuna istekte bulunuyor olabileceği anlamını taşımaktadır.</mark>&#x20;
* **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.&#x20;

### Imports

Import sekmesi ise pe'nin kullandığı executable'nin kullandığı native api'leri bizlere göstermektedir.&#x20;

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2FipbEvmdf8TAVNKc9sKtR%2Fimage.png?alt=media&#x26;token=4a2f1b10-9889-4697-88d8-ba64dcdc3571" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2F2ZYpaRz8SUoyBkCm5T0I%2Fimage.png?alt=media&#x26;token=db4f5eda-7eb3-4bc0-aa4c-0daee3c5a94e" alt=""><figcaption></figcaption></figure>

### Resources

Resources kısmında ise pe'nin kullandığı imageları, simgeleri  ve meta verilerini gösterir. *<mark style="color:yellow;">**Burada görüldüğü gibi dil rusça olarak gözükmekte ve bu da pe'den şüphelenilmesi için bir nedendir.**</mark>*

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2Ff7IwJnRK7VhAdFOPtByY%2Fimage.png?alt=media&#x26;token=6e9c020e-26df-4fd1-9d96-93ccbd134d8c" alt=""><figcaption></figcaption></figure>

### 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.

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2FCcgqk0O9Qbl5zX9EQnLZ%2Fimage.png?alt=media&#x26;token=e90ae4ac-1ff2-4eda-b6cc-4b0e64805990" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2F1Ssv9ikEi3ubhaxrvq3o%2Fimage.png?alt=media&#x26;token=ab96aa43-b8a7-4c7c-b311-25ecc7c7c445" alt=""><figcaption></figcaption></figure>

3. kısımda ise çalıştığı host'un IP adresini elde edebileceği bir URL bulunmakta.
4. 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.

<figure><img src="https://2451201392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSXlq8GYyAbVnvbRZogU3%2Fuploads%2FxhfgV5FZuWalmW1RVu9X%2Fimage.png?alt=media&#x26;token=e6fb8a16-ac4c-46d1-872f-735ebcaf82d1" alt=""><figcaption></figcaption></figure>

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.&#x20;

### Kaynaklar

<https://thesecmaster.com/how-to-analyze-windows-executable-files-using-pestudio/>\
<https://www.youtube.com/watch?v=7yKLn27i72E><https://stackoverflow.com/questions/42305467/executable-section-headers-meaning-and-use>
