GNU Debugger Stack Segment Analizi

Pentester

Özel Üye
8 Eyl 2016
1,646
995
c2u8ej1.png


4 parametre alan fonksiyonum var. Flag, buffer isminde local değişkenlerim var bunların değerlerini de girdim. Main de fonksiyonumuzu aldığı parametrelere göre değerlerini vererek çağırdım.

a283ohk.png


Programı derleyip GDB de çalıştırdım. Şimdi test_function çağrılmadan önceki instructiona ve test_function içindeki ilk instructiona break point koyacağım.

haidv3m.png


Şimdi programı çalıştırıp rip, rbp, rsp instructionlarımın durumuna bakacağım.

c5u61qy.png


İnstructionlarımın tuttuğu adresleri görüyorum. Rsp ve rbp stack segmentte, rip ise text segmentte yer alır. Rsp ve rbp de yazma izni varken rip de sadece okuma işlemi yapabiliriz.

tctw1o3.png


Ripden 5 tane daha adres getirdiğimde rip’nin ilk hangi adrese point ettiğini ve o adreslerin hangi adreslere point yaptığını görüyorum. RIP instruction’ın çalışma mantığı da, program çalıştığı anda rip text segmentte ilk adrese set edilir program çalışmaya başlar. İşlemci de sırayla RIP’nin point ettiği instruction okunuyor, bu instruction’ın byte değeri rip’ye eklenerek bir sonraki instruction bulunuyor. Bu işlem sürerken de rip’nin ilk gösterdiği instruction da çalışmış oluyor. Son olarak Burada call komutu ile de test_function içindeki ilk instruction çağrılıyor, yani test_function’a gidiliyor.

Buraya kadar test_function çağrılmadan önceki durumu inceledim şimdi cont edip test_function içine girelim. Daha sonra registerlarımızın durumlarına tekrar bakalım.

ok0akr2.png


İlk breakpoint koyduğum yeri incelediğimizde yani main içindeyken rbp rsp adreslerimizin şuan yeni fonksiyona geçince adreslerin değiştiğini de görüyorum.

scgzn23.png


RIP’den 5 adet veri getirdim. Görüdlüğü gibi RIP registerım test_function içinde. Şimdi de rsp’den 4 bytelık değerler getireceğim.

m43e7rb.png


Rsp den 16 tane 4 byte değer getirdim. Şimdi bir de main’i disassemble edeceğim burada dikkat çekmek istediğim bir nokta var.

jjaad5t.png


Stackte gördüğüm beyaz ile üstünü çizdiğim alan benim fonksiyonum çalıştıktan yani call edildikten sonra gidilen adres yani return adrestir. Call’dan sonra mov komutuna geçiliyor işte bu mov komutundaki adres rip’nin dönüş yani return adresidir. Burada return adresine dikkat çekmek istedim ki bu adresi daha sonra buffer overflow exploit yönteminde değiştirip fonksiyonun devam etmesi gereken yere gitmesini engelleyip kendi yazdığım instruction’a yönlendirebilirim. Okuduğunuz için teşekkürler.

 

Anonimbirix

Katılımcı Üye
15 Mar 2021
781
167
Bunun eğitimini nereden alabilirim? Blue teame katılacak kadar yetenekli olmak istiyorum ne konularda kendimi eğitmeliyim?
 

Pentester

Özel Üye
8 Eyl 2016
1,646
995
Bunun eğitimini nereden alabilirim? Blue teame katılacak kadar yetenekli olmak istiyorum ne konularda kendimi eğitmeliyim?
Malware analiz, network forensic, tersine mühendislik gibi konulara bakabilirsin. Zaten düzenli olarak eğitim konuları hazırlıyoruz. Oralardan kendine pay çıkarıp araştırıp üstüne koyabilirsin.
 

Anonimbirix

Katılımcı Üye
15 Mar 2021
781
167
Malware analiz, network forensic, tersine mühendislik gibi konulara bakabilirsin. Zaten düzenli olarak eğitim konuları hazırlıyoruz. Oralardan kendine pay çıkarıp araştırıp üstüne koyabilirsin.
Teşekkürler bakacağım ilk önce kali araçlarını öğreneceğim sonra tersine mühendislik.
 
Ü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.