Ulusal Güvenlik Ajansının Programı
https://www.turkhackteam.org/tersine-muhendislik/1952627-ulusal-guvenlik-ajansinin-programi.html
TurkHackTeam Siber Güvenlik Platformu
----
www.turkhackteam.org
www.turkhackteam.net
www.turkhackteam.com.tr
1. Turkhackteam.org/net
sizlere NSA'nın açık olarak topluma sızdırdığı bir tersine mühendislik
programından bahsedeceğim,"NSA(National Security Agency)"
yani ulusal güvenlik ajansı kısaca bir istihbarat birimi olarak geçmekte,konuya
ufaktan geçelim.
GHIDRA Nedir?
NSA yani Ulusal Güvenlik Ajansı tarafından geliştirilen bir tersine mühendislik
yazılımıdır,geçerli olduğu platformlar sırasıyla Linux-MacOs-Windows
üzeri kurulabilen platformlardır,bu platformlar üzerine kurulan bu program
yazılan bir programın C ve Assembly kodlarını incelememize yarar ve
incelemek
için bizlere gerekli tooları verir. Bu tür araçlar oluşturulan programlar da ki
kodları nasıl çalıştığını bizlere göstermekte,sistemler de ki açıkları bizlere
net bir halde göstermekte. Bu program hack işlerine yeni girmiş kişiler
tarafından kullanılabilmekte,programın ücretsiz olması da ayrı bir güzelliği
tabi ki.
2. Çoğu kişi windows üzerine değil de Linux üzerine kurulmasını tavsiye eder
sebebi ise programın NSA tarafından yayınlanması güven kaybı oluşturuyor
fakat çoğu kullanıcı
Windows üzerinden devam etmekte. Bu Link “https://ghidra-sre.org”
üzerinden programı ücretsiz şekil de edinebilirsiniz.
JDK Nedir?
GHIDRA programını indirdikten sonra elbette bilgisayarımız da bulunması
gereken bir program var,GHIDRA direkt olarak .exe uzantılı inmiyor, GHIDRA
bizlere .bat
uzantılı geldiği için JDK ile onu çalıştırmamız gerekiyor. Gelelim GHIDRA
programını kurmak için bize yardımcı olması gereken programın ne olduğuna
ne işe yaradığına.
JDK yani İngilizce açılımı Java Development Kit Türkçesi ise Java Geliştirici Kiti
olmakla beraber bu program java üzeri geliştirmeler yapılmasını isteyen
Developerların
kendini geliştirmeleri için sahip olması gereken bir uygulama. Bu uygulamayı
da indirdikten sonra GHIDRA kurulumuna devam edebiliriz, Bu Link
“https://www.oracle.com/java/technologies/javase/javase-jdk8-
downloads.htmlӟzerinden indirebilirsiniz.
3. JDK İndirme ve Kurulumu
İlk olarak her hangi bir tarayıcıyı açıyoruz ben opera kullanıyorum bu nedenle
onun üzerinden anlatacağım,ilk olarak Opera arama motoruna
JDK Download yazıyoruz ve çıkan ilk link tıklayıp giriyoruz.
Sayfayı aşağıya çekip Java'nın en güncel sürümünü indiriyoruz,bunun için JDK
Download yazan yere tıklıyoruz.
Bize yönlendiren sayfanın biraz daha aşağısına indirip Java'nın Windows
uyumlu sürümünün üstüne geliyoruz ve
4. "jdk-15.0.1_windows-x64_bin.exe" yazan yere tıklıyoruz,şunu eklemek
istiyorum bu programın sadece 64 uyumlu olması gerçekten kötü bir
durum fakat 32'ler üzerinde de çalışabilir deneyebilirsiniz. Program boyutu
159.69 MB.
Ardından önümüze açılan ufak pencereye bakıyoruz ve üstte yazan "I reviwed
and accept the Oracle Technology Network License Agreement for Oracle Java
SE"
kısmına bir tık atıyoruz bunun neden Oracle'ın lisans sözleşmesine onay
vermemiz,ardından altta yazan "Download jdk-15.0.1_windows-x64_bin.exe"
kısmına tıklıyoruz.
Tıkladıktan sonra Opera bize programı nereye yüklemek istediğimiz için bir
seçenek sunuyor,ben Masaüstüne direkt olarak gözüksün diye yüklemek
istediğimden
"Masaüstünü" seçip,dosya adından emin olup,"Kaydet" diyoruz.
5. Ardından Opera da sağ üstte bulunan "İndirmeler" kısmına düşen bu
uygulamanın yüklenmesini bekliyoruz.
Ardından programın bize vermiş olduğu pencere de "Preparing to install" yani
indirmek için hazırlanıyor kısmını bekliyoruz.
6. Program karşımıza Hoş Geldin ekranı çıkarıyor,tekrardan indirmeye devam
etmek için "Next>" kısmına basıyoruz.
Programın bizim karşımıza çıkardığı bu pencere de programın yüklenmesi için
izlendiği yolu iyi seçmemiz gerekiyor ve bu izlenen yolu
unutmamamız gerekiyor nitekim GHIDRA uygulamasını çalıştırırken .bat
üzerinden CMD açtığı için bazen Java JDK otomatik olarak yönlendirmiyor,
yönlendirmediği için komutu kendimiz vermemiz gerekiyor,bu nedenle
yüklenme yolunu iyi bilmemiz lazım ki CMD üzerinden verdiğimiz komut ile
programı açılışa yönlendirebilelim. "Change" kısmından yüklenme yerini
değiştirebilirsiniz,eğer istemiyorsanız programı indirmek için "Next"
butonuna basabilirsiniz.
7. Programın tekrardan karşımıza çıkardığı pencere de bekliyoruz,bu işlem 3-5
dk sürebilir HDD veya kullandığınız SSD'nin sağlık durumuna bağlı.
Bu arada SSD veya HDD'nin sağlık durumuna bakmak için açmış olduğum bu
konuyu da inceleyebilirsiniz
Bu pencere de eğer ki "Next Steps" derseniz eğer,program sizi Java'nın diğer
geliştirici seçeneklerinin sunduğu bir siteye yönlendirecektir,bizim buna
ihtiyacımız
olmadığını için "Close" diyoruz.
8. GHIDRA İndirme ve Kurulumu
İlk olarak bu verdiğim linki ”https://ghidra-sre.org” kullandığınız tarayıcının
arama kısmına yapıştırıyorsunuz ve ardından
Ekrana açılan pencerede ki "Download Ghıdra v9.2" kısmına tıklıyoruz ve
programı indirmek için ilk adımımızı atıyoruz.
Daha sonra yukarıda da dediğim gibi Opera'nın sağ üstte verdiği "İndirmeler"
kısmından programın inmesini bekliyoruz.
.zip Uzantısı ile inen RAR dosyasının için de bulunan "ghidra" adlı programın
klasörünü masaüstüne sürüklüyoruz,bunun nedeni
.zip içerisin de bu programın içinde ki .bat klasörlerini masaüstüne çıkarmak.
9. Masaüstüne çektiğimiz klasörü çift tıklayıp açıyoruz ve için de bulunan
"ghidraRun.bat" uzantısına sağ tıklıyoruz ve ardından
"Yönetici olarak çalıştır" diyoruz. Eğer böyle demezsek yukarıda da belirttiğim
gibi program otomatik olarak yönlendirmez ve CMD
üzerinden kendimiz komut ile yönlendirmek zorunda kalırız.
CMD ekranı açıldıktan sonra bir süre bekliyoruz eğer otomatik açılmaz ise
CMD'ye JDK programını az önce kurarken yönlendirdiğimiz yolu
CMD komut satırına yazıyoruz benim yönlendirdiğim yol "C:Program
FilesJavajdk-15.0.1" idi. Bunu CMD komut satırına yazdıktan sonra
"Enter" basarsanız programa yine sizi yönlendirecektir,burada dikkat etmeniz
nokta JDK adlı uygulamanın yönlendiği yol. Ben yönetici olarak çalıştırdığım
için JDK programına otomatik yönlendirme yaptı, GHIDRA kurulumuna devam
etmek için ekrana çıkan pencere de "I Agree" kısmına tıklayıp devam
ediyoruz.
10. Ardından program çalışmaya başlıyor,bu ekranda bir süre bekliyoruz yukarıda
da belirttiğim gibi bekleme süresi HDD veya SSD durumuna göre değişebilir.
11. GHIDRA Kullanım Anlatımı
Bekleme ekranı geçtikten sonra program karşımıza açılıyor ve bizim karşımıza
bir bildiri ekranı,bir nevi öğretici ekranı koyuyor bunu eğer okuyup öğrenmek
istiyor iseniz
"Next To" kısmına basıp devam edebilirsiniz ben uzatmamak adına "Close"
diyorum.
Çalışmaya başlamadan önce yeni bir proje oluşturmamız gerekli,bunun için
"File" kısmına geliyoruz ve "New Project" kısmına tıklıyoruz, eğer ki program
içi
kısa yol tuşlarını biliyorsanız kısaca "CTRL+N" kısmına basarak yeni bir proje
oluşturabilirsiniz.
12. Devamın da karşımıza çıkan ekran da eğer tek başımıza çalışıcak isek bir ekip
çalışmamız yok ise "Non-Shared Project" kısmına tıklıyoruz,eğer bir ekip ile
çalışmak istiyorsanız "Shared Project" kısmına tıklayabilirsiniz ben tek
çalışacağım için "Non-Shared Project" kısmına tıklayıp "Next>>" kısmına
tıklayıp devam ediyoruz.
13. Karışımıza çıkmış olan "Select Proje ********" yani Proje Lokasyonunu Seçme
kısmına geldikten sonra "Project Directory" kısmı ilk seçeneğimiz oluyor "..."
kısmına tıklayıp,
projemizi kurmak istediğimiz yeri seçebiliriz ben C:'de bulunan "Users" yani
kullanıcılar kısmını seçiyorum daha sonra "Project Name" kısmına tıklayıp
projeme bir isim koyacağım,
ben ismi "thtprojesi" olarak seçiyorum ve proje oluşturmayı bitirmek için
"Finish" diyorum.
14. Sıra geldi en yukarı da bahsettiğim ".exe" adlı istediğimiz bir programı dosya
olarak import etmemiz yani içeri aktarmamız gerekli bunun için "File" kısmına
geliyoruz ve
"Import File" yani dosyayı içeri aktar diyoruz. İsterseniz kısayol tuşu ile
program açık iken "L" tuşuna basıp bu klasör yolunu açabilirsiniz.
15. Ardından .exe uzantımızı seçmek için her hangi bir .exe uzantısını seçiyoruz,
"File Name" kısmında bu uzantının seçili olduğundan emin olduktan sonra
"Select File To İmport"
yani içeri aktarmak için seç kısmına tıklıyoruz.
Programın bizim karşımıza çıkardığı ekran .exe uzantılı seçtiğimiz programın
üzerinde bilgi edinmek için,işlemler yapabilmek için,açıklarını bulabilmek için
çıkan bir pencere,
tersine mühendisliğe devam etmek için "Options..." kısmına basıyoruz.
16. "Load External Libraries" kısmına tıklıyoruz bunun anlamı türkçe karşılığı Dış
Kitaplıkları Yükle olmakta,buna tik attığımız da program üzerinde bilgiler de
oynama yapabilmek veya
program hakkında ayrıntılı kodlama bilgilerini görmeyi bizim için
kolaylaştıracaktır, "OK" diyoruz ve devam ediyoruz.
17. "Options" kısmından ayarlarımızı da yaptığımıza göre Tersine Mühendislik
işlemine devam etmek için "OK" diyoruz.
Ardından GHIDRA bizim için dosya içi ".dll" uzantılarını ve program içi yazılım
bilgilerini bizlere gösterebilmesi için Import etmeyi yani
içeri aktarmayı devam ettiriyor bir müddet burada bekliyoruz.
18. Karşımıza çıkan "Import Resuls Summary" yani Sonuç Özetini İçe Aktar ekranı
karşımıza çıkıyor,bu ekran program hakkında yüzeysel bilgileri gün yüzüne
çıkaran bir
penceredir,program hakkında genel bilgileri sunar. "OK" diyip pencereyi
kapatıyoruz.
19. Programın penceresin de gördüğünüz gibi kullanıcı dll'i ve program hakkında
ki kernel.dll'i bulunmakta. Bizim işimiz tersine mühendislik için
"FastClicker.exe" uzantısı ile olduğu için
"FastClicker.exe" adlı dosyayı seçip GHIDRA amblemi'nin üzerine
sürüklüyoruz.
Bunu yaptıktan sonra program karşımıza böyle bir simge çıkaracaktır,bunun
anlamı GHIDRA'nın için de buluna TOOL'u kullandığımız ve
aktif hale getirdiğimizin göstergesidir.
20. Bunu yaptıktan sonra TOOL karşımıza gördüğümüz gibi bir bildirim çıkarıyoruz
bu bildirim de "FastClicker.exe has not been analyzed. Would you like to
analyze it now?" gibi bir bildirim verdi
bunun anlamı şuan bu .exe uzantısı analiz edilmiyor bunu analiz etmek ister
misin demek istiyor. Biz de zaten başından beri bunu istediğimiz için "Yes"
diyoruz ve devam ediyoruz.
Bunları yaptıktan sonra program karşımıza "Analysis Options" ekranı
verecektir bunun anlamı Analizörler ayarları, bu pencere bize iletişim
kutusunun tüm analizörleri ve listesini verir,bunlara işlem sunma şansı da
bizlere sunar.
Biz bu pencerenin sol kısmın da bulunan "Analyzers" penceresin de bulunan
istediğimiz bir seçeneğe göz atabiliriz benim seçtiğim seçenek "Create
Address Tables" yani Adres Tabloları Oluştur seçeneği,bunun üzerine bir tık
yaptığımız zaman ekranın sağ tarafın da
bulunan kısma program hakkında "Description" yani açıklama ekranı veriyor
alt tarafında da "Options" yani ayarlar seçeneklerini veriyor,biz bunları
ellemeyip alt kısım da bulunan "Analyze" kısmına
tıklıyoruz.
21. Ardından programın en alt sağ kısmın da "Analyze" ilerlemesini
görmekteyiz,burada program size her analizörün ilerlemesini gösterir,
biz bir müddet bekliyoruz.
Bu ilerleme bittikten sonra karşımıza açılan pencere "There were
warnings/errors issued during analysis." yani analiz sırasın da verilen uyarılar
ve
hatalar bulunmakta,alt taraftan gerekli bilgileri edinebilirsiniz biz "OK" diyip
devam ediyoruz.
22. Analiz ve analizör işlemlerimiz bitti şimdi program da bulunan 3 farklı pencere
gözükmekte gördüğünüz gibi,bunlar "Program Trees", "Symbol Tree" ve
"Data Type Menager",
gelin bunları tanıyalım.
23. İlk penceremiz olan "Program Trees" bu bölüm programın yapısını bizlere
göstermekle kalmayıp program da işlemler yapmak için kullanılan bölgedir.
Burada program hakkında "headers,text,rdata,data,rsrc,reloc ve debug data"
hakkında C ve Assembly verileri gözükebilir.
Bir sonra ki pencere yani ikinci penceremiz "Symbol Tree" yani sembol
ağacı,burası program hakkında ki sembolleri bulmamıza ve bu semboller
hakkında bilgileri aramımıza
yardımcı olur "Filter" kısmından istediğimiz aramayı yapabiliriz. Burada
ımports,exports,functions,labels,classes,namespace s gibi veriler bulunmakta.
24. Sırada ki penceremiz yani son ve üçüncü penceremiz olan "Data Type
Manager" yani veri tipi yöneticisi kısmı,burada ki bölüm de bir uygulama
oluşturabiliriz veyahut
veri türlerini teker teker bulabiliriz. Burada görüldüğü üzere
BuiltInTypes,FastClicker.exe ve windows_vs12_32 kısımları bulunmakta.
İsterseniz program üzerinde "G" tuşuna basıp adres aramak için bir "finder"
açabilirsiniz. Aramak istediğiniz adresi yazıp "OK" kısmına tıklarsanız
Assembly pencersin de bulunan,
adrese sizi yönlendirecektir.
Tekrardan program üzerine gelip "F1" tuşuna basarsanız eğer GHİDRA'nın
yardımcı programı açar,sol tarafta ki menü de bu yardımcı menü için
istediğiniz
bilgiye sahil olabilirsiniz.
25. Konunun sonuna gelmekle beraber son olarak programda ki ekranda
görüldüğü üzere Sol tarafta ki pencere "Assembly" penceresi olmakta,sağ
tarafta ki pencere ise
C için "Decompiler" yani derleyici penceresi bulunmakta.