Discussion

Buffer Overflow Saldırıları ve Binary Exploitation’da Kullanımı

Started by İMRAN · 07 Aug 2025 19:01 · 131 Views · 0 Replies
Thread Starter #0

🧠 Konunun Tanımı


Buffer Overflow (tampon taşması), bellekteki bir tampon (buffer) alanına, belirlenen boyuttan daha fazla veri yazıldığında oluşan bir güvenlik açığıdır. Bu tür taşmalar, bellekteki komşu alanların üzerine yazılarak çalıştırılabilir kötü amaçlı kod enjeksiyonuna yol açabilir.


Bu, binary exploitation (makine kod düzeyinde sömürü) alanında en bilinen saldırı tekniklerinden biridir.




⚙️ Teknik Anlatım: Nasıl Çalışır?


📌 Basit C kodu ile örnek:


C
12345678910111213#include <stdio.h>
#include <string.h>

void vulnerable_function() {
    char buffer[64];
    gets(buffer); // GÜVENLİ DEĞİL!
    printf("Girdiniz: %s\n", buffer);
}

int main() {
    vulnerable_function();
    return 0;
}


Bu kodda kullanıcıdan alınan veri, buffer adındaki 64 baytlık alana yazılır. Ancak gets() fonksiyonu girilen verinin boyutunu kontrol etmez. 64 bayttan fazla veri girilirse, stack (yığın) üzerindeki diğer veriler –örneğin geri dönüş adresi (return address)– üzerine yazılabilir.

🔓 Sömürü (Exploit) Aşamaları

AşamaAçıklama
1️⃣Kullanıcı girdisiyle buffer sınırı aşılır.
2️⃣Return Address üzerine zararlı kod adresi yazılır.
3️⃣Fonksiyon sonlandığında ret komutu ile bu kod çalıştırılır.
4️⃣Shell açılabilir, sistem ele geçirilebilir.

🔍 Neyi Ele Geçiriyoruz?

Buffer overflow ile genellikle hedeflenenler:
  • Program kontrol akışı (örn: EIP, RIP)
  • Shell açmak (shellcode enjekte edilir)
  • Yetkileri yükseltmek (root erişimi)
  • Gizli veriye ulaşmak (parola, token vs.)

🧱 Modern Koruma Yöntemleri

Koruma MekanizmasıAçıklama
Canary (Stack Canary)Stack’te özel bir kontrol değeri tutulur. Eğer taşarsa, program kapanır.
DEP/NX (No eXecute)Stack veya heap gibi alanlarda kod çalıştırılması engellenir.
ASLR (Address Space Layout Randomization)Bellek adresleri rastgeleleştirilir, adres tahmini zorlaşır.
RELRORead-only relocation segmenti koruma altına alınır.
Fortify SourceDerleme sırasında strcpy, gets gibi işlevler yerine güvenli sürümler kullanılır.

💣 Gerçek Hayattan Örnekler

YılAçık / SaldırıAçıklama
2001Code Red WormMicrosoft IIS’teki buffer overflow ile binlerce sistem ele geçirildi.
2003SQL SlammerSQL Server’daki overflow açığı ile internet trafiği %25 yavaşladı.
2021Sudo Baron SameditLinux’ta sudo komutunda overflow açığı ile root erişimi sağlandı.

🧪 Exploit Geliştirme Ortamları

Ortam / PlatformKullanım
pwntoolsPython ile otomatik exploit geliştirme
GDBGNU Debugger, stack üzerinde değişiklikleri analiz etme
Radare2Reverse engineering, disassembly
ROPgadgetReturn Oriented Programming zinciri oluşturma
Pwnable.kr / OverTheWireUygulamalı binary exploit eğitim platformları

You must be logged in to reply.

0 quotes selected