IstSec 2009 Capture The Flag Yarışması Detayları

By | May 28, 2009

ctf

CTF Nedir?

CTF(Capture The Flag) geçmişi Roma dönemine dayanan uygulamalı, öğretici bir oyundur. Çeşitli tarih kitaplarında farklı milletlerin çocuklarını/gençlerini CTF  oyunlarıyla savaşa hazırladıkları yazmaktadır. CTF’de amaç öğrenilen savunma ve  saldırı tekniklerini pratiğe dökmektir.

Günümüzde bilişim dünyasında -özellikle   bilişim güvenliğinde- sık kullanılan bir  eğitici öğretim yöntemidir.

 

CTF’i güvenlik bakış açısıyla tanımlamak gerekirse: beyaz şapkalı hackerlar arasinda oynanan öğretici bir oyundur denilebilir. Yarışmaya katılan hackerlar belirlenen hedefe ulasmak ve bayrağı(hedef sistemlerde gizli metin dosyası , mesela /root dizini altında bayrak1.txt dosyası) önce kapmak için sistemlerdeki güvenlik açıklıklarını değerlendirilerek bayrağı elde etmeye  çalışırlar.

CTF oyunu iki çeşittir:

Read more »

IstSec- İstanbul Güvenlik Konferansı

By | May 24, 2009

IstSec – Istanbul Güvenlik Konferansları- Türkiye’de eksikliği hissedilen ürün/teknoloji bağımsız güvenlik anlayışına katkı amacıyla düşünülmüş bir etkinlik serisidir. IstSec etkinliklerinde konusunda uzman kişiler tarafından yapılacak uygulamalı sunumlar eşliğinde katılımcılar merak ettiği konulara cevap bulmakla kalmayıp uygulamalı olarak görebilecekler. Yılda iki kere yapılması planlanan IstSec etkinliklerinin ilki Microsoft, RSA ve ADEO’nun sponsorluğunda Microsoft Türkiye ofisinde yapılacaktır.

Etkinlikte tüm gün sürecek ve kazananlar için sürpriz hediyelerin dağıtılacağı Capture The Flag yarışması da yapılacaktır. CTF yarışması ile ilgili ek bilgi bugün yarın bu blogda yer alacak.

Yurt içi ve yurtdışından konuşmacıların katılacağı IstSec etkinliği 10 Haziran(Çarşamba) 2009 günü Microsoft Türkiye’de yapılacaktır.

Etkinlik programı ve diğer tüm detaylar için  www.istsec.org adresini ziyaret edebilirsiniz.

GuvenlikEgitimleri.com açıldı

ge GüvenlikEğitimleri.com, sektörde bağımsız olarak güvenlik eğitimleri veren arkadaşları tek bir noktada toparlama amacıyla üzerinde çalıştığım bir projeydi. Amacımız bilgi güvenliği konusunda eğitim almak isteyenler için merkezi bir nokta oluşturmak. Şimdilik sadece 4 eğitmen tarafından verilen 10 eğitim sitede yer almakta. Zamanla hem eğitmenlerin hem de eğitimlerin sayısının artacağını umuyorum.

Egitim sayfasında yayınlanan yeni eğitimler ve dönem dönem açılacak eğitimlerden haberdar olmak isterseniz www.guvenlikegitimleri.com sayfasındaki mail listesine e-posta adresinizi ekleyebilirsiniz.

Detay bilgi için:www.guvenlikegitimleri.com Site ile ilgili her tür yorum/eleştiri/öneri için huzeyfe@lifeoverip.net adresini kullanabilirsiniz.

Türkiye’nin En Sevilen Blog Siteleri

By | May 21, 2009

Internette dolaşırken 2009 yılı başında yapılan bir blog araştırmasına denk geldim. Birileri FriendFeed ve Türk Blog yazarlarına en sevdikleri blog sitelerini sorarak top 100 listesi çıkarmış. Listeye şöyle bir gözatayım, haberimiz olmayan bir teknik blog sitesi var mı derken lifeoverip.net’i gördüm. Bu şekilde spesifik bir konu üzerine agirdan yazan bir site için bence pek inandırıcı olmamış ama yine de burayı okuyup oy kullanan arkadaşlara teşekkür ederim:)

http://www.gunesintamicinde.com/turkiyenin-en-sevilen-blog-siteleri/

Microsoft IIS6 WebDav Remote Auth Bypass Zaafiyeti

By | May 20, 2009

Hafta sonu IIS’daki authentication kullanımını bypass edebilecek bir açıklık yayınlandı. Detaylarını merak etmediğim için araştırmadım fakat maillerden okuduğum kadarıyla Webdav özelliği aktif edilmiş IIS 5 ve üzerini etkiliyor. IIS çalıştıranlar için incelenmesi gereken bir açıklık olabilir.

Kimler etkileniyor:

Webdav aktif edilmemiş bir IIS kullanıyorsanız etkilenmiyorsunuz.
W2k3 default olarak webdav açmıyor(muş)

Detaylar:
Konu ile ilgili birinci elden bilgi için aşağıdaki linkler incelenebilir

http://blog.zoller.lu/2009/05/iis-6-webdac-auth-bypass-and-data.html

http://blogs.technet.com/srd/

http://www.microsoft.com/technet/security/advisory/971492.mspx

Korunma
Snort İmzası:

http://vrt-sourcefire.blogspot.com/2009/05/snort-protection-against-iis-60-webdav.html

Milw0rm exploiti için imza:

alert tcp $EXTERNAL_NET any -> $HOME_NET 80 (msg:”IIS6.0 WebDav RemoteAuth Bypass – GET METHOD”; content:”Translate:”; nocase;pcre:”/GET.*%..%.*HTTP/Bi”; pcre:”/Translate: *f/i”;reference:url,isc.sans.org/diary.html?storyid=6397;sid:1000004;
rev:1;)

Açıklığın networkünüzde olup olmadığını taramak için

Açıklığı hızlıca tarama için Nmap NSE scripti

http://ack-rst.com/scripts/webdav.nse

Metasploit eklentisi:

http://trac.metasploit.com/browser/framework3/trunk/modules/auxiliary/scanner/http/wmap_dir_webdav_unicode_bypass.rb?rev=6562

Ultrasurf Bloklama-II(Snort, OpenBSD PF)

By | May 17, 2009

Ultrasurf antisansür yazılımı çeşitli network güvenlik cihazlarına yakalanmamak için çok akıllı yöntemler kullanıyor. Mesela ilk başlatıldığında çeşitli gerçek  domain isimlerine dns istekleri gönderiyor, bilinen sitelere(intel.com, microsoft.com, cnn.com vs  443. porttan bağlanmaya çalışıyor) arada da kendi proxylerine bağlantı isteği gönderiyor ve bağlantı kurabilirse devam ediyor, kuramazsa diğer proxy ip adreslerini deniyor. Böylece ip adresinden bloklama yapmak isteyenler logları izleyerek bloklama yaparlarsa gerçek ip adreslerine giden istekleri de bloklamış oluyorlar.

Vakti zamanında ip adresinden bloklamak için 200′e yakın ipye bağlantı yaptığını bulup bloklamıştım ama yetmedi:). Dolayısıyla bu işin ip bloklayarak olmayacağına bir iki gün kaybederek öğrendim.

Açık kod saldırı tespit ve engelleme sistemi Snort’un e-posta listelerinde de geçen gün Ultrasurf konusu açılmıştı. Birileri de hemen bir iki imza yazıp gönderdi listeye.  Malesef ki imzalar tamamen ip adreslerine yapılan bağlantıları izlemeye ve dns isteklerini yakalamaya yönelikti. Her iki imza da gerçekte bloklama işine yaramıyor. Snort kurallarını inceleyerke neden işe yaramayacağına bakalım

İlk Snort kuralı;

# Rule by SERPRO-Recife Security Team
alert udp $HOME_NET any -> $EXTERNAL_NET  53 (msg:”Possible External Ultrasurf  DNS Query”; content:”|00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00|”; classtype: policy-violation;threshold:type limit, track by_src,count 1, seconds5; sid: 1000059; rev:2; )

Bu kural Ultrasurf dns isteklerini yakalaybilse de alakasız dns isteklerini de yakalıyor. Yani false positive oranı çok yüksek bir kural, dolayısıyla engelleme için kullanılamaz.

İkinci Snort kuralı;

# IP POOL by Augusto Ferronato

var ULTRASURF_POOL
[205.196.136.9,210.21.31.114,118.171.251.158,202.75.48.227,61.197.186.36,202.99.10.38,131.107.100.158,66.249.93.102,218.169.186.93,203.13.134.161,59.117.240.222,72.246.89.133,114.45.22.115,
198.22.236.38,70.85.195.236,220.138.148.35,59.117.240.222,118.161.206.194,67.137.230.73,220.136.233.18,
208.96.32.3,65.49.14.12,61.197.186.36,64.62.138.28,195.39.222.218,202.67.56.65,65.49.14.12,114.44.44.158,
210.208.94.226,203.30.164.150,64.38.220.186,202.99.10.38,219.85.5.60]

alert tcp $HOME_NET any -> $ULTRASURF_POOL 443 (msg:”Ultrasurf
Connection Detected”; flow:established;classtype:policy-violation;
sid:5000000; rev:3;)

Bu da kısaca yukarıda belirtilen ip adreslerine yapılan 443 TCP bağlantılarını gördüğünde uyarı veren kural ve false positive çok yatkın zira aralarında gerçek sitelere ait ip adresleri de geçiyor. Ek olarak bunları bloklamaya başladığınızda Ultrasurf anında başka ip adreslerine bağlantı kurarak sizi uğraşlarınızla başbaşa bırakacaktır.

Peki nasıl bloklama yapacağım? Piyasada network seviyesinde sağlıklı bloklama yapabilen ticari IPS ürünleri olduğunu biliyoruz.

Bloklama konusunda en iyi ve en kesin yöntemi Squid ile anlatmıştım ama herkes Squid kullanmadığı için çoğu ortama uymuyor. Ben de bir arkadaş için alternatif yöntemler düşünürken aklıma aşağıda anlatacağım bloklama yöntemi geldi.

Firewall ile Ultrasurf bloklama;

Ultrasurf’ün bir özelliği de eğer bloklama yoksa proxy bağlantılarını hep aynı ip adresi üzerinden yapması. Eğer bu ip adresini bulabilirsem(Ultrasurf çalıştırıp 443. portu dinlemek ve sonrasında Explorer üzerinden internette gezinmek ip adresini bulmaya yetecektir.) sonra kullandığım güvenlik duvarından bu ip adresine giden paketlerin bandwidth değerini 5-6 Kb’e ayarlarsam hem ultrasurf ilgili ip adresine ulaşabileceği için ip adresi değiştirmeyecektir hem de Ultrasurf kullanan kişi bağlantının yavaşlığından dolayı Ultrasurf kullanmaktan vazgeçecektir:)

Yukardaki senaryoyu anlatan Packet Filter Güvenlik Duvarı Kuralı

ext_if=”vic0″
int_if=”vic2″


altq on $int_if cbq bandwidth 1Mb queue {ultrasurf, others}
queue ultrasurf bandwidth 6Kb
queue others bandwidth 994Kb cbq(default)
nat on $ext_if from !($ext_if) ($ext_if:0)
pass in quick on $int_if proto tcp from any to  65.49.2.113 port 443 queue ultrasurf
….

Diğer bir yöntem de yukarıdaki Snort kuralını aktif ederek hangi ip adreslerinin Ultrasurf kullandığını belirlemek ve ilgili ip adreslerinin sahiplerini uyarmak. Yukardaki ip adresleri eğer engelleme yapılmazsa Ultrasurf 9.4 versiyonunun default olarak ilk denediği ip adresleridir.

Bu işe kesin çözüm için yapılması gereken:

443. TCP portunu dinleyerel TLS1 bağlantılarında server hello mesajı içerisinde sertifika bilgisini aramaktır. Ultrasurf TLS bağlantısı  kuruyor gözükse de sunucu tarafı hello mesajında sertifika göndermiyor IPS ile bu alanı kontrol edip sertifika alanı boş olan TLS paketlerini bloklamak kesin çözüm olacaktır.

gmail-tls

Ultrasurf ile Firewall kurallarını aşma

Antisansür yazılımları arasında işlevsellik ve gizlilik konusunda en iyi yazılım şüphesiz Ultrasurf’dür. Kendisi ile tanıştığımızdan beri arkasındaki geliştririci ekibe olan hayranlığım her geçen gün artıyor.( Bunun sebeplerini bir sonraki blog girdisinde paylaşacağım). Ultrasurf genelde internet üzerinde sansür işleminin yaygın olduğu ülkelerde yasaklanmış sitelere erişim için kullanılıyor fakat geçen gün farklı bir amaç için kullanma ihtiyacım doğdu ve başka güzel özelliklerini de öğrendim.

Hafta sonu eğitiminde internette Snort kurulu ve 8000. port üzerinden hizmet veren bir web sayfasina bağlanmam gerekti fakat üniversitenin güvenlik duvarı belirli portlar haricinde tüm portlara yasaklanmış gözüküyordu. İşte o anda aklıma Ultrasurf geldi ve şöyle düşündüm .  Ultrasurf sonuçta bir proxy ve ben bu proxyden -eğer bilerek kapatılmadıysa- 80 ve 443 harici diğer portlara da ulaşabilirim. Düşüncemi hemen uygulamaya geçirdim ve gerçekten de Ultrasurf kullanarak 1024 üzerin portlarda çalışan uygulamalara bağlanabileceğimi gördüm.

Böylece güvenlik duvarı tarafından engellenen tüm portlar* basit bir yazılımla kolaylıkla aşılabiliyor.

Aşağıdaki görüntü Ultrasurf üzerinden internetteki bir sistemin 2000.portuna yapılan bağlantıyı gösteriyor.

ultra1

Sunucuda tcpdump çalıştırarak buı porta hangi ip adreslerinden gelindiğine bakılırsa Ultrasurf proxy ip adresi görülecektir.

2009-05-18 00:42:13.666999 IP 65.49.14.12.28001 > 91.93.119.80.2000: S 28789596:28789596(0) win 5840 <mss 1432,sackOK,timestamp 1227967006 0,nop,wscale 8>
2009-05-18 00:42:13.667127 IP 91.93.119.80.2000 > 65.49.14.12.28001: S 3337759822:3337759822(0) ack 28789597 win 65535 <mss 1432,nop,wscale 3,sackOK,timestamp 3997790802 1227967006>
2009-05-18 00:42:13.884449 IP 65.49.14.12.28001 > 91.93.119.80.2000: . ack 1 win 23 <nop,nop,timestamp 1227967226 3997790802>
2009-05-18 00:42:13.884926 IP 65.49.14.12.28001 > 91.93.119.80.2000: P 1:278(277) ack 1 win 23 <nop,nop,timestamp 1227967227 3997790802>
2009-05-18 00:42:13.898382 IP 91.93.119.80.2000 > 65.49.14.12.28001: P 1:41(40) ack 278 win 8307 <nop,nop,timestamp 3997791034 1227967227>
2009-05-18 00:42:13.898413 IP 91.93.119.80.2000 > 65.49.14.12.28001: FP 41:60(19) ack 278 win 8342 <nop,nop,timestamp 3997791034 1227967227>

*Portlarda SSH harici servislere bağlanma sıkıntısı var. Sanırım Ultrasurf sunucularında gelen isteklerin HTTP isteği olup olmadığına bakılıyor.

Ultrasurf tarafında Proxy olarak Squid kullanılıyor gözüküyor bu da aslında ultrasurf bağlantılarının hızını etkileyen bir durum.

C:\>   telnet localhost 9666

CONNECT vpn.lifeoverip.net:2000 HTTP/1.1

HTTP/1.0 403 Forbidden
Server: squid/2.7.STABLE4
Date: Sun, 17 May 2009 19:05:56 GMT
Content-Type: text/html
Expires: Sun, 17 May 2009 19:05:56 GMT
X-Squid-Error: ERR_ACCESS_DENIED 0
X-Cache: MISS from squid-cache
Connection: close
Content-Length: 504

Telefon Dinleme ve Cep Telefonu Güvenliği

Telefon dinlemeleri ve bunun etrafında dönen tartışmalar dönem dönem medyamızı fazlasıyla meşgul ediyor. Malesef ki medyanın uzman diye görüşünü aldığı insanlar genelde GSM adına pek birşey bilmeden konuşuyorlar. Henüz konunun teknik detaylarını konuşabilecek kadar olgun bir ortam olmadığı için bu konuda bilgisi olanlar da bilgilerini kendilerine saklıyorlar. Gelen yoğun talep üzerine GSM firmalarından birisi telefon dinlemeleri ile ilgili sıkça sorulan sorular tadında bir sayfa hazırlamış.

İşin teknik detayına girmeden, birinci elden doğru bilgi almak için bu sayfayı ziyaret edebilirsiniz.

Kablosuz Ağlar ve Güvenlik Yazısı

By | May 15, 2009

Daha önce BeyazŞapka Dergisi için hazırladığım yazının online versiyonuna http://www.beyazsapka.org/makaleler/kablosuz-aglar-ve-guvenlik adresinden ulaşılabilir. Diğer yazıları da en kısa sürede BeyazŞapka’ya aktarmaya çalışacağım.

FreeBSD 7.2 Güncelleme

By | May 7, 2009

FreeBSD, 7.0 Release’den sonra çıkan sürümler için aşağıdaki gibi kolay bir güncelleme imkanı sunuyor.

Güncelleme öncesi
#uname -a
FreeBSD vps-fw 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan  1 08:58:24 UTC 2009   root@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC”>root@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

Güncelleme

 [root@vps-fw ~]# freebsd-update upgrade -r 7.2-RELEASE
Looking up update.FreeBSD.org mirrors… 6 mirrors found.
Fetching metadata signature for 7.1-RELEASE from update5.FreeBSD.org… done.
Fetching metadata index… done.
Fetching 1 metadata patches. done.
Applying metadata patches… done.
Fetching 1 metadata files… done.
Inspecting system… done.

The following components of FreeBSD seem to be installed:
kernel/generic world/base world/dict world/games world/info

The following components of FreeBSD do not seem to be installed:
src/base src/bin src/cddl src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/catpages world/doc world/lib32 world/manpages world/proflibs

Does this look reasonable (y/n)? y

Fetching metadata signature for 7.2-RELEASE from update5.FreeBSD.org… done.
Fetching metadata index… ydone.
Fetching 1 metadata patches. done.
Applying metadata patches… done.
Fetching 1 metadata files… done.
Inspecting system… done.
Fetching files from 7.1-RELEASE for merging… done.
Preparing to download files… done.
Attempting to automatically merge changes in files… done.

The following changes, which occurred between FreeBSD 7.1-RELEASE and
FreeBSD 7.2-RELEASE have been merged into /etc/group:
— current version
+++ new version
@@ -1,6 +1,6 @@
-# $FreeBSD: src/etc/group,v 1.35.6.1 2008/11/25 02:59:29 kensmith Exp $
+# $FreeBSD: src/etc/group,v 1.35.8.1 2009/04/15 03:14:26 kensmith Exp $
 #

ardından

#freebsd-update install  
Installing updates…
Kernel updates have been installed.  Please reboot and run
“/usr/sbin/freebsd-update install” again to finish installing updates.

shutdown -r komutu verilir.

Sistem açıldıktan sonra tekrar

#freebsd-update install   ve reboot komutu ile güncelleme tamamlanır.

Güncelleme sonrasında sistemin durumunu uname -a ile kontrol edersek aşağıdaki gibi çıktı verecektir.

# uname -a
FreeBSD vps-fw 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May  1 07:18:07 UTC 2009     root@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64