🖥️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 ATTACK

Konuda kullanılacak olan basit bir ağ yapısı.
// sonra ise switch arayüze gelip bunları uygulamanız gerek.
Switch(config)#vtp mode server
Device mode already VTP Server for VLANS.
Switch(config)#vtp domain hedef.local
Changing VTP domain name from NULL to hedef.local
*Feb 5 17:34:44.303: %SW_VLAN-6-VTP_DOMAIN_NAME_CHG: VTP domain name changed to hedef.local.
Switch(config)#vlan 3
Switch(config-vlan)#vlan 4
Switch(config-vlan)#vlan 5
Switch(config-vlan)#vlan 6
Switch(config-vlan)#vlan 7-10
// Yukarıda, 3'ten 10'a kadar olan VLAN'ları oluşturduk.
//Şimdi, VLAN'ların oluşturulup oluşturulmadığını kontrol edelim.

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.
Switch#show vtp password
The VTP password is not configured.
// Bu çıktıda VTP şifresi belirtilmemiş, yani şu anda bir şifre kullanılmıyor.
Ş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
//Burada da, DTP olduğu gibi access moda alıp işin içinden çıkabiliriz.
//Ancak unutulduğu takdirde ve işimizi sağlama almak adına bir ek tedbir daha alacağız.
Switch(config)#vtp password cisco
Setting device VTP password to cisco
Switch(config)#vtp mode transparent
Setting device to VTP Transparent mode for VLANS.
// VTP serverına bir şifre belirledik ve işlem tamamlandıktan sonra, güvenlik önlemi olarak transparent moduna çektik.



Ş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.
SW1#show vtp status
VTP Version capable : 1 to 3
VTP version running : 1
VTP Domain Name : local.servis
VTP Pruning Mode : Enabled
VTP Traps Generation : Disabled
Device ID : aabb.cc00.0100
Configuration last modified by 0.0.0.0 at 2-6-24 16:31:46
Local updater ID is 0.0.0.0 (no valid interface found)
Feature VLAN:
--------------
VTP Operating Mode : Server
Maximum VLANs supported locally : 1005
Number of existing VLANs : 8
Configuration Revision : 4
MD5 digest : 0x09 0xFC 0x39 0x49 0x37 0x1E 0xBB 0x67
0xBE 0xE8 0xF0 0xA4 0x5E 0x1D 0x3B 0x84
*** MD5 digest checksum mismatch on trunk: Et0/0 ***
SW1(config)#vtp password cisco
Setting device VTP password to cisco
SW1(config)#vtp domain local.servis
Changing VTP domain name from NULL to local.servis
SW1(config)#vtp mode server
Device mode already VTP Server for VLANS.
// Bu ayarlar SW1 switch'inde yapıldı.
SW3(config)#vtp mode transparent
Setting device to VTP Transparent mode for VLANS.
SW3(config)#vtp domain local.servis
Domain name already set to local.servis.
SW3(config)#vtp password cisco
Setting device VTP password to cisco
SW3#show vtp status
VTP Version capable : 1 to 3
VTP version running : 1
VTP Domain Name : local.servis
VTP Pruning Mode : Disabled
VTP Traps Generation : Disabled
Device ID : aabb.cc00.0300
Configuration last modified by 0.0.0.0 at 2-6-24 16:19:04
Feature VLAN:
--------------
VTP Operating Mode : Transparent
Maximum VLANs supported locally : 1005
Number of existing VLANs : 8
Configuration Revision : 0
MD5 digest : 0x3C 0xF3 0xDF 0xBE 0x8B 0xC6 0x61 0x8B
0x04 0xDD 0x62 0x0A 0x86 0xA7 0x07 0x2C
// SW3 VTP ayarları
SW2(config)#vtp mode client
Setting device to VTP Client mode for VLANS.
SW2(config)#vtp domain local.servis
Domain name already set to local.servis.
SW2(config)#vtp password cisco
Setting device VTP password to cisco
SW2#show vtp status
VTP Version capable : 1 to 3
VTP version running : 1
VTP Domain Name : local.servis
VTP Pruning Mode : Disabled
VTP Traps Generation : Disabled
Device ID : aabb.cc00.0200
Configuration last modified by 0.0.0.0 at 2-6-24 16:19:04
Feature VLAN:
--------------
VTP Operating Mode : Client
Maximum VLANs supported locally : 1005
Number of existing VLANs : 8
Configuration Revision : 3
MD5 digest : 0x5B 0x2C 0x52 0xDE 0x67 0x4B 0x32 0xF2
0xE7 0x70 0xD0 0xDB 0xF9 0x27 0xF0 0x6C
// SW2 VTP ayarları
Ş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.
SW1 => aabb.cc00.0100
SW3 => aabb.cc00.0300
SW2 => aabb.cc00.0200
// Yukarıdaki MAC adresleri, her birinin hangi cihaza ait olduğunu gösteriyor.

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