Mac Seli(Mac Flooding) Saldırısı
MAC seli (MAC flooding) saldırısı, bir ağdaki Switch cihazının MAC adres tablosunu bozmak için yapılan bir saldırı türüdür. MAC adresi, bir ağdaki her cihazın eşsiz bir kimliğidir. Switch cihazı, ağdaki cihazların MAC adreslerini kaydederek, hangi cihazın hangi porta bağlı olduğunu bilir ve gelen paketleri sadece ilgili cihaza yönlendirir. Böylece ağdaki verimliliği ve güvenliği artırır.
Ancak, Switch cihazının MAC adres tablosunun sınırlı bir boyutu vardır. Eğer tablo dolarsa, Switch cihazı yeni MAC adreslerini kaydedemez ve gelen paketleri doğru şekilde yönlendiremez. Bu durumu fırsat bilen bir saldırgan, sahte MAC adresleri üreterek, Switch cihazına sürekli paket gönderir. Bu paketler, Switch cihazının MAC adres tablosunu doldurur ve taşırır. Switch cihazı, MAC adres tablosunda yer olmadığı için, gelen paketleri sadece belirli bir cihaza değil, tüm cihazlara yayınlar. Bu da, Switch cihazının HUB (çoklayıcı) gibi davranmasına neden olur. HUB, gelen paketleri tüm cihazlara gönderen basit bir ağ cihazıdır. Bu sayede, saldırgan makine, ağdaki tüm trafiği izleyebilir ve analiz edebilir. Ayrıca, ağdaki trafiğin artması, ağdaki performansı ve hızı düşürür. Ağdaki cihazlar, aşırı yüklenme nedeniyle, ağdan kopabilir veya çalışmayabilir.
MAC seli (MAC flooding) saldırısı, ağdaki Switch cihazının işlevini bozarak, ağdaki güvenliği ve verimliliği azaltan bir saldırıdır. Bu saldırıyı önlemek için, Switch cihazının MAC adres tablosunun boyutunu artırmak, MAC adreslerini sabitlemek veya ağdaki trafiği izlemek gibi yöntemler kullanılabilir.
MAC Flooding Saldırısı Yapma
Kali Linux işletim sistemi üzerinden MAC flooding saldırısı yapmak için macof komutu kullanılır. macof -h komut dizini kullanılarak macof komutunun tüm parametreleri görülebilir.
MAC Flooding saldırısı, ağ anahtarlarının güvenliğini tehlikeye atmayı amaçlayan bir saldırı yöntemidir. Anahtarlar genellikle MAC Tablosu adı verilen bir tablo yapısını korur. Bu MAC Tablosu, ağdaki anahtarın bağlantı noktalarına bağlı olan ana bilgisayarların ayrı MAC adreslerinden oluşur.
MAC Flooding saldırısında, bir saldırganın bu tabloyu hızlı bir şekilde doyurmak için her biri yanlış bir MAC adresine sahip çok sayıda istek ile. Bu, saniyeler içinde binlerce sahte adres göndererek anahtarın tüm portlarından aldığı paketleri göndermeye başladığını ve böylece trafiği engelleyebilmesini sağlarlar. Bu aynı zamanda MAC adresi doygunluğu olarak da bilinir.
macof komutu, Kali Linux işletim sisteminde bulunan ve ağ üzerindeki MAC adreslerini değiştirmek veya yönlendirmek için kullanılan bir araçtır. macof -h komut dizini kullanarak macof komutunun tüm parametreleri görülebilir.
macof -h komut dizininin anlamı şöyledir:
- -h: Yardım seçeneği
- -a: Anahtar listesi dosyasını okumak için
- -b: Bağlantı noktasının IP adresini belirtmek için
- -c: Bağlantı noktasının portunu belirtmek için
- -d: Bağlantı noktasının MAC adresini belirtmek için
- -e: Bağlantı noktasına gönderilecek paket sayısını belirtmek için
- -f: Paketleri rastgele seçmek için
- -g: Paketleri belirli bir protokol veya port üzerinden seçmek için
- -h: Yardım seçeneği (tekrarlanmış)
- -i: İstek sayısını belirtmek için
- -j: Paketleri belirli bir protokol veya port üzerinden seçmek için (tekrarlanmış)
- -k: Paketleri rastgele seçmek için (tekrarlanmış)
- -l: Yardım seçeneği (tekrarlanmış)
- -m: Paket boyutunu belirtmek için
- -n: Yardım seçeneği (tekrarlanmış)
- -o: Paket özniteliklerini belirtmek için
- -p: Yardım seçeneği (tekrarlanmış)
- -r: Yardım seçeneği (tekrarlanmış)
Aşağıdaki kod bloğunda, eth0 arayüzü üzerinden 192.168.1.1 IP adresine sahip bir anahtara saldırmak için macof komutunu nasıl kullanabileceğinizi görebilirsiniz.
# macof komutunu çalıştırmak için root yetkisi gereklidir
sudo macof -i eth0 -d 192.168.1.1
Bu komut, eth0 arayüzünden 192.168.1.1 IP adresine sahip anahtara rastgele MAC adresleri ile paketler gönderir. Bu şekilde, anahtarın MAC Tablosu sahte adreslerle dolacak ve ağ trafiği bozulacaktır.
MAC flooding saldırısı yapmak için macof komutunu kullanmanın avantajları ve dezavantajları nelerdir?
Avantajları:
- Basit ve kolay bir saldırı yöntemidir.
- Ağdaki tüm cihazları etkileyebilir.
- Anahtarın güvenlik ayarlarını veya yapılandırmasını değiştirmeden saldırabilir.
Dezavantajları:
- Anahtarın MAC Tablosu boyutu sınırlıdır ve saldırı sona erdiğinde eski haline dönebilir.
- Anahtarın MAC Tablosu aşırı yüklenme koruması veya port güvenliği gibi önlemleri varsa, saldırı etkisiz olabilir.
- Saldırganın ağa fiziksel olarak erişmesi gerekir.
- Saldırı sırasında ağ performansı düşer ve saldırgan da bundan etkilenir.
MAC Flooding Saldırı Tespiti
MAC flooding saldırısı, bir ağ anahtarının MAC adres tablosunu doldurmak için sahte MAC adresleri ile çok sayıda paket gönderen bir saldırı türüdür. Bu şekilde, anahtar MAC adres tablosunda yer kalmadığında, yayın moduna geçer ve tüm paketleri ağdaki tüm cihazlara gönderir. Bu da ağ performansını düşürür ve saldırganın ağ trafiğini dinlemesine olanak sağlar.
Wireshark, ağ trafiğini yakalamak ve analiz etmek için kullanılan bir programdır. Wireshark ile MAC flooding saldırısı tespit etmek için iki yöntem vardır:
- Statistics > I/O Graph seçeneği ile ağdaki paket sayısının zamanla nasıl değiştiğini gösteren bir grafik elde edilir. Eğer grafikte belirli bir süre içinde paket sayısında anormal bir artış varsa, bu MAC flooding saldırısının bir işareti olabilir.
- Statistics > Conversations seçeneği ile ağdaki paket alışverişlerinin detaylı bir listesi görüntülenir. Bu listede, IP adresleri, MAC adresleri, paket sayısı, byte sayısı ve paketler arasındaki zaman farkı gibi bilgiler yer alır. Eğer listede, IP adresleri sahte veya değişken, byte sayısı sabit veya çok küçük, zaman farkı çok az veya sıfır olan paketler varsa, bu da MAC flooding saldırısının bir göstergesi olabilir.
Python'da ağ trafiğini yakalamak ve analiz etmek için scapy adlı bir kütüphane vardır. Scapy ile MAC flooding saldırısı tespit etmek için şu adımları izleyebilirsiniz:
- sniff() fonksiyonu ile ağdaki paketleri yakalayın. Bu fonksiyonun count parametresi ile kaç paket yakalamak istediğinizi belirleyebilirsiniz. Bu fonksiyonun prn parametresi ile yakalanan paketleri işlemek için bir fonksiyon tanımlayabilirsiniz. Bu fonksiyonun store parametresi ile yakalanan paketleri hafızada tutup tutmayacağınızı seçebilirsiniz.
- Yakalanan paketleri işlemek için tanımladığınız fonksiyonda, paketlerin src ve dst özelliklerine erişerek MAC adreslerini alın. Bu MAC adreslerini bir sözlük yapısında saklayın. Sözlüğün anahtarları MAC adresleri, değerleri ise paket sayıları olsun. Her yeni MAC adresi için sözlüğe bir kayıt ekleyin. Her tekrar eden MAC adresi için ise paket sayısını bir artırın.
- Sözlüğü sorted() fonksiyonu ile paket sayısına göre sıralayın. Bu fonksiyonun key parametresi ile sıralama kriterini belirleyebilirsiniz. Bu fonksiyonun reverse parametresi ile sıralamanın büyükten küçüğe mi yoksa küçükten büyüğe mi olacağını seçebilirsiniz.
- Sıralanmış sözlüğü ekrana yazdırın. Eğer sözlükte paket sayısı çok yüksek olan MAC adresleri varsa, bu MAC flooding saldırısının bir işareti olabilir.
Python kodu şöyle olabilir:
# scapy kütüphanesini içe aktar
from scapy.all import *
# MAC adresleri ve paket sayılarını tutacak bir sözlük tanımla
mac_dict = {}
# Yakalanan paketleri işlemek için bir fonksiyon tanımla
def process_packet(packet):
# Paketin kaynak ve hedef MAC adreslerini al
src_mac = packet[Ether].src
dst_mac = packet[Ether].dst
# Kaynak MAC adresi sözlükte varsa, paket sayısını bir artır
if src_mac in mac_dict:
mac_dict[src_mac] += 1
# Kaynak MAC adresi sözlükte yoksa, yeni bir kayıt ekle
else:
mac_dict[src_mac] = 1
# Hedef MAC adresi sözlükte varsa, paket sayısını bir artır
if dst_mac in mac_dict:
mac_dict[dst_mac] += 1
# Hedef MAC adresi sözlükte yoksa, yeni bir kayıt ekle
else:
mac_dict[dst_mac] = 1
# Ağdaki paketleri yakala
sniff(count=100, prn=process_packet, store=False)
# Sözlüğü paket sayısına göre sırala
sorted_mac_dict = sorted(mac_dict.items(), key=lambda x: x[1], reverse=True)
# Sıralanmış sözlüğü ekrana yazdır
for mac, count in sorted_mac_dict:
print(f"{mac}: {count}")
Bu kodu çalıştırdığınızda, ekranda MAC adresleri ve paket sayılarını görebilirsiniz. Eğer paket sayısı çok yüksek olan MAC adresleri varsa, bu MAC flooding saldırısının bir işareti olabilir.
MAC Flooding Saldırısından Korunma Yolları
MAC Flooding saldırısından korunmak için, aşağıdaki yöntemler kullanılabilir:
- Ağda kullanılan IP-MAC adresi eşleşmeleri Switch cihazının port sayısı kadar yapılmalıdır. Böylece Switch cihazının giriş portuna farklı bir IP-MAC eşleşmesine sahip ARP isteği engellenir. ARP isteği, bir cihazın başka bir cihaza hangi IP adresine karşılık geldiğini öğrenmek için gönderilen bir sorgudur. Eğer iki cihazın IP-MAC eşleşmeleri aynı ise, bu bir çakışma oluşturur ve ARP isteği reddedilir.
- Switch cihazının giriş portlarına belli bir sürede gelen ARP isteği sınırlandırılarak da saldırı engellenebilir. Bu yöntemde, Switch cihazının herhangi bir giriş portuna sadece belirli aralıklarla veya belirli sayıda ARP isteği kabul edeceği belirlenir. Böylece, saldırganın çok fazla ARP isteği göndermesini önlemek mümkün olur.
MAC seli (MAC flooding) saldırısı, bir ağdaki Switch cihazının MAC adres tablosunu bozmak için yapılan bir saldırı türüdür. MAC adresi, bir ağdaki her cihazın eşsiz bir kimliğidir. Switch cihazı, ağdaki cihazların MAC adreslerini kaydederek, hangi cihazın hangi porta bağlı olduğunu bilir ve gelen paketleri sadece ilgili cihaza yönlendirir. Böylece ağdaki verimliliği ve güvenliği artırır.
Ancak, Switch cihazının MAC adres tablosunun sınırlı bir boyutu vardır. Eğer tablo dolarsa, Switch cihazı yeni MAC adreslerini kaydedemez ve gelen paketleri doğru şekilde yönlendiremez. Bu durumu fırsat bilen bir saldırgan, sahte MAC adresleri üreterek, Switch cihazına sürekli paket gönderir. Bu paketler, Switch cihazının MAC adres tablosunu doldurur ve taşırır. Switch cihazı, MAC adres tablosunda yer olmadığı için, gelen paketleri sadece belirli bir cihaza değil, tüm cihazlara yayınlar. Bu da, Switch cihazının HUB (çoklayıcı) gibi davranmasına neden olur. HUB, gelen paketleri tüm cihazlara gönderen basit bir ağ cihazıdır. Bu sayede, saldırgan makine, ağdaki tüm trafiği izleyebilir ve analiz edebilir. Ayrıca, ağdaki trafiğin artması, ağdaki performansı ve hızı düşürür. Ağdaki cihazlar, aşırı yüklenme nedeniyle, ağdan kopabilir veya çalışmayabilir.
MAC seli (MAC flooding) saldırısı, ağdaki Switch cihazının işlevini bozarak, ağdaki güvenliği ve verimliliği azaltan bir saldırıdır. Bu saldırıyı önlemek için, Switch cihazının MAC adres tablosunun boyutunu artırmak, MAC adreslerini sabitlemek veya ağdaki trafiği izlemek gibi yöntemler kullanılabilir.
MAC Flooding Saldırısı Yapma
Kali Linux işletim sistemi üzerinden MAC flooding saldırısı yapmak için macof komutu kullanılır. macof -h komut dizini kullanılarak macof komutunun tüm parametreleri görülebilir.
MAC Flooding saldırısı, ağ anahtarlarının güvenliğini tehlikeye atmayı amaçlayan bir saldırı yöntemidir. Anahtarlar genellikle MAC Tablosu adı verilen bir tablo yapısını korur. Bu MAC Tablosu, ağdaki anahtarın bağlantı noktalarına bağlı olan ana bilgisayarların ayrı MAC adreslerinden oluşur.
MAC Flooding saldırısında, bir saldırganın bu tabloyu hızlı bir şekilde doyurmak için her biri yanlış bir MAC adresine sahip çok sayıda istek ile. Bu, saniyeler içinde binlerce sahte adres göndererek anahtarın tüm portlarından aldığı paketleri göndermeye başladığını ve böylece trafiği engelleyebilmesini sağlarlar. Bu aynı zamanda MAC adresi doygunluğu olarak da bilinir.
macof komutu, Kali Linux işletim sisteminde bulunan ve ağ üzerindeki MAC adreslerini değiştirmek veya yönlendirmek için kullanılan bir araçtır. macof -h komut dizini kullanarak macof komutunun tüm parametreleri görülebilir.
macof -h komut dizininin anlamı şöyledir:
- -h: Yardım seçeneği
- -a: Anahtar listesi dosyasını okumak için
- -b: Bağlantı noktasının IP adresini belirtmek için
- -c: Bağlantı noktasının portunu belirtmek için
- -d: Bağlantı noktasının MAC adresini belirtmek için
- -e: Bağlantı noktasına gönderilecek paket sayısını belirtmek için
- -f: Paketleri rastgele seçmek için
- -g: Paketleri belirli bir protokol veya port üzerinden seçmek için
- -h: Yardım seçeneği (tekrarlanmış)
- -i: İstek sayısını belirtmek için
- -j: Paketleri belirli bir protokol veya port üzerinden seçmek için (tekrarlanmış)
- -k: Paketleri rastgele seçmek için (tekrarlanmış)
- -l: Yardım seçeneği (tekrarlanmış)
- -m: Paket boyutunu belirtmek için
- -n: Yardım seçeneği (tekrarlanmış)
- -o: Paket özniteliklerini belirtmek için
- -p: Yardım seçeneği (tekrarlanmış)
- -r: Yardım seçeneği (tekrarlanmış)
Aşağıdaki kod bloğunda, eth0 arayüzü üzerinden 192.168.1.1 IP adresine sahip bir anahtara saldırmak için macof komutunu nasıl kullanabileceğinizi görebilirsiniz.
# macof komutunu çalıştırmak için root yetkisi gereklidir
sudo macof -i eth0 -d 192.168.1.1
Bu komut, eth0 arayüzünden 192.168.1.1 IP adresine sahip anahtara rastgele MAC adresleri ile paketler gönderir. Bu şekilde, anahtarın MAC Tablosu sahte adreslerle dolacak ve ağ trafiği bozulacaktır.
MAC flooding saldırısı yapmak için macof komutunu kullanmanın avantajları ve dezavantajları nelerdir?
Avantajları:
- Basit ve kolay bir saldırı yöntemidir.
- Ağdaki tüm cihazları etkileyebilir.
- Anahtarın güvenlik ayarlarını veya yapılandırmasını değiştirmeden saldırabilir.
Dezavantajları:
- Anahtarın MAC Tablosu boyutu sınırlıdır ve saldırı sona erdiğinde eski haline dönebilir.
- Anahtarın MAC Tablosu aşırı yüklenme koruması veya port güvenliği gibi önlemleri varsa, saldırı etkisiz olabilir.
- Saldırganın ağa fiziksel olarak erişmesi gerekir.
- Saldırı sırasında ağ performansı düşer ve saldırgan da bundan etkilenir.
MAC Flooding Saldırı Tespiti
MAC flooding saldırısı, bir ağ anahtarının MAC adres tablosunu doldurmak için sahte MAC adresleri ile çok sayıda paket gönderen bir saldırı türüdür. Bu şekilde, anahtar MAC adres tablosunda yer kalmadığında, yayın moduna geçer ve tüm paketleri ağdaki tüm cihazlara gönderir. Bu da ağ performansını düşürür ve saldırganın ağ trafiğini dinlemesine olanak sağlar.
Wireshark, ağ trafiğini yakalamak ve analiz etmek için kullanılan bir programdır. Wireshark ile MAC flooding saldırısı tespit etmek için iki yöntem vardır:
- Statistics > I/O Graph seçeneği ile ağdaki paket sayısının zamanla nasıl değiştiğini gösteren bir grafik elde edilir. Eğer grafikte belirli bir süre içinde paket sayısında anormal bir artış varsa, bu MAC flooding saldırısının bir işareti olabilir.
- Statistics > Conversations seçeneği ile ağdaki paket alışverişlerinin detaylı bir listesi görüntülenir. Bu listede, IP adresleri, MAC adresleri, paket sayısı, byte sayısı ve paketler arasındaki zaman farkı gibi bilgiler yer alır. Eğer listede, IP adresleri sahte veya değişken, byte sayısı sabit veya çok küçük, zaman farkı çok az veya sıfır olan paketler varsa, bu da MAC flooding saldırısının bir göstergesi olabilir.
Python'da ağ trafiğini yakalamak ve analiz etmek için scapy adlı bir kütüphane vardır. Scapy ile MAC flooding saldırısı tespit etmek için şu adımları izleyebilirsiniz:
- sniff() fonksiyonu ile ağdaki paketleri yakalayın. Bu fonksiyonun count parametresi ile kaç paket yakalamak istediğinizi belirleyebilirsiniz. Bu fonksiyonun prn parametresi ile yakalanan paketleri işlemek için bir fonksiyon tanımlayabilirsiniz. Bu fonksiyonun store parametresi ile yakalanan paketleri hafızada tutup tutmayacağınızı seçebilirsiniz.
- Yakalanan paketleri işlemek için tanımladığınız fonksiyonda, paketlerin src ve dst özelliklerine erişerek MAC adreslerini alın. Bu MAC adreslerini bir sözlük yapısında saklayın. Sözlüğün anahtarları MAC adresleri, değerleri ise paket sayıları olsun. Her yeni MAC adresi için sözlüğe bir kayıt ekleyin. Her tekrar eden MAC adresi için ise paket sayısını bir artırın.
- Sözlüğü sorted() fonksiyonu ile paket sayısına göre sıralayın. Bu fonksiyonun key parametresi ile sıralama kriterini belirleyebilirsiniz. Bu fonksiyonun reverse parametresi ile sıralamanın büyükten küçüğe mi yoksa küçükten büyüğe mi olacağını seçebilirsiniz.
- Sıralanmış sözlüğü ekrana yazdırın. Eğer sözlükte paket sayısı çok yüksek olan MAC adresleri varsa, bu MAC flooding saldırısının bir işareti olabilir.
Python kodu şöyle olabilir:
# scapy kütüphanesini içe aktar
from scapy.all import *
# MAC adresleri ve paket sayılarını tutacak bir sözlük tanımla
mac_dict = {}
# Yakalanan paketleri işlemek için bir fonksiyon tanımla
def process_packet(packet):
# Paketin kaynak ve hedef MAC adreslerini al
src_mac = packet[Ether].src
dst_mac = packet[Ether].dst
# Kaynak MAC adresi sözlükte varsa, paket sayısını bir artır
if src_mac in mac_dict:
mac_dict[src_mac] += 1
# Kaynak MAC adresi sözlükte yoksa, yeni bir kayıt ekle
else:
mac_dict[src_mac] = 1
# Hedef MAC adresi sözlükte varsa, paket sayısını bir artır
if dst_mac in mac_dict:
mac_dict[dst_mac] += 1
# Hedef MAC adresi sözlükte yoksa, yeni bir kayıt ekle
else:
mac_dict[dst_mac] = 1
# Ağdaki paketleri yakala
sniff(count=100, prn=process_packet, store=False)
# Sözlüğü paket sayısına göre sırala
sorted_mac_dict = sorted(mac_dict.items(), key=lambda x: x[1], reverse=True)
# Sıralanmış sözlüğü ekrana yazdır
for mac, count in sorted_mac_dict:
print(f"{mac}: {count}")
Bu kodu çalıştırdığınızda, ekranda MAC adresleri ve paket sayılarını görebilirsiniz. Eğer paket sayısı çok yüksek olan MAC adresleri varsa, bu MAC flooding saldırısının bir işareti olabilir.
MAC Flooding Saldırısından Korunma Yolları
MAC Flooding saldırısından korunmak için, aşağıdaki yöntemler kullanılabilir:
- Ağda kullanılan IP-MAC adresi eşleşmeleri Switch cihazının port sayısı kadar yapılmalıdır. Böylece Switch cihazının giriş portuna farklı bir IP-MAC eşleşmesine sahip ARP isteği engellenir. ARP isteği, bir cihazın başka bir cihaza hangi IP adresine karşılık geldiğini öğrenmek için gönderilen bir sorgudur. Eğer iki cihazın IP-MAC eşleşmeleri aynı ise, bu bir çakışma oluşturur ve ARP isteği reddedilir.
- Switch cihazının giriş portlarına belli bir sürede gelen ARP isteği sınırlandırılarak da saldırı engellenebilir. Bu yöntemde, Switch cihazının herhangi bir giriş portuna sadece belirli aralıklarla veya belirli sayıda ARP isteği kabul edeceği belirlenir. Böylece, saldırganın çok fazla ARP isteği göndermesini önlemek mümkün olur.


