6-VTP ATTACK
VTP NEDİR?
VTP (VLAN Trunking Protocol), VLAN'ları merkezi olarak yönetmek için tasarlanmış bir protokoldür. Anahtarlar, mevcut VLAN veritabanını takip etmek için özel revizyon numaralarını kontrol eder. Herhangi bir tablo güncellemesi gerçekleştiğinde, revizyon numarası artırılır. Eğer bir anahtar, daha yüksek bir revizyon numarasına sahip bir konfigürasyon tespit ederse, VLAN veritabanını otomatik olarak güncelleyecektir.
VLAN Trunking Protokolü (VTP), kampüsteki tüm diğer anahtarların bu VLAN hakkında bilgi sahibi olması için, bir anahtarda yapılandırılmış her VLAN'ı tanıtan, Cisco anahtarları üzerinde bulunan Cisco'ya özel bir araçtır.
Switch'ler arasında VLAN yapılandırma bilgisinin değiş-tokuş edilmesi için Cisco'nun kendi özel protokolü olan VTP'yi (VLAN Trunking Protocol - VLAN Trunk Oluşturma Protokolü) kullanır. VTP, çalışan switch'ler arasında kullandığı bir mesajlaşma protokolüdür. Bu mesajlaşmalarda, VLAN yapılandırma bilgileri alışverişi gerçekleşir. VTP mesajlaşmasının amacı, sonuçta tüm ağın VLAN yapılandırılmasını kararlı hale getirebilmektir.
Örneğin, VLAN 3'ü kullanmak ve bu VLAN'a "XXX" adını vermek istiyorsunuz. Bu bilgiyi tek bir switch üzerinde VLAN 3 açıp adını "XXX" olarak atamanız yeterli olacaktır. Çünkü bu bilgi, VTP sayesinde diğer tüm switch'lere iletilir ve sonuçta VTP kararlılık seviyesinde iken tüm ağ, VLAN 3'ü "XXX" adıyla tanıyor olacaktır. VTP sayesinde, yeni VLAN'lerin açılması/eklenmesi, çıkarılması, adlarının değiştirilmesi gibi VLAN yönetimsel işlemleri rahatlıkla yapılabilmektedir. Yönetimin merkezden yapılandırılması, yanlış yapılandırmaları ve bunlardan kaynaklanan kararsız sistem işletimi gibi problemleri ortadan kaldırabilir.
VTP, VLAN yapılandırmasını oldukça kolay hale getirmektedir. Ancak henüz VLAN'ın yapılandırılmış olduğunu görmediğiniz için, VTP'nin olanaklarını yeterince takdir edemiyor olabilirsiniz. Bu nedenle, şu örneği gözden geçirelim:
Bir ağda 10 adet switch'in bağlanması ile oluştuğunu düşünelim. Tüm switch'lerde VLAN 3'ün yer almasını istiyorsak, switch'lerin hepsinde tek tek aynı komutları girerek VLAN 3 açmamız gerekebilir. Ancak VTP kullanırsak, sadece bir tek switch'te VLAN 3 açmamız yeterli olacaktır. Diğer dokuz switch, VTP protokolü sayesinde dinamik olarak bu bilgiyi öğrenecektir.
VTP süreci, yeni bir VLAN açma işleminin VTP sunucusu (VTP server) olarak adlandırılan switch üzerinde başlamasıyla başlar. Değişikliklerin tamamı, tüm switch'lere broadcast mesajları olarak dağıtılır. VTP istemcileri (VTP clients) ve sunucuları, bu VTP broadcast mesajlarını alır ve kendi yapılandırmalarını bu mesajların içeriğine göre günceller. VTP sayesinde, büyük ölçekli bilgisayar ağlarında yapılandırma problemleri ortadan kaldırılmış ve merkezi bir güncelleme sistemi kurulmuş olur.
VTP MODLARI NELERDİR?
VTP Server: VTP Sunucusu rolündeki bir anahtar, yeni VLAN'lar oluşturabilir, mevcut VLAN'ları silebilir veya kendi VLAN bilgilerini değiştirebilir. Ayrıca, geri kalan ağ üyeleri için VTP duyuruları da oluşturur.
VTP Client : Bu roldeki bir anahtar, VLAN veritabanlarını güncellemek için etki alanındaki diğer anahtarlardan belirli VTP duyurularını alacaktır. İstemcilerin VLAN oluşturma yetenekleri sınırlıdır ve VLAN yapılandırmasını yerel olarak değiştirmelerine bile izin verilmez. Başka bir deyişle, salt okunur erişime sahiptirler.
VTP Transparent : Bu modda anahtar, VTP işlemlerine katılmaz ve tüm VLAN yapılandırmasının tam ve yerel yönetimini barındırabilir. Şeffaf modda çalışırken, anahtarlar VLAN yapılandırmalarını etkilemeden yalnızca diğer anahtarlardan gelen VTP duyurularını iletir. Bu tür anahtarların revizyon numarası her zaman sıfır olacaktır ve bu moddaki anahtarlar saldırıya uğramayacaktır.
VTP SÜRÜMLERİ
VLAN Trunking Protokolü'nün üç sürümü mevcuttur ve en yeni Cisco IOS sürümleri tarafından desteklenir. VTP sürümleri genellikle geriye dönük olarak uyumlu olsa da, mümkünse anahtarlar arasında aynı sürümün kullanılması genellikle en iyisidir. Bu, en son özelliklerin desteklenmesini sağlar. Üç versiyonun aşağıdaki özelliklere sahip olduğu düşünülebilir:
VTP V1 : Bu, en temel özellik setine sahip olan orijinal versiyondur. Modern topolojilerde artık kullanılmamaktadır.
VTP V2 : Versiyon 2 tanıtıldı; token ring ağları ve VTP çerçevelerinin bütünlük kontrolleri için destek sağlandı. Bu sürümde şeffaf anahtarlar, sürüm bilgilerini kontrol etmeden VTP çerçevelerini bir eşe aktarır. Bu, alan bilgilerinin bilgi iletilmeden önce kontrol edildiği V1'den farklı bir değişikliktir.
VTP V3 : Bu, gizli şifreler için ek desteğe sahip en yeni sürümdür. Bu sürüm, vlan db'sinin (MST vb.) yanı sıra diğer birçok veritabanını yayma yeteneği ekler. Ayrıca, mevcut vlan veritabanının kazara veya saldırı sonucu üzerine yazılmasına karşı ek koruma da mevcuttur.
YAYIN TÜRLERİ VE MESAJLAR
Summary Advertisement : VTP sunucusu her 300 saniyede (5 dakika) bir VTP duyurusu gönderir. Bu duyuru, VTP alan adını, protokol sürümünü, zaman damgasını ve MD5 yapılandırma karma değerini içerir.
Subset Advertisement : Bu, bir VLAN yapılandırma değişikliği meydana geldiğinde gönderilen VTP mesajıdır.
Advertisement Request : Özet Bildiri mesajı, VTP istemcisinden VTP sunucusuna yöneltilen bir istektir. Genellikle, bir anahtarın daha yüksek bir konfigürasyon revizyon numarasına sahip bir Özet Bildiri tespit ettiğini belirten bir mesajı yanıtlamak amacıyla gönderilir.
VTP'ye yalnızca trunk bağlantı noktasından saldırı yapılabilir, çünkü VTP duyuruları sadece trunk bağlantı noktalarında yayınlanır ve alınır. DTP'ye başarılı bir saldırı gerçekleştirdikten sonra, bir sonraki hedefiniz VTP olabilir. VTP etki alanına yönelik bir saldırı gerçekleştirmek için Yersinia gibi araçları kullanarak tüm VLAN veritabanını silerek ağı felç edecek bir VTP enjeksiyonu çalıştırabilirsiniz. Ancak, bu tür saldırıların yasal ve etik kurallar dahilinde yapılması önemlidir, aksi takdirde yasal sonuçlarla karşılaşabilirsiniz.
VTP protokolünün en fazla üç sürümü vardır. Bu yazıdaki saldırı, ilk versiyon olan VTPv1'e yöneliktir.
VTP ATTACK
Switch'lerde trunk modu olmadan, VTP saldırısını kesinlikle gerçekleştiremezsiniz.
Konuda kullanılacak olan basit bir ağ yapısı.
1 => VLAN ID numarası
2 => VLAN ismi, örneğin okul gibi isimler olabilir. Bu durumda varsayılan bir değer kullanılmış.
3 => Aktif mi, pasif mi durumu
4 => Bu VLAN'a bağlı olan arayüzler
Burada toplam VLAN sayısı görülmektedir. Daha detayı CCNP konusudur.
Burada VTPv1 protokolü, etki alanı adı ve VTP istemcisinin durumu görülmektedir.
Şimdiye kadar yapılanları kontrol etmek adına başlangıçta belirttiğimiz gibi trunk olup olmadığını kontrol edelim.
Eğer trunk bağlantısı yoksa ve DTP saldırısını gerçekleştirdiyseniz, sahte mesajlar kullanarak atak makinemizi trunk moduna alabiliriz.
Görüldüğü gibi DTP atağını başlattık ve bunu hemen gördü. Şimdi ise VTP atak komutuna geçelim, önceki kullanımlardan Yersinia aracını kullanmayı bildiğini varsayarak ben ilerliyorum.
Ve sistem şu anda trunk moduna geçti, artık VTP atağına geçebiliriz.
İlk olarak, sadece bir VLAN'ı silelim.
VTP arayüzü.
"2" dedikten sonra ilgili arayüz açıldığında, VLAN ismini yazıp Enter tuşuna basıyoruz.
Entere tıkladıktan sonra "x" ve ardından "0" diyerek bu paketi iletmemiz gerekecek.
İstek gönderildikten sonra bu paketin burada görüntüleniyor olması gerekir. Aksi takdirde istediğimiz VLAN silinmez.
Switch'ın VLAN'ların önceki hali.
Burada ise saldırı yapıldıktan sonraki hali temsil etmektedir.
Şimdiki senaryo, bütün VTP üzerinden gelen VLAN’ları silip ağı çökertelim. Burada eğer VLAN’lar silinirse ağda büyük hasarlara yol açabilir. Önceki resimlerde görüldüğü gibi VLAN’lar tek tek duruyordu ve bunun sonrasını bakalım.
Yine aynı şekilde ‘x’ basıp, sonra da ‘1’ basıp ilerleyelim. Enter dedikten sonra paketi yollamak için ‘x’, sonra ise ‘0’ basıp Enter’a bastıktan sonra işlem tamamdır. Artık switch arayüzüne gelip durumları kontrol edebiliriz.
Görüldüğü gibi, sistemimize enjekte edildi ve artık kontrol etmeye geçelim.
Bütün VLAN'lar silindi ve şu anda ağ kullanılamaz durumda.
Şimdi ise ağa aynı şekilde bir vlan eklemeye çalışalım.
İstediğiniz değerleri verebilirsiniz Ben burada kafama göre bir enjekte edip bakalım, olmuş mu kontrol edeceğim.
Enjekte edilen paketleri ve bunlara VLAN ekledikten sonra paketi göndermeyi unutmayın; aksi takdirde çalışmaz.
Görüldüğü gibi, sisteme yazılmış bu VTP saldırısı oldukça kolay ve saldırılar birbirlerini zincirleme gibi etkileyebilir. İlk olarak DTP saldırısını fark ettik ve bunu burada kullandık. DTP saldırısını bilmeyenler bu yazıyı okuyabilir.
VTP ATTACK ÖNLEME
Şimdi bir VLAN'ı silmeyi deneyelim ve saldırının başarılı olup olmadığını kontrol edelim. Enter tuşuna bastıktan sonra, paketi tekrar bu menüye gelip "0" tuşuna basarak gönderiyoruz.
Görüldüğü gibi, sadece "istek" gitti ve onay paketleri gelmedi. Demek ki aldığımız önlemler işe yaradı.
VLAN yerli yerinde duruyor ve bu saldırıda aldığımız önlemler yeterli olabiliyor.
İLERİ SEVİYEDE VTP ATTACK
Bundan önceki konu başlığında temel VTP saldırısını görmüştük, burada ise biraz daha gerçekçi bir senaryo ile konuya derinlemesine girelim.
PAKET YAPISI DETAYI
Bu bölümde, VTP paket yapısını inceleyeceğiz. Sadece saldırı yapmakla kalmayıp, işin mantığını anlamak da önemlidir.
İnceleme için kullanacağımız topoloji, GNS3 üzerinde gerekli kurulumların yapıldığı bu olacaktır.
VLAN'ları öncelikle oluşturup server switch'ten VTP ile dağıtarak bütün switch'lere bakacağız.
Şimdi ise SW3 ve SW2'e gelip bakalım, VLAN'ları iletip iletemediğini kontrol edeceğiz.
Görüldüğü gibi VLAN'lar eklenmiş. Şimdi bu VLAN'ların paket yapısına bakalım.
1 => Yayın tüm cihazlara iletilsin. (Multicast yayın sadece Cisco cihazlarıyla özgüdür.)
2 => Kaynak MAC adresi, yani çıkan cihazın kimliği.
3 => Kullanılan kapsülleme türü.
Version (Versiyon): VTP'nin kullandığı protokol sürümü. Bu durumda, versiyon 0x01 olarak belirtilmiş.
Code (Kod): Mesajın türünü belirten bir kod. Bu mesajın kodu "Join/Prune Message" olarak belirlenmiş (0x04).
Reserved (Ayrılmış): Bu alana genellikle belirli bir kullanım için ayrılmış bir değer yazılır. Bu mesajda, bu alan "00" olarak belirtilmiş.
Management Domain Length (Yönetim Alanı Uzunluğu): Yönetim alanının uzunluğunu belirten bir değer. Bu mesajda yönetim alanı 12 karakter uzunluğunda.
Management Domain (Yönetim Alanı): VLAN bilgilerinin paylaşıldığı etki alanının adı. Bu mesajda "local.servis" olarak belirtilmiş.
First VLAN ID (İlk VLAN Kimliği): Reklamı yapılan ilk VLAN'ın kimliği. Bu durumda 0 olarak belirtilmiş, yani ilk VLAN 0.
Last VLAN ID (Son VLAN Kimliği): Reklamı yapılan son VLAN'ın kimliği. Bu durumda 1007 olarak belirtilmiş, yani son VLAN 1007.
Advertised active (i.e. not pruned) VLANs (Reklamı Yapılan Aktif VLAN'lar): Bu bölümde, reklamı yapılan ve etkin (budanmamış) VLAN'lar listelenir. Ancak bu mesajda bu bilgi belirtilmemiş, yani hangi VLAN'ların reklamı yapıldığına dair spesifik bir bilgi bulunmamakta.
Bu bilgiler doğrultusunda, mesajda belirtilen VLAN bilgileri, belirli bir yönetim etki alanı altında reklamı yapılan VLAN aralığını ve ilgili protokol detaylarını tanımlar.
Bu mesaj türü JOİN olarak işaretlmenmiş. Diğerini ise inceleyelim.
Version (Versiyon): VTP'nin kullandığı protokol sürümü. Bu durumda, versiyon 0x01 olarak belirtilmiş.
Code (Kod): Mesajın türünü belirten bir kod. Bu mesajın kodu "Summary Advertisement" olarak belirlenmiş (0x01).
Followers (Takipçiler): Bu alan, bir VTP sunucusunun diğer VTP cihazlarının özelleşmiş kodların (specialized codes) alıp almadığını belirtir. Bu durumda takipçi yok (0).
Management Domain Length (Yönetim Alanı Uzunluğu): Yönetim alanının uzunluğunu belirten bir değer. Bu mesajda yönetim alanı 12 karakter uzunluğunda.
Management Domain (Yönetim Alanı): VLAN bilgilerinin paylaşıldığı etki alanının adı. Bu mesajda "local.servis" olarak belirtilmiş.
Configuration Revision Number (Yapılandırma Revizyon Numarası): Bu, VTP veritabanının güncel revizyon numarasını belirtir. Bu mesajdaki revizyon numarası 4 olarak belirtilmiş.
Updater Identity (Güncelleyici Kimliği): Bu, VTP veritabanını son güncelleyen cihazın kimliğini belirtir. Bu mesajda güncelleyici kimliği "0.0.0.0" olarak belirtilmiş, yani henüz güncelleme yapmış bir cihaz yok.
Update Timestamp (Güncelleme Zaman Damgası): Bu, VTP veritabanının son güncelleme zamanını belirtir. Bu mesajda güncelleme zamanı "24-02-06 16:31:46" olarak belirtilmiş.
MD5 Digest (MD5 Özeti): Bu, VTP veritabanının güvenlik kontrolü için bir MD5 özeti sağlar. Bu mesajda MD5 özeti "09fc3949371ebb67bee8f0a45e1d3b84" olarak belirtilmiş.
Bu bilgiler, bir VTP mesajının içeriğindeki önemli öğeleri temsil eder ve ağdaki VLAN yapılandırmasını ve güncellemelerini kontrol etmek için kullanılır.
Eğer isteyen olursa, bir VLAN eklenildiğinde nasıl bir mesajla karşılaşılacağını gösteren bir .pcap dosyasını buraya bırakacağım. Bu şekilde, VLAN'ların nasıl ifşa edildiğine dair kanıt sunabilirsiniz.
resimde belirtilen yerlere bakmaları yeterli olacaktır.
Last updated