Ghidra
Ghidra
ABD Ulusal Güvenlik Ajansı (NSA) tarafından RSA konferasında yayınlanan Ghidra aracı, kurumun tersine mühendislik işleri için kullandığı bir yazılımdır. İlk olarak 2017’de “Vault 7” isimli WikiLeaks belgeleriyle ifşa olan yazılım, 5 Mart 2019 tarihinde açık kaynak olarak yayınlandı.https://www.ghidra-sre.org
Bu yazıda daha önce blogta yayınlanan Rising Sun zararlısına birde Ghidra üzerinde inceleyeceğiz.
İlk Bakış
Ghidra’yı kurup, ilk açılışını yaptığımızda yardım sayfası bizi karşılıyor.
Bu sayfayla beraber proje oluşturma sayfasını ve Ghidra ile
alakalı ipuçlarını barındıran Tip of the Day penceresini
görüyoruz.
File → New Project yolunu takip ederek yeni proje oluşturabilirsiniz. Yeni proje oluşturduğunuzda size bu projeyi paylaşılabilir yapmak isteyip istemediğiniz soruluyor.
Next diyip devam ettiğimizde proje adını belirleme ekranı geliyor.
Finish butonuna basıp projeyi oluşturduğumuzda karşımıza şöyle bir pencere geliyor.
Projemizi oluşturduktan sonra artık analizi yapacağımız dosyayı seçmemiz lazım. Dosyayı seçmeden önce proje ekranında görünen CodeBrowser(ağzından alev çıkan yeşil ejderha) simgesine basıyoruz.
CodeBrowser, zararlımızı analiz edeceğimiz ve işimize yarayacak çoğu fonksiyonun bulunduğu araç. CodeBrowser’ı açtığımız zaman farklı bir pencere açılıp, eskileri andıran bir arayüz karşılıyor.
İnceleyeceğimiz dosyayı yüklemek için File → Import File seçeneğini kullanıyoruz.
Dosyayı seçtikten sonra dosyanın özelliklerini kendi algılıyor
fakat burada bizimde değişiklik yapmamıza olanak veriyor.
Ok tuşuna bastıktan sonra Ghidra zararlı dosyayı yüklüyor ve dosyanın analizinin yapılmadığını, yapmak ister misin diye bize soruyor.
Analiz bittikten sonra sonucunu görüyoruz. Sol tarafta bulunan Symbol Tree penceresinden function (fonksiyonlar) sekmesini kullarak entry (giriş) fonksiyonumuzu buluyoruz ve çift tıklıyoruz. Ghidra’nın güzel bir özelliği seçtiğimiz assembly satırlarını decompile bölümünde de işaretli olarak bize sunması.
Hem assembly kodu hem de decompile edilmiş pseudocode karşımıza çıkıyor. Decompile özelliği analistlerin çok fazla kullandığı bir özellik. IDA’da sadece lisanslı versiyonda bulunuyor. Analizimizi detaylandırmak için başka yerlere de odaklanmamız lazım. Bundan dolayı Window → Functions yolunu takip ederek zararlıda kullanılan fonksiyonlara bakabiliriz.
Kullanılan fonksiyonlar aşağıdaki gibi listeleniyor.
Filter kısmından arama yapabiliyoruz. Burada Rising Sun’ın asıl zararlı fonksiyonlarının bulunduğu FUN_13F04D140 fonksiyonuna gitmek için arama yapıyoruz. Aramada karşımıza çıkan fonksiyona çift tıkladağımız zaman o fonksiyonun assembly kodlarını görüyoruz. IDA’da sıkça kullandığımız grafik arayüzünü kullanmak için yukarıda bulunan Function Graph butonuna veya Window → Function Graph yolunu takip ediyoruz.
Butona bastığımız zaman karşımıza IDA’ya benzer bir görüntü
çıkıyor. IDA’Dan farklı olarak ayrımlar animasyonlarla
belirtiliyor.
Analiz için daha detaylandırdığımız zaman assembly kodlarının olduğu kutucukları görüyoruz. Graph view üzerinden başka fonksiyonlara geçiş, fare imlecini üzerinde tutunca daha detaylı bilgi, yorum ekleme gibi işlemleri kolaylıkla gerçekleştirebiliyoruz.
Bunların dışında Window sekmesinden çok daha fazla özelliğe
erişebiliyoruz. En çok kullanılan özelliklerden biri olan
dosyanın içerisindeki stringlere erişim yine Window → String
yolu üzerinden erişilebiliyor.
Windows penceresindeki özelliklerini biraz daha inceleyelim. Bytes sekmesine bastığımızda analizini yaptığımız dosyayı hex olarak inceleyebiliyoruz. Bu hex görünümden, baytları değişritip dosyaya yama (patch) yapabiliyoruz. Baytları sonradan kullanmak için kopyalamak istediğimizde karşımıza boşluklu veya boşluksuz kopyalama olmak üzere 2 seçenek sunuluyor.
Yine Window penceresinin altında bulunan Python sekmesini
açtığımızda Jython üzerinde çalışan bir Python komut satırı
çıkıyor. Burada kendi yazdığınız Python 2.7 betiklerini
çalıştırabilir veya internetten bulduğunuz betikleri de
çalıştırabilirsiniz.
Ghidra’da bulunan başka güzel özellik ise hazır betiklerin olması ve bunların kullanıcıya sunulması. Window -> Script Manager yolunu izleyerek hazır halde bulunan betikleri görebilirsiniz. Bu pencereden kendimizde betik ekleyebiliriz. Java ve Python şimdilik desteklenen diller.
Search penceresinin altında nerelerde arama yapabileceğimiz görünüyor. Görselde de görüldüğü üzere programın içerisindeki yazılarda, hafızada, komutlar arasında vb gibi çok kullanışlı olabilecek özellikler sunuyor.
Sonuç
Bu yazımızda yayınlandığı günden itibaren çok ses getiren Ghidra aracını kısaca tanıtmaya çalıştık. Bu yazı sadece küçük bir giriş ve araç hakkında kısa bir bilgi vermeyi amaçlamaktadır. Program içerisinde kurcalamayı bekleyen çok fazla özellik var. Rakiplerine göre artılarını ve eksilerini değerlendirmek kullananın amaçları doğrultusunda şekillenen Ghidra’nın ilerleyen günlerde popülerliğinin artması bekleniyor.
Burak ÇARIKÇI
Ellerine sağlık Burak, çok güzel bir yazı olmuş.
YanıtlaSil