Ağ ortamında bir bilgisayarın internete göndereceği ya da internetten alacağı herhangi bir bilgi bilgisayardan çıktıktan sonra ağ dediğimiz bir çok verinin aynı anda dolaştığı bilgi seli içinde gideceği yeri bulmaya çalışır. Gönderilen veriler şifreli değilse, bilgisayarınızın güvenliği hangi seviyede olursa olsun verileriniz ağ ortamına çıktığında korumasız ve yalnız başına ormanda yürüyüşe çıkmış çocuk gibidir. Bilgi hırsızları işte bu korumasız anı gözetler ve gerekli ayarlamalar ile ağa gönderdiğiniz verileri ele geçirebilir. Verilerinizi şifreleseniz de durum çok farklı sayılmaz aslında. İşte ağa gönderilen korumasız verileri ele geçirmek için kullanılan yöntemlerden biri mitm (man in the middle-ortadaki adam) saldırılarıdır.
Genel olarak ortadaki adam (man in the middle) saldırısı nedir ? Ağa gönderilmek üzere hazırlanan paket ağ kartına teslim edilir. Bağlı bulunduğunuz ağın yapısına göre paketlerin teslim edilmesini doğruluğunu v.b. durumları kontrol eden protokoller vardır. Basit olarak çoğu fiziksel ağ ethernet protokollerini kullanır. A bilgisayarından çıkan bir paketin B bilgisayarına gitmesi kabaca şöyle gerçekleşir. A bilgisayarı bulunduğu ağa B bilgisayarının mac adresini ARP REQUEST paketleriyle sorar. Ağ içinde bu paketi alan bilgisayarlar adresi biliyorsa söyler bilmiyorsa cevap vermez en sonunda paket B bilgisayarına geldiğinde ağa ARP REPLY paketleri göndererek benim mac adresim budur der ve her bilgisayar bu kaydı saklar. Artık tekrar gerektiğinde B nin adresi kayıt altına alınmıştır. Paketin gideceği bilgisayarın mac adresini bulan A rahatlıkla paketi bu adrese gönderir. Sağlıklı gerçekleşen paket trafiği budur. Peki C bilgisayarı ARP REQUEST yani mac adresi sorgulaması yapılmadan ARP REPLY paketleri göndererek ve B bilgisayarın mac adresini kullanarak benim mac adresim bu derse ne olur. Paketi alan bilgisayarlar artık B bilgisayarı yerine göndermek istedikleri paketleri C ye yollamak zorunda kalırlar. Mac adresini taklit etmeye ARP SPOOF saldırısı denmektedir. Bu saldırı mitm için kullanılan en yaygın saldırı biçimidir. İnternet’e gönderilen yada internetten size gelen paketler önce bağlı olduğunuz ağın default gateway adresi olarak bilinen genellikle 192.168.1.1-192.168.2.1-10.0.0.1 gibi orta ölçekli işletmelerde kullanılan ip adresine sahip bilgisayara gönderilir. Bu bilgisayarlar sizin dış dünyaya çıkış kapınızdır. Diyelim ki X bilgisayarının tüm internet trafiğini takip etmek istiyorsunuz. X takip etmek istediğimiz bilgisayar Y takibi yapan bilgisayar ve Z de ağın çıkış kapısı (default gateway ) bilgisayarı olsun. Öncelikle X bilgisayarının mevcut route tablosundaki Z ye ait mac adresi arpsoof saldırısı ile değiştirilip Y nin mac adresi yapılır. Ardından Z bilgisayarının route tablosundaki X e ait mac adresi arpspoof saldırısı ile Y bilgisayarının mac adresiyle değiştirilir. Artık X makinesinden çıkan tüm internet trafiği önce Y bilgisayarına oradan Z bilgisayarına ( bu arada yeterince karışık olan anlatıma yönlendirme işlemlerinin detayını katmadım bilenler kızmasın ). Z ye internetten gelen ve X e iletilecek olan bilgiler önce Y bilgisayarına oradan X bilgisayarına gidecektir. Bu anlatım çift yönlü mitm saldırısıdır. Biz sadece İnternet’e giden trafiği yakalayıp gelenle uğrasmasakta istenilen bilgilere ulaşmış oluruz. Gelen giden bu paketleri toplayıp wireshark, tcpdump gibi paket inceleme programlarıyla yorumladığımızda yapılan tüm iletişimi yakalamış oluruz.
Mitm için ios, linux, windows sistemlerinde kullanılabilecek araçlar vardır. Öncelikle windows altında kullanılabilecek araçları incelemeye başlayalım. Cain&Abel, wireshark, networkminer windows ta benim vazgeçilmezlerim.
Cain&Abel windows platformunda çalışan oldukça etkili bir komple saldırı aracıdır. Ağı dinleyerek hedef seçtiğiniz bilgisayarın tüm ağ trafiğini hedef sisteme farkettirmeden dinleyebilir. Sadece dinlemekle kalmaz ele geçirdiği ham ağ verilerini yorumlayarak içindeki şifreleri, gezilen sayfaları, oturum açmak için kullanılan şifrelerin hash edilmiş hallerini daha aklınıza ne gelirse hepsini toplayarak hedef sistemle ilgili ayrıntılı bilgiler verebilir. Yakaladığı hash edilmiş şifreleri çözmek için ayrı bir modülüde var. (hash nedir ? şifreleri bilgisayar ortamında saklamak güvensizdir. Bunun için girdiğiniz şifreleri geri dönüşümü olmayan bir hash fonsiyonu ile tekrar sifreler bu son hali saklarız.) Ayrıca yerleşik sertifika sistemi sayesinde ssl sertifikalarını taklid ederek https dediğimiz güvenli bağlantıları dahi dinleyip güven içinde girdiğiniz şifreleri bulabilir.
Cain&Abel açıldığında ilk yapmamız gereken ayarlar bölümünden sistemimize uygun ağ kartını seçmek. Üst menüden ayarlar (configure) seçilirse aşağıdaki ekran gelir. Burada ip numarası görülen ağ kartını seçmek lazım. Yani bağlı olduğumuz ağa bakan kart.
Ardından bağlı bulunduğumuz ağda var olan bilgisayarları bulmak için ağ taraması yaparız. Bunun için üstteki ikon menüden sniffer seçili olmalıdır.(soldan ikinci).
Tarama sonucu ortak ağda bulunan herhangi bir bilgisayarı hedef seçerek arp spoof işlemini başlatırız. Bunun için alt ikon menüden APR ve üst ikon menüden artı şeklindeki ikona tıklarsak
Çıkan ekranda solda dinleme yapılacak bilgisayarın ip numarası seçili iken sağdaki alandan ağın çıkış kapısı (default gateway) seçilerek işlem tamamlanır.
Artık araya girmeye hazırız. En üst ikon menüden APR ikonuna tıklarsak işlem başlamış olur.
Bu işlemi bir çok bilgisayar için aynı anda yapabiliriz. Bu işlem devam ederken gerekli bilgiler toplanmaya başlanacaktır. Gezilen sayfalarda clear text yani şifre korumalı yapılmayan yazışmalar girilen şifreler hepsi ekrana gelmeye başlayacak. Sertifika taklit edebilme özelliğinden dolayı sertifika hatalarına dikkat etmeyen kullanıcıların ssl bağlantıları da ele geçirilebilir. Oturum açma şifreleri hash haliyle ele geçmesine rağmen bunları da kırabilmek için ayrı bir bölümü vardır.
Gelelim ios yani iphone ve ipad de mitm yöntemine. Kullanacağımız araçlar, tarama için scany ya da iNet, araya girmek ve yönlendirme için pirni, topladığımız paketlerin analizi için tcpdump ve en önemlisi telefon da ssh konsolu açabilmek için issh programı.
iNet programını açarak bağlı olduğumuz ağdaki bilgisayarları “Network Scanner” a tıklayarak bulabiliriz. Bunlardan örnek olarak 192.168.2.8 ip numaralı bilgisayarı seçip mitm (man in the middle) işlemini başlatalım.
Bilgisayarı bulduk issh programı ile telefonda ssh konsolu açıyoruz. ( ana ekranda “add configuration” a tıklayıp “description” iphone, “host” 127.0.0.1, “port” 22, “login” root, “password”(değiştirmediyseniz) “alpine” yazıp ssh konsolunu açıyoruz.)
Artık konsolda pirni programını çalıştırabiliriz.
Program çalışırken 192.168.2.8 ip lı bilgisayarın tüm internet trafiği -o parametresinde belirtilen isimle (yer belirtmezsek private/var/root adresine) kaydedilir. Bu loglar wireshark ve tcpdump gibi programlarla incelenebilir. Fakat araya girme anında tcpdump programını kullanarak da anlık yapılan işlemler hakkında bilgi sahibi olabiliriz. Örneğin takip edilen bilgisayarda hangi sayfaların açıldığını anlamak için pirni açıkken aynı issh programında sağ üst köşedeki çarpıya tıklarsak aktif ekranı bitirmeden (pirni ekranı ) yeni ssh konsolu açmak için imkan buluruz. Tekrar ssh konsolu açtığımızda ekranı parmakla sağa ya da sola çektiğimizde aktif ekranlar arası geçiş yapabiliriz. Komut satırında
tcpdump -nn -X -s 1400 dst port 53
yazıldığında pirni çalışırken takip edilen bilgisayarın tüm dns istekleri yani açmak istediği sayfalar tcpdump ekranında karşımıza gelir.
Gelelim aydınlık tarafta yapılabileceklere. Bunun için yani güvenli internet trafiği için ayrı bir yazı yazmayı düşünüyorum. Detayları orada bulabilirsiniz. Ama basit olarak internette güven sizin için önemliyse güçlü bir sifreyle desteklenmiş VPN çözümleri ideal olabilir. Ayrıca hata veren sertifika uyarılarına dikkat etmek gerekir.
Linux sistemlerdeki mitm baska zamana kaldı :)) Bu yazının devamına eklenecek
Bayram Altun
eline sağlık 🙂
Selamun Aleykum Hocam dediklerinizi aynen yaptım ancak bir sonuç alamadım. benim http üzerinden giriş yaptıgım sitelerde kullanıcı adım ve şifrem geldi ancak ağdaki diğer kişilerin bilgileri gelmedi. APR ikonunu tıkladıgım da ” Couldn’t bind HTTPS acceptor socket ” uyarıyı alıyorum. Nerede hata yapıyorum ne yapmam gerekiyor.
Teşekkür ederim Şimdiden
https için socket açamıyor. kendi bilgisayarınızdan yaptığınız bağlantılar için zaten araya girmeye gerek yok. o yüzden bu bağlantıların detayına ulaşabiliyorsunuz. arp ye tıkladığınızda hata ise muhtemelen Windows ya da benzeri bir firewall etkin iken cain kullanıyor olmanız. bence Windows firewall u cain çalıştırıken ayarlardan kapatın. işiniz bitince tekrar açmayı unutmayın.
İlginiz için Teşekkür ederim En kısa sürede deniyip tekrar teşekkür ederim .