PMA Lab 3-3 İleri Seviye Malware Analizi

xdropdeadex

Junior Hunter
12 Ara 2020
127
96
Öncelikle merhabalar, değerli Türk Hack Team takipçileri! Bugün sizlere “Blue Team” ekip kadrosunun görev dağılımı süresince hazırlamış olduğum “PMA Lab 3-3 İleri Seviye Malware Analizi” konusunu ele alarak anlatıma başlayacağım. Anlatıma geçmeden önce kullanılmış olan teknolojilere ve birtakım terimlerin açıklamalarına değinmek istemekteyim ki konu daha anlaşılır hale gelebilsin.

PMA(Practical Malware Analysis)-Lab: GitHub, genel itibariyle git yazılımı ile entegre edilmiş depolama alanıdır. GitHub platformu, kullanıcıları içerisinde bulunan “mikesiko” kullanıcısının paylaştığı bir nevi örnek laboratuvar ortamıdır. Türkçe’ye çevirilmesiyse, “Pratik Zararlı Yazılım Analizi Laboratuvar”ı şeklindedir.

Kullanmış Olduğum Araçlar: Virtualbox(Sanallaştırma uygulaması), IDA(Zararlı yazılım analizi esnasında kod incelemesi için kullandığım), Windows Process Monitor(Statik analiz sürecinin yanında merakımdan kod bloğunu çalıştırmak istedim ve işlemlerin dönümünü bana göstermeye olanak sağlayan program), Microsoft Windows XP x64 mimari tabanlı Professional/English (Windows türevi İşletim Sistemlerinin bünyesinde oldukça etkilidir).

PMA-LAB 3-3 “.exe” dosyasının kod incelemesini IDA ile yaparken gözüme garip gelen bir şey takılıverdi. Takılan noktaya daha derinlemesine baktığım süreçte ise “kernel32.dll” kütüphane yapısının işlem değerlerini döndürürken dosya oluşturduğunu fark ettim. kernel32.dll, Windows İşletim Sisteminin, temel işlevlerini yerine getirmek; bellek yönetimini sağlamak, giriş ve çıkış donanımlarını kontrol etmek gibi görevleri yerine getiren modülüdür.

q5o5gl5.png


Yukarıdaki resimde oluşturduğu dosyayı ilerleyen kısımda işlem kapasitesi döndürürken de fark ettim.

rv7gogw.png


Dosya ve işlem bütünlüğünü oluştururkan alttan alttan kendisinin hazırlamış olduğu kaynaklar parçacığının yüklenmesi gerçekleştirilmişti.

lpcnlnm.png

t5o9mxr.png


Yukarıdaki resimde apaçık şekilde belirtmiş olduğum durum gözler önüne serilmiştir. Kaynak kilitlendirilmesi oluşturulur iken başka kaynaklardan kaynak yüklemesine olanak sağlamıştır. Analizini gerçekleştirmiş olduğum dosyanın ilk bakışlarımda aniden gelişen ve araya sıkıştırılmış kodların ne anlama geldiğini pek kavrayamasam da sonrasında hemen altındaki:

a8lxggw.png


Bu nokta gözüme çarptığı vakit kodlarım tam manasını anlamaya başlamıştım. Meğersem sistem dizinlerini, oluşturduğu “a” yapısının içerisine yönlendirmeye başlamış.

n6bry7p.png


Dosya ve işlem yönlendirilmesi gerçekleştirilince geriye kalan yalnızca komut satırı kalmıştıki oraya da yavaştan işlemlerle döndürmeye başlanılmış. Çünkü burada sistem hizmetlerine de etki etmeye başlamış. Komut satırı içerisine geçmeden önce kendisinin çekmiş olduğu birtakım kaynak çekimleriyle, Microsoft Windows sistemlerin hizmetlerine nüfuz etme aşamasına geçmiş bulunmaktaydı.

haoy3tj.png


Tabi sızılmaya ve dağınılmaya çalışılan hizmet, çoğu kullanıcının görev yöneticisindeki kendi hizmetlerini çok döndürmesiyle zaman zaman şikayetçi olduğu “svchost.exe” idi. svchost.exe, Microsoft Windows ürünlerinin DLL yapılarından başlatılan işlemlerin yürütülmesini sağlayan ve alt tarafta pek çok kez çalıştırılan sistem uygulamasıdır. svchost.exe, kullanımını gerçekleştirirken yanlarında çalıştırılmasına gerekli olan modül ve işlemleri de yukarıdaki resimde görüldüğü şekilde barındırmaktadır.

swdrm6z.png


Gel gelelim kullanılan bilgisayara sızma ve dağılma(nüfuz etme) işleminin varolduğundan bahsetmiştim. Yazılanların en canlı ve kanlı örneğiyse, “UNICODE” ve ”LOCALIZATION” veri tabanı tipi ve veri ismidir. Unicode, kısa tabir edilmesi gerekir ise herkesin anlaşılacağı şekilde klavyeden ya da herhangi girdi işlemlerinde karakterlerin sayı ve sembollerle ifade edilmesidir. Makinenin içerisinde derinlemesine kalabilmesi adına bu türden işlemleri yapması gerekmektedir. Eğer web sunucusuna sızılmaya çalışılsaydı “Hexadecimal” kavramı kullanılırdı ki yıllardır bu tür teknikler bulunmaktadır. PMA-Lab 3-3, basit görünüme sahip olmaktadır. Ancak her ne kadar basit görünülse de aslında hiç de görünüldüğü kadar basit değildir. Çünkü kendisini çalıştırırken başta ve sonda hata döndürmesi işin enteresan kısmını oluşturmaktadır.

s5luazc.png


Çalıştırılır iken program isminin bilinilmemesi ve son açılır pencereyle alakalı hususlarda yer almaktadır. user32.dll, Microsoft Windows ürünlerinin çalıştırılmasını sağlayan en mühim kütüphanelerden birisidir. Dosyanın eksikliğinden zamanında birtakım Windows kullanıcıları çok teknik ve alt yapı anlamında problem de ,hedef genelde svchost.exe veya user32.dll olunca, yaşamıştır. İşlem ve dosya yönünden oluşturulan dosyanın “Microsoft Visual C++” kullanımının kütüphane yerinde çalıştırılması da ayrı cabası tabii.

onexug1.png


Komut satırının içerisine bir anda tonlarca atlatılma(bypass) amaçlı karakter girdisi oluşturulmuş. Oluşturulmasını sağlamak amacıyla “Microsoft Visual C++” yardımı da alınılmıştır. Satırlarca uzayıp giden kodları incelerken merakımdan kendi dosyalarımın arasında “Lab03-03.exe” ismiyle bulunan dosya yapısını çalıştırdım.

hypatak.png


Çalıştırdıktan belirli bir süre zarfının ardından "Process Monitor" uygulaması açtım. Varsayılan(C:\\) diskimin içerisindeki “Windows” klasörümdeki “system32” alt dizinini hedef aldı ve oradaki kütüphaneleri kendine yöneltmeye başladı. Başladı başlamasına da burada kötü bir duruma mağruz kaldım ki o da "Virtualbox" uygulamasının bozulmasıydı. Aniden RAM ve CPU tüketmesine dayanamayan bilgisayarımın mavi ekranıyla hazin bir şekilde sonuçlandırıldım, heyecanla ilerlerken. Anlaşılacağı üzeredir ki siz siz olun kesinlikle bu türden dosyaları elinizden gelebildiğince açmamaya ve titizlikle incelemeye çalışın ki benim gibi durumlarla karşılaşmayın. Ufaktan not geçmek istemekteyim, bilgisayarımın sanallaştırmasında bulunan Microsoft Windows XP x64 mimari tabanlı Professional/English ürünü tamamen zedelenmiş. Zararını yaşaması da anlamaktayım ki PMA-Lab’ın daha öncesi tüm sürümlerini kontrol ederken orada da biraz zarar görmüştü. Uzun lafın kısası titizlikle programlara bakmalısınız ve yazımın böylelikle sonuna gelmiş bulunmaktasınız. Değerli vaktinizi ve dikkatinizi yazım paylaşımına ayırdığınız için çok teşekkür ederim. Umarım okurken keyif almışsınızdır ve bilgilenmişsinizdir.
 
Son düzenleme:

Gladiaus

Katılımcı Üye
17 Tem 2021
317
83
Baku, Azerbaijan
Öncelikle merhabalar, değerli Türk Hack Team takipçileri! Bugün sizlere “Blue Team” ekip kadrosunun görev dağılımı süresince hazırlamış olduğum “PMA Lab 3-3 İleri Seviye Malware Analizi” konusunu ele alarak anlatıma başlayacağım. Anlatıma geçmeden önce kullanılmış olan teknolojilere ve birtakım terimlerin açıklamalarına değinmek istemekteyim ki konu daha anlaşılır hale gelebilsin.

PMA(Practical Malware Analysis)-Lab: GitHub, genel itibariyle git yazılımı ile entegre edilmiş depolama alanıdır. GitHub platformu, kullanıcıları içerisinde bulunan “mikesiko” kullanıcısının paylaştığı bir nevi örnek laboratuvar ortamıdır. Türkçe’ye çevirilmesiyse, “Pratik Zararlı Yazılım Analizi Laboratuvar”ı şeklindedir.

İşlem(Process): Bir işletim sistemi üzerinde herhangi bir dil ile kodlanmış ve bir compiler(derleyici) ile derlenilmiş daha da sonraki sürecinde hafızaya yüklenerek işlemcide çalıştırılan programlara verilen isimdir. Bilgisayar parçaları içerisinde, RAM donanımı üzerinde tutulmaktadır.

Üstelik terim ve kullanılan teknolojiler hakkında açıklamalar yaparken “Bilgisayar belleği nedir?” sorusuna cevap niteliğinde açıklamalar yapmaya da elimden geldiğince sağlamaya çalıştım.

Bellek(Hafıza): Bellekler, bilgi depolama üniteleridir. Bilgisayarlar her türlü bilgiyi ikilik sayılar ile kullanır ve saklar. Bilgisayar ekipmanları içerisinde bilgi mantıksal olarak, “0” ve “1”lerden oluşur. Aynı şekilde bu ikilik bilgiler kısa ve ya uzun süreli depolanırken de kullanılır ki geriye dönüş işlemlerine de olanak sağlanabilmeli. RAM(Random Access Memory/Rastgele Erişilebilir Bellek) hafıza haritasının bazı bölgelerine bir veya birkaç tane ROM(Read Only Memory/Yalnızca Okunabilir Bellek)’a denk gelecek şekilde yerleştirir. Bellek donanımları, birtakım depolama işlemlerine yarayacak sürücülere de ihtiyaç duyabilmektedir bu tür hususlarda. Ayriyeten belleklerin işlenilmesinde kullanılan mantıksal makine dilinin yanında işlem(process) kapasitesine ait yapılanmalarda bulunmaktadır. Anlaşılacağı üzereki bellek ve işlem, bilgisayarın donanım ve yazılım ihtiyacını karşılarken mühim öneme sahiptir.

Kullanmış Olduğum Araçlar: Virtualbox(Sanallaştırma uygulaması), IDA(Zararlı yazılım analizi esnasında kod incelemesi için kullandığım), Windows Process Monitor(Statik analiz sürecinin yanında merakımdan kod bloğunu çalıştırmak istedim ve işlemlerin dönümünü bana göstermeye olanak sağlayan program), Microsoft Windows XP x64 mimari tabanlı Professional/English (Windows türevi İşletim Sistemlerinin bünyesinde oldukça etkilidir).

PMA-LAB 3-3 “.exe” dosyasının kod incelemesini IDA ile yaparken gözüme garip gelen bir şey takılıverdi. Takılan noktaya daha derinlemesine baktığım süreçte ise “kernel32.dll” kütüphane yapısının işlem değerlerini döndürürken dosya oluşturduğunu fark ettim. kernel32.dll, Windows İşletim Sisteminin, temel işlevlerini yerine getirmek; bellek yönetimini sağlamak, giriş ve çıkış donanımlarını kontrol etmek gibi görevleri yerine getiren modülüdür.

q5o5gl5.png


Yukarıdaki resimde oluşturduğu dosyayı ilerleyen kısımda işlem kapasitesi döndürürken de fark ettim.

rv7gogw.png


Dosya ve işlem bütünlüğünü oluştururkan alttan alttan kendisinin hazırlamış olduğu kaynaklar parçacığının yüklenmesi gerçekleştirilmişti.

lpcnlnm.png

t5o9mxr.png


Yukarıdaki resimde apaçık şekilde belirtmiş olduğum durum gözler önüne serilmiştir. Kaynak kilitlendirilmesi oluşturulur iken başka kaynaklardan kaynak yüklemesine olanak sağlamıştır. Analizini gerçekleştirmiş olduğum dosyanın ilk bakışlarımda aniden gelişen ve araya sıkıştırılmış kodların ne anlama geldiğini pek kavrayamasam da sonrasında hemen altındaki:

a8lxggw.png


Bu nokta gözüme çarptığı vakit kodlarım tam manasını anlamaya başlamıştım. Meğersem sistem dizinlerini, oluşturduğu “a” yapısının içerisine yönlendirmeye başlamış.

n6bry7p.png


Dosya ve işlem yönlendirilmesi gerçekleştirilince geriye kalan yalnızca komut satırı kalmıştıki oraya da yavaştan işlemlerle döndürmeye başlanılmış. Çünkü burada sistem hizmetlerine de etki etmeye başlamış. Komut satırı içerisine geçmeden önce kendisinin çekmiş olduğu birtakım kaynak çekimleriyle, Microsoft Windows sistemlerin hizmetlerine nüfuz etme aşamasına geçmiş bulunmaktaydı.

haoy3tj.png


Tabi sızılmaya ve dağınılmaya çalışılan hizmet, çoğu kullanıcının görev yöneticisindeki kendi hizmetlerini çok döndürmesiyle zaman zaman şikayetçi olduğu “svchost.exe” idi. svchost.exe, Microsoft Windows ürünlerinin DLL yapılarından başlatılan işlemlerin yürütülmesini sağlayan ve alt tarafta pek çok kez çalıştırılan sistem uygulamasıdır. svchost.exe, kullanımını gerçekleştirirken yanlarında çalıştırılmasına gerekli olan modül ve işlemleri de yukarıdaki resimde görüldüğü şekilde barındırmaktadır.

swdrm6z.png


Gel gelelim kullanılan bilgisayara sızma ve dağılma(nüfuz etme) işleminin varolduğundan bahsetmiştim. Yazılanların en canlı ve kanlı örneğiyse, “UNICODE” ve ”LOCALIZATION” veri tabanı tipi ve veri ismidir. Unicode, kısa tabir edilmesi gerekir ise herkesin anlaşılacağı şekilde klavyeden ya da herhangi girdi işlemlerinde karakterlerin sayı ve sembollerle ifade edilmesidir. Makinenin içerisinde derinlemesine kalabilmesi adına bu türden işlemleri yapması gerekmektedir. Eğer web sunucusuna sızılmaya çalışılsaydı “Hexadecimal” kavramı kullanılırdı ki yıllardır bu tür teknikler bulunmaktadır. PMA-Lab 3-3, basit görünüme sahip olmaktadır. Ancak her ne kadar basit görünülse de aslında hiç de görünüldüğü kadar basit değildir. Çünkü kendisini çalıştırırken başta ve sonda hata döndürmesi işin enteresan kısmını oluşturmaktadır.

s5luazc.png


Çalıştırılır iken program isminin bilinilmemesi ve son açılır pencereyle alakalı hususlarda yer almaktadır. user32.dll, Microsoft Windows ürünlerinin çalıştırılmasını sağlayan en mühim kütüphanelerden birisidir. Dosyanın eksikliğinden zamanında birtakım Windows kullanıcıları çok teknik ve alt yapı anlamında problem de ,hedef genelde svchost.exe veya user32.dll olunca, yaşamıştır. İşlem ve dosya yönünden oluşturulan dosyanın “Microsoft Visual C++” kullanımının kütüphane yerinde çalıştırılması da ayrı cabası tabii.

onexug1.png


Komut satırının içerisine bir anda tonlarca atlatılma(bypass) amaçlı karakter girdisi oluşturulmuş. Oluşturulmasını sağlamak amacıyla “Microsoft Visual C++” yardımı da alınılmıştır. Satırlarca uzayıp giden kodları incelerken merakımdan kendi dosyalarımın arasında “Lab03-03.exe” ismiyle bulunan dosya yapısını çalıştırdım.

hypatak.png


Çalıştırdıktan belirli bir süre zarfının ardından "Process Monitor" uygulaması açtım. Varsayılan(C:\\) diskimin içerisindeki “Windows” klasörümdeki “system32” alt dizinini hedef aldı ve oradaki kütüphaneleri kendine yöneltmeye başladı. Başladı başlamasına da burada kötü bir duruma mağruz kaldım ki o da "Virtualbox" uygulamasının bozulmasıydı. Aniden RAM ve CPU tüketmesine dayanamayan bilgisayarımın mavi ekranıyla hazin bir şekilde sonuçlandırıldım, heyecanla ilerlerken. Anlaşılacağı üzeredir ki siz siz olun kesinlikle bu türden dosyaları elinizden gelebildiğince açmamaya ve titizlikle incelemeye çalışın ki benim gibi durumlarla karşılaşmayın. Ufaktan not geçmek istemekteyim, bilgisayarımın sanallaştırmasında bulunan Microsoft Windows XP x64 mimari tabanlı Professional/English ürünü tamamen zedelenmiş. Zararını yaşaması da anlamaktayım ki PMA-Lab’ın daha öncesi tüm sürümlerini kontrol ederken orada da biraz zarar görmüştü. Uzun lafın kısası titizlikle programlara bakmalısınız ve yazımın böylelikle sonuna gelmiş bulunmaktasınız. Değerli vaktinizi ve dikkatinizi yazım paylaşımına ayırdığınız için çok teşekkür ederim. Umarım okurken keyif almışsınızdır ve bilgilenmişsinizdir.
Teşekkürler yararlı bir konu olmuş.
 
Ü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.