TR | ICMP Redirection Spoofing ile MITM ve Bunu Yapan Aracın Geliştirilmesi
Giriş:
Sahte ICMP Redirection paketleri ile bir kurbanın ağ trafiğini üzerinize alabilirsiniz ve bunu Arp tablosunda duplication oluşturmadan yapabileceğiniz için bazı arp spoofing tespit yazılımlarını atlatabilirsiniz.
Bu yazıda bu yönteme kabaca değinilmiş olup scapy kütüphanesi ile bunu yapan bir araç geliştirilmiştir.
ICMP Hakkında:
ICMP (Internet Control Message Protocol (Türkçe adıyla Internet Kontrol Mesaj İletişim Protokolü)),
geri bildirimler yapmak için kontrol amaçlı kullanılan bir protokoldür.
IP’ nin, hata düzeltme veya raporlama özelliği yoktur. Bu yüzden, bu amaçlar için ICMP kullanılır.
IP(Internet Protokolü) hakkında daha fazla bilgi için buraya başvurulabilir.
ICMP genelde, yok edilen paketlerde, hata oluşumlarında ve paketin gideceği yolun değişeceği zamanlarda bilgilendirme yapılması amacıyla kullanılır.
Komut satırı araçlarından sıkça kullanılan “Ping” ve “Traceroute”(Windows’ta “Tracert”) da ICMP Echo Request ve Reply mesajlarıyla çalışır.
Bir Host’a ping atıldığında neler olduğunu Wireshark vb programlar ile görebilirsiniz:
Bunun için komut satırında,
ping www.google.com
gibi örnek bir komut verdiğinizde wireshark ICMP paketlerini yakalamaya başlayacaktır.
Çerçeve 2 kez tıklayarak açıldığında Internet Control Message Protocol sekmesi altında;
Type:0(Echo Reply) veya Type:8 (Echo Request) Gözükür. Bu ICMP paketlerinin tipini belirler.
Echo request:
Echo reply:
ICMP paketlerinin farklı tip değerleri vardır. Tamamı için buraya bakılabilir. Bu yazıda sadece 3 tanesi üzerinde durulmuştur, bunlar:
Type:8 (Echo Request)
Type:0 (Echo Reply)
Type:5 (Redirection Required)
ICMP Redirection Required Hakkında:
Daha iyi bir ağ geçitinin(gateway) bildirilmesi amacıyla kullanılır. Paketi alan host veya router, routing tablosuna yeni ağ geçidini ekleyecektir(Önlem amaçlı gerekli konfigürasyon yapılmamış ise). 0(Ağ için), 1(Host için), 2(Servis ve ağ için), 3(Servis ve host için) olmak üzere 4 farklı kodu vardır.
Daha iyi anlamak için buradaki görsel faydalı olabilir.
Bir ICMP Redirection Required çerçeve yapısı aşağıdaki gibidir:
Bu yazıda bahsedilen özellikler görselde kırmızı olarak sayılar ile belirtilmiştir:
1) Wireshark son kullanıcı için “Redirect for host” olduğunu tespit etmiştir.
2) ıP’ nin başlığında protokol numarası 1 olduğu için ICMP yazmıştır.
3) ICMP’ nin Tipi 5 olduğu için yanına Redirect yazmıştır.
4) Redirect’ in Kodu 1 olduğu için Redirect for host yazmıştır.
ICMP Redirection Spoofing Yapan Araç Hakında:
ICMP Redirection saldırısı için kullanılabilinecek araçlardan bazıları aşağıda verilmiştir:
hping, ettercap, bettercap, zarp, scapy, icmp_redirect(BT ve Kali ile kurulu gelmektedir.), icmpush, Sing .
Bu yazıda python scapy kütüphanesi kullanılarak ICMP redirection saldırısı yapacak ufak bir betik kod geliştirilmiştir.
ICMP kullanıldığını anlamanın yolu IP paketinin başlık bilgisine bakmaktır. Eğer protokol alanı 1 ise ICMP
kullanıldığı anlaşılmaktadır. Scapy bu detaylar ile uğraşılmaması için bir çok özelliği beraberinde getirmektedir.
Öncelikle ortadaki adam saldırısı(MITM(Man in the middle)) gerçekleştirilen sistemde kernel ip forward’ in etkinleştirilmesi gerekmektedir, genellikle ” echo “1”> /proc/sys/net/ipv4/ip_forward ” kullanılsa da bu yazıda sysctl konfigürasyonu kullanılmıştır. Sysctl ile ilgili daha fazla manual sayfasından ulaşılabilir.
İlgili komut:
sudo sysctl net.ipv4.ip_forward=1
(Not: -w parametresi kimi zaman gereklidir.)
Ardından scapy terminal üzerinden çağrılabilir yada python etkileşimli kabuğu üzerinde iken kütüphane olarak eklenebilir.
Modüller, “import scapy” ile eklenir ise metodlar scapy.metod() şeklinde kullanılmak zorundadır. Bunun yerine metod() veya fonksiyon() kullanabilmek için modülün:
“from scapy.all import * ” şeklinde eklenmesi gerekmektedir.
Github’ a yazar tarafından eklenmiş kod üzerinde açıklayıcı yorumlar yeterli görülmüş olup yazıda okurun canı sıkılmamak istenmiştir.
Kurulum için verilmesi gereken komutlar sırasıyla:
wget https://raw.githubusercontent.com/cemonatk/My-Tools/master/cypm_icmpredirect.py
ve kullanım için:
python cypm_icmpredirect.py -a eth0 -k 'KURBAN IP ADRESI' -g 'AG GECITI IP ADRESI'
Aracı terminal üzerinden herhangi bir dizinde çalıştırmak için ~bin/ dizini altına kısayol eklenmesi gerekmektedir.
Bunun için cypm_icmpredirect.py kodunun olduğu dizinde iken sırasıyla;
mv cypm_icmpredirect.py cypm_icmpredirect
chmod +x cypm_icmpredirect
cd ~bin/
ln -s ~/KODUN INDIRILDIGI DIZIN/
cypm_icmpredirect
komutları verilebilir. Bu aşamanın ardından herhangi bir dizinde iken cypm_icmpredirect komutu ve parametreleri ile program çalışabilir haldedir.
Saldırının Gerçekleştirilmesi:
Kurban tarafında ARP tablosu ilk hali:
Saldırı komutu verince terminal:
Kurban tarafında ARP tablosu son hali,
Kurban canyoupwn.me adresine bağlanmak isterken; saldırgan makinedeki Wireshark üzerinde görülen DNS istekleri ekran alıntısında gözükmektedir:
Sonuç olarak:
- ICMP Redirection saldırılarına karşı alınabilecek önlemlerden bazıları:
- https://docs.oracle.com/cd/E36784_01/html/E36838/icmp-1.html
- https://support.microsoft.com/en-us/kb/293626
- http://www.itsyourip.com/Security/how-to-disable-icmp-redirects-in-linux-for-security-redhatdebianubuntususe-tested/comment-page-1/
- Full Duplex ICMP Redirection Saldırıları hakkında detaylı bilgi edinmek için buraya başvurulabilir. Gerçekleştirmek için burada anlatıldığı gibi bettercap kullanılabilir.
- Türk Ceza Kanunu madde 243’ün 24/3/2016 tarihli 4. ek fıkrasınca burada bahsedildiği gibi ortadaki adam saldırısı gerçekleştiren veya trafiği yasa dışı dinleyen kişiler 1 yıldan 3 yıla hapis cezalandırılır. Burada yazılmış olan blog yazısı ve geliştirilen araç kendi laboratuvar ortamınızda kullanılmak için hazırlanmıştır.
- Aracın kullanımı kodlar veya yazı ile ilgili anlaşılmayan yerler için benimle:
“cem {(At}] canyoupwn ({n0-kta] me” mail adresi üzerinden iletişime geçebilirsiniz.