Arp Spoofing İlave Uygulamalar | ||||||||||||||||||||||||||
Merhaba arkadaşlar, bu makalede sizlerle arp zehirlemesi üzerine ilave uygulamalar paylaşılacaktır. Bu makale bir önceki makaleyle ilintili olduğu için makale sıralaması şu şekildedir:
Bu makalede yer alacak başlıklar ise şu şekildedir: a. Ettercap Grafik Arayüzü ile Arp SpoofingBu uygulama önceki makalede yapılan arp zehirlemesi ile yerel ağdaki kurbanın kritik verilerini (ç)alma işlemini bu sefer Ettercap aracının grafik arayüzü seçeneğini kullanarak yapılışını gösterecektir.Gereksinimler
Öncelikle saldırgan bilgi toplama safhasında saldırıda lazım olacak üç bilgiyi toplar: Pardus Terminal: // (*) Ethernet arayüz ismini öğrenme ip address # Çıktı: enp0s31f6 // (*) Router ip öğrenme ip route # Çıktı: 172.16.3.1 // (*) Kurban IP'sini öğrenme // Sosyal müh. ile ya da gizli kapaklı işler ile # Çıktı: 172.16.3.97 Daha sonra saldırıya başlar. Pardus Terminal: // (*) Kurulum sudo su apt-get install ettercap-graphical // (*) Çalıştırma ettercap -G Çıktı: ![]() ![]() Önceki makalede hatırlarsanız Ettercap aracını -T parametresiyle kullanmıştık. Ettercap'e -T parametresi verildiğinde konsol arayüzünde çalışır. -G parametresi (Graphical) verildiğinde ise yukarıdaki gelen pencerede görüldüğü üzere grafik arayüzünde çalışır. Saldırgan saldırı için ethernet kartını promiscous moda ve trafik yönlendirme haline geçirir: ![]() Daha sonra Sniff'lemeyi (Paket Yakala işlevini) başlatır ve bilgi toplama safhasında elde ettiği ethernet arayüz ismini seçerek Tamam der. ![]() ![]() Sonra yerel ağı tarayarak ağa bağlı makineleri (IP'lerini) tespit eder. ![]() ![]() ![]() ![]() Sonra arasına gireceği hedefleri sırasıyla Target olarak işaretler. Örneğin bu uygulamada saldırgan bilgi toplama safhasında router IP'si olarak 172.16.3.1 IP'sini ve kurban IP'si olarak da 172.16.3.97 IP'sini elde etmişti. Dolayısıyla önce Router'ı (172.16.3.1 IP'sini) Target 1 olarak işaretler: ![]() Daha sonra kurbanı (IP'sini) Target 2 olarak işaretler: ![]() En sonunda ise Mitm -> Arp poisoning menüsünden plugin'ini seçer ve ![]() ![]() gelen küçük penceredeki seçeneklerden Sniff Remote Connections kutucuğuna tick atıp Tamam der. Böylece saldırıyı başlatır.
Not:
Sniff Remote Connections seçeneğini seçerek Ettercap'e kurbanın sadece gönderdiği http paketlerini değil, kurbana yanıt olarak dönen http paketlerini de sniff'le (yakala) demiş oluyoruz. Eğer sadece kurbanın gönderdiği http taleplerini sniff'leyi ve kurbana yanıt olarak internetten gelen paketleri ise sniff'lememeyi tercih edecek olsaydık Only Poison One Way kutucuğuna tick atıp Tamam derdik. Saldırgan makinesi (Pardus 17.5 LTS) şu an kurban makine (Windows 10 Enterprise) ve Router arasına girmiştir. ![]() Yani kurbanın trafiği artık saldırgan makine üzerinden geçmektedir. Bu sıralarda kurban makinede bir http web uygulamasına login işlemi yapıldığını varsayalım. Kurban Makine (Windows 10 Enterprise): ![]() Kurban makinedeki kişi oturum aç butonuna bastığı an göndereceği paket saldırgan makinesine, oradan router'a ve internete gideceğinden ve saldırgan makinesindeki paketleri dinleyen Ettercap bu tip kritik addedilebilecek verileri otomatikmen paketler içerisinden saptama mekanizmasına sahip olduğundan çıktı olarak kurbanın girdiği hesap verilerini (kullanıcı adı ve şifre olduğunu düşünerek) bize pencerenin alt kısmındaki çıktı köşesinden sunacaktır: ![]() Görüldüğü üzere high-level bir çözüm ile kurban bir kimsenin hesap bilgilerini elde edebildik. Sniffing işlemi sonrası hedef kurban bilgisayarın network hizmetini crash etmeden (internet bağlantısını bozmadan) terk edebilmek için sırasıyla
Start->Stop Sniffing
Mitm->Stop Mitm Attack(s) sekmelerine tıklanmalıdır. Böylece hedef bilgisayar tekrar rayına oturarak kurban kimse bilgisayarından internet erişimini kendi bilgisayarı - router - internet hattı üzerinden sürdürebilecektir. b. Arp Spoofing ile Yerel Ağ İnternetini KesmeBu uygulamada arp zehirlemesi yaparak bu sefer yerel ağdaki internet trafiğini kesme saldırısı yapılacaktır. Bu iş için arpspoof gibi elle, fakat daha low level (daha ayrıntılı) sahte paket üretmemizi sağlayacak scapy aracından faydalanılacaktır.Saldırı genel manasıyla şu şekilde işleyecektir: Saldırgan sahte arp paketleri ile kendini yerel ağdaki tüm makinalara router olarak tanıtacaktır. Fakat bu sefer bu işlem sonrası router'a ben kurban makinayım / makinalarım demeyecektir ve ethernet kartını promiscous moda - gelen trafiği yönlendir moduna - geçirmeyecektir. Çünkü buradaki amaç kurbanların trafiğini üzerimize alıp doğru hedefine (router'a) yönlendirerek kurbanların dışarıyla olan iletişiminin devam etmesi ve trafiklerini okuyarak kritik veriler elde etmek değildir. Buradaki amaç trafiği üzerimize alıp makinamızda noktalatmaktır. Böylece yerel ağdaki kurbanlar internet trafiklerini dışarıya ulaştıramayacağından internet erişimleri kopmuş olacaktır. Bu işin teori kısmı. Teknik detay verecek olursak saldırgan yerel ağdaki tüm cihazlara router'ın MAC adresini hatalı olarak bildirdiğinde - ki bildiğiniz gibi yerel ağlarda iletişim MAC adresleri üzerinden olmaktadır - tüm cihazlar router'a paket gönderiyorum derken başka bir yere (saldırgana) paketlerini göndereceklerdir. Bu sayede kurban örneğin google.com'a göndereceği siteyi istiyorum paketini router üzerinden google.com sunucusuna gönderecekken saldırgana gönderip saldırganda noktanmasından dolayı internet erişimi kopmuş olacaktır. Böylelikle kurbanların dışarıyla iletişimi bitirilmiş olacaktır. Ancak bu sıkıntı sonrası cihazlar arp yayını yaparak Router'ı tekrar bulabilirler ve internet bağlantılarını onarabilirler. Bu nedenle yerel ağdaki cihazlara gönderilecek sahte arp paketlerini bir kez değil, sürekli göndermemiz gerekir. Oluşturduğumuz sahte ARP paketleri ile yerel ağda sürekli arp yayını (ağdaki tüm makinalara arp paket gönderimi) yaparak cihazların internet bağlantılarını biz koparırıken onlar onaracaklardır. Bu mücadelenin sonu küçük ve orta ölçekli ağlarda saldırgandan yana olacaktır. Büyük ölçekli ağlarda makina sayısının binleri varması dolayısıyla saldırganın bu kadar makinaya yetişmesi kolay olmayabilir. Fakat bu istisnalar dışında yerel ağların çoğunda bu saldırı işe yaramaktadır. Yerel ağda internet erişimlerini kaybeden kurbanlar bir Local Area Network DOS saldırısı (LAN Servis Dışı Bırakma saldırısı) yemiş olmaktadır. Şimdi bu yerel ağ DOS saldırısını scapy tool'u ile oluşturacağımız sahte arp paketleri ile yapalım. Gereksinimler
Öncelikle bilgi toplama sahfası olarak Router'ın IP'sine ihtiyacımız vardır. Önceki uygulamalarda yaptığımız gibi başka bilgi toplamaya bu uygulamada lüzum yoktur. Çünkü yerel ağdaki tüm makinalar hedef konumundadır. Pardus Terminal: // (*) Router ip öğrenme ip route # Çıktı: 172.16.3.1 Saldırı için artık hazırız. Şimdi scapy aracımızı başlatalım. Pardus Terminal: // (*) Kurulum sudo su apt-get install tcpdump graphviz imagemagick python-matplotlib python-cryptography python-pyx scapy // (*) Çalıştırma scapy Çıktı: ![]() Görüntülemekte olduğunuz ekran scapy aracının arayüzüdür. Şimdi bir Arp paket şablonu (nesnesi) oluşturalım ve paketin bölümlendirmelerini (başlıklarını) görüntüleyelim. Pardus Terminal: >>> arpPacket=ARP() // Arp paketi oluşturur. >>> arpPacket.show() // Arp paketinin bölümlendirmelerini // (başlıklarını) sıralar. Çıktı: ![]() Görüntülemekte olduğunuz başlıklar önceki makaleyi okuyanlara yabancı gelmemiş olmalı. Bunlar Arp paket şablonunun bölümleri. Arp paketi başlıkları şu an default değerlerle doldurulmuş vaziyettedir. Şimdi amacımız doğrultusunda kaynak IP adres (psrc) değerini, kaynak MAC adres (hwsrc) değerini, hedef IP adres (pdst) değerini, hedef MAC adres (hwdst) değerini ve Arp Paketinin Amacı / İşlevi (op) değerini düzenlememiz gerekmektedir. Dolayısıyla psrc 'a 172.16.3.1 değerini ( yani router IP adresini), pdst 'e 172.16.255.255 değerini ( yani tüm ağdaki makinalar anlamındaki IP yayın adresini ), hwsrc 'a 01:02:03:04:05:06 değerini ( yani uyduruk bir MAC adresini ), hwdst 'e ff:ff:ff:ff:ff:ff değerini ( yani tüm ağdaki makinalar anlamındaki mac yayın adresini ), op 'a 2 değerini ( yani arp paketinin Arp "Reply" (Arp "Yanıt") paketi olacağı bilgisini ) ![]() (op için değerler) vererek paketi hazır hale getirebilir, ![]() [~] Bilgi:Kaynak MAC adres olarak saldırgan kendi MAC adresini girebilirdi. Bu, saldırının olmasına engel değildir. Bu örnekte saldırgan kaynak MAC adresi olarak kendi MAC adresi yerine uyduruk bir MAC adresi girmiştir. Yani olmayan bir makinayı router olarak göstermiştir. Uyduruk MAC adresi girilmesinin olayı yerel ağdaki onlarca makinanın router zannedip trafiklerini saldırgana yollayarak saldırgan makinanın ethernet kartının ve servisinin yorulmasına neden olmasın diyedir. Böylece saldırgan makina yerel ağdaki makinaların hiçbirinden trafik almadan hafif bir şekilde maksimum ağ performansıyla DOS saldırısını yapabilecektir.send(...) fonksiyonunu girerek ise saldırıyı başlatabiliriz. ![]()
Not:
Saldırı makinasında arp paketini oluşturup başlık bilgilerini girdikten sonra paket gönderimine (send(...) fonksiyonu ile) başlamadan evvel
>>> arpPacket.show()
diyerek paketimizin gönderimden önceki son halini görüntüleyebiliriz.
![]() Saldırı başladığında aşağıdaki gibi gönderilen her arp paketi için ekrana nokta (.) gelecektir. Bu noktalar deneyimleyeceğiniz üzere çok hızlı ekranda akacaktır. ![]() Saldırı sırasında yerel ağda kurban konumundaki makinalardan birinde tarayıcıda web siteleri erişilebilir durumdayken Kurban Makina (Windows 10 Enterprise): ![]() ![]() sayfalar refresh'lendiğinde (yenile dendiğinde) artık web sitelerine ulaşılamadığı görülecektir. Kurban Makina (Windows 10 Enterprise): ![]() ![]() Kurban makinada ayrıca saldırı öncesi internet erişim durumunu kontrol etmek bağlamında google DNS sunucuya gidilebildiği görülecekken saldırı sırasında google DNS sunucuya gidilemediği / yanıt alınamadığı görülecektir. Kurban Makina (Windows 10 Enterprise): ![]() Saldırıyı CTRL + C ile sonlandırdığımızda Pardus Terminal: ![]() kurban makina tekrar web sitelerine erişim sağlayabilecektir. Kurban Makina (Windows 10 Enterprise): ![]() ![]() ![]() Saldırıyı sonlandırmadan önce saldırı sırasında şayet saldırgan makinada wireshark açacak olsaydık ürettiğimiz ve ağa yaydığımız paketleri ağa gitmek üzereyken Pardus Terminal: wireshark Çıktı: ![]() wireshark ile yakalayıp görüntülüyor olacaktık. Şayet bu göndermekte olduğumuz ve yakaladığımız paketlerden birine tıklasaydık Wireshark'ın paketi decode ettiği halini (yani 1 ve 0 bit dizilerinin okunabilir formata dönüştüğü halini) okuyabilecektik. ![]() Fark ettiyseniz gönderilen paketin içeriğinde bizim arp paket başlıklarına koyduğumuz değerler yer almaktadır. Dolayısıyla oluşturduğumuz ve başlık değerlerini kendimizin belirlediği arp paketinin uçuşa geçmek üzereyken (ağa yayılmak üzereyken) Wireshark ile havada kapıldığında yerel ağa hangi değerler ile gidiyor olduğunu bu şekilde de görüntüleyebiliriz. Böylelikle arp zehirlemesi saldırısı ile yerel ağdaki makinaların nasıl internet erişimlerini engelleyebileceğimizi görmüş olduk. Not 1: Yerel ağda yaptığımız bu DOS atağının sektörde bilinen ismi ARP Flooding'tir. Tıpkı SYN Flood'un DOS atağı olması gibi ARP Flooding de bir DOS atağıdır. Not 2: Gönderdiğimiz sahte arp paketleri kabaca şu şekildedir: [ENG] Poisonous Packet: (fake MAC, Router's IP) ----> To All Hosts in LAN [TUR] Zehirli Paket : (sahte MAC, Router'ın IP'si) ----> LAN'daki Tüm Makinalara SonuçŞu ana kadar yaptığımız şey şundan ibaretti: Bir tane ARP paketi oluşturduk. Normalde bu paket otomatik oluşturulsaydı paketin source IP kısmına kendi IP'miz konurdu. Ama biz paketi elle oluşturuyor olduğumuz için router'ın IP'sini koyabildik. Böyle yaparak bu oluşturduğumuz ARP paketini sanki router'dan geliyormuş gibi yapmış olduk. Ardından paketin içerisine MAC adresi olarak herhangi bir adres verdik. Böylece arp paketinin router'dan geldiğini sanan alıcılar gelen MAC adresini de router'ın MAC adresi sanacaklar. Aldıkları MAC adresini arp tablolarına kaydetmiş olacaklar ve internet paketi göndermek istediklerinde ise paketlerini router'a gönderiyorum derken bizim belirttiğimiz sahte MAC adresine gönderecekler. Böylece internete çıkış yapamayacaklar.Özet> sudo su > scapy >>> arpPacket=ARP() >>> arpPacket.show() // ARP paketinin bölümlendirmelerini // (header'larını) sıralar. >>> arpPacket.psrc="X.X.X.X" // Router IP >>> arpPacket.pdst="Y.Y.Y.Y" // Yayın IP Adresi >>> arpPacket.hwsrc="01:02:03:04:05:06" // Uyduruk bir kaynak MAC adres >>> arpPacket.hwdst="ff:ff:ff:ff:ff:ff" // Yayın MAC Adresi >>> arpPacket.op=2 // Arp paketi bir Arp "Reply" // (Arp "Yanıt") paketi olacak >>> send(arpPacket,loop=1000) // Paket Gönderimine Başla Kısaca; > sudo su > scapy >>> send(ARP(psrc="X.X.X.X",pdst="Y.Y.Y.Y",hwsrc="01:02:03:04:05:06", hwdst="ff:ff:ff:ff:ff:ff",op=2),loop=1000)
Sorumluluk Reddi
![]()
Bu makale ve bu makalenin yer aldığı makale zincirinde anlatılan her bir tekniğin izinsizce bir sisteme denenmesi sonucu tespit edilmeniz durumunda 5 ila 10 yıl hapis cezasına çarptırılabileceğinizi ve ayrıyetten yaptığınız hasara oranla maddi tazminat cezasına çarptırılabileceğinizi bildiğinizi varsayıyorum. Tüm bunlar bir yana sicilinizi kirletmeniz sonucunda bu alanda ne kadar bilgili olursanız olun "güvenilmez" damgası yiyeceğinizden Türkiye'de siber güvenlik sektörünü unutmak mecburiyetinde kalacağınızı da bildiğinizi varsayıyorum. Bu makale ve bu makalenin yer aldığı makale zincirinde eğitim amaçlı anlatılan tekniklerin kötü yönde kullanılmasından tarafım sorumlu tutulamaz. Bu bilgiler sadece ve sadece ülkemizde siber güvenlik alanındaki eleman eksikliğini gidermek maksadıyla paylaşılmaktadır. Makale içerisinde yer alan bazı kelime kalıplarının (örn; "sızmak istediğimiz / saldırmak istediğimiz" gibi) sadece ve sadece bir sızma testçi (pentester) bakış açısından ibaret olduğunu beyan etmek isterim.
![]() Yararlanılan Kaynaklar:
|
||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
Yorumlar |
||||||||||||||||||||||||||
Henüz yorum girilmemiştir. | ||||||||||||||||||||||||||
Yorum Ekle | ||||||||||||||||||||||||||