Buffer Overflow
İşletim sistemlerin çok kullanıcılı sistemlerde kullanılmaya başlamasıyla birlikte sistemlerde kullanıcıların yetkisi de sözkonusu olmuştur. Kişisel işletim Sistemlerinde (örneğin DOS) sistemi aynı anda tek kullanıcı kullandığı için bütün dosyalara erişebilir, okuyabilir vs. Ancak aynı anda pek çok kişi tarafından kullanılan İşletim sistemlerinde sistemin bir yöneticisi olmak zorundadır ki bu Novell’de supervisor, Unix ve clone’ların da root, NT’de administrator olarak adlandırılır. İşte bu çok kullanıcılı sistemlerde yetkisini artırmak isteyen normal kullanıcılar sistemde daha yetkili hale gelebilmek için “exploit” dediğimiz programlar yazmışlardır.
Exploit nedir?
Exploit bir sistemdeki zayıflığı sömüren kodları bütününe denir.
Sistem üzerinde çalışan programların firewall ın antivirusun mail servislerinin barındırdığı zayıflıkları kullanmak için yazılırlar. C dili, perl dili, ruby, python, gibi dillerle yazılırlar. Her dil için ayrı ayrı kullanma tarzları ve programları vardır. C exploitler cygwin yada Linux işletim sistemlerinde, perl exploitler yine linuxlerde ve activeperl de çalıştırılır. Bunlar bizim konumuz değil. Ondan şimdilik geçiyorum. Exploitleri tanıyalım.
Kullanım şekline göre Exploitler 2 ye ayrılır:
1)Uzaktan Sömürücü Saldırılar ( Remote exploit Attacks)
2)Yerel Sömürücü Ataklar (Local Exploit Attacks)
Buffer overflow`larin ortaya cikma tarihi 1970`ler. Ilk public kullanimi 1980`ler (Morris Worm). Kendisiyle ilgili dokumanlar ve kodlar Internet`te 1990`dan beri yayinlaniyor. 2001 senesindeyiz ve hala bu konuda Turkce dokuman YOK. Bu dokuman boyle asiri detay iceren ve cok dikkat gerektiren konularla ilgili dokumanlar serisinin ilki olup, en temel acik turu olan lokal programlardaki buffer overflow aciklarini kullanan exploit yazmayi ogretmeyi amacliyor.
Read more…
BUFFER OVERFLOW SALDIRISI
Açıklama
Buffer overflow hataları kasıtlı veya kasıtsız br şekilde değiştirilmiş işlemlerin hafıza parçaları üzerine yazılması olarak nitelendirilebilir. IP (Instruction Pointer), BP (Base Pointer) ve diğer kayıtların değerlerinin üzerine yazmak hatalara, bölümleme kusurlarına ve diğer hataları oluşmasına sebep olur. Genelde bu hatalar uygulamanın çalışmasını beklenmedik bir şekilde sonlandırır. Buffer overflof hataları biz buffer (önbellek) üzerindeki char tiplerini etkilediğimizde yada değiştirdiğimizde oluşur.
BO hatalar (bu çeşit hataların orta adı) açıkça Stack overflow ve Heap overflow hatalarıdır. Aşağıdaki örnekler x86 mimarisinde kurulu GNU/Linux altında C dili ile yazılmıştır.
XSS’i (Cross Site Scripting), web tarayıcısı gibi bir istemcinin bir web uygulamasına güveninden yararlanmak olarak düşünebiliriz. Peki bir uygulamanın bir kullanıcıya olan güveni de exploit edilebilir mi? Cross-Site Request Forgery (XSRF veya CSRF) bir web uygulamasının bir kullanıcıya uyguladığı güveni kullanarak tamamen legal (aslında bir anlamda zaten öyleler) görünen kimlik doğrulaması yapılmış istekler yapılması işlemidir. Tehlikesi açıkça ortadadır. XSRF kullanıcıların banka hesaplarından para transfer istekleri yapmaya zorlamada, kullanıcı bilgisi sıfırlamada, kötü amaçlı epostalar göndermede kullanılabilir. Maalesef, XSRF açıkları için kolay bir çözüm yok. Ve bu açıklar olduğunda, çok sayıda oluyorlar. Bu dokümanın amacı hem uygulama geliştiriclerini hemde güvenlik uzmanlarını bu tip saldırılar konusunda eğitmek ve açıkların nasıl kapatılacağı konusunda tavsiyeler sunmaktır.
Öncelikle Metasploit Framework 2.7’yi aşağıdaki linkten bilgisayarınıza indirip kurunuz.
http://www.metasploit.com/tools/framework-2.7.exe
Metasploit yüklenir yüklenmez karşınıza kendi komut penceresini açar.
‘Show EXPLOITS’ komutu ile mevcut exploit listemizi görelim.
Bizim işimize yarayacak olan exploitin adı lsass_ms04_011
‘Use lsass_ms04_011’ komutu ile explotimizi çalıştıralım.