Burp Suite Kullanımı Detaylı Saldırı Anlatımı

1- Çevre Kurulumu

WAP testi için 3 ana etmen bulunuyor.

1-Browser (Tarayıcı) Firefox olacak.

2- Proxy ayarı (Burp Suit için uygun olacak)

3- Hedef Uygulama

Owasp Web Goat'taki hedef kodu:   no link

Burp Suite Kullanımı Detaylı Saldırı Anlatımı


Burp Suite Kullanımı Detaylı Saldırı Anlatımı





Kod, web uygulamaları için özellikle tasarlanmıştır.

Linux ile çalışmak isteyenler için Kali Linux adresi;

www.kali.org

Windows ya da Mac kullanmak istemeyenler için Kali ideal bir tercih olabilir.

Webgoat ve Kali indirme linki; gogole abinize sorun söyler.



Gerekli uygulamaları indirdiyseniz Burp Suite Çevre Kurulumu'nu anlatmaya devam edebiliriz.

Yükleme işlemi ile başlayalım.

Yüklemiş olduğunuz Kali sistemine apt-get-tomcat6 yazarak işleme başlıyoruz.

Sırada ikinci kodu yazmak var;

mv Downloads/Webgoat-5.4 war/var/lib/tomcat6/webapps/

Burası bütün uygulamaların dağıtıldığı Tomcat mağazasının bulunduğu yer.

mv Downloads/Webgoat-5.4 war/var/lib/tomcat6/webapps/

Kodun sonuna 'Webgoat.war' yazıyoruz. Artık Tomcat'i çalıştırmak için gereken kodu yazabiliriz.

Kali işlem sayfasının en altına

'service Tomcat6 start' yazarak komut veriyoruz.

Şimdi işlemi IceWeasel'den kontrol edelim.

Burada belirteceğimiz önemli bir ipucu bulunuyor. Yerel bir servis sağlayıcı ile çalışıyorsanız Fireforks, 'www.localhost.com' şeklinde yer değiştirebilir.

Iceweasel arama motoru bölümüne about:config yazarak 'Yapılandırma' sayfasını açalım.

Yapılandırma sayfasının arama bölümüne 'Alternate' yazarak

browser.fixup.alternate.enabled tercihine ulaşın. Kodun üstüne iki kez tıklayarak pasif hale getirin.

Şimdi tek yapmanız gereken, Config sayfasına aşağıda vereceğimiz kodu yazmak.

localhost:8080/WebGoat/attack

Ve uygulama çalışmaya başlıyor.

Karşınıza çıkan kullanıcı ve şifre işlemleri için Webgoat indirme sayfasında bulunan Google kodunu kullanmak gerekiyor. Kullanıcı ayarlarını oluşturmak için Kali sisteminde yer alan Webgoat indirme sayfasında 'Wiki' bölümüne gelin. Sık sorulan sorular bölümüne tıklayarak burada bulunan XML kodunu kullanabilirsiniz.

Burada bulunan kodu kopyalayarak Kali içinde bulunan etc:Tomcat6 dosyasına gelin.

Sırasıyla yapmanız gereken işlemler:

vm tomcat-users.xml tomcat-users.xml.bak.

Bu işlemi yaptıktan sonra, yeni bir kullanıcı yaratabiliriz.

Yeni kullanıcı yaratmak için Kali dosyasına yazmanız gereken kod:

vim tomcat -users.xml

Karşınızda açılan yeni sayfaya Webgoat indirme sayfasından kopyaladığınız kodu yapıştırın.

Kodu imlece  doğru orantılamaya çalışın, çünkü orantılamazsanız bazı durumlarda çalışmayabilir.

Kod sonrası Kali sayfasına gelerek tomcati yeniden başlatacağız.

Kod: service tomcat6 restart

Şimdi Config sayfasına gelerek yeniden deneyelim.

Kullanıcı ve şifre kısmına 'Guest' yazdıktan sonra uygulama çalışıyor.

Webgoat'ın sıkça sorulan sorular bölümünde kullanmanız için 4 kod görüyorsunuz. Kodlardan önemli olanı misafir kullanıcısı. Çünkü test bu kod ile aktif ediliyor. Bu işlemi de bitirdikten sonra, WebGoat kuruldu.

Şimdi Burp Suite'i başlatabilirsiniz. Sırasıyla Kali Linux, Web Uygulamaları, Web Uygulaması Proxy kategorileri altında yer alan 'Burp Suite' seçeneğine tıklayın.

Burp Suite açıldıktan sonra en önemli bölümün Proxy olduğunu söyleyebiliriz. Proxy tabına tıklayınız. Proxy tabı altında yer alan Seçenekler kısmında Tomcat'in dinleyici listesini göreceksiniz. Burada yer alan ayar çalışmayacak, bu nedenle değiştireceğiz.

Edit ekranında '8080' yazan kodu '8000' olarak değiştirin. Daha sonra, liste yanında bulunan 'Running' tabına tıklayın.

Burada yapılmak istenen, tarayıcının doğrudan Proxy ağına ulaşması. Daha sonra doğru Proxy ağı hedefe ulaşacak.

Proxy ağınız için bilgilere ulaşmak ya da ayarları değiştirmek isterseniz, WebGoat sayfasının sağ üst köşesinde yer alan 'Üç' Çizgiye tıklayabilir, sırasıyla Tercihler, Seçenekler, Gelişmiş Ayarlar; Network ve Proxy kısmına ulaşabilirsiniz. Ancak bunun için farklı bir çözüm önerimiz de var.

WebGoat sayfasında yeni bir sekme açarak arama bölümüne 'Foxy Proxy' yazın. Bu uygulamayı indirmek yararınıza olacaktır. Firefox'a uygulamayı indirdikten sonra kurun.

Önünüze gelen 'Restart' seçeneğini tıklayarak uygulamayı aktif edebilirsiniz. Aktifleştirme sonrası IceWeasel tabının alt kısmında Foxy Proxy iconunu göreceksiniz.

İkonun üzerine tıklayın. İkonun üzerine tıkladıktan sonra yeni Proxy ekle seçeneğine tıklayın. Genel bölümden, Proxy adını Burp Suite olarak değiştirin

Proxy Detayları kısmından, yerel servis sağlayıcı bölümüne, 127.0.0.1 yazın. Port kısmını da 8000 yazın.

Şimdi yukarıda bulunan ikonun üstüne sağ tıklayarak, Burp Suite seçeneğini seçin.

Şimdi bu ekrandan çıkabilir, Burp Suite'in kendi ekranına gelebiliriz. Proxy ve HTTP ayarları seçeneğine sırası ile tıklayın. Burası boş, zira şu anda Proxy trafiği yok.

Şimdi Config sayfasına yeniden dönelim.

localhost:8080/WebGoat/attack

kodunu yazarak çalıştıralım. Burp Suite HTTP bölümünde, artık trafik görebilirsiniz.

İşlem engellenmesi bölümünde, hangi işlemlerin engellendiğini görmeniz ayrıca mümkün.

Çevre kurulumuna ilişkin bilmeniz gerekenler bunlar.



Burp Suite Genel Konsept

Şimdi Burp Suite Proxy'nin genel konseptinden bahsedelim. Burp Suite Proxy'si uzman bir şekilde dizayn edilmiş. HTTP tipli bir Proxy çeşidi. HTTP protokolünde çalışan bir Proxy tipi olan Burp, SSL bağlantılarında da kullanabilir. Çünkü Burp SSL'i de destekliyor.

Burp Suite Mimarisi

Tarayıcıdan WebGoat'a giden bütün işlemlerin trafiği, doğrudan Burp Suite yardımı ile tamamlanıyor. Bu oldukça kolay. Tarayıcıdaki Foxy Proxy ağı, almış olduğu bütün trafiği Burp Suite'e gönderiyor. Proxy ağı her zaman işlemleri denetleyemiyor. Bu sebepten ötürü trafiği Burp Suite'e göndermeli.

Ancak Foxy Proxy ağını Burp Suite'e yönlendirmek konusunda sizi zorlayacak teknik bir sorun yok.

Detaylara geçmeden önce Burp'e bir bakalım.



Burp Suite ekranını açın ve Burp Proxy ekranına gelin. Burp'ün kendi içinde çok fazla modülü var. Hedef, Proxy, Tarayıcı bunlardan yalnızca birkaçı. Her bir modül farklı özelliklerle destekleniyor. Request adı verilen ricalar genellikle Burp Suite'in Proxy ekranında bulunmaktadır. Burada Proxy'niz ile alakalı her detayı görebilirsiniz. Burp Suite'in hemen altında bulunan Request bölümünden WebGoat atak sayfası ile ilgili işlemleri bulabilirsiniz. Ayrıca burada bulunan işlemi 'Repeater' sayfasına göndermeniz de mümkün.

Şİmdi size Repeater'in ne iş yaptığını gösterelim. Çünkü her bir modülde farklı bir görevi var. Proxy bölümünde, ağların nereye gönderildiği görmek mümkün. Target yani hedef bölümünde, her bir trafiği ve yapmanız gerekenleri görebilirsiniz. Repeater kısaca manual test olarak yorumlanabilir. Burada işlem ve tepki arasındaki sonucu görebilirsiniz. Sıralayıcı bölümü, test için oldukça yararlı. Burada birtakım matematiksel testler yapılabilir.

Decoder bölümü, bir kodu diğerine bağlamak için oldukça yararlı. Bu sayede de hayatınızı oldukça kolaylaştırabilir. Compare bölümü, Request ve Response bölümlerini kıyaslamak için oluşturulmuş.




Tekrarlama Modülü (Repeater Module) 4



Tekrarlama modülünde ne yapabileceğimiz sorusunun cevabı bir istekte bulunmak ‘request’ kısmından bulunabilirsiniz. Bunun amacı yapmış olduğunuz isteği tekrarlamak. Eğer gözünüze ilginç görünen bir durum olursa, birebir olarak işlem başlatabilmeniz için Repeater modülü oluşturulmuş.



Ekranın sol tarafında bir istek oluşturup ‘Go’ kısmına basarak, ekranın sağ tarafından yanıt (Response) alabilirsiniz. Burada istekler arasında ileri ya da geri gidebilir ve aynı zamanda işlemin parametreleri ile de oynayabilirsiniz. Tekrarlama oldukça basittir. Şimdi, Webgoat’ta bir hackleme karşı saldırısı gerçekleştireceğiz. Bunu da tekrarlama modülü kullanarak yapacağız.



Webgoat’ta tarif cümlelerine bakarak bunu nasıl yapacağınızı öğrenebilirsiniz, ya da Google’dan biraz araştırma yapabilirsiniz. Şimdi durumu biraz özetleyeyim.



Karşı XSS yazılım saldırısı; İnput Request kısmının ve aynı zamanda İnput’un size verdiğinin, sağ ekranda aldığınız yanıtı manipule etmeye yarar. Response kısmında bir HTML kod meydana getirir. Eğer server, input parametrelerini doğru şekilde onaylamazsa, ya da Response kısmından çıkış yapmazsa, böyle bir durumda ne yapabileceğinizi de belirtelim. Böyle bir durumda, input parametresine bir HTML kod koyabilirsiniz, bu durum kodu Response kısmına yerleştirecektir. Bunun dışında HTML kodun içine bir JS kodu da yerleştirmeniz mümkün. Browser (tarayıcı) bunu da kabul edecektir.



Bu Durum Neden İyi?



Cross site scripting (XSS) internet aplikasyonları arasında bir tampon görevi görmektedir. Bu yaygın olduğu gibi, oldukça tehlikeli de olabilir. Bu durumda kullanıcının tarayıcısında Java script kodlarına karşı bir yanıt alırsınız. Bununla ne isterseniz yapabilirsiniz. Oturum çerezlerini çalmayı deneyebilir, ya da uygulamadan data bilgilerini çalmayı deneyebilirsiniz. Data bilgilerini isteyip kendi server bilgilerinizi iletirsiniz. Ya da geri planda diğer tarayıcılara karşı saldırı yapan sayfaları yükleyebilirsiniz. Böylece tarayıcıyı patlatabilir, kullanıcının bilgisayarına tam erişim sağlayabilirsiniz. Cross- scripting ile bunun gibi birçok şey yapabilirsiniz.



Şimdi WebGoat’da Cross-scripting kısmına gelin, sonra da reflectes cross scripting kısmına tıklayın. Reflect kelime anlamı olarak response kısmına input kısmına koyduğunuz istek için gelen cevaptır. Ekranda input alanını görebilirsiniz, aynı zamanda patlatacağımız alanları da. Şimdi yan sayfadan atağımda bana yardımcı olarak test kodunu kullanıyorum ve bütün input alanındaki satırlara bu kodu koyuyorum. Daha sonra da ‘Satın Al’ tuşuna basıyorum. Ve üst kısma mesajımız da geldi. Kodda XSSTEST kısmını göremiyorsunuz. İndikatörde böyle bir hatanın olması aslında oldukça güzel.



Şimdi aşağıda belirteceğimiz kodu kullanarak konsül kısmını açalım.





Şimdi konsülü açtıktan sonra, hata kodu üzerine tıklayarak HTML’ de kontrol sağlayalım. HTML kısmına geldiğinizde, serverdan almış olduğunuz mesajı görüyorsunuz. Bunun hemen altında ise XSSTEST kodunu. Tarayıcı bu kodun geçerli olduğunu düşünüyor ve onu geçirmeye çalışıyor. Dolayısı ile ekranda bu kodu göremiyorsunuz, çünkü tarayıcı bunun HTML kodu olduğunu düşünüyor. Bu Cross Scripting’in hatalarından bir tanesi. Şimdi ekrana geldiğinizde, dijital kodunuzun reddedildiğini görüyorsunuz. Bu Cross S’nin en basit örneği.



Tamam şimdi, burada bir şey var. Yukarıda mesaja bakarsanız, dijital kodun reddedildiğine dair bir mesaj göreceksiniz. Data’yı normal bilgilerine çeviriyorum ve bütün bilgileri 1 şeklinde düzenliyorum.



Yalnızca XSSTEST kodumu ‘three digit’ kısmında bırakıyorum ve yeniden ‘Satın Al’ tuşuna basıyorum. Bunu Burp’te gördüğünüz ‘şu kodu’ almak için yaptım. Şimdi Proxy kısmına gelelim. Şimdi de kodu bulalım. Gördüğünüz kodda bütün datalar bulunuyor. Burada ‘patlayabilen’ kısmı görüyorsunuz. Şimdi seçenek üzerine sağ tıklayıp ‘Okuyucuya Gönder’ kısmına tıklayın.



Şimdi ‘Go’ seçeneğine tıklayın ve tekrar deneyelim. Response kısmının arama bölümüne ‘XSSTEST’ yazarak arayın. Request kısmındaki parametreleri değiştiriyorum ve görmüş olduğunuz kısmın HTML kodu bölümüne ‘test’yazıyorum. Sonra da tekrar ‘GO’ diyelim. Response kısmında tekrar ‘TEST’i aratıyorum. Evet şimdi, normal görünüyor. Şimdi daha kullanışlı bir şey deneyelim. Aslında bunu ‘Parametres’ –PARAMS- bölümünden yapabilirsiniz.



Birinci Alana –Field1- sırasıyla –‘script, alert ve 42 ve script- ‘ kodunu HTML’e uygun bir biçimde giriyoruz. Bu kod Cross Scriting’in en temel kodu. Şimdi yeniden ‘Go’ diyelim. Şimdi Response bölümünde ‘ALERT42’ seçeneğini yeniden aratın. Burada aydınlatılmış bir şekilde kodu görebilirsiniz. Şimdi ‘RAW REQUEST’ bölümüne yeniden dönüyoruz. Yeniden sağ tuşa tıklıyoruz ve Request on Browser seçeneğine tıklıyoruz. Bunu gelede 1 istek oluşturmak istediğinde deneyebilirsiniz, bu size tarayıcıdaki cevabı verecek.



Burada da iki seçeneğiniz var. Bunlardan biri ‘original session’ iken diğeri ise ‘current session’. Original session, Raw kısmında görmüş olduğunuz orijinal Cookie’deki kod olarak tanımlanırken, diğeri ise Burp’ün çerezlerde yeniden bir kod tanımlaması yapabilmenize fırsat veren seçeneği. Bununla çerez değişecek. Bu iyi bir şey, çünkü bazen eski kod ile oynuyorsunuz, ve eski çerezdeki kod ile işlem yapamıyorsunuz. Şimdi biz de ikinci seçeneği seçeceğiz.



Açılan sayfadaki kodu kopyalayın. Şimdi arka sayfada neler oluyor bir bakalım. Burp sizin yeni bir istek oluşturduğunuzu ve tarayıcıdan bir cevap oluştuğunu şimdi bilecek. Yeni bir ‘tab’ açıp, kopyaladığınız kodu oraya yapıştırın. Ve karşınızda Javaya yerleştirmiş olduğunuz Cross S kodunu görüyorsunuz. Şimdi okay tuşuna basın. Şimdi aynı kodla konsülü tekrar açalım.







Ve konsülde yerleştirmiş olduğunuz kodu görüyorsunuz. Bunun anlamına gelince; istek teslim etmek için bir kullanıcı alırsanız, istediğiniz JS kodunu yok etmek mümkün. Böylece istediğiniz kişinin kullanıcısında JS kodlarını değiştirebilirsiniz.



Bazen Tekrarlama modülü kullanmak istediğinizde, tarayıcı birtakım filtreler uygulayabilir, bu Cross S’i saldırılardan  korumak içindir. İstek yaptığınız kodun ‘RESPONSE’ kısmındaki karşılığına baktığınızda bazı filtreler görürsünüz. Böyle durumlarda Alert kodu dışında başka bir kod deneyebilirsiniz. Başka bir örnek vermek gerekirse, <img, src, onerror alert 42> bunlardan birisi olabilir. Bunlar sizin JS kodunuzu oluşturur. Tekrar ‘Go’ seçeneğine basarak response kısmından kodu taratın. Kodu bulduğunuzda bazı kısımların filtrelendiğini ama img kısmında filtre olmadığını göreceksiniz. Konsülde sağa tıklayıp tarayıcıda aratarak da durumu görebilirsiniz.



Yeni bir tag açıp kodu arattığınızda, kodun yeniden yok edildiğini göreceksiniz. Cross S ve Tekrarlama Modülü’nü anladıysanız, şimdi diğer bölüme geçelim.




Hedef ve Örümcek Bölümü



Merhaba, bu bölümde iki modülden bahsedeceğiz. Bunlardan biri ‘Target’ iken, diğeri de ‘Spider’ olacak. Şimdi ne yapacağımızı kısaca özetleyelim. Target kolaylıkla çözebileceğiniz bir modül, Burp ve sizin aranızda bir yapı olarak tanımlanabilir. Spider kısmı ile konsept olarak Web- spidering ve Web-crowling’e benziyor. Bütün aplikasyonu keşfetmenize yarıyor.



Bunu size çizerek anlatayım.



Bir sayfa düşünelim. Bütün referanslarını bir sayfada toplamış olsun ve bir sayfadan diğerine iletsin. Burada ‘HREF’ şeklinde bir JS kodu olsun, ya da herhangi bir sayfaya teslim sağlayacağınız bir form olsun. Bir sayfada toplanan referanslarının aynısının bir başka sayfaya yazılması olarak yorumlanabilir. Kısaca bu modülün, bütün kullanılabilir sayfaları keşfettiğini söyleyebiliriz.



Sayfalar ve linkler arasında bir geçiş bulunuyor. Bu aplikasyonda ne olduğuna dair iyi bir görünüş. Bu aslında iyi bir şey, çünkü bazen Web Goat’da SS kısmı için tıklamalar yapabilirsiniz ve herhangi bir şeyi teslim edebilirsiniz. Ama bu hem çok fazla zaman alır, ve her şeyi görmeniz mümkün değildir. Çünkü bazı linkler sayfada gizli olabilir. Bunları her zaman görmeniz mümkün olmasa da, HTML kodunuz olduğu için Spider bunları görebilir. Yani bunun çok daha hızlı olduğunu söyleyebiliriz. Spider’i kullanmanın birçok avantajı mevcut. Ben aslında bunu çok fazla kullanmıyorum. Çünkü; Spider her şeye tıklayabiliyor. Gizli dosyalarınızın olması durumunda mesela, Spider bazı zamanlarda ‘Delete butonuna’ da tıklayabiliyor. Ve bunu aygıttan silmesi mümkün. Çünkü bu Spider’in çalışma biçimi. Dolayısı ile kullanmadan önce bunu düşünmeniz gerekir.



Burada bir de seçenekler kısmı var ama bu çok fazla önemli değil. Burada ‘Form’ kısmını kontrol etmenizi öneririm. Burası önemli. Burada Burp’ün nasıl tepki verdiğini görebilirsiniz. Çünkü Burp birçok bilgi ile dolu olabilir. Burada bazı seçenekleri değiştirebilirsiniz. Teslim formu görmek istememek ya da pop up ekranları ile alakalı bazı seçenekler bulunuyor.



Burada önemli bir diğer bölüm de ‘Application Login’ bölümü. Login kısmı olmadan Spider tek başına ihtiyacınız olan bilgiyi geçiremez. Çünkü ‘Login’ yapılmamıştır. Burada normal formları ve yapmak istediklerinizi tercih edebilirsiniz. Burada manuel seçenekler de bulunmaktadır. Çünkü Burp bazen kendi seçenekleri uygulamaz. Spider kısmı bunlardan ibaret.



Şimdi ‘Target’ kısmından bahsedelim. Daha sonra da Spider’i nasıl kullanacağımızı. Daha önce de bahsettiğim gibi, Target Burp içindeki metinlerin iyi yapılandırılmış bir halidir. Burada çok fazla şey olduğunu görüyorsunuz. Çünkü ben bazen Fireforks’ta Burp’ü kapatmayı unutuyorum. Ama Burp’le beraber bilgisayar kullanmayı seviyorsanız burada birçok URL görebilirsiniz. Bazen test ettiğiniz metinler web sayfasından direkt olarak yüklenmiyor. Bu sebepten ötürü URL’ler farklı olabilir.



Burada bizim için önemli olan ne?

Burada bizim için önemli olan uygulamayı görüyorsunuz. Yerel hotsu atat olarak isimlendirilmiş. Buraya tıklarsanız altında çeşitli seçenekler göreceksiniz. Webgoat bunlardan bir tanesi. Tıklayalım. Burada Webgoat’ın saldırı kodlarını, resimlerini ya da JS kodlarını görebilirsiniz. Atak kısmına geldiğinizde yapmış olduğumuz istekleri görüyoruz. Burada Cross S ve repeater kullanarak oluşturmuş olduğumuz istekleri belki hatırlayabilirsiniz.



Kısaca burada oluşturmuş olduğumuz isteklerin tamamına, şifrelere ve birçok ekstraya ulaşabilirsiniz. Bu oldukça güzel çünkü Proxy ve benzer konularda fark etmediğiniz bazı şeyler var. Eminim ki images ve JS kısmı pek dikkatinizi çekmemiştir. Peki burada ne yapabilirsiniz? Burada sağ tıklayıp URL’yi kopyalayın. Tarayıcıda yeni bir sekme açarak yapıştırdığınız kodu arattığınızda, JS kodunu göreceksiniz. Kısaca Target kısmında ilginç bir şey keşfettiğinizde sağ tıklayıp URL’yi kopyalayarak tarayıcıda aratmayı tercih edebilirsiniz.



Target bu sebepten güzel bir uygulama, size daha önce fark etmediğiniz görüntülemeleri veriyor. Burada bir diğer önemli nokta da ‘Scope’ kısmı. Burada kısaca kendi ‘kapsamınızı’ tanımlayabilirsiniz. Burada her şey test edilemez. Çünkü test ettiğiniz şey legal olmak zorunda. Scope da size bu kapsamaları oluşturma imkanı verir. Bu alana gelin ve kendi tanımlamanızı yapın. Başka web sitelerini test etmediğinize emin olmanız gerek bu noktada. Bizzat manuel olarak da yeni Scope eklemeniz mümkün. Bunun için ‘ADD’ seçeneğine tıklayın.



Ya da site adresine gelerek yerel hotsu Scope’a ekleyebilirsiniz. Sağ tıklayarak ‘ADD to Scope’ seçeneğine tıklayın. Daha sonra eklenen kapsamlarda, az önce tıklamış olduğunuz URL’yi görebilirsiniz.



Şimdi Spider’i Nasıl Başlatacağımızı Görelim



Şimdi yerel host kısmına gelin ve sağ tıklayarak ‘Spider this host’ ibaresine tıklayın. Önünüze çıkacak olan doğrulama uyarısına ‘Yes’ deyin. Ve örümcek kısmı başlayacak. Önünüze çıkacak olan teslim formunda değer kısmına ‘Test’ yazarak uygulamayı test edin. Form tekrar önünüze gelecek. Buraya da tekrar ‘test’ yazarak submit form seçeneğine tıklayın. Şimdi üst sekmeden tekrar ‘Spider’ seçeneğine geliyoruz. Burada da birazcık istatistiki bilgiler görüyoruz.



Burada 75 istek yaptığımız bilgisine ulaşabiliriz. Byte transferleri ve benzeri bilgilere ulaşabiliriz. Peki şimdi internet sitesinden Spider’in hiç görmediği yeni bir sayfa yüklediğinizde ne olacak bunu görelim. Şimdi tekrar ‘test’ diyelim ve ne olacağına bakalım. Ve şimdi 80 istek yapıldığını istatistik kısmında görebilirsiniz. Spider’in işleyişi bu şekilde. Target kısmında çok çok fazla datayı görmek mümkün.



Kısa bir tekrar yapacak olursak, Spider aplikasyonunuzu keşfetmek için oldukça güzel. Ama bu noktada da dikkatli olmanız gerek. Yapmak istemeyeceğiniz şeylere de sebebiyet verebilir. Target yapının yalnızca bir görüntüsüdür. Size site haritası kısmındaki URL’leri de incelemenizi öneririm. Arada bir gelip burayı inceleyin ve gözlerinizi açık tutun. Hazırsanız, şimdi diğer bölüme geçelim.



Sıralayıcı ve Tarayıcı



Merhaba, bu bölümde iki adet eklentiden bahsedeceğiz. Biri sıralayıcı, diğeri de tarayıcı olacak. Sıralayıcı ile başlayalım. Sırayıcı, entropi ile ilgili matematiksel analizler yaptığınız bir eklenti. Sequencer sizin için ne yapar sorusuna gelirsek, çerezler ve çeşitli belirteçler genelde aplikasyonda yer almaktadır. Belirteçleri toplamak için otomatik olarak istek göndermek ve bunların matematiksel analizi, Sequencer tarafından yapılır. Random değerleri düzenler ve yönetir. Ve bütün bunların ötesinde size bunların ne kadar rastgele olduğunu söyler. Bu test sizin için iyi olabilir. Bunlar küçük değişiklikler yapabilir ya da rastgele değerlere bakabilir. Bu işlemin doğru olmadığını hissediyorsanız, mutlaka test etmeniz gerekmektedir. Eğer bunlar rastgele değilse, çerezleri kontrol etmek için yeni bir yol bulmanız gerekir.

Şimdi bunun nasıl çalıştığına bakalım. Burada ana Sıralayıcı sayfasını görüyorsunuz. Buradan istediğiniz isteği bulabilirsiniz ve toplanmış olan belirteçleri test edebilirsiniz. Şimdi Web- Goat’a geri dönüyoruz. Tarayıcıyı temiz bir çalışma için yeniden başlatıyorum. Ve sayfayı yeniden yüklüyorum. Ve burada Burp’te olanları görüyoruz.



İlk isteği gönderirken, herhangi bir çerezimiz bulunmuyor, herhangi bir cevap da almıyoruz. Ama ikinci istekte ‘response’ görmek mümkün. Response da bir cooki parametresi ayarlıyoruz. Ve sequenceri neden kullandığımız kısmına gelince, değerleri kontrol etmek olarak işaretliyoruz. Ve burada, session çerezi elde etmek için gönderebildiğimiz kadar Request oluşturacağız. Ekran üstüne sağ tıklayarak ‘Send To Sequencer’ seçeneğine tıklıyoruz, daha sonra sıralayıcı sayfasında oluşturmuş olduğumuz isteği görebiliriz. Alt kısımda, test için ne tür bir cevap almayı tercih ettiğinizi işaretliyorsunuz. Burada dilediğiniz seçeneği işaretleyebilir ya da form alanına da gelebilirsiniz. Bu sizin için önemli olabilir, çünkü buradan bir input seçip sürekli random işlem alarak, güvenliği koruyabilirsiniz. Bu önemli çünkü değerler rastgele değilse, değerler fake olacaktır, böyle bir durumda Cross S koruması da işlevsel olmayacaktır.



Custom location kısmı da oldukça önemli konulardan birisi. Burada cevaplarınız var. Burada düzenli kodları da kullanabilirsiniz. Ancak ben set cookies kısmındaki kodu seçiyorum. Buradaki istediğinizi seçin, yukarıda Burp’ün sizin için bunları yönettiğini ve düzenlediğini göreceksiniz. Bu oldukça güzel bir şey, özellikle de belirteci kendiniz tanımlayamadığınız zaman. Bu ne bir kod ne de bir çerez. Bu sadece web sayfasının bir parçası. Bu tool ile neye bakıyorsanız, kolay bir şekilde tanımlayabilirsiniz.



Ama biz şimdi sadece Cookie’leri göreceğiz. Burada şimdi değiştirmeyeceğim birtakım seçenekler var. Şimdilik sadece ‘Start low capture’ seçeneğine tıklıyorum. Ve görebileceğiniz gibi, burada gönderilen Requestler yer alıyor, aynı zamanda toplanan belirteçleri de görebilirsiniz. Otomatik analizi de kullanmanız mümkün. Burada her 100 belirteçte bir matematik analiz yapılıyor, bunun zamanla nasıl değiştiğini görebilirsiniz. Şimdi bunu kapatacağım ve bir analiz yapıyorum. Size bu sayfadaki her şeyi açıklamayacağım. Buradan bütün datalara bakabilirsiniz. Bütün günlük analizler ve benzer her şeyi.



Burada bir şey önemli, eğer Token ile ilgili bir şey bilmiyorsanız, bu eklenti ile bunları kontrol etmek oldukça basit. Size önerim buradaki her şeyi kontrol etmeniz olacak. Problemin ne olduğunu kontrol edin, böyle bir durumda belirteçleri kopyalayabilirsiniz.



Bazı zamanlarda buraya metin yerleştirirseniz ilk 5 karakterin her zaman aynı olduğu göreceksiniz. Böyle bir durumda tokenleri kendi başınıza yönetebilirsiniz. Bunu yaptığınızda söz konusu belirteçler, session belirteçleri olursa, bu olağanüstü olacaktır. Çünkü yeni çerezler oluşturarak bunları serverinizde kullanabilirsiniz. Sequencer, oldukça güzel bir uygulama ve hızlı test imkanı sağlıyor. Ve oldukça basit.



Bahsedeceğimiz bir diğer konu da tarayıcı. Burada da görebileceğiniz gibi, Scanner üçlü düzenlemenin bir parçası değil. Bundan bahsetmemin bir sebebi var. Çünkü profesyonel bir test yapmak istiyorsanız, Burp Suite’i satın almak isteyeceksiniz. Çünkü çok pahalı değil. Ve size pek çok konuda yardımcı olabilir.



Burada genel bir tarayıcı görüyorsunuz. Eğer başka bir uygulamanın tarayıcısını kullanıyorsanız, o halde konsepti biliyorsunuz demektir. Burp’te yeni bir dosya elde ettiyseniz yeni bir tool kullanarak bunu taramanıza gerek yok. Çünkü scanner zaten Burp’te var.



Bu pasif bir taramadır, Request’ten Response’a gidenleri tarar. Kısaca size bazı ilginç detayları söyleyebilir. Spider ile beraber kullanıldığında, aktif bir tarama yapabilir. Bunun dışında resimde de görebileceğiniz gibi, scanner’e aktif bir tarama yapması için  bir istek gönderebilirsiniz. Bu istekten sonra Scanner farklı parametrelerde isteği algılamaya çalışır. Bu oldukça güzel ve kolay bir uygulama Cross S için. Ben sıklıkla Scanner’a istek gönderirim. Her zaman söylerim, eğer şanslıysanız Scanner problemi bulur ve zamanınızı kurtarır. Ama şansızsanız, problemi manuel olarak kendiniz bulmak zorundasınız. Kolay problemleri çözmek için size yardımcı olabilir. Bunlar önemli sorunlar olmasa da sonuç olarak bunu report etmek zorundasınız. Mesela SSL problemleri ya da bölüm çerezleri gibi sorunları Scanner ile bulabilirsiniz.



Scanner çok önemli bir tool olmasa da, güvenlik problemlerini açığını belirleyebilir. Bu da günün sonunda sizin için iyi bir şey. Scanner’e gelerek report edilmiş hataları görebilirsiniz.



Kısaca Burp suite satın almaya karar verirseniz, Scanner kullanmayı deneyin, size yardımcı olabilir. Kullanması da zor değil. Tamam, sonra görüşürüz.



İzinsiz Girişçi ve Karşılaştırıcı


Ve sonunda Burp Suite’in en ilgi çekici konularına geldik. Bu bölümde iki ana konudan bahsedeceğim. ‘Intruder’ ve ‘Comparer’ aslında oldukça basit araçlar,  bunları sıklıkla beraber kullanırız. Bu sebepten ötürü ikisini bir anlatıyorum.



İlk olarak İntuder ile başlayacağız. Bu otomatik bir eklenti, değerleri ayarlayabilmenize ve testin yapılış biçimini seçiyor. Şimdi Web Goat’ta değişkenlik seçeneğini anlatmakla başlayayım. ‘Authoentification Flaws’ (Yetkilendirme Eksiklikleri) ve arkasından ‘Forgot my Password’ seçeneğini tıklayarak başlıyoruz. Birçok aplikasyon aslında bu özelliğe sahiptir. Şifrenizi unuttuysanız uygulamadan yeni şifre talep edebilirsiniz. Bunu çözmenin birçok yolu bulunmaktadır, şifreyi e-mail adresinize de isteyebilirsiniz. Ya da birkaç güvenlik sorusu cevaplayarak yeni şifre almak mümkün.  Buraya kullanıcı adınızı yazın. Buraya Web Goat’taki kullanıcı adınızı yazmalısınız, ama ben önce test edeceğim. Oraya ‘test’ yazıyorum. Ve olumsuz bir mesaj aldınız.



Şimdi doğru kullanıcı adını yazıyoruz ‘webgoat’. Daha sonra teslim edin, güvenlik sorusunu göreceksiniz. Burada en sevdiğiniz rengin ne olduğuna dair bir güvenlik sorusu var Cevaba basitçe yeşil yazıyorum, ancak cevabın bu olmadığı görüyorum. Peki onlarca renk var, şimdi ne yapacağım?



Şimdi renklerin bir listesini oluşturmak ve kullanarak bu listeyi denemek ve doğru cevabı bulmak gerek. Bunun için Repeater kullanmak mümkün aslında, çünkü çok fazla renk seçeneği yok. Ama senaryo çok daha karışık olduğunda ve test edebileceğiniz seçenekler belki de bin adet olduğunda tekrarlayıcı kullanmak hiç işinize yaramayacaktır. Sonuç olarak böyle bir durumda ‘İntruder’ kullanacağız. Buraya basitçe bir cevap yazağım. Mesela siyah. Gördüğünüz gibi, doğru cevap bu değil. Şimdi Burp’e geri dönelim ve Proxy’ye tıklayalım.



Ve şimdi ayarlarda bu isteğimi arıyorum. Şimdi biz bu isteği test etmek istiyoruz. Kod üzerine sağ tıklayın ve ‘Send to Intruder’ seçeneğine tıklayın. Şimdi isteğiniz Intruder kısmında görünüyor. Burada açmış olduğunuz sekmeleri de isimlendirebilirsiniz. Ben beimkini ‘Password Forget’ yapıyorum. Burada tab oluşturmak oldukça kolay, çünkü geri döndüğümde, konuları ayırmış olduğum için isteklerimi zorlanmadan buluyorum.



Intruder kısmında ilk gördüğünüz seçenek ‘Attack Target’. Buraya başka bir modülden istek gönderirseniz, pozisyonlar kısmına gelerek şimdi açmış olduğum sayfada Burp’ün sizi ‘muhtemel pozisyon’ olarak işaretlediğini göreceksiniz. Burada pek bir şey yapamazsınız ama Burp burada bütün parametreleri bulmaya çalışır. Bundan hoşlanmazsanız yalnızca ‘Clear’ seçeneğine tıklayabilirsiniz. Burada bir başka özellik de ‘Attack Type’ olarak isimlendiriliyor. Attack Type’in ne olduğunu unuttum, bu yüzden internetten kısaca bir bakacağım. Seçeneklerde birçok belge olduğunu görüyorsunuz, Port Swigger’a girip buradaki makaleyi okuyayım.



Sniper oldukça basit bir kavram aslında. Bir yük listesi seçiyorsunuz, ve farklı pozisyonlarınız varsa bunlar için gerekli. Payload list kısmından bunun sayısını artırarak her biri için düzenleme yapabilirsiniz. 5 pozisyonunuz ama 5 payloadunuz varsa bu durumda, 5 istek daha yaratılır.



Batering Ram seçeneğine gelince, mesela ayarlanmış bir ödeme listeniz var ve bu yük listesi simültane bir şekilde bütün isteklere uygulanıyor. Yani 10 isteğiniz varsa ve 5 pozisyonunuz varsa, yalnızca 10 istek yapabilirsiniz.



Pitcwork seçeneği ile ‘Request’ sayfanızdaki her pozisyon için birçok yük listesi tanımlamak mümkün. Ve bu değişik yük listesi listedeki her bir pozisyon için yine simültane bir şekilde uygulanır. Bunun anlamı şudur ki, bütün yük listesi bir pozisyon için uygulanır.



Clusterbomb seçeneğinde de yine çalıştığınız pozisyonlar kadar farklı yük listesi bulunur. Burada bütün parametreler her bir yük için denenmiştir. Dolayısı ile burada görmüş olduğunuz liste oldukça zengin.



Biz sadece Sniper kısmından bahsedeceğiz.


Bunu pek çok zamanda kullanırız. Çünkü ben her bir parametreyi ayrı ayrı test etmeyi tercih ediyorum. Çünkü problemin nedenini net bir şekilde görebiliyorsunuz. Bunu kullanmazsanız ve herhangi bir sorunla karşılaşırsanız böyle bir durumda tekrarlayıcı kısmında dönerek sorunu manuel olarak aramak durumunda kalırsınız. Ama Sniper kullanırsanız, hangi parametrenin sorunun nedeni olduğunu kesinlikle anlayabilirsiniz. Ama hedef aplikasyonunuz yavaşsa, ve 5000 kadar isteği yollamaya yetmiyorsa, yine de bütün bunları test etmeniz bir yolla mümkün.



Bu yüzden Sniper kullanıyoruz. Ama her şeyi test etmek istemiyoruz, bu yüzden ‘Clear’ seçeneğine tıklayarak bütün sayfayı temizliyoruz. Şimdi renk kısmını test etmek istiyorum, bu yüzden kodun üzerine gelerek ‘Add’ seçeneğine tıklıyorum. Daha sonra da Payload kısmına gidiyorum. Şimdi burada hangi renkleri değer olarak denemek istediğimizi belirtmeliyiz. Şimdi size basit ve gelişmiş Burp suite arasındaki farktan bahsedeyim. Burada birazcık fark var. Burada yük listesinin tipine dair basit bir liste var. Bu listeyi kendiniz doldurabilirsiniz. Bu oldukça kolay olacak. Burada da seçeneklerinizi görüntüleyebilirsiniz. Mesela ‘Numbers’ seçeneği kullanışlı olabilir. Mesela kullanıcı olarak profilinizi yüklediğinizde, burada gördüğünüz URL’deki numara kullanıcının numarası olarak düşünülür. Yani öteki kullanıcıların profilini bu şekilde test etmek mümkün. Mesela 1 numaralı kullanıcıdan 10.000 numaralı kullanıcıya kadar bir test yapabilirsiniz. Mini ve maksimum kesir aralıklarını da 0 yaparak işlem yapabilirsiniz. Ama şimdi yapmak istediğimiz şey bu değil. Çünkü biz renk seçenekleri ile ilgiliyiz.



Bunun için ‘Simple List’ kısmına tıklıyoruz. Gördüğünüz gibi buraya da renkleri yazdım ve tamamen rastgele bir liste oluşturdum. Bu listeyi kopyalıyoruz ve şuraya geliyoruz. Daha sonra ‘Paste’ seçeneğine tıklıyoruz. Ve kopyalamış olduğumuz listeyi görüyorsunuz. Aşağıda ‘ADD’ kısmına manuel olarak da yazabilirsiniz. Ama bizim yaptığımız çok daha kolay. Burada yapabileceğiniz birkaç opsiyon daha var. Ama şimdi denemek istemiyoruz. Yük listesini deneme tecrübesi elde edebilirsiniz burada. Gördüğünüz gibi listede 13 değer ve yalnızca 1 parametre var. Yani toplamda 13 istek gönderisi olacak. Tamam şimdi atağa başlayalım. Üst taraftan Intruder kısmına gelelim ve ‘Start Attack’ kısmına tıklayalım.



Burada bir uyarı alıyoruz çünkü Burp Suite’in ücretsiz versiyonu sınırlı bir hıza sahip. Ve başlıyoruz, evet burada göndermiş olduğumuz bütün istekleri ve cevapları görüyoruz. Görmüş olduğunuz gibi, ilk istek her zaman temel istek olarak adlandırılır. Bizim burada yalnızca 13 isteğimiz var ama sizin binlerce de olabilir. Bunu tek tek kontrol etmek son derece zor. Burada sizin için önemli olan nokta’ uzunluk’. Çünkü burada işler birazcık değişebiliyor. Bir test yaptığınızda birçok mesaj alabilirsiniz. Bunlar genelde aynıdır. Dolayısı ile uzunluk da aynı olacaktır. %80 ihtimalle, bir istek yaptığınızda almış olduğunuz yanıt aynı olacaktır. Burada da bütün mesajlarımızın uzunlukları aynı, dolayısı ile hepsinde aynı mesajı almışız. Buraya baktığımızda, bütün yanıtların –yalnızca biri hariç- aynı uzunlukta olduğunu görüyoruz. Ve gördüğünüz gibi, ‘red’ seçeneği farklı olan. Bazen bir iki byte farklılık dahi çıkabilir.



Şimdi Comparer kısmına geçiyoruz ve bizi şaşırtacak karşılaştırmalara bakıyoruz. Yukarıda görmüş olduğumuz temel isteğe sağ tıklayıp ‘Sent to Comparer’ seçeneğine tıklıyoruz. Comparer kısmına tıkladığınızda göndermiş olduğumuz isteği burada görebilirsiniz. Şimdi Intruder kısmına geri dönelim. Ve burada görmüş olduğunuz yanıtı da ‘Comparer’ kısmına yollayalım. İki seçeneğimizi birbiri ile kıyaslamak için iki seçeneğimiz bulunuyor. Kelime sayısı olarak ya da byte olarak bir karşılaştırma yapabiliriz. Genelde ‘Words’ seçeneği kullanılır. Çünkü byteleri karşılaştırmak son derece zor bir uğraştır. Kelimeler ile beraber http tipi metin protokolleri kontrol edilir ve karşılaştırılır. Words seçeneğine tıkladığınızda önünüze bir pencere açılıyor. Bir sayfası bir cevabı açıklarken, diğer sayfası diğer cevap için.



Şimdi renklere bakarak bir analiz yapalım. Renkleri gördüğümüzde burada bazı farklılıklar olduğunu anlayacağız. Ve gördüğünüz gibi farklılıkları bulduk. Burada yanlış cevaba ilişkin değerleri görüyoruz, çünkü bu bir yanlış cevap. Ve diğerine baktığınızda burada bir cevap olmadığını görüyorsunuz. Ve burada bir not’ güvenliğiniz için lütfen şifrenizi değiştirin’ yazıyor. Şimdi daha önce yaptığımız bir şeyi yapalım ve cevabı tarayıcıda aratalım. URL bağlantısını kopyalıyoruz. Tarayıcıya gelip yeni bir sekme açarak buradaki linki aratıyoruz. Bu noktada emin olmanız gerekiyor. Bu noktada Burp size cevabınızı tarayıcıda gösteriyor. Bu sayfayı yeniden yüklediğimde, servera gönderilen herhangi bir istek yok. Sonuç olarak burada yük listesinin ‘Red’ olduğunu görebilirsiniz. Ve burada bütün data bilgilerine eriştik. Kullanıcı ismi, renk ve şifre olarak.



Ve gördüğünüz gibi unutulmuş şifreyi kolaylıkla kırdık. Şimdi ‘Şifremi unuttum’ kısmına tekrar gelelim ve kendimiz deneyelim. Kullanıcı adı kısmına ‘Webgoat’ renk kısmına da kırmızı yazdık ve gördüğünüz gibi, şifre ‘webgoat’. Burada size göstermek istediğim bir başka şey daha var. Bu sayfayı kapatıyorum ve Intruder kısmına geri dönüyorum. Option kısmında da yapabileceğiniz birkaç şey bulunuyor. Burada görmüş olduğunuz kısım sizin aramanızı hızlandırabilir. Burada birçok sorun da meydana gelebilir, özellikle istekleriniz aynı yerden geliyorsa, bu kısım isteklerinizi reddedebilir. Burayı yavaşlatabilirsiniz de. Böylece bütün atak yavaş olacak. Sadece boş verip arada gelip sonuçlara bakmanız yeterli.



Grep- Match kısmı da enteresan kısımlardan bir tanesi. Burada düzenli açıklamalar gibi ayarlar yapabilirsiniz doğru yanıtı bulmak için. Buradaki kontrol kutusunu tikliyoruz ve gördüğünüz gibi listede yer alan elementlerin hepsi varsayılan mesajlar. Aynı yük listesi ile tekrar atak yapmak isterseniz, Intruder kısmına gelerek tekrar atağı başlatın. Ve açılan sayfada işaretlediğimiz kısımlar olduğunu göreceksiniz. Burada işaretlediğimiz unsurların yer aldığını açıklıyor. Bu bölüm aslında bize yardım etmiyor. Çünkü asıl cevap olan ‘red’ kısmına baktığınızda yanlış cevaplar ile aynı unsurları içerdiğini görüyorsunuz. Ama bu noktada başka bir şey deneyebiliriz. ‘Options’ kısmına yeniden gelerek Grep Match kısmındaki ‘Add’ bölümüne ‘Password immediately’ yazıyorum. Şimdi Intuder ile tekrar atak yapalım. Açılan sayfaya baktığınızda bizim parametre olarak işaretlediğimiz ‘Password immediately’ kısmının bir parametre olarak ekli olduğunu ve ‘Red’ simgesinde tik olduğunu görüyorsunuz.



Bunun dışında bulunan özellikler benim genelde kullanmadığım özellikler. Dolayısı ile bunlardan şimdi bahsetmek istemiyorum. Bunları bazen denemenizi öneririm. Göstermek istediğim son bir şey daha var. Bunun için de Comparer kısmına geliyoruz. Size bytes kısmından bahsedeceğim. Bytes kısmında da bir karşılaştırma yapalım ve işlemin ne kadar işe yaradığı konusunda siz karar verin. Açılan sayfada farklılıkları bulmak istiyorum ve aşağı iniyorum. Evet, farklılıkları görüyorsunuz. Metinlerle alakalı olmayan alanlarda karşılaştırma yaptığınızda, Byte ile arama yapmak kullanışlı olabilir. Java objeleri ya da bunun gibi şeylerde size yardımcı olabilir. Ama genelde ‘Words’ seçeneği daha kullanışlıdır.



Pekala, size Intruder ve Comparer modüllerini anlattım. Bunlarla biraz ilgilenmenizi tavsiye ederim. SQL eklentilerine de bakabilirsiniz. String SQL injection gibi. Ve burada Intuder’i biraz deneyebilirsiniz. Bu noktada Intruder’i anladığınızdan ve nasıl çalıştığından emin olun. Intruder ile ilgili anlatmak istediklerim bu kadar.




Yorumlar

  1. çok faydalı makale olmuştur teşekkürler

    YanıtlaSil
  2. paylaşımınız için teşekkür ederim, baya detaylıca yazmışsınız ;)

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

En İyi 20 Hacker Duvar Kağıtları