Malware Config Extraction

Berhan Bingöl
4 min readSep 30, 2021

Malware config extraction nedir? Pyhton ile malware config extraction işlemi nasıl gerçekleşir? Gibi soruları cevaplayacağım ve kendim extraction işlemini yaparken karşıma çıkan bazı durumları anlatacağım.

Malware ve Config Extraction Nedir

Malware bir zararlı yazılımdır. Config Extraction işlemi ise bu zararlı yazılımın ayarlarına ve bilgilerine erişme işlemidir.

Aslında sizlere bir antivirüs programı nasıl çalışır ve işlem yapar bildiğim kadarıyla anlatacağım.

Yapacağımız işlemi sıralamak gerekir ise ilk olarak bir malware ailesi veya spesifik olarak bir malware seçelim.

Ben bu işlem için NjRat noramal versyonunu seçtim. Bulup indirmesi kolaydır.

Paneli 5552 portu ile açalım ve build kısmından zararlımızı oluşturalım çalıştıralım.

Daha sonra Dumpit.exe programı ile bilgisayarımızın hafıza imajını alalım.

Her şeyi bu raw data üzerinde yapacağız. Bunun sebebi ise bir run edilmemiş bir malware ne kadar kendisi şifrelemiş olsa da çalıştıktan sonra kendisi yine decode etmesi lazım.

Raw datayı ve malware’i çalışma ortamımıza atalım ve inceleyelim.

İlk olarak Server.exe’yi Ida ile açalım

Az biraz inceledikten sonra burada zararlımız ayarlarını görebiliyoruz WRK.main NjRat’ın sample versyonların da bulunan bir tirck dir.

Alt tarafa doğru incelediğimizde aslında aradığımız bütün ayarların mevcut olduğunu görebiliyoruz. Bunları bu kadar kolay görebilmemizin sebebi biz bu virüsü hiç bir gizleme ve şifreleme işlemi yapmadığımız için. Eğer şifrelenmiş ve gizlenmiş olsaydı tespit etme ve Config Extraction işlemi nasıl gerçekleşir onu da bir diğer yazımda anlatmayı düşünüyorum.

Ama ilk olarak birazda sample’den başlayalım.

Config ayarlarımızı gözle görebildiğimize göre bunu şimdi python ile görelim.

Bu yazdığım kodları github repomdan indirebilirsiniz.

İlk olarak yara ile zararlıyı raw data üzerinde tespit edelim. Yara kuralı repomda mevcut.

Daha sonra WRK.m uzantısı tespit etmeye çalışalım bunu nasıl yapıcaz ilk olarak bunun bir den fazla yöntemi var ben bu yöntemde adresin hexdecimal karşılığını pythonda aratacağım.

Yukarıdaki Fotograftada görebildiğiniz üzere Wrk.m uzantısının hexdecimal karşılığı ’57 52 4B 00 64’ olduğunu görebilirsiniz. Bunu raw data üzerinde arayan python kodu. Bytearry kütüphanesi ile yakalanan değeri okunabilir hale getirmek için decode ediyoruz.

Burada gördüğünüz found size fonksyonu ise yakalanan değerlerin offset üzerinde uzunluklarını ve genişliklerini hesaplıyor.

WRK.m’yi tespit ettiğimiz gibi ratın versyon numarasını da bulalım.
Ona karşılık gelen hex değeri ise ’30 00 2E 00 37 00 64’.

Exe ismi ver lokasyonunu tespit eden fonksyon.

Registry value ve keylerini tespit edelim.

Github’dan kodu inceleyerek daha rahat anlayabilirsiniz.

Komuta kontrol yani c2 adresini de tespit etme fonksyonu hemen altında da bağlandığı port adresi.

Ve aslında işlemimiz burada bitiriyoruz geriye daha fazla veri çekmek isterseniz artık nasıl yapacağınızı biliyorsunuz.

Kodun hepsi:

Referanslar:

https://readthedocs.org/projects/bitstring/downloads/pdf/latest/

--

--

No responses yet