Aloha, geçtiğimiz günlerde yapılan Dünyayı Kurtaran Hackerın Oğlunun Sevgilisi (wut) adlı yarışmada yaptığım Rev300, Nam-ı diğer "Kambersiz Düğün Olmaz" sorusunun çözümünü paylaşmak istedim. Les go Elimizde bir exe dosyası var (ya ne olacağıdı demeyin yarışanlar bilir). Dosyayı çalıştırdığımızda bizi linux'tan aşina olduğumuz SegFault'un serseri abisi ACCESS VIOLATION hatası karşılıyor. evet immunity kullanıyorum çok mu komik. burada müslüm denen bir hıyar varmış diyip assembly koduna dalmak gibi bir gaflete düşmüyorum çünkü neden yapayım. onun yerine müslüm abiye bir "merhaba" demek için önce dosyayı temel statik analize tâbi tutup beni yönlendirecek ipucu arıyorum. Ne ucu demeden önce ben söyleyeyim yani dosya packlenmiş mi, anti analiz var mı, beklenmedik bir itlik puştluk var mı onlara bakayım hele bi dur Nothing found dediğine göre yazımızı burada sonlandırıy... Vay anasını sayın seyirciler. Entropi neydi, entropi düzensiz...
Bu yazımda yığın taşması zafiyetinin istismarında kullanılan Egg Hunting adı verilen bir teknikten bahsedeceğim. Adını bir paskalya bayramı geleneğinden alan bu teknik shellcode'umuzu yerleştireceğimiz buffer'da yeterli alan yoksa kullanılır. "Execve /bin/sh" gibi ufak boyutlu shellcode'larda bu tür sorunlar genelde ortaya çıkmasa da reverse-tcp gibi görece daha büyük shellcode'lar kullanıldığında, bunun üstünede IPS benzeri güvenlik önlemlerini atlatmak için encoding işlemi yapıldığında shellcode'umuz gittikçe daha büyük boyutlara ulaşmaktadır ve şayet yeterli alan bulunmuyorsa Egg hunting gibi tekniklere başvurulmalıdır. Bu tekniğin temel mantığı asıl çalıştırmak istediğimiz shellcode'un önüne etiket görevini üstlenecek bir string ( yabancı kaynaklarda TAG olarak geçer ) koymak ve oluşturulan bu EGG shellcode 'unu istismar edilecek programın erişebileceği bir hafıza alanına yerleştirmek ( örneğin programın aldığı başka bi...
Yorumlar
Yorum Gönder