Ağınızda yedek DHCP sunucularınız olabilir :)

Oct 31st, 2008

Geçen hafta bazı yurtların Internet erişimlerinde sorun olduğuna dair şikayetler gelince durumu incelemeye başladık. Kullanıcılar İTÜ’nün IP adresi aralığından IP adresi alıyordu ama yanlış subnetten. Örneğin 10.0.10.0/24 olan bir subnetteki kullanıcı IP adresi olarak 10.0.57.1 IP adresi alıyordu.

IP yanlıştı belki ama subnet maskeleri, Default Gatewayleri doğru idi. Ama oda ne? İstemcilerin öğrendikleri iki adet DNS sunucu IP adresleri bize ait değildi. IPler Ukrayna aitti. İşte sahte DNS sunucusu vakası.

Hatta bize ait olmayan DNS sunucularını denedik bile, düzgün olarak DNS sunuculuğu yapıyorlarda. DNS sunucunuza yedek arıyorsanız kullanabilirsiniz. :)

Bu adresi veren DHCP sunucusunu tespit etmek için DHCP sunucusu IP adresine bakalım dedik. Cevap şaşırtıcı idi. DHCP sunucusu IP adresi bizim sunucu idi. Başlangıçta kendi DHCP sunucumuzdan bile şüphelendik acaba sapıttı mı diye  :)

Sunucu diğer vlanlerde işini düzgün yapıyordu. Ayrıca niye başkasının DNS sunucusunu öğretsin ki. Bu durumda bizde sorunlu broadcast domaine geçerek birde biz DHCP istemci olalım dedik.

Bir sniffer ile DHCP sunucusu ile aramızdaki trafiği dinleyince DHCP sunucusun mac adresinin başkası olduğu hemen ortaya çıktı. Ama IP aldıktan sonra DHCP sunucusu kim diye bakınca komik olan yine sanki bizim sunucu IP vermiş gibi gözüküyordu.

Snifferdaki paketleri inceleyince aslında istemcinin DHCP sunucusunun yolladığı Option 54 (DHCP Server Id) bilgisinden sunucu adresini öğrendiğini gördük. Bu bilginin sahte olması çok kolay. Bu durumda olduğu gibi. :)

Tahminimizce Wormlanan makina kendi DHCP sunucusundan öğrendiği subnet maskesini, gateway adresini, DHCP sunucusu adresini ve IPleri çakışmasın diye rastlansal bir IP belirleyerek, seçtiği IP adresini kullanarak DHCP istemcilerine hizmet veriyor. Worm yazarının tek hatası kendi IP adresi ile subnet maskesini end’liyip doğru aralıktan IP adresi vermesi gerektiğini düşünmemesi. :)

Sonuç:

1- Bolca güldüm ama gülüyorum ağlanacak halimize gibi bir durum bu. :)

2- Eğer wormu yazan kişi Subnetting hesabını yapabilseydi belki hala tespit edememiştik sanırım. :)

Hatta şu anda bu worm bulunan C sınıfı bir networkte 24 bit subnetting yapılmışsa bu durumu fark etmeden uzunca bir süre yaşayabilirler. DNS sunucularına bir baksınlar derim.

3- Eğer wormun yazarı subnetting hesabı hatasını da düzeltirse ne olacak peki :)

4- FTP, TFTP sunuculuğu yapan, IRC erişimi yapan hatta ARP Poisoning yapan worm bile çıkmıştı. Bi DHCP sunuculuk yapan worm eksikti, artık oda var :)

Çözümler:

1- Statik IP kullanın. Yada en azından DNS sunucusunu statik verin. Bırakın wormlu makine yedek DHCP sunucusu olsun. :)

2- Eğer switchlerinizde destek varsa DHCP Snooping özelliğini açın. Biz hemen DHCP Snoopingi devreye aldık saldırı kesildi. Hatta switchlerden topladığımız loglarla wormlu PCler ortaya çıktı hemen.
3- Peki ya bu destek sizde yoksa düşünsenize kablosuz ağ DHCPsizde olamaz, en iyi çözüm kimlik denetimi derim.
4- Yada az broadcast domaininiz varsa sahte DHCP sunucularını keşfetmek için Linux’te “dhcp_probe” veya Windows’da “dhcploc.exe” diye iki uygulama varmış. (Vakit bulduğumda bu uygulamaları inceleyip burada yazmaya çalışırım.) Bu uygulamalar ile tespit edilmeye çalışılabilir.

Kalın sağlıcakla.

Gökhan AKIN
http://web.itu.edu.tr/akingok
http://gokhanakin.net

Tags:
Comments are closed.