26 Temmuz 2011 Salı

Pentest in Practice - XI: Firewall/IPS Evasion

Firewall, IPS vb Atlatma

  • IPS'lerin çok başarılı olamamasının 2 nedeni:
    • Webden gelen saldırılar
    • Post-exploitation'da SSL üzerinden (socat, netcat, meterpreter) reverse-shell
  • Firewall, kural tablosuna (iptable) top-down bakar; bulduğu duruma uyan ilk kuralı çalıştırır ve tabloya bakmayı bırakır.
  • hackvertor.co.uk/public => Encoding ile ilgili akla gelen tüm yöntemlerin olduğu site.
  • Firewall var mı kontrolü:
    • Telnet ile bloklanacak bir talep (GET/POST) gönderilir. Mesela ../../../etc/passwd gibi
    • Sunucudan cevap dönmemesi (Connection closed by foreign host benzeri bir kesilme) durumunda web sunucuya ulaşmadan istek engelleniyor demektir.
    • Talebe sunucudan yanıt (response, 404 not found vb) dönmesi, isteğin sunucuya kadar ulaştığını, bir cihaz tarafından kesilmediğini / engellenmediğini gösterir.
    • Bu kontrolü yaparken telnet kullanmakta fayda var. Doğrudan browser üzerinden yapılacak denemelerde browserlar girilen URL üzerinde gerekli düzenleme yaparak (mesela /etc/./passwd gibi girilecek deneme stringini /etc/passwd olarak düzenleyip göndermek gibi) gönderebilir; istediğimiz kalıbı deneyememiş oluruz.
  • Atlatma Yöntemi: Packet Fragmentation.
    • IP fragmentation'ı kullanabilmek için "rp_filter" disable edilir.
      • $ echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter; ya da
      • $ echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
    • Daha sonra fragmentation:
      • $ fragroute -f /usr/local/etc/fragroute.conf 95.173.123.112
    • Sonra telnet ile talep gönderilir. IPS doğru yapılandırılmadıysa sonuç sunucudan gelecektir; IPS'i atlattık demektir.
  • Atlatma Yöntemi: Encoding
  • Atlatma Yöntemi: SSL Kullanımı
    • telnet akbank.com 80 yerine
    • ncat --ssl akbank.com 443 kullanmak.
    • Layer-7 IPS ile SSL el sıkışma işi IPS tarafından yapılmadığı sürece SSL ile gönderilen taleplerin içeriğini IPS göremeyecek ve dolayısıyla talepler üzerinde kuralları işletemeyecektir.
  • Yanıtın IPS'ten mi, web/uygulama sunucudan mı döndüğü kontrolü:
    •  Normal bir talep gönderilir; TTL değeri tespit edilir (WireShark vb kullanılabilir)
    • IPS tarafından engellenecek bir talep gönderilir; TTL değeri tespit edilir
    • İkisi karşılaştırılır. Sunucu TTL'i 256'dan, IPS 128'den düşüyor olabilir mesela, TTL değerleri oldukça farklı olacaktır bu gibi durumlarda.
  • LoadBalancer varlığı kontrolü:
    • Resimvb içerik, varsa loadbalancer cihaz üzerinden servis edilir. Sunucu ile LoadBalancer cihazların TTL politikaları farklıysa yanıtı kimin döndüğünü yorumlayabiliriz.
    • LoadBalancer atlatma yöntemi: Search. LoadBalancer buna birşey yapamaz. Eş zamanlı birçok arama gönderildiğini düşün.

Hiç yorum yok:

Yorum Gönder

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