Tools etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Tools etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

28 Mart 2011 Pazartesi

OWASP Top10 Açıklık ve İlgili Araçlar


OWASP'ın 2010 yılı için açıkladığı en önemli 10 güvenlik riski ve bunlar için en faydalı araçlardan birer örnek, bu yazının konusunu oluşturur. Yazı http://resources.infosecinstitute.com/owasp-top-10-tools-and-tactics/ adresinde bulunan makale baz alınarak hazırlanmıştır.
OWASP'ın 2010 yılı analizi ile ilgili detaylar için: http://www.owasp.org/index.php/Top_10_2010-Main

Risk - Araç matrisi:

RISKTOOL
A1: InjectionSQL Inject Me
A2: Cross-Site Scripting (XSS)ZAP
A3: Broken Authentication and Session ManagementHackBar
A4: Insecure Direct Object ReferencesBurp
A5: Cross-Site Request Forgery (CSRF)Tamper Data
A6: Security MisconfigurationWatobo
A7: Insecure Cryptographic StorageN/A
A8: Failure to Restrict URL AccessNikto/Wikto
A9: Insufficient Transport Layer ProtectionCalomel
A10: Unvalidated Redirects and ForwardsWatcher


1. Injection: SQL Inject Me
SQL Inject Me, en yaygın bilinen Firefox plug-in'lerinden biridir. Aktif hale getirildiğinde aşağıdaki ekran görüntüsünde bir sidebar açılır. Bu arayüz değişkendir; browser'da açılan sayfadaki formlara ve girdi alanlarına göre dinamik olarak değişir.

Test tamamlandığında sonuçları ayrı bir Firefox tab'ı olarak açılır.

2. XSS: ZAP
ZAP: Zed Attack Proxy.
Bir OWASP projesidir. Web uygulamalarındaki zafiyetleri bulmak için kolay kullanımlı bir sızma testi aracıdır. Desteği devam eden ve gelecek planları yapılan bir araçtır. 1.2.0 versiyonu, bir kişisel vekil, kaba kuvvet saldırı, port tarama ve spidering gibi kabiliyetleri barındırmaktadır. Genel bir açıklık tarama aracı olmasına karşılık biz bu aracı XSS tarama için özel olarak değerlendiriyoruz.

Orijinal makalenin yazarı, ZED'in spidering kabiliyetini de takdir ettiğini söylüyor.

3. Broken Authentication and Session Management: HackBar
Sözü edilen açıklığın en önemli nedenlerinden biri, zayıf SessionID'dir. Sıkça SSL/TLS kullanmadan transfer edilirler; zayıf depolanmışlardır (kripto kullanmadan); URL rewriting ile ortaya çıkarılabilirler. SessionID'nin kullanıcı parolasının MD5 ya da Sha1 hash kodu olduğu durumlar bile görülmüştür. Saldırgan MITM (Man-In-The-Middle) gerçekleştirebilmişse ya da XSS gibi bir yöntemle kullanıcı SessionID'sini elde edebilmişse, ters çevirmeden replay edildiği konu edilmezse (!), Firefox plug-in'i olan HackBar kullanılabilir.
Yükledikten sonra F9 kısa yoluyla HackBar görüntülenebilir; burada Encryption pull-down menüsünden Sha1 ya da MD5 menüsü, o menü altından da Send To...

XSS ve SQLi testleri yanıs sıra, HackBar, Base64, URL ve Hex encoding-decoding konusunda da çok başarılı bir araç.

4. Insecure Direct Object References: Burp Suite
Doğrudan nesne referansının en kötü sonucunun dizin gezinimi olacağını düşünebiliriz.
Dizin gezinimi testi için Burp'ün ticari versiyonu yanında ücretsiz versiyonu da kullanılabilir.
Test için: WebGoat içindeki Access Control Flaws - ByPass a Path Based Access Control Scheme dersi kullanılabilir. Burp'ün sol penceresinde görünen linke (http://localhost/WebGoat/attack?Screen=17&menu=200) sağ tıklanarak adres Repeater'a gönderilir; Repeater tab'ına gidilir, File parametresindeki BackDoors.html değeri BackDoors.html..\..\..\..\..\..\..\..\windows\windows.ini olarak değiştirilir.


5. CSRF - TamperData
Firefox plug-in'i. Yüklendikten sonra Tools menüsü altından aktif hale getirilebilir. Tamper data ile yapılan, HTTP taleplerini yakalayıp değiştirerek göndermektir; bu özelliği ile CSRF testleri bilinen prosedürleri ile gerçekleştirilir. Webscarab vb kişisel vekiller ile HTTP talepleri yakalayarak CSRF testleri gerçekleştirmeden bir farkı yoktur Tamper Data ile bu testleri gerçekleştirmenin.


6. Security Misconfiguration: Watobo
Watobo, yarı otomatik web uygulama denetimleri yapmak için tasarlanmıştır ve ayrıca hatalı konfigüsaryonları bulma konusunda iyi bir araçtır.
Watobo bir kişisel vekil gibi çalışır. Ruby ile yazıldığından Ruby interpretter kurulmasını gerektirir. Öntanımlı olarak dinlediği port 8081'dir.


8. Failure to Restrict URL Access: Nikto/Wikto
Uygulama, korunmuş bölgelere erişen URL'leri her erişme girişiminde test etmeli; aksi halde saldırgan, Nikto (ya da bunun benzeri bir Windows GUI'si olan Wikto) benzeri araçlarla özellikle sayfa hiyerarşisi iyi bilinen wordpress benzeri uygulamalarda gizli/yetkisiz sayfalara erişebiliecektir.
Nikto, web sunucular üzerinde geniş kapsamlı testler gerçekleştirebilen bir web sunucu tarayıcısıdır. Potansiyel olarak tehlike taşıyan 6400 dosya/CGI, 1000'den fazla sunucu için versiyon güncelliği kontrolü ve 270'den fazla sunucu için var olan versiyona özel zafiyetler, Nikto'nun birçok test kaleminden birkaçıdır.
Nikto, Perl ile yazılmıştır ve çalıştırmak için Perl interpreter gerektirir. Linux bir sistemde şu şekilde çalıştırılabilir: ./nikto.pl -h <hedef host IP ya da URL>.

Nikto taramalarında false positive sonuçlar elde etmek olasıdır, ama çok değerli sonuçlar da elde edilecektir.
Yukarıdaki resmin sonunda erişimin kısıtlanması gerektiği düşünülen bir dizin raporlanmıştır.

9. Insufficient Transport Layer Protection: Calomel Add-on
Yetersiz taşıma katmanı korumasının tarifi kolaydır, SSL kullanılmaması. Calomel, sertifika durumu hakkında çok güzel bilgi veren bir Firefox plug-in'i.

Calomel, SSL bağlantısı güvenliğini derecelendirir; uygulamaya özel buton'un rengi, güvenlik seviyesine göre farklılaşacaktır. Butona basıldığında da şekildeki gibi detaylar dökülecektir.

10. Unvalidated Redirects and Forwards: Watcher
Watcher, Chris Weber'in Fiddler (ücretsiz web debugger) uygulaması için bir add-on (sadece IE için). Pasif bir analiz aracı olarak inanılmaz güzel çalışır. Ayrıca açık yeniden yönlendirmeleri (redirect & forward) yakalar. Fiddler ile birlikte kurulacak Watcherın çalışıp çalışmadığını anlamak, Fiddler üzerinden trafiğin geçtiğini anlamak kadar kolaydır; yani Fiddler üzerinden trafik akıyorsa (kişisel vekil) Watcher da çalışıyor demektir.

URL redirect zafiyetinin ne kadar yaygın olduğunu görmek için google'da şu aramayı yapabiliriz: inurl:”redirect.asp?url=”.

19 Ekim 2010 Salı

HE:WA-C2 Search Tools and Automated Crawling






Using Search Tools For Profiling

Google ve benzeri bir arama motoru ile site crawl edilir (http://webuygulamalariguvenligi.blogspot.com/search/label/Google%20Hacking). 1-2 örnek sorgu:

  • "site:www.victim.com" (tırnaklarla beraber) è www.victim.com içeren URL'leri araştırmak için.
  • related:www.victim.com è farklı sayfalardan benzer içerikli sonuçlar döner.
  • site:victim.com è mail.victim.com, beta.victim.com gibi sonuçlar döner.

Robots.txt

Altın madeni gibidir bu dosya. Siteler artık kullanmıyordur bu dosyaları diye düşünüyorsanız Google'da şunu deneyin: "parent directory" robots.txt (tırnaklarla beraber). Dosya içeriği örneği:

[root@meddle]# getit.sh www.victim.com /robots.txt

User-agent: *

Disallow: /Admin/

Disallow: /admin/

Disallow: /common/

Disallow: /cgi-bin/

Disallow: /scripts/



Automated Web Crawling

DİKKAT: Burada başka işler de yapan web açıklık tarama araçlarından söz edilmiyor, ileride değinilecek bunlara.

Lynx

Unix sistemleri için text tabanlı web tarayıcı. Basit URL'leri capture etmek için hala çok iyi bir araç. "getit" scriptlerine göre temel avantajı, HTTP basic authentication gerektiren sitelerde –auth parametresi ile kullanılabilmesi (-crawl, -traversal gibi diğer opsiyonlar için lynx komutunu inceleyin):

[root@meddle]# lynx -source https://www.victim.com/private/index.html

Looking up www.victim.com

Making HTTPS connection to 192.168.201.2

Secure 168-bit TLSv1/SSLv3 (EDH-RSA-DES-CBC3-SHA) HTTP connection

Sending HTTP request.

HTTP request sent; waiting for response.

Alert!: Can't retry with authorization! Contact the server's WebMaster.

Can't Access `https://192.168.201.2/private/index.html'

Alert!: Unable to access document.

lynx: Can't access startfile

[root@meddle]# lynx -source -auth=user:pass \

> https://63.142.201.2/private/index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 FINAL//EN">

<HTML>

<HEAD>

...



Wget

Windows ve Unix sistemler için web sitesinin içeriğini indirmek için command-line aracı. Tek amacı vardır, web sitesinden dosyaları alır. Bu dosyaları değerlendirmek için başka araçlara ihtiyaç duyulabilir. –r yada --recursive parametreleri ana sayfadaki tüm linkleri takip için. Avantajları:

  • Tüm olası linkleri takip eder,
  • Proxy destekler,
  • HTTP basic authentication destekler

Teleport Pro

Windows sistemler için görsel wget aracı.

Black Widow

Teleport Pro ürününün kabiliyetlerini genişletir; grafik arayüzü vardır. Dosyaları kendi sabit diskinize kopyalamanıza izin verir.

Paros

HE:WA-C1 Proxies and Command-Line Tools


HTTP Proxies

HTTP/S iletişiminde araya girer ve submit etmeden önce veriyi incelemeye ve değiştirmeye olanak verir stand-alone uygulamalardır. Browser proxy ayarları bu uygulamanın dinlediği porta yönlendirilir. Uygulama "Man-in-the-middle" gibi davranır.

Temelde browser eklentileri ile aynı amaca hizmet ederler. En popüler birkaç örnek:

Paros Proxy

HTTP Proxy de içeren web açıklık tarayıcı ve crawling aracı. Java'da yazılmıştır. Basitlik ve sağlamlık açısından listenin en tepesinde yer alan araçlardandır.

OWASP WebScarab

OWASP WebScarab: Fonksiyon çeşitliliği açısından en zengin araçlardan biridir. Bu fonlsiyonlar arasında en kullanışlı olanlar şu şekilde sıralanabilir.

  • HTTP Proxy,
  • Crawler/spider,
  • SessionID analizi,
  • Otomasyon için script arayüz,
  • Fuzzer (input alanlarına sızma amaçlı kalıplar girme işini otomatikleştirme),
  • Bilinen tüm popüler formatlarda (Base64, MD5 vs) Encoder/Decoder özelliği,
  • WSDL ve SOAP parser.
ParosProxy gibi bu araç da Java'da yazılmıştır. Proxy özelliği ile Paros ile karşılaştırılabilir, onun dışında ilave bir ton özellik barındırır. Amatör kullanıcılara basitliği nedeniyle Paros tavsiye edilir.

Burp Intruder

Birçok web uygulama güvenlik testi de barındıran Java tabanlı HTTP Proxy aracı. Ücretsiz versiyonu daha yavaş ve az fonksiyonlu.

En iyi olduğu konular fuzz-testing ve DoS testing. Payload paketleri (önceden tanımlanmış paketler de mevcut) belirlenen pozisyonlara atanır, istenen atak tipinde denemeler başlatılır (Atak tipleri için: http://webuygulamalariguvenligi.blogspot.com/2010/06/burp-intruder-attack-types.html).

Command-Line Tools

Scripting ve yinelemeli ataklar için elimizin altında bulunmasında fayda olan command-line araçlarından ikisi:

Curl:

Ücretsiz, çok platform destekli HTTP/S manipülasyon aracı. Özellikle yinelemeli analizler için komut kümeleri (script) oluşturmada güçlü. Basit bir girdi taşması testi rutini, Perl'de oluşturulmuş ve curl'ün sırtına yüklenmiş:

$ curl https://website/login.php?user='perl –e 'print "a" x 500''

Netcat

Network hacking'in "İsviçre Çakısı". Adından da anlaşılacağı gibi, en çok, dosyaların içeriğini dökme açısından Unix'teki cat komutuna benzer; farklı olarak netcat bu işi network bağlantıları için yapar: network bağlantısının "raw" input ve outputlarını command-line'a dump eder.

Çok iyi olsa da çok yoğun manuel efor sarfetmek gerekiyor kullanmak için. Mesela hedef sunucu HTTPS kullanıyorsa, SSLProxy yada openssl gibi bir aracı netcat'in önüne bir protokol olarak kullanmak gerekir.

4 Haziran 2010 Cuma

Burp Intruder Attack Types

  • Sniper:
    • Uses a single set of payloads.
    • It targets each position in turn, and inserts each payload into that position in turn. Positions which are not targeted during a given request are not affected – the position markers are removed and any text which appears between them in the template remains unchanged.
    • This attack type is useful for testing a number of data fields individually for a common vulnerability (e.g. cross-site scripting).
    • Total number of requests = number of positions * number of payloads in the payload set.
  • Battering Ram:
    • This uses a single set of payloads.
    • It iterates through the payloads, and inserts the same payload into all of the defined positions at once.
    • This attack type is useful where an attack requires the same input to be inserted in multiple places within the HTTP request (e.g. a username within the Cookie header and within the message body).
    • Total number of requests = number of payloads in the payload set.
  • Pitch Fork:
    • This uses multiple payload sets. There is a different payload set for each defined position (up to a maximum of 8).
    • The attack iterates through all payload sets simultaneously, and inserts one payload into each defined position. I.e., the first request will insert the first payload from payload set 1 into position 1 and the first payload from payload set 2 into position 2; the second request will insert the second payload from payload set 1 into position 1 and the second payload from payload set 2 into position 2, etc.
    • This attack type is useful where an attack requires different but related input to be inserted in multiple places within the HTTP request (e.g. a username in one data field, and a known ID number corresponding to that username in another data field). 
    • Total number of requests = number of payloads in the smallest payload set.
  • Cluster Bomb:
    • This uses multiple payload sets. There is a different payload set for each defined position (up to a maximum of 8).
    • The attack iterates through each payload set in turn, so that all permutations of payload combinations are tested. I.e., if there are two payload positions, the attack will place the first payload from payload set 1 into position 1, and iterate through all the payloads in payload set 2 in position 2; it will then place the second payload from payload set 1 into position 1, and iterate through all the payloads in payload set 2 in position 2.
    • This attack type is useful where an attack requires different and unrelated input to be inserted in multiple places within the HTTP request (e.g. a username in one parameter, and an unknown password in another parameter).
    • Total number of requests = product of the number of payloads in all defined payload sets (This may be extremely large)

30 Mayıs 2010 Pazar

7: Otomatize Araçlar


  • Web uygulamalarındaki güvenlik zafiyetlerinin mümkün olan en az eforla tesbit edilmesi.
  •  Ana fazları:
    • Girdi Keşfi
    • Zafiyet bulma
  • Javascript ile oluşturulmuş linkler şu anda girdi keşfi için problem. Otomatize araçlar bu şekilde oluşturulmuş linkleri bulamıyor. Google’da mesela her şey javascript. Javascripti anlayan tool’lar da var, onlar kullanılmalı.
  • Zafiyet bulma adına da bir istek yollanır, eğer cevap geliyorsa burada bir açıklık var demektir. Misal 10 sn wait yolladınız ve uygulama 10 sn bekledi…
  • Otomatize araçlar:
    • Ticari olmayan:
      • W3af, Andres Riancho
      • Paros, Chinotec
    • Ticari
      • Nessus, Tenable Network Security
      • Acunetix WVS, Acunetix
      • AppScan, IBM
      • WebInspect, HP
      • Netsparker, Mavituna Security
      • ...
  • Ticari olmayan ürünler, ticari ürünlerle kıyaslanamaz. Ticari ürünler çok daha başarılı.
  • Oturumların URL’lerde tutulduğu (normali cookie’ler) durumlar da var. Ziyaretçi portföyü cookie’leri disable eden siteler tarafından tercih edilir mesela.

Web Uygulama Sızma Testleri İçin Kontrol Listeleri - V

Checklist for Web App Pentesting - V 6. Veri Denetimi (Data Validation) Testleri 6.1 Girdi Denetimi Bütün girdiler denetlenmelidir....