Aslında bir siber güvenlik uzmanı değilim. Fakat geçmişde yazdığım programların siber testlerden geçmesinden ve bir çok programımın hacılanmasından mütevellit bu konuda tecrübe kazanmış sayılırım. Bu yüzden konu hakkındaki bilgilerimi paylaşmak istedim. Bir siber saldırının ilk adımı ağ taramadır. Çünkü eğer bir cihazı hacılamak istiyorsanız, öncelikle o cihazın ağ içerisinde nerede ve hangi Ip’ye sahip olduğunu öğrenmeniz gerekiyor. Ayrıca bu cihaz üzerinde hangi portlarda hangi yazılımların çalıştığını bilmeniz gerekiyor.
Bu yazıyı okumadan önce internet ile ilgili daha önce yazmış olduğum ağ yığını, temel internet terminolojisi gibi yazıları okumanızı öneririm. Herkes biliyordur ki bir ağa bağlandığınızda ağ içerisinde bir DHCP sunucusu mevcutsa cihazınıza Ip yi veren sunucu o olacaktır. Aslında cihazınız Ip adresini aldıktan sonra, temel olarak kendi Ip adresiniz, “gateway” ismi verilen “Router” Ip adresi ve DNS Ip adresi dışında ağla ilgili bilginiz olmuyor. Ağın içerisine bir şekilde girdikten sonra, kendinize sorduğunuz sorular şunlar oluyor; Ağ içerisinde kimler var ve olanlar hangi Ip adreslerini kullanıyor? Ve ya bu Ip adreslerindeki cihazlarda hangi programlar hangi portlardan haberleşiyorlar? Normal şartlarda bu bilgilerin çok büyük bir bölümü router üzerinde mevcuttur. Çünkü router içinde bulunduğunuz yerel ağı yöneten makinadır. Ağ içerisine ve ya ağ dışına göndermiş olduğunuz tüm paketler, önce router’a gider. Router’ kendi Ip adresini “subnet mask” ile “AND” operasyonuna tabi tutarak gönderilmek istenen paketin ağ içerisine mi yoksa ağ dışarısına mı gönderilmek istenildiğini anlar.
Şimdi gelelim bu soruların cevaplarını vermeye. Boş bir mekana girdiğinizde mekanda kimlerin olduğunu öğrenmek istiyorsanız “merhaba” “kimse var mı?” gibi aslında pek bir anlam teşkil etmeyen cümleler kurarak sesinizi yükseltirsiniz. Burda tek amacınız sadece bir cevap gelip gelmeyeceğini öğrenmektir. Bu durum ağ içinde geçerli. Eğer ağda kimin olduğunu bilmiyorsak, o halde olabilecek tüm Ip adreslerine ve olabilecek tüm port numaralarına anlamsız veri paketleri gönderip, cevap var mı yok mu ona bakıyoruz. Bu işlem için yerel bir ağda (255 x (Taranacak port sayısı)) kadar bir olasılığı denemek gerekiyor. Tüm bu olasılıklara rastgele paket gönderip müddet ağı dinleyerek bir cevap var mı diye bakıyoruz. Eğer olumlu ya da olumsuz(daha çok olumsuz) cevap gelirse gelen cevaba göre diyoruz ki “bu Ip adresinde bir cihaz var ve aynı zamanda cihazdaki bu port açık”.
Aslında port dediğimiz şey, ethernet paketinin Ip katmanında yer alan sadece bir sayıdır. Bu sayının amacı, çoğunlukla cihaz üzerinde ağ içerisine veri transferi gerçekleştiren farklı programların birbirlerinin paketlerini karıştırmamasını sağlamaktır. Bu yüzden gelen cevabın portuna göz atarak, bu cihazda hangi programın çalıştığını bilebiliriz. Genellikle standart olarak kullanılan port numaraları vardır. Örneğin varsayılan olarak, “SSH(Secure Shell) ” 22 numaralı portu kullanır, web sunucuları 80 ve ya 8080 gibi port numaralarını kullanır. Genellikle, art niyetli insanların ağı tarayıp bulmak istedikleri “ssh” portudur. Çünkü “ssh” ile cihazı kontrol etmek için doğrudan bağlantı sağlayabiliyorsunuz. Bu tip insanlar, herhangi bir güvenlik açığını bildikleri internet üzerinden işlem gören, belli portu kullanan programları ağ üzerinde hangi Ip adreslerinin kullandığını tespit etmeye çalışırlar.
Bu ağ tarama işleminin en basit yöntemi ağdaki yayın(broadcast) adresine paket gönderip cevaplarına bakmaktır. Bir ağdaki yayın Ip adresinin genellikle sonu 255 ya da 254 ile biter. Yayın adresleri ağdaki tüm Ip adreslerine aynı paketi göndermek için yani yayın yapmak için genellikle router üzerinde çalışan bir alt yazılım tarafından kullanılır. Fakat bu işlem oldukça ilkel bir yöntemdir. Ağ taraması için geliştirilmiş açık kaynak kodlu programlar mevcuttur. Bunların en iyisi “Nmap” açık kaynak ağ tarama uygulamasıdır. Çoğu kişi bu programı biliyordur. Fakat bu programın detaylarını bilerek, tarama işlemini çok sessiz ve tereyandan kıl çeker gibi yapanlar da mevcut.
Bir ağ tarama işleminin en büyük riski, yakalanmaktır. Eğer kurumsal ve bilgi güvenliğine son derece önem veren bir kurumdaysanız, ağ yöneticileri bilgisi dışında, ağı taramak çoğu yerde siber suça teşebbüs anlamına geliyor. Çünkü ağı tarayan çoğu kişinin iyi niyetli olduğu durumlar azdır. Bu yüzden genellikle kamuya açık ya da şirkete özel bir ağda hacılamak istediğiniz bir cihazı ya çaktırmadan taramanız ya da kısa süre içinde tarayıp cihazı hacılayıp oradan tüymeniz gerekiyor. Çünkü ağın belli bir cihaz tarafından tarandığını hemen anlayabilirsiniz. Bir ağ tarama işleminin olduğunun kanıtı şunlar olabilir;
1-) Eğer ağda bulunan bir cihaz üzerinden kısa süre içerisinde çok sayıda porta paket geliyorsa.
2-) Eğer ağda bulunan bu cihaz, herhangi bir cihazın çok fazla kapalı portuna paket göndermeye çalışıyorsa.
3-) Eğer ağda bulunan herhangi bir cihazdan çok sayıda anlamsız paket geliyorsa.
4-) Eğer kaynak adresi ağda olmayan bir cihazdan bir yerlere paket gidiyorsa. Aslında bu yöntem can alıcıdır. Çünkü saldırganlar ağa gönderdikleri paketlerin kaynak adreslerini kendi adresleri dışında başka bir adresle değiştirebilirler. Bu durumda sanki farklı adreslerden paket gönderiyormuş gibi olabilir.
Benim kendi gözlemlerim ve çıkarımlarımla yukarıdaki bu 4 gerekçe ağın tarandığına dair belirteçler olabilir. Bunun gibi başka belirteçleri de olabilir. Hatta kendi yönteminizi geliştirerek de kendi ağ tarayıcınızı yazabilirsiniz.
Bu yukarıdaki belirteçlerin sadece ikisini kontrol eden bir ağ tarayıcı tespit etme programı yazmıştım yıllar önce. Daha doğrusu, programı bir yerlerden bulup kendim modifiye ederek daha güçlü hale getirmiştim. Program %100 bana ait olmadığından ve açık kaynak olduğundan github koymayıp burada .zip içerisinde paylaşacağım..scannerdetec
Programı bu komutlarla derleyebilirsiniz.
cmake . make
Programı çalıştırdığınızda yukarıdaki 2 işareti algılayan program log.txt dosyasına ağın tarandığına dair log düşecektir.
Aradığım yazı. Teşekkürler.