IDA ile İleri Statik Zararlı Analizine Giriş

Pentester

Özel Üye
8 Eyl 2016
1,646
996
Merhaba, bu konumuzda IDA ile basit C programının analizini yapacağız. İleri statik zararlı analizlerine giriş öncesi egzersiz yapacağız. IDA ile uygulamanın Assembly karşılığını inceleyerek yorumlayacağız. Bu şekilde uygulamaları disassemble ederek işlevini ortaya çıkaracağız. IDA ile ileri statik malware analizi konularımızdan önce temel bir şekilde kullanımını görmüş olacağız.

İlgili exe dosyamızı sürükleyip IDA içerisine bırakıyoruz.

gjwnc19.png


Sol tarafta fonksiyon penceremiz, sağ tarafta assembly karşılıklarını görüyoruz. Assembly kodlarının yer aldığı kısımda ilgili hafıza adreslerini de görebiliriz. Bunun için options-general sekmesinden line prefix aktif ediyoruz.

s52etzu.png


Artık ilgili kod bloklarının hafızda hangi adreslerde yer aldığını görebiliyoruz.

Şimdi kod bloklarına gömülüyoruz ve bir şeyler elde etmeye çalışıyoruz.

Ben öncelikle bazı ipuçları elde etmek için view-open subviews-strings yolunu takip ediyorum veya shift+f12 kısayolunu takip ediyorum.

7d6axwx.png

Burada altını çizdiğim stringler dikkatimi çekiyor. Exec fonksiyonu C dilinde yer alıyor. Execl fonksiyonu ise gönderilecek parametreleri liste şeklinde alıyor. /bin/ls stringi ise bildiğiniz üzere ilgili dizinde ls komutunu çalıştırıp listeleme işlemi gerçekleştiriyor.

b1ru0z0.png


Burada belirli parametreler alan bir fonksiyonumuz var. Fonksiyon çağrıları bizim için önemlidir. View-opensubviews yolunu takip ederek function calls seçeneğini seçiyorum.

lzqx39e.png

Hangi fonksiyonlara çağrı yapıldığını görüyoruz. Assembly’de call fonksiyon çağırmaya yarıyor. Yani üst dillerde fonksiyon çağırmanın karşılığı olarak da ifade edebilirim.

627y2qf.png


Assembly blokları içerisinde de execl fonksiyonuna çağrı yapıldığını görebiliyoruz zaten.

m3v0gt3.png


Biraz daha üst kısımlara geldiğimizde execl fonksiyonu ile ilişkili satırları da görebiliyoruz. Buradan yola çıkarak şunu söyleyebiliriz execl fonksiyonumuz /bin/ls, -a, -s değerlerini kullanıyor. Ki bunlarda Linux sistemlerde bildiğiniz üzere dizin listelerken kullanılan parametreler oluyor. -a parametresi bulunan dizindeki dosyaları yatay olarak listeler, aynı zamanda en iyi özelliği gizli dosyaları da göstermesi tabii. -s parametresi de dosya boyutlarını listeliyor. Şimdi ben sol tarafta yer alan fonksiyon penceresinden execl üzerine çift tıklıyorum.

l3eub9j.png


int execl fonksiyonu tanımlanmış içerisinde path ve arg değerlerini görebiliyoruz yani bunlar execl fonksiyonuna parametre olarak çalışacaklar. Yani bu programın yaptığı şey, bin/ls, -a, -s komutlarını execl fonksiyonuna parametre verip işlemek. Şimdi bu programın nasıl bir sonuç verdiğini Linux sistemimizde inceleyelim.

6ili1p0.png


C programımız bu şekilde gördüğünüz gibi ilgili değerler execl fonksiyonuna aktarılarak çalıştırılıyor.

1h723pt.png


Sonucu da bu şekilde, bu programın yaptığı işlemi manuel olarak da yapabiliriz.

nyra5ax.png


Zaten ilgili programın yaptığı şey de bu komutları sistemimizde execl vasıtasıyla çalıştırmak. Basitçe IDA yazılımını kullanarak basit bir programı disassembly ederek Assembly kodlarını yorumladık. İleri statik malware analizlerimizde bu şekilde kodları yorumlayacağız. Okuduğunuz için teşekkür ederim.
 
Ü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.