- 1 Eki 2017
- 3,875
- 483
- 6
Egg Hunting Nedir?
Exploitin vazgeçilmezlerinden birisi olan Egg Hunting nedir?
Örneğin stack (Yığın) tabanlı bulunan bir hedef sistemimiz var. Diyelim ki bu hedef sistem üzerinde buffer overflow (Arabellek Aşımı) fark ettiniz ve Shell Shoveling (Ağ üzerinde bulunan kabuk ile ağ giriş, çıkışını uzaktan erişim etmek) amacı ile saldırı başlattınız. Eğer ki arabellekde yeteri kadar alan varsa shellinizi buraya atabilirsiniz. Fakat yeterli alan yok ise ne yapacağız? İşte burada Egg Hunting devreye giriyor. Egg Huntingin temel amacı yeterli veri alanı bulunmadığı zamanlarda sistem üzerinde bir tarama gerçekleştirir. Bu tarama sırasında shellinizi atabileceğiniz boş, müsait alanı belirler ve size iletir.
Sistemin temel çalışması ve mantığı bu şekilde işliyor peki ya bu saldırıyı bir resim ile anlatabilir miyiz?
Elbette;
Başlangıçta 220 Bytes Junk (Önemsiz) veri gönderdik. Daha sonra EIP registerı üzerine yazıp 365 bytelık shellcode yerleştirmemize rağmen hala 120 bytelık kullanabileceğimiz alan olduğu görülmektedir.
Sağ tarafta bulunan görselde ise 515 bytes veri gönderdikten sonra 365 bytes shell kod yerleştirmek istiyoruz. Ancak sistemde yeterli alanı bulamıyoruz. İşte tam bu noktada Egg Hunting devreye giriyor.
Eggs Hunting burada bir shellcode atıyor. Kendisine w00t diye bir etiket atıyor. Bu etikete Egg adı verilmekte. Bütün verileri taker taker geziyor ve uygun olan etiketi bulmaya çalışıyor. Bulduktan sonra etiketin arasına istediğimiz shellcodeu (reverse shell, bind shell) gibi etiketin arkasına kodlarını yerleştiriyor. İşlem başarılı olur ise jmp edi komutu ile doğrudan shellin bulunduğu dosyaya geçiyor ve kodu çalıştırıyor. Bütün işlemleri özetlemek gerekirse;
Resimde bulunan "\x66\x81\xca\xff\x0f\x42\x52\x6a\x02\x58\xcd\x2e\x3c\x05\x5a\x74\xef\xb8\x90\x50\x90\x50x8b\xfa\xaf\x75\xea\xaf\x75\xe7\xff\xe7" bizim hex kodumuzu temsil ediyor ve buradaki değer atadığımız Eggs olan w00t değeridir.
Exploitin vazgeçilmezlerinden birisi olan Egg Hunting nedir?
Örneğin stack (Yığın) tabanlı bulunan bir hedef sistemimiz var. Diyelim ki bu hedef sistem üzerinde buffer overflow (Arabellek Aşımı) fark ettiniz ve Shell Shoveling (Ağ üzerinde bulunan kabuk ile ağ giriş, çıkışını uzaktan erişim etmek) amacı ile saldırı başlattınız. Eğer ki arabellekde yeteri kadar alan varsa shellinizi buraya atabilirsiniz. Fakat yeterli alan yok ise ne yapacağız? İşte burada Egg Hunting devreye giriyor. Egg Huntingin temel amacı yeterli veri alanı bulunmadığı zamanlarda sistem üzerinde bir tarama gerçekleştirir. Bu tarama sırasında shellinizi atabileceğiniz boş, müsait alanı belirler ve size iletir.
Sistemin temel çalışması ve mantığı bu şekilde işliyor peki ya bu saldırıyı bir resim ile anlatabilir miyiz?
Elbette;
Başlangıçta 220 Bytes Junk (Önemsiz) veri gönderdik. Daha sonra EIP registerı üzerine yazıp 365 bytelık shellcode yerleştirmemize rağmen hala 120 bytelık kullanabileceğimiz alan olduğu görülmektedir.
Sağ tarafta bulunan görselde ise 515 bytes veri gönderdikten sonra 365 bytes shell kod yerleştirmek istiyoruz. Ancak sistemde yeterli alanı bulamıyoruz. İşte tam bu noktada Egg Hunting devreye giriyor.
Eggs Hunting burada bir shellcode atıyor. Kendisine w00t diye bir etiket atıyor. Bu etikete Egg adı verilmekte. Bütün verileri taker taker geziyor ve uygun olan etiketi bulmaya çalışıyor. Bulduktan sonra etiketin arasına istediğimiz shellcodeu (reverse shell, bind shell) gibi etiketin arkasına kodlarını yerleştiriyor. İşlem başarılı olur ise jmp edi komutu ile doğrudan shellin bulunduğu dosyaya geçiyor ve kodu çalıştırıyor. Bütün işlemleri özetlemek gerekirse;
Resimde bulunan "\x66\x81\xca\xff\x0f\x42\x52\x6a\x02\x58\xcd\x2e\x3c\x05\x5a\x74\xef\xb8\x90\x50\x90\x50x8b\xfa\xaf\x75\xea\xaf\x75\xe7\xff\xe7" bizim hex kodumuzu temsil ediyor ve buradaki değer atadığımız Eggs olan w00t değeridir.
Son düzenleme: