BİLGİ TOPLAMA YÖNTEMLERİ

Rıdvankaya

Uzman Üye
Katılım
21 Eyl 2023
Mesajlar
95
Tepkime puanı
43
Puanları
18
Yaş
32
Konum
Midyat/Mardin
Web sitesi
github.com
1. UYGULAMA
Hedef Hakkında Bilgi Toplama:
Hedef hakkında bilgi toplama, bir web sitesi veya IP adresi hakkında ayrıntılı veriler elde etmek için kullanılan bir tekniktir. Bu veriler, site sahibi, e-posta adresi, telefon numarası, adres, domain süresi, IP aralığı gibi bilgileri içerebilir. Bu bilgiler, güvenlik testleri, siber saldırılar, rekabet analizi veya diğer amaçlar için kullanılabilir.
Hedef hakkında bilgi toplamak için kullanılan araçlardan iki tanesi Whois ve Robtex.com'dur. Whois, bir domain adı veya IP adresi hakkında kayıt bilgilerini gösteren bir protokol ve servistir. Robtex.com ise bir web sitesi ve ağ aracıdır. DNS, domain adı, IP adresi, AS numarası, RBL listeleri gibi bilgileri sağlar.
Bu araçları kullanarak hedef hakkında bilgi toplamak için aşağıdaki adımları izleyebilirsiniz:
1. Whois komutunun sorgulaması (kurulumu/değilmi): Whois komutunu kullanabilmek için öncelikle sisteminizde kurulu olup olmadığını kontrol etmeniz gerekir. Bunun için Linux komut satırında dpkg -l | grep whois komutunu çalıştırabilirsiniz. Eğer whois paketi kuruluysa, listede görünecektir. Eğer kurulu değilse, apt-get install whois komutu ile kurabilirsiniz.
2. Komut satırından whois ile bilgi toplama: Whois komutunu kullanarak bir domain adı veya IP adresi hakkında bilgi toplamak için, komut satırında whois <domain veya IP> komutunu çalıştırabilirsiniz. Örneğin, whois asaguvenlik.com komutu ile asaguvenlik.com domaini hakkında bilgi alabilirsiniz. Bu bilgiler arasında, domain sahibi, e-posta adresi, telefon numarası, adres, domain başlangıç ve bitiş süresi, kayıt kuruluşu, name serverlar, DNSSEC durumu gibi bilgiler bulunur.
3. Web üzerinden whois çalıştırıp bilgi toplama: Whois servisini web üzerinden de kullanabilirsiniz. Bunun için çeşitli web siteleri mevcuttur. Örneğin, Whois.com veya Who.is sitelerini kullanabilirsiniz. Bu sitelerde, arama kutusuna bir domain adı veya IP adresi yazarak whois bilgilerini görüntüleyebilirsiniz. Bu bilgiler, komut satırından aldığınız bilgilerle aynıdır.
4. Whois ile IP adresi aralığı belirleme: Bir web sitesinin IP adresini öğrenmek için, komut satırında ping <domain adı> komutunu çalıştırabilirsiniz. Örneğin, ping facebook.com komutu ile facebook.com'un IP adresini öğrenebilirsiniz. Bu IP adresi, web sitesinin barındırıldığı sunucunun IP adresidir. Bu IP adresi ile whois komutunu çalıştırarak, sunucunun ait olduğu ağın IP aralığını belirleyebilirsiniz. Örneğin, whois 66.220.152.16 komutu ile facebook.com'un IP adresi hakkında bilgi alabilirsiniz. Bu bilgiler arasında, IP adresinin ait olduğu kuruluş, ülke, şehir, adres, posta kodu, telefon numarası, faks numarası, e-posta adresi, IP aralığı, AS numarası gibi bilgiler bulunur. IP aralığı, sunucunun ait olduğu ağın başlangıç ve bitiş IP adreslerini gösterir. Örneğin, facebook.com'un IP aralığı 66.220.144.0 - 66.220.159.255'tir. Bu aralıktaki tüm IP adresleri, facebook.com'a aittir.
2. UYGULAMA
Bir IP Adresi Üzerindeki Sitelerin Bulunması
Bir IP adresi üzerindeki sitelerin bulunması, hedef web uygulamasının barındırıldığı sunucu üzerinde varsa başka web uygulamalarının tespit edilmesi anlamına gelir. Bu, sızma girişimlerinde hedef web uygulamasında herhangi bir güvenlik açığı yoksa aynı sunucu üzerinde barındırılan diğer web uygulamalarını hedef olarak seçmek ve ilgili sunucuyu ele geçirmeye çalışmak için kullanılabilir. Kullanabileceğiniz araçlar arasında bing.com ve robtex.com gibi web siteleri bulunmaktadır.
Bu işlemi yapmak için aşağıdaki adımları takip edebilirsiniz:
1. Bing üzerinden sanal hostların tespit edilmesi: Bu adımda, hedef web uygulamasının IP adresini bing.com üzerinden sorgulayarak, aynı IP adresini kullanan diğer web sitelerini bulabilirsiniz. Örneğin, https://asaguvenlik.com/ web sitesinin IP adresini bulmak için ping komutunu kullanabilirsiniz:
sh-3.2# ping asaguvenlik.com
PING asaguvenlik.com (172.67.133.14): 56 data bytes
64 bytes from 172.67.133.14: icmp_seq=0 ttl=58 time=36.104 ms
Bu şekilde, asaguvenlik.com web sitesinin IP adresinin 172.67.133.14 olduğunu öğrenebilirsiniz. Daha sonra, bu IP adresini bing.com üzerinde aratarak, aynı IP adresini kullanan diğer web sitelerini görebilirsiniz. Bunun için arama kutusuna ip:172.67.133.14 yazmanız yeterlidir. Bu şekilde, aynı IP adresini kullanan web sitelerinin bir listesini elde edebilirsiniz.
2. Robtex üzerinden sanal hostların tespit edilmesi: Bu adımda, hedef web uygulamasının IP adresini robtex.com üzerinden sorgulayarak, aynı IP adresini kullanan diğer web sitelerini bulabilirsiniz. Örneğin, asaguvenlik.com web sitesinin IP adresini robtex.com üzerinde aratarak, aynı IP adresini kullanan diğer web sitelerini görebilirsiniz. Bunun için arama kutusuna 172.67.133.14 yazmanız yeterlidir. Bu şekilde, aynı IP adresini kullanan web sitelerinin bir listesini elde edebilirsiniz.
Bu iki yöntemle, bir IP adresi üzerindeki sitelerin bulunması işlemini gerçekleştirebilirsiniz.
3. UYGULAMA
Sızma testi, bir web uygulamasının güvenliğini değerlendirmek için yapılan bir siber güvenlik önlemidir. Sızma testinde, web uygulamasına gerçek bir siber saldırıyı taklit ederek güvenlik açıklarını bulmaya çalışırız. Bu sayede, web uygulamasının siber saldırılara karşı ne kadar dayanıklı olduğunu ve nasıl iyileştirilebileceğini öğrenebiliriz.
Sızma testi yaparken, web uygulamasının geçmiş tarihlerdeki içeriğini incelemek önemli bir bilgi toplama yöntemidir. Web uygulamasının geçmiş tarihlerdeki içeriğini inceleyerek, web uygulamasının nasıl değiştiğini, hangi teknolojileri kullandığını, hangi verileri sakladığını, hangi güvenlik önlemlerini aldığını ve hangi zayıf noktaları olduğunu anlayabiliriz. Bu bilgiler, web uygulamasına sızma testi yaparken bize avantaj sağlayabilir.
Web uygulamasının geçmiş tarihlerdeki içeriğini incelemek için kullanabileceğimiz bir araç, www.archive.org sitesidir. Bu site, web uygulamalarının farklı tarihlerde nasıl göründüğünü ve ne içerdiğini arşivleyen bir web arşivi servisidir. Bu siteye girerek, istediğimiz web uygulamasının URL'sini aratabilir ve web uygulamasının geçmiş tarihlerdeki görünümlerine ve içeriklerine erişebiliriz.
Örneğin, https://asaguvenlik.com/ isimli web uygulamasının geçmiş tarihlerdeki içeriğini incelemek istiyorsak, şu adımları izleyebiliriz:
1. www.archive.org sitesine giriyoruz.
2. Arama kutusuna https://asaguvenlik.com/ yazıyoruz ve arıyoruz.
3. Karşımıza web uygulamasının arşivlenmiş tarihlerini gösteren bir takvim çıkıyor.
4. Takvimden istediğimiz bir tarihi seçiyoruz. Örneğin, 31 Aralık 2023 tarihini seçiyoruz.
5. Seçtiğimiz tarihte web uygulamasının nasıl göründüğünü ve ne içerdiğini görebiliyoruz.
4. UYGULAMA
Bir Alan Adına Ait Alt Alan Adlarının (Sub domain) Belirlenmesi
Alt alan adlarını belirlemek için pasif çevrimiçi kaynaklardan yararlanan birçok araç vardır. Bu araçlar, hedef alan adıyla ilgili daha fazla bilgi toplamak ve potansiyel zafiyetleri bulmak için sızma testçileri ve hata avcıları tarafından kullanılabilir. Bu araçların bazıları şunlardır:
- Sublist3r: Bu araç, Google, Yahoo, Bing, Baidu ve Ask gibi birçok arama motorunu kullanarak alt alan adlarını listeler. Ayrıca Netcraft, Virustotal, ThreatCrowd, DNSdumpster ve ReverseDNS gibi servislerden de yararlanır. Subbrute modülü ile daha fazla alt alan adı bulmak için kaba kuvvet saldırısı yapabilir. Bu araç Kali Linux dağıtımlarında kurulu gelir.
- Subfinder: Bu araç da pasif çevrimiçi kaynaklardan alt alan adlarını keşfeder. Basit bir modüler mimariye sahiptir ve hız için optimize edilmiştir. Subfinder, yalnızca pasif alt alan adı keşfi yapmak için tasarlanmıştır ve bunu çok iyi yapar. Bu araç da Kali Linux dağıtımlarında kurulu gelir.
- Amass: Bu araç, OWASP tarafından geliştirilen kapsamlı bir alt alan adı keşif ve haritalama aracıdır. Pasif çevrimiçi kaynakların yanı sıra aktif teknikler de kullanır. Örneğin, DNS çözümlemesi, DNS taraması, sertifika şeffaflığı, web kaynakları, API'ler ve daha fazlası. Bu araç da Kali Linux dağıtımlarında kurulu gelir.
- Knockpy: Bu araç, bir alan adının alt alan adlarını bulmak için bir kaba kuvvet saldırısı yapar. Bir kelime listesi(wordlist) kullanarak DNS sunucusuna sorgular gönderir ve yanıt alırsa alt alan adını kaydeder. Bu araç Kali Linux dağıtımlarında kurulu gelmez, ancak GitHub'dan indirilebilir.
Bu araçları kullanarak bir alan adının alt alan adlarını belirlemek için şu adımları izleyebilirsiniz:
1. Bir terminal açın ve hedef alan adını belirleyin. Örneğin, asaguvenlik.com.
2. Herhangi bir aracı seçin ve uygun parametrelerle çalıştırın. Örneğin, Sublist3r aracını kullanmak için sublist3r -d asaguvenlik.com komutunu yazın. Bu komut, asaguvenlik.com alan adının alt alan adlarını bulmak için varsayılan kaynakları kullanacaktır. Kaynakları, iş parçacığı sayısını, çıktı dosyasını ve diğer seçenekleri belirtmek için farklı parametreler kullanabilirsiniz. Bu parametreleri görmek için sublist3r -h komutunu yazın.
3. Aracın çalışmasını bekleyin ve bulduğu alt alan adlarını gözden geçirin. Bu alt alan adlarını daha fazla analiz etmek için başka araçlar veya teknikler kullanabilirsiniz. Örneğin, port taraması, dizin taraması, web uygulaması taraması, vb.
Bu araçların her birinin farklı özellikleri ve avantajları vardır. Bu yüzden, daha kapsamlı bir alt alan adı keşfi için bu araçların bir kombinasyonunu kullanmak iyi bir fikir olabilir.
5. UYGULAMA
Hedef Domaine Ait E-posta Adreslerinin Belirlenmesi
Sızma testi, bir bilgisayar sisteminin güvenliğini değerlendirmek için yetkili bir şekilde gerçekleştirilen simüle edilmiş bir siber saldırıdır. Sızma testi, sistemin güvenlik açıklarını, zayıflıklarını ve güçlü yönlerini belirlemek için kullanılır. Sızma testinin amacı, kötü niyetli bir aktör tarafından sömürülebilecek güvenlik açıklarını bulmak ve bu güvenlik açıklarını müşteriye önerilen azaltma stratejileri ile birlikte sunmaktır.
Sızma testinin bir parçası olarak, hedef sistemin e-posta adreslerini toplamak isteyebilirsiniz. Bu, sosyal mühendislik, phishing veya diğer saldırı teknikleri için kullanışlı olabilir. Bu amaçla, theHarvester ve metasploit/aux (search_email_collector) gibi araçlar kullanabilirsiniz.
theHarvester, bir alan adına ait e-posta adreslerini, Google, Bing, Bing API, PGP, LinkedIn, Google Profiles, People123 ve Jigsaw gibi çeşitli kaynaklardan toplayan bir araçtır. theHarvester'ı kullanmak için, aşağıdaki komutu çalıştırabilirsiniz:
python theHarvester.py -d <domain> -l <limit> -b <source>
Burada, <domain> hedef alan adını, <limit> sonuç sayısını ve <source> veri kaynağını belirtirsiniz. Örneğin, asaguvenlik.com alan adına ait 500 e-posta adresini toplamak için, şu komutu kullanabilirsiniz:
python theHarvester.py -d asaguvenlik.com -l 500 -b all
Bu komut, tüm kaynaklardan (all) e-posta adreslerini toplamaya çalışacaktır. Eğer belirli bir kaynak kullanmak isterseniz, bunu -b parametresi ile belirtebilirsiniz. Örneğin, sadece Google'dan e-posta adresleri toplamak için, şu komutu kullanabilirsiniz:
python theHarvester.py -d asaguvenlik.com -l 500 -b google
theHarvester, bulduğu e-posta adreslerini ekrana yazdıracaktır. Ayrıca, -f parametresi ile bir dosyaya kaydedebilirsiniz. Örneğin, e-posta adreslerini emails.txt dosyasına kaydetmek için, şu komutu kullanabilirsiniz:
python theHarvester.py -d asaguvenlik.com -l 500 -b all -f emails.txt
Metasploit, bir sızma testi platformudur. Metasploit, çeşitli modüller içerir. Bunlardan biri de auxiliary/gather/search_email_collector modülüdür. Bu modül, Google, Yahoo ve Bing gibi arama motorlarını kullanarak bir alan adına ait e-posta adreslerini toplar. Bu modülü kullanmak için, aşağıdaki adımları izleyebilirsiniz:
1. Metasploit konsolunu açın. Bunun için, msfconsole komutunu çalıştırın.
2. Modülü yükleyin. Bunun için, use auxiliary/gather/search_email_collector komutunu çalıştırın.
3. Modül seçeneklerini gösterin. Bunun için, show options komutunu çalıştırın.
4. Gerekli seçenekleri ayarlayın. Bunlar, hedef alan adını (DOMAIN) ve arama motorlarını (SEARCH_GOOGLE, SEARCH_YAHOO, SEARCH_BING) belirtir. Örneğin, asaguvenlik.com alan adını Google, Yahoo ve Bing'de aramak için, şu komutları kullanabilirsiniz:
set DOMAIN asaguvenlik.com
set SEARCH_GOOGLE true
set SEARCH_YAHOO true
set SEARCH_BING true
5. Modülü çalıştırın. Bunun için, run veya exploit komutunu çalıştırın.
6. Bulunan e-posta adreslerini görüntüleyin. Modül, bulduğu e-posta adreslerini ekrana yazdıracaktır. Ayrıca, OUTFILE seçeneği ile bir dosyaya kaydedebilirsiniz. Örneğin, e-posta adreslerini emails.txt dosyasına kaydetmek için, şu komutu kullanabilirsiniz:
set OUTFILE emails.txt
Bu şekilde, theHarvester ve metasploit/aux (search_email_collector) modülü ile bir alan adına ait e-posta adreslerini toplayabilirsiniz. Bu e-posta adreslerini, sızma testinin ilerleyen aşamalarında kullanabilirsiniz.
6. UYGULAMA
Google Arama Motoru Kullanarak Bilgi Toplama
Google arama motoru, web siteleri ve sayfaları indeksleyerek kullanıcılara aradıkları bilgileri sunan bir servistir. Google, belirli arama operatörleri ve parametreleri kullanarak daha spesifik ve hassas sonuçlar elde etmeyi sağlar. Bu operatörler ve parametreler, web sitelerinin veya sistemlerin belirli özelliklerine, dosya türlerine, güvenlik açıklarına veya hassas bilgilere göre arama yapmayı mümkün kılar.
Google arama motoru kullanarak bilgi toplama, aşağıdaki adımları izleyerek yapılabilir:
1. Adım: Google üzerinden c99.php webshell'i atılmış web sitesi bulma; inurl:c99.php site:fr
Bu arama dorku, URL'sinde c99.php ifadesini içeren ve fr alan adına sahip olan web sitelerini bulmak için kullanılır. c99.php, web sitelerine sızan hackerların dosya yönetimi, komut çalıştırma, veritabanı erişimi gibi işlemleri yapmasını sağlayan bir webshell dosyasıdır. Bu dosya, web sitelerinin güvenliğini tehlikeye atan bir güvenlik açığıdır. Bu arama dorku ile, Fransa'daki web sitelerinde c99.php webshell'i atılmış olanları bulabilirsiniz. Örneğin, bu arama dorku ile bulunan bir web sitesi şöyledir:
Bu web sitesine girdiğinizde, c99.php webshell'inin arayüzünü görebilir ve web sitesinin dosyalarını, veritabanını, sunucu bilgilerini ve diğer işlevleri kontrol edebilirsiniz.
2. Adım: Google üzerinden sql injection açıklığı bulma; inurl:page.php?intPageID=
Bu arama dorku, URL'sinde page.php?intPageID= ifadesini içeren web sitelerini bulmak için kullanılır. Bu ifade, web sitelerinin sayfa numaralarını belirten bir parametredir. Bu parametre, sayısal bir değer alması gerektiği halde, karakter veya komut içeren bir değer alırsa, web sitesinin veritabanında bir SQL injection açıklığı oluşabilir. SQL injection, veritabanına zararlı SQL komutları göndererek veritabanını manipüle etme veya ele geçirme yöntemidir. Bu arama dorku ile, SQL injection açıklığı barındıran web sitelerini bulabilirsiniz. Örneğin, bu arama dorku ile bulunan bir web sitesi şöyledir:
Bu web sitesinin URL'sindeki 1 sayısını tek tırnak işareti ile değiştirirseniz ('), web sitesi bir hata mesajı döndürür. Bu hata mesajı, web sitesinin veritabanının MySQL olduğunu ve SQL injection açıklığına sahip olduğunu gösterir. Bu açıklığı kullanarak, web sitesinin veritabanındaki tablo, sütun ve verileri görebilir ve değiştirebilirsiniz.
3. Adım: İçerisinde kullanıcı adı veya parola bilgisi olan excel dosyalarını google üzerinden aratalım.
Bu arama işlemi için, filetype: operatörünü kullanabilirsiniz. Bu operatör, belirli bir dosya türüne göre arama yapmanızı sağlar. Excel dosyaları için, xls veya xlsx uzantılarını kullanabilirsiniz. Ayrıca, kullanıcı adı veya parola gibi anahtar kelimeleri de arama sorgunuza ekleyebilirsiniz. Örneğin, aşağıdaki arama sorgusu ile, içerisinde kullanıcı adı veya parola bilgisi olan excel dosyalarını bulabilirsiniz:
filetype:xls OR filetype:xlsx username OR password
Bu arama sorgusu ile bulunan excel dosyalarını indirip açtığınızda, kullanıcı adı veya parola bilgilerini içeren tablolar veya hücreler görebilirsiniz. Bu bilgiler, web sitelerine, e-posta hesaplarına, sosyal medya hesaplarına veya diğer sistemlere giriş yapmak için kullanılabilir.
7. UYGULAMA
ShodanHq Arama Motoru Kullanarak Bilgi Toplama
ShodanHq, internete bağlı cihazları ve servisleri bulmak için kullanılan bir arama motorudur. ShodanHq, web siteleri, sunucular, kameralar, yazıcılar, yönlendiriciler, güvenlik sistemleri gibi çeşitli cihaz ve servislerin IP adreslerini, portlarını, işletim sistemlerini, ülke, şehir, kurum gibi bilgilerini indeksler ve kullanıcılara sunar. ShodanHq, bu bilgileri kullanarak belli bölgelerde veya kurumlarda güvenlik zafiyeti içeren sistemleri belirlemek için bir araç olarak kullanılabilir.
ShodanHq kullanmak için öncelikle ShodanHq web sitesine gidip bir hesap oluşturmanız veya giriş yapmanız gerekiyor. Daha sonra arama kutusuna istediğiniz arama parametrelerini yazarak arama yapabilirsiniz. Arama parametreleri, cihaz veya servislerin özelliklerini belirten anahtar kelimelerdir. Örneğin, port, country, city, org, net, os, product, version gibi. Arama parametrelerini birleştirerek daha spesifik aramalar yapabilirsiniz. Arama sonuçlarında, bulunan cihaz veya servislerin IP adresleri, portları, ülke, şehir, kurum gibi bilgileri görüntülenecektir. Ayrıca, her bir sonuç için bir detay sayfasına giderek daha fazla bilgi alabilirsiniz.
Örneğin ShodanHq kullanarak 5 porta ait bilgileri edinelim.
- Çindeki Uzak masaüstü portu(3389) açık olan sistemleri bulmak için, arama kutusuna port:3389 country:CN yazabilirsiniz. Bu arama, Çin'deki 3389 numaralı portu açık olan cihaz veya servisleri listeler. Bu port, genellikle Windows Remote Desktop Protocol (RDP) için kullanılır. Bu, uzaktan erişim sağlamak için kullanılan bir protokoldür. Bu protokol, güvenli olmayan bir şekilde yapılandırılmışsa, saldırganların sisteme sızmasına veya verileri ele geçirmesine yol açabilir. Bu yüzden, bu portu açık olan sistemler güvenlik zafiyeti içerir. Şu anda, bu arama ile 1,434 sonuç bulunmaktadır. Bunlardan bir tanesi, 58.211.165.146 IP adresine sahip bir sunucudur. Bu sunucu, Jiangsu eyaletinde, Nanjing şehrinde, China Telecom kurumuna aittir. Bu sunucunun işletim sistemi Windows Server 2008 R2 veya 7'dir.
- Türkiye'de Bursa ilindeki 3389 portu açık olan sistemleri bulmak için, arama kutusuna port:3389 country:TR city:"Bursa" yazabilirsiniz. Bu arama, Bursa'daki 3389 numaralı portu açık olan cihaz veya servisleri listeler. Bu port, yine Windows Remote Desktop Protocol (RDP) için kullanılır. Bu arama ile 6 sonuç bulunmaktadır. Bunlardan bir tanesi, 88.247.108.210 IP adresine sahip bir bilgisayardır. Bu bilgisayar, Bursa'da, Turk Telekom kurumuna aittir. Bu bilgisayarın işletim sistemi Windows 7 veya 8'dir.
- Amerika'da HTTP-80 portu üzerinden default kullanıcı adı/şifresi olan sistemleri bulmak için, arama kutusuna "default password" port:80 country:US yazabilirsiniz. Bu arama, Amerika'daki 80 numaralı portu açık olan ve default kullanıcı adı/şifresi içeren cihaz veya servisleri listeler. Bu port, genellikle web sunucuları için kullanılır. Default kullanıcı adı/şifresi, cihaz veya servisin üretici tarafından belirlenen varsayılan giriş bilgileridir. Bu bilgiler, değiştirilmediği takdirde, saldırganların sisteme erişmesine veya kontrol etmesine olanak sağlar. Bu yüzden, bu portu açık olan ve default kullanıcı adı/şifresi olan sistemler güvenlik zafiyeti içerir. Bu arama ile 1,038 sonuç bulunmaktadır. Bunlardan bir tanesi, 24.113.32.29 IP adresine sahip bir yönlendiricidir. Bu yönlendirici, Washington eyaletinde, Port Angeles şehrinde, Wave Broadband kurumuna aittir. Bu yönlendiricinin üretici markası Cisco'dur. Bu yönlendiricinin default kullanıcı adı/şifresi admin/admin'dir.
- 212.0.0.0/8 alt ağındaki ssh servisi açık olan sistemleri bulmak için, arama kutusuna ssh port:22 country:TR city:"Istanbul" net:212.0.0.0/8 yazabilirsiniz. Bu arama, İstanbul'daki 212.0.0.0/8 alt ağına dahil olan ve 22 numaralı portu açık olan cihaz veya servisleri listeler. Bu port, genellikle Secure Shell (SSH) için kullanılır. Bu, uzaktan komut satırı erişimi sağlamak için kullanılan bir protokoldür. Bu protokol, güçlü bir şifreleme kullanır, ancak yine de saldırganların şifre kırma veya kimlik avı gibi yöntemlerle sisteme girmesine imkan verebilir. Bu yüzden, bu portu açık olan sistemler güvenlik zafiyeti içerebilir. Bu arama ile 3 sonuç bulunmaktadır. Bunlardan bir tanesi, 212.252.30.35 IP adresine sahip bir sunucudur. Bu sunucu, İstanbul'da, Turk Telekom kurumuna aittir. Bu sunucunun işletim sistemi Linux 2.6.x'dir.
- İzmir'deki Türk Telekom IP adreslerinde 3389 portu açık olan sistemleri bulmak için, arama kutusuna city:Izmir port:3389 org:"Turk Telekom" yazabilirsiniz. Bu arama, İzmir'deki Türk Telekom kurumuna ait olan ve 3389 numaralı portu açık olan cihaz veya servisleri listeler. Bu port, yine Windows Remote Desktop Protocol (RDP) için kullanılır. Bu arama ile 2 sonuç bulunmaktadır. Bunlardan bir tanesi, 88.247.108.210 IP adresine sahip bir bilgisayardır. Bu bilgisayar, Bursa'da, Turk Telekom kurumuna aittir. Bu bilgisayarın işletim sistemi Windows 7 veya 8'dir. Bu ShodanHq'nun bazen aynı cihaz veya servisi farklı şehirlerde gösterebildiği bir hata olabilir.
8. UYGULAMA
Hedef Sisteme Ait Ağ Haritasının Belirlenmesi
Hedef sisteme ait ağ haritasının belirlenmesi, hedef sistemin IP adresini, ağ cihazlarının IP adreslerini, ağ trafiğinin kaynak ve hedef adreslerini ve ağ güvenlik protokollerini gösteren bir grafik veya tablodur. Bu harita, sızma testlerinin amacını, yöntemini ve sonuçlarını anlamak için önemlidir.
Sızma testleri, bir sistemdeki güvenlik açıklarını bulmak ve değerlendirmek için kullanılan bir tekniktir. Sızma testleri, sistemdeki kritik bileşenleri (örneğin sunucu, veritabanı, web sitesi vb.) farklı yöntemlerle deneyerek güvenlik açıklarını tespit eder. Sızma testleri sonucunda elde edilen güvenlik açıkları, sistemdeki zayıf noktaları gösterir.
Sızma testleri yapmak için çeşitli araçlar kullanılabilir. Bunlardan bazıları şunlardır:
- traceroute: Bu araç, bir sistemden başka bir sisteme giden yolların uzunluğunu ve gecikmelerini gösterir. Bu sayede, hangi ağ cihazlarının sızdırıcı olduğunu veya engel olduğunu belirlemek mümkündür.
- tcptraceroute: Bu araç, traceroute ile benzer şekilde yolların uzunluğunu ve gecikmelerini gösterir ancak daha fazla detay sağlar. Örneğin, her hopta hangi cihazın hangi protokolü kullandığını veya hangi portu açtığını gösterir.
- visual traceroute: Bu araç, web üzerinden sitelerin IP adreslerini ve yollarını gösterir. Bu sayede, farklı ülkelerden veya bölgelerden bir hedefe aynı anda traceroute atmak mümkündür.
- server sniff: Bu araç, web sitesinden gelen HTTP isteklerinin içeriğini ve kaynak adreslerini gösterir. Bu sayede, web sitesinin kim tarafından yönetildiği veya hangi cihazlardan erişildiği anlaşılabilir.
Bu araçları kullanarak hedef sisteme giden yolların belirlenmesi için şu adımları izleyebilirsiniz:
1. Adım: Traceroute kullanarak hedef sisteme giden yolların belirlenmesi
- root@bt:/# traceroute cnn.com
- Bu komutu çalıştırarak cnn.com sitesine ulaşmak için en uzun yolunuzu görebilirsiniz.
- Eğer cnn.com sitesine ulaşamazsanız veya çok fazla gecikme alırsanız (örneğin 10 saniye veya daha fazla), bu siteyi sızdırıcı olarak kabul edebilirsiniz.
- Eğer cnn.com sitesine ulaşabiliyorsanız ancak çok fazla hop varsa (örneğin 20 veya daha fazla), bu siteyi engelleyici olarak kabul edebilirsiniz.
2. Adım: Aynı hedefe tcptraceroute ile sorgu gönderelim ve aradaki hopları görelim
- root@bt:/# tcptraceroute cnn.com
- Bu komutu çalıştırarak cnn.com sitesine ulaşmak için en az sayıda hoptan geçtiğiniz yolunuzu görebilirsiniz.
- Eğer cnn.com sitesine ulaşabiliyorsanız ancak çok fazla hop varsa (örneğin 20 veya daha fazla), bu siteyi engelleyici olarak kabul edebilirsiniz.
- Eğer cnn.com sitesine ulaşabiliyorsanız ve az sayıda hop varsa (örneğin 10 veya daha az), bu siteyi sızdırıcı olarak kabul edebilirsiniz.
- Eğer cnn.com sitesine ulaşamazsanız veya çok fazla gecikme alırsanız (örneğin 10 saniye veya daha fazla), bu siteyi engelleyici olarak kabul edebilirsiniz.
- Bu komutun çıktısında, her hopta hangi IP adresinin hangi portu açtığını veya kapattığını görebilirsiniz. Bu sayede, hangi ağ cihazlarının hangi protokolleri kullandığını veya hangi güvenlik önlemlerini aldığını anlayabilirsiniz.
3. Adım: http://just-traceroute.com/ sitesini kullanarak farklı ülkelerden bir hedefe aynı anda traceroute atmak
- Bu siteyi ziyaret ederek, dünyanın farklı yerlerinden bir hedefe aynı anda traceroute atabilirsiniz.
- Bu sayede, hedef sistemin hangi ülkelere veya bölgelere daha yakın veya uzak olduğunu, hangi ülke veya bölge ağlarının hedef sisteme erişimini kolaylaştırdığını veya zorlaştırdığını görebilirsiniz.
- Bu siteyi kullanarak, hedef sistemin coğrafi konumunu, ağ altyapısını ve güvenlik durumunu daha iyi anlayabilirsiniz.
9. UYGULAMA
Hedef Sistem Ağ ve Güvenlik
Ağ ve güvenlik sistemlerini belirleme, hedef sistemin önünde hangi tür koruma mekanizmalarının olduğunu tespit etmek için kullanılan bir tekniktir. Bu teknik, saldırganların hedef sistemlere erişmek için hangi yöntemleri kullanabileceklerini belirlemelerine yardımcı olur. Ağ ve güvenlik sistemlerini belirleme için çeşitli araçlar ve yöntemler vardır. Bunlardan bazıları şunlardır:
- hping: Bu araç, TCP, UDP, ICMP ve RAW-IP protokolleri üzerinden paket göndermeye ve alınan cevapları analiz etmeye yarayan bir komut satırı programıdır. hping, hedef sistemin açık ve kapalı portlarını, güvenlik duvarı varlığını, SYN proxy durumunu, TCP/IP parmak izini ve diğer ağ özelliklerini belirlemek için kullanılabilir. hping, aşağıdaki gibi kullanılabilir:
- hping -S -p 80 google.com: Bu komut, google.com'un 80 numaralı portuna SYN bayrağı taşıyan bir TCP paketi gönderir ve alınan cevabı gösterir. Eğer cevap SYN/ACK (SA) ise, port açıktır. Eğer cevap RST/ACK (RA) ise, port kapalıdır. Eğer hiç cevap gelmezse, arada bir güvenlik duvarı olabilir.
- hping -S -p ++80 google.com: Bu komut, google.com'un 80 numaralı portundan başlayarak artan sırada portlara SYN bayrağı taşıyan TCP paketleri gönderir ve alınan cevapları gösterir. Bu şekilde, hedef sistemin hangi portlarının açık olduğunu belirlemek mümkündür.
- hping -S -p 80 -s 53 google.com: Bu komut, google.com'un 80 numaralı portuna SYN bayrağı taşıyan bir TCP paketi gönderir, ancak kaynak portu 53 olarak belirtir. Bu şekilde, hedef sistemin SYN proxy olup olmadığını test etmek mümkündür. Eğer cevap SYN/ACK (SA) ise, hedef sistem SYN proxy değildir. Eğer cevap SYN/ACK (SA) ve kaynak portu 53 ise, hedef sistem SYN proxy'dir. Eğer hiç cevap gelmezse, arada bir güvenlik duvarı olabilir.
- hping -1 -C 8 -K 0 google.com: Bu komut, google.com'a ICMP paketleri gönderir, ancak paket tipini 8 (echo request) ve kodunu 0 olarak belirtir. Bu şekilde, hedef sistemin ICMP paketlerine nasıl cevap verdiğini belirlemek mümkündür. Eğer cevap tipi 0 (echo reply) ise, hedef sistem ICMP paketlerine normal şekilde cevap verir. Eğer cevap tipi 3 (destination unreachable) ise, hedef sistem ICMP paketlerini reddeder. Eğer hiç cevap gelmezse, arada bir güvenlik duvarı olabilir.
- telnet: Bu araç, uzak bir sunucuya bağlanmak ve komut göndermek için kullanılan bir protokol ve programdır. telnet, hedef sistemin açık portlarını ve çalışan servislerini belirlemek için kullanılabilir. telnet, aşağıdaki gibi kullanılabilir:
- telnet google.com 80: Bu komut, google.com'un 80 numaralı portuna bağlanmaya çalışır. Eğer bağlantı başarılı olursa, port açıktır ve HTTP servisi çalışıyordur. Eğer bağlantı reddedilirse, port kapalıdır veya arada bir güvenlik duvarı vardır.
- telnet google.com 25: Bu komut, google.com'un 25 numaralı portuna bağlanmaya çalışır. Eğer bağlantı başarılı olursa, port açıktır ve SMTP servisi çalışıyordur. Eğer bağlantı reddedilirse, port kapalıdır veya arada bir güvenlik duvarı vardır.
- Wafw00f: Bu araç, bir web sitesinin arkasında bir web uygulama güvenlik duvarı (WAF) olup olmadığını ve hangi marka olduğunu belirlemeye yarayan bir Python scriptidir. Wafw00f, hedef web sitesine çeşitli HTTP istekleri gönderir ve alınan cevaplara göre WAF varlığını ve tipini tespit eder. Wafw00f, aşağıdaki gibi kullanılabilir:
- wafw00f https://www.imperva.com: Bu komut, imperva.com web sitesinin arkasında bir WAF olup olmadığını ve hangi marka olduğunu belirlemeye çalışır. Eğer WAF bulunursa, markası ve versiyonu gösterilir. Eğer WAF bulunamazsa, web sitesinin WAF kullanmadığı veya tanınmayan bir WAF kullandığı söylenir.
- Ipsfinder.py: Bu araç, bir web sitesinin arkasında bir saldırı önleme sistemi (IPS) olup olmadığını ve hangi marka olduğunu belirlemeye yarayan bir Python scriptidir. Ipsfinder.py, hedef web sitesine çeşitli zararlı HTTP istekleri gönderir ve alınan cevaplara göre IPS varlığını ve tipini tespit eder. Ipsfinder.py, aşağıdaki gibi kullanılabilir:
- ipsfinder.py https://www.google.com: Bu komut, google.com web sitesinin arkasında bir IPS olup olmadığını ve hangi marka olduğunu belirlemeye çalışır. Eğer IPS bulunursa, markası ve versiyonu gösterilir. Eğer IPS bulunamazsa, web sitesinin IPS kullanmadığı veya tanınmayan bir IPS kullandığı söylenir.
Bu araçlar ve yöntemler, ağ ve güvenlik sistemlerini belirleme konusunda size yardımcı olabilir. Ancak, bu araçlar ve yöntemler her zaman kesin sonuçlar vermez. Hedef sistemin güvenlik seviyesi, yapılandırması ve güncelliği, tespit işleminin başarısını etkileyebilir. Bu nedenle, ağ ve güvenlik sistemlerini belirleme konusunda dikkatli ve titiz olmanız gerekir.
10. UYGULAMA
DNS protokolü, internet sitelerinin IP adreslerini alan adlarına çeviren bir sistemdir. DNS protokolü sayesinde, bir siteye erişmek istediğimizde IP adresi yerine kolayca hatırlayabileceğimiz bir alan adı yazabiliriz. DNS protokolü, bir alan adının IP adresini bulmak için bir dizi sorgu yapar. Bu sorguların sonucunda elde edilen kayıtlara DNS kayıtları denir. DNS kayıtları, bir alan adının hangi sunucuya, hangi servislere ve hangi e-posta sunucularına bağlı olduğunu gösterir. DNS kayıtları, bilgi toplama aşamasında saldırganlara hedef sistem hakkında önemli ipuçları verebilir.
DNS kayıtlarını sorgulamak için kullanılan araçlardan iki tanesi dig ve nslookup'tur. Dig ve nslookup, Linux ve Windows işletim sistemlerinde komut satırından çalıştırılabilen araçlardır. Bu araçlar, farklı DNS kayıt tiplerini sorgulamak için çeşitli parametreler alabilirler. Aşağıda, bazı araçların ve parametrelerin açıklamalarını bulabilirsiniz.
- dig: Domain Information Groper anlamına gelir. Bir alan adının DNS kayıtlarını sorgulamak için kullanılır. Örnek olarak, dig asaguvenlik.com NS komutu, asaguvenlik.com alan adının Name Server (NS) kayıtlarını sorgular. NS kayıtları, bir alan adının hangi DNS sunucuları tarafından yönetildiğini gösterir. Benzer şekilde, dig asaguvenlik.com A komutu, asaguvenlik.com alan adının A kaydını sorgular. A kaydı, bir alan adının IPv4 adresini gösterir. dig asaguvenlik.com MX komutu ise, asaguvenlik.com alan adının Mail Exchange (MX) kaydını sorgular. MX kaydı, bir alan adının hangi e-posta sunucularına yönlendirildiğini gösterir.
- nslookup: Name Server Lookup anlamına gelir. Bir alan adının veya IP adresinin DNS kayıtlarını sorgulamak için kullanılır. Örnek olarak, nslookup -type=A networkpentest.net komutu, networkpentest.net alan adının A kaydını sorgular. -type parametresi, sorgulanacak DNS kayıt tipini belirtir. nslookup -type=Ns networkpentest.net -debug -port=53 komutu ise, networkpentest.net alan adının NS kayıtlarını sorgular. -debug parametresi, sorgu sürecindeki detaylı bilgileri gösterir. -port parametresi, sorgunun hangi port üzerinden yapılacağını belirtir. DNS sorguları genellikle 53 numaralı port üzerinden yapılır. nslookup -type=any networkpentest.net komutu ise, networkpentest.net alan adının tüm DNS kayıtlarını sorgular. -type=any parametresi, herhangi bir DNS kayıt tipini belirtir.
- webtoolhup.com: Bir web sitesidir. Bu site, bir alan adının DNS kayıtlarını online olarak sorgulamak için kullanılabilir. Bu siteye girip, sorgulamak istediğiniz alan adını ve DNS kayıt tipini seçerek, sonuçları görebilirsiniz.
DNS Zone Transferi Kontrolü
DNS zone transferi kontrolü, bir DNS sunucusundaki tüm alan adı ve IP adresi kayıtlarını başka bir sunucuya aktarmak için kullanılan bir yöntemdir. Bu yöntem, hedef sistemdeki potansiyel zafiyetleri ve atak yüzeylerini belirlemek için yararlı olabilir. Ancak, DNS sunucuları genellikle bu işlemi sadece yetkili sunucularla yaparlar. Eğer bir DNS sunucusu zone transferine izin verirse, bu bir güvenlik açığı olarak kabul edilir.
DNS zone transferi yapmak için dig ve nslookup gibi araçlar kullanılabilir. Bu araçlar, DNS sunucusuna özel bir sorgu göndererek zone transferi isteğinde bulunurlar. Eğer DNS sunucusu bu isteği kabul ederse, zone transferi başlar ve tüm kayıtlar araç tarafından alınır. Aksi takdirde, DNS sunucusu bir hata mesajı döndürür.
Dig ve nslookup araçlarını kullanarak DNS zone transferi yapmak için aşağıdaki adımları izleyebilirsiniz:
1. Adım: Dig ile DNS zone transferi yapma
- Dig aracı, Linux sistemlerde DNS sorgulamaları yapmak için kullanılan bir komut satırı aracıdır.
- Dig aracını kullanarak DNS zone transferi yapmak için, hedef DNS sunucusunun adını veya IP adresini ve zone transferi istediğimiz alan adını belirtmemiz gerekir. Ayrıca, zone transferi için kullanılan DNS kayıt tipi olan AXFR'yi de eklememiz gerekir.
- Örneğin, ns16.zoonedit.com DNS sunucusundan zonetransfer.me alan adının zone transferini yapmak için, aşağıdaki komutu kullanabiliriz:
root@pentest09:/home/rıdvan/# dig @ns16.zoonedit.com zonetransfer.me axfr
- Bu komut, DNS sunucusundan zone transferi yapmaya çalışır ve eğer başarılı olursa, zonetransfer.me alan adına ait tüm kayıtları ekrana yazdırır. Eğer başarısız olursa, bir hata mesajı gösterir.
2. Adım: Nslookup ile DNS zone transferi yapma (Windows üzerinde)
- Nslookup aracı, Windows sistemlerde DNS sorgulamaları yapmak için kullanılan bir komut satırı aracıdır.
- Nslookup aracını kullanarak DNS zone transferi yapmak için, önce nslookup moduna girmemiz gerekir. Bunun için, komut satırında nslookup yazıp enter tuşuna basmamız yeterlidir.
- Sonra, hedef DNS sunucusunun adını veya IP adresini set type=ns komutu ile belirtmemiz gerekir. Bu komut, DNS sunucusunu değiştirmemizi sağlar.
- Daha sonra, zone transferi istediğimiz alan adını ls -d komutu ile sormamız gerekir. Bu komut, DNS sunucusundan zone transferi yapmaya çalışır ve eğer başarılı olursa, alan adına ait tüm kayıtları ekrana yazdırır. Eğer başarısız olursa, bir hata mesajı gösterir.
- Örneğin, ns16.zoonedit.com DNS sunucusundan zonetransfer.me alan adının zone transferini yapmak için, aşağıdaki komutları kullanabiliriz:
C:\Users\ERD>nslookup
Default Server: UnKnown
Address: 192.168.1.1
> set type=ns
> server ns16.zoonedit.com
Default Server: ns16.zoonedit.com
Address: 23.253.163.103
> ls -d zonetransfer.me
[ns16.zoonedit.com]
Can't list domain zonetransfer.me: Query refused
The DNS server refused to transfer the zone zonetransfer.me to your computer. If this is incorrect, check the zone transfer security settings for zonetransfer.me on the DNS server at IP address 23.253.163.103.
Bu komutlar, DNS sunucusunun zone transferine izin vermediğini gösterir. Eğer izin verseydi, tüm kayıtları görebilirdik.
11. UYGULAMA
DNS Sunucu version bilgisi bulma
DNS sunucu versiyon bilgisi, DNS sunucusunun hangi yazılımı kullandığını ve hangi özelliklere sahip olduğunu belirleyen bir metin dizisidir. DNS sunucu versiyon bilgisini öğrenmek, güvenlik analizi veya saldırı hazırlığı için yararlı olabilir. Ancak, bazı DNS sunucuları bu bilgiyi gizlemek veya değiştirmek için yapılandırılmış olabilir.
DNS sunucu versiyon bilgisini öğrenmenin birkaç yolu vardır. Bunlardan en yaygın olanları dig, nslookup ve nmap araçlarıdır. Bu araçlar, DNS sunucusuna özel bir TXT kaydı sorgusu göndererek versiyon bilgisini alabilirler. Bu sorgu, genellikle version.bind adlı bir alan adı ile yapılır. Sorgunun sonucu, DNS sunucusunun versiyon bilgisini içeren bir TXT kaydıdır.
Bu araçların kullanımına dair güncel bilgiler ve örnekler aşağıda verilmiştir:
- dig: dig, DNS sorguları yapmak için kullanılan bir komut satırı aracıdır. dig aracını kullanarak DNS sunucu versiyon bilgisini öğrenmek için şu komutu kullanabilirsiniz:
dig @<DNS sunucu adresi> version.bind chaos txt
Bu komut, DNS sunucu adresine version.bind adlı bir TXT kaydı sorgusu gönderir ve sonucu ekrana yazdırır. Örneğin, ns1.bim.artuklu.edu.tr adlı bir DNS sunucusunun versiyon bilgisini öğrenmek için şu komutu kullanabilirsiniz:
dig @ns1.bim.artuklu.edu.tr version.bind chaos txt
Bu komutun çıktısı şöyle olabilir:
; <<>> DiG 9.16.1-Ubuntu <<>> @ns1.bim.artuklu.edu.tr version.bind chaos txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56467
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;version.bind. CHTXT
;; ANSWER SECTION:
version.bind. 0CHTXT"9.11.5-P4-5.1+deb10u5-Debian"
;; AUTHORITY SECTION:
version.bind. 0CHNSversion.bind.
;; Query time: 32 msec
;; SERVER: 193.140.136.5#53(193.140.136.5)
;; WHEN: Mon Jan 22 08:13:01 +03 2024
;; MSG SIZE rcvd: 86
Bu çıktıda, ANSWER SECTION bölümünde DNS sunucusunun versiyon bilgisini içeren bir TXT kaydı görülmektedir. Bu örnekte, DNS sunucusunun versiyonu "9.11.5-P4-5.1+deb10u5-Debian" olarak belirtilmiştir.
- nslookup: nslookup, DNS sorguları yapmak için kullanılan başka bir komut satırı aracıdır. nslookup aracını kullanarak DNS sunucu versiyon bilgisini öğrenmek için şu komutu kullanabilirsiniz:
nslookup -q=txt -class=chaos version.bind <DNS sunucu adresi>
Bu komut, DNS sunucu adresine version.bind adlı bir TXT kaydı sorgusu gönderir ve sonucu ekrana yazdırır. Örneğin, ns1.bim.artuklu.edu.tr adlı bir DNS sunucusunun versiyon bilgisini öğrenmek için şu komutu kullanabilirsiniz:
nslookup -q=txt -class=chaos version.bind ns1.bim.artuklu.edu.tr
Bu komutun çıktısı şöyle olabilir:
Server: ns1.bim.artuklu.edu.tr
Address:193.140.136.5#53
version.bindtext = "9.11.5-P4-5.1+deb10u5-Debian"
version.bindnameserver = version.bind.
Bu çıktıda, DNS sunucusunun versiyon bilgisini içeren bir TXT kaydı görülmektedir. Bu örnekte, DNS sunucusunun versiyonu "9.11.5-P4-5.1+deb10u5-Debian" olarak belirtilmiştir.
- nmap: nmap, ağ tarama ve güvenlik analizi için kullanılan bir komut satırı aracıdır. nmap aracını kullanarak DNS sunucu versiyon bilgisini öğrenmek için şu komutu kullanabilirsiniz:
nmap <DNS sunucu adresi> -p 53 -sU -sV
Bu komut, DNS sunucu adresine UDP port 53 üzerinden bir sorgu gönderir ve servis
versiyonunu tespit etmeye çalışır. Örneğin, ns1.bim.artuklu.edu.tr adlı bir DNS sunucusunun versiyon bilgisini öğrenmek için şu komutu kullanabilirsiniz:
nmap ns1.bim.artuklu.edu.tr -p 53 -sU -sV
Bu komutun çıktısı şöyle olabilir:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-01-22 08:15 +03
Nmap scan report for ns1.bim.artuklu.edu.tr (193.140.136.5)
Host is up (0.032s latency).
PORT STATE SERVICE VERSION
53/udp open domain ISC BIND 9.11.5-P4-5.1+deb10u5-Debian (Debian Linux)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.13 seconds
Bu çıktıda, DNS sunucusunun versiyon bilgisini içeren bir servis versiyonu görülmektedir. Bu örnekte, DNS sunucusunun versiyonu "ISC BIND 9.11.5-P4-5.1+deb10u5-Debian (Debian Linux)" olarak belirtilmiştir.
12. UYGULAMA
SMTP Üzerinden İç Ağ IP Yapısının Belirlenmesi
SMTP (Simple Mail Transfer Protocol), bir e-posta göndermek için sunucu ile istemci arasındaki iletişim şeklini belirleyen protokoldür. SMTP, e-posta başlıkları (headers) adı verilen ve gönderen, alıcı, tarih, konu, mesaj kimliği gibi bilgiler içeren metin satırları ekler. Bu başlıklar, e-postanın hangi sunuculardan geçtiğini, hangi IP adreslerini kullandığını ve hangi hatalarla karşılaştığını gösterir.
SMTP üzerinden iç ağ IP yapısının belirlenmesi için aşağıdaki adımları izleyebilirsiniz:
1. Adım: Hedef sistemde olmadığını bildiğiniz bir e-posta adresine e-posta gönderin ve bize böyle bir e-posta olmadığına dair cevap dönmesini bekleyin. Bu cevap, hedef sistemin e-posta sunucusundan (mail server) gelecektir.
2. Adım: Beklediğiniz cevap posta kutunuza düştüğünde, gelen e-postanın başlık bilgilerini görebilmek için Gmail üzerinden "Orjinali göster" bağlantısını seçin.
3. Adım: Dönen e-posta için başlık bilgisi incelendiğinde, e-postanın 172.24.23.10 IP adresinden 121.14.21.23 IP adresine doğru yol aldığı görülür. E-posta dönen e-posta olduğundan dolayı tersten yolu izlediğimizde, e-posta sunucunun iç ağa bakan arayüz IP adresi 172.24.23.10 şeklindedir. Bu da iç ağda 172.24.23.0/24 benzeri bir alt ağ (subnet) kullanıldığını bize göstermektedir. 121.14.21.0/24 alt ağı ise dışa bakan taraf için kullanılan alt ağdır.
Not: /24 alt ağ maskesi yalnızca alt ağı ifade etmek için kullanılmıştır. Firma bunu /25 veya /26 şeklinde de kullanmış olabilir.
4. Adım: E-posta başlık bilgilerinin daha görsel bir şekilde analiz edilmesi için MX Toolbox adresini kullanabilirsiniz. Bu site, e-posta başlıklarını yorumlayarak, e-postanın geçtiği sunucuları, IP adreslerini, zaman damgalarını (timestamps) ve hata kodlarını gösterir. Ayrıca, e-posta sunucularının güvenlik durumunu, DNS kayıtlarını, SPF, DKIM ve DMARC gibi doğrulama mekanizmalarını da kontrol eder.
13. UYGULAMA
ESMTP Üzerinden İç Ağ IP Yapısının Belirlenmesi
ESMTP, Extended Simple Mail Transfer Protocol, SMTP protokolünün genişletilmiş bir versiyonudur. ESMTP, SMTP protokolüne ek olarak, güvenlik, kimlik doğrulama, mesaj boyutu sınırlaması gibi özellikler sunar. ESMTP kullanarak iç ağ IP yapısının belirlenmesi için aşağıdaki adımları izleyebilirsiniz:
1. Adım: Hedef sistemde olmadığını bildiğiniz bir e-posta adresine e-posta gönderin. Örneğin, [email protected] gibi. E-postanızı gönderirken, ESMTP özelliklerini kullanmak için EHLO komutunu kullanın. Bu komut, sunucunun desteklediği ESMTP uzantılarını size bildirecektir. E-postanızı göndermek için bir e-posta istemcisi veya bir telnet uygulaması kullanabilirsiniz.
2. Adım: Hedef sistemden böyle bir e-posta adresi olmadığına dair bir cevap almayı bekleyin. Bu cevap, e-postanızın geri döndüğünü gösterir. Bu cevabı, e-posta istemcinizde veya telnet uygulamanızda görebilirsiniz.
3. Adım: Geri dönen e-postanın başlık bilgilerini inceleyin. Başlık bilgileri, e-postanın hangi sunuculardan geçtiğini, hangi IP adreslerini kullandığını, hangi tarih ve saatte gönderildiğini ve alındığını gösterir. Başlık bilgilerini, e-posta istemcinizde veya telnet uygulamanızda görebilirsiniz. Başlık bilgilerinde, Received: satırlarına dikkat edin. Bu satırlar, e-postanın geçtiği sunucuları ve IP adreslerini gösterir. Örneğin, aşağıdaki başlık bilgisi, e-postanın 192.168.1.10 IP adresinden 10.0.0.1 IP adresine doğru yol aldığını gösterir:
Received: from mail.hedef.com (192.168.1.10) by mail.bing.com (10.0.0.1) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2044.4; Mon, 22 Jan 2024 05:06:38 +0300
4. Adım: Geri dönen e-postanın başlık bilgilerini tersten izleyin. Yani, en son Received: satırından başlayarak, en ilk Received: satırına kadar gidin. Bu şekilde, e-postanın hedef sistemden nasıl geri döndüğünü takip edebilirsiniz. E-postanın geri döndüğü son sunucunun IP adresi, hedef sistemin iç ağa bakan arayüz IP adresidir. Bu IP adresi, iç ağın subnet maskesini belirlemenize yardımcı olabilir. Örneğin, eğer IP adresi 192.168.1.10 ise, iç ağda 192.168.1.0/24 benzeri bir subnet kullanıldığını söyleyebilirsiniz. E-postanın geri döndüğü ilk sunucunun IP adresi ise, hedef sistemin dış ağa bakan arayüz IP adresidir. Bu IP adresi, hedef sistemin internete çıkış IP adresini belirlemenize yardımcı olabilir. Örneğin, eğer IP adresi 10.0.0.1 ise, hedef
sistemin internete çıkış IP adresi 10.0.0.1 şeklindedir.
5. Adım: E-postanın başlık bilgilerinin daha görsel bir şekilde analiz edilmesi için Mxtoolbox gibi bir web sitesi kullanabilirsiniz. Bu web sitesi, e-postanın başlık bilgilerini okumanıza ve yorumlamanıza yardımcı olur. Ayrıca, e-postanın geçtiği sunucuların konumlarını, isimlerini, sürümlerini, güvenlik durumlarını ve daha fazla bilgiyi gösterir.
14. UYGULAMA
SNMP Üzerinden Bilgi Toplama
SNMP (Simple Network Management Protocol), ağ cihazları hakkında bilgi toplamak ve yönetmek için kullanılan bir uygulama katmanı protokolüdür. SNMP, ağ yöneticilerinin ağ performansını izlemesi, ağ problemlerini tespit etmesi ve çözmesi, ağlarda genişleme için planlama yapması gibi işlemleri kolaylaştırır.
SNMP, üç temel bileşenden oluşur:
- Yönetilen cihazlar: SNMP arabirimi uygulayan ağ cihazlarıdır. Örneğin, yönlendiriciler, anahtarlayıcılar, erişim sunucuları, köprüler, IP telefonlar, IP kameralar, bilgisayarlar, yazıcılar vb.
- Ajanlar: Yönetilen cihazlarda çalışan yazılım bileşenleridir. Ajanlar, yönetim bilgilerinin yerel bilgisine sahip olur ve bu bilgileri SNMP'ye özgü bir forma dönüştürür.
- Ağ yönetim istasyonları (NMS): Yönetilen cihazları izleyen ve kontrol eden uygulamaları çalıştıran bilgisayarlardır. NMS'ler, ağ yönetimi için gereken işlem ve bellek kaynaklarının çoğunu sağlar.
SNMP, yönetim bilgilerini MIB (Management Information Base) adı verilen hiyerarşik bir yapıda saklar. MIB, SNMP ile yönetilen cihazlarda bulunan değişkenleri tanımlar. Bu değişkenlere, OID (Object Identifier) adı verilen benzersiz bir numara ile erişilir. Örneğin, sysName.0 adlı değişken, yönetilen cihazın adını tutar ve 1.3.6.1.2.1.1.5.0 OID ile tanımlanır.
SNMP, yönetim bilgilerini almak veya değiştirmek için iki temel yöntem kullanır:
- Sorgu: NMS, yönetilen cihazın ajanına bir sorgu mesajı gönderir. Ajan, sorguyu işler ve cevap mesajı gönderir. Sorgu mesajları, SNMP GET, GETNEXT, GETBULK gibi komutlar içerir. Cevap mesajları, sorgunun sonucunu veya hata durumunu belirtir.
- Tuzak: Ajan, yönetilen cihazda önemli bir olay meydana geldiğinde, NMS'ye bir tuzak mesajı gönderir. Tuzak mesajları, olayın nedenini ve ilgili bilgileri içerir.
SNMP, güvenlik için topluluk adı (community name) adı verilen bir kimlik doğrulama mekanizması kullanır. Topluluk adı, SNMP mesajlarının başlığında yer alır ve ajan ile NMS arasındaki ilişkiyi belirler. Topluluk adı, SNMP mesajlarının okuma veya yazma yetkisine sahip olup olmadığını belirler. Varsayılan olarak, SNMP mesajları public veya private topluluk adları ile gönderilir. Ancak, bu topluluk adları güvenli değildir ve değiştirilmelidir. SNMPv3 sürümü, daha güvenli bir kimlik doğrulama ve şifreleme mekanizması sunar.
SNMP üzerinden bilgi toplama için kullanılan araçlardan bazıları şunlardır:
- Nmap: Ağ tarama aracıdır. SNMP servisinin açık olup olmadığını, hangi sürümü kullandığını, hangi topluluk adlarını kabul ettiğini tespit etmek için kullanılabilir. Örneğin, aşağıdaki komut, 192.168.5.9 IP adresindeki cihazın SNMP servisini tarar.
nmap 192.168.5.9 -p 161 -sU -sV --script=snmp-info,snmp-brute
- Metasploit: Sızma testi aracıdır. SNMP servisine yönelik saldırılar gerçekleştirmek için kullanılabilir. Örneğin, aşağıdaki komutlar, 192.168.5.9 IP adresindeki cihazın SNMP topluluk adını kaba kuvvet yöntemiyle bulmaya çalışır.
msfconsole
use auxiliary/scanner/snmp/snmp_login
set RHOSTS 192.168.5.9
run
- Solarwinds: Ağ yönetim aracıdır. SNMP servisini grafik arayüzü ile izlemek ve yönetmek için kullanılabilir. Örneğin, Solarwinds Network IP Browser aracı, SNMP ile yönetilen cihazların IP adreslerini, adlarını, çalışma sürelerini, işletim sistemlerini vb. gösterir.
- Snmpenum: SNMP bilgi toplama aracıdır. SNMP servisinden MIB bilgilerini almak için kullanılabilir. Örneğin, aşağıdaki komut, 111.1.19.23 IP adresindeki cihazın linux.txt dosyasındaki MIB bilgilerini getirir.
snmpenum.pl 111.1.19.23 public linux.txt
15. UYGULAMA
SNMPv3 Üzerinden Bilgi Toplama
SNMPv3, SNMP protokolünün en güncel ve güvenli sürümüdür. SNMPv3, şifreleme ve kimlik doğrulama gibi güvenlik özellikleri sunar. SNMPv3 ile bilgi toplamak için, hedef sistemde SNMPv3 servisinin çalıştığını ve kullanıcı adı ve parola gibi kimlik bilgilerini bilmek gerekir. Bu bilgileri elde etmek için, SNMPv3 User Enumerator and Attack tool gibi araçlar kullanılabilir. Bu araç, hedef sistemdeki SNMPv3 kullanıcılarını ve parolalarını brute force yöntemiyle tespit etmeye çalışır.
SNMPv3 kullanıcı ve parola bilgilerini elde ettikten sonra, SNMPv3 ile bilgi toplamak için aşağıdaki adımları izleyebilirsiniz:
1. Adım: Hedef sistemde SNMPv3 servisinin çalışıp çalışmadığını ve hangi versiyonunu kullandığını nmap ile taramak. Bu işlem için, nmap'in snmp-info scriptini kullanabilirsiniz. Örneğin, hedef IP 192.168.5.9 ise, aşağıdaki komutu kullanabilirsiniz:
nmap -sU -p 161 --script snmp-info 192.168.5.9 u komut, hedef sistemde SNMPv3 servisinin çalışıp çalışmadığını, hangi versiyonunu kullandığını, hangi portu dinlediğini, hangi community stringleri desteklediğini ve sistem hakkında bazı temel bilgileri verir.
2. Adım: SNMPv3 ile hedef sistem hakkında daha fazla bilgi toplamak için, snmpwalk veya snmp-check gibi araçlar kullanabilirsiniz. Bu araçlar, SNMPv3 protokolü ile hedef sistemdeki farklı OID'leri (Object Identifier) sorgular ve bunlara karşılık gelen değerleri döndürür. OID'ler, SNMP yönetilen cihazlardaki farklı nesneleri tanımlayan sayısal dizilerdir. Örneğin, sistem adı, sistem açıklaması, sistem zamanı, arayüz bilgileri, işlemci yükü, bellek kullanımı, disk alanı, çalışan süreçler, yüklü yazılımlar, vb. gibi bilgileri elde etmek için farklı OID'ler kullanılabilir. Bu bilgiler, hedef sistemin zayıf noktalarını veya saldırı vektörlerini belirlemek için kullanılabilir.
snmpwalk aracını kullanmak için, aşağıdaki komutu kullanabilirsiniz:
snmpwalk -v 3 -u <username> -l <security level> -a <authentication protocol> -A <authentication password> -x <encryption protocol> -X <encryption password> <target IP>
Bu komut, hedef sistemdeki tüm OID'leri sorgular ve bunlara karşılık gelen değerleri ekrana yazdırır. Bu işlem uzun sürebilir ve çok fazla çıktı üretebilir. Bu yüzden, belirli bir OID'yi veya OID grubunu sorgulamak isterseniz, komutun sonuna ekleyebilirsiniz. Örneğin, hedef sistemdeki sistem adını ve sistem açıklamasını sorgulamak için, aşağıdaki komutu kullanabilirsiniz:
snmpwalk -v 3 -u <username> -l <security level> -a <authentication protocol> -A <authentication password> -x <encryption protocol> -X <encryption password> <target IP> 1.3.6.1.2.1.1.5 1.3.6.1.2.1.1.1
snmp-check aracını kullanmak için, aşağıdaki komutu kullanabilirsiniz:
snmp-check -t <target IP> -v 3 -u <username> -l <security level> -a <authentication protocol> -A <authentication password> -x <encryption protocol> -X <encryption password>
Bu komut, hedef sistem hakkında genel bir rapor oluşturur. Bu rapor, sistem adı, sistem açıklaması, sistem zamanı, arayüz bilgileri, işlemci yükü, bellek kullanımı, disk alanı, çalışan süreçler, yüklü yazılımlar, vb. gibi bilgileri içerir.
3. Adım: SNMPv3 ile hedef sistemdeki belirli bilgileri veya dosyaları okumak veya değiştirmek için, snmpset veya snmpget gibi araçlar kullanabilirsiniz. Bu araçlar, SNMPv3 protokolü ile hedef sistemdeki belirli OID'leri okumak veya yazmak için kullanılabilir. Örneğin, hedef sistemdeki sistem adını değiştirmek için, aşağıdaki komutu kullanabilirsiniz:
snmpset -v 3 -u <username> -l <security level> -a <authentication protocol> -A <authentication password> -x <encryption protocol> -X <encryption password> <target IP> 1.3.6.1.2.1.1.5.0 s <new system name>
Bu komut, hedef sistemdeki sistem adını belirtilen yeni sistem adı ile değiştirir. Bu işlem, hedef sistemdeki SNMPv3 servisinin yazma yetkisine sahip olmanızı gerektirir. Aksi takdirde, işlem başarısız olur.
16. UYGULAMA
Nmap Kullanarak Açık Sistemlerin Belirlenmesi
Nmap, ağ tarama ve zafiyet tespiti için kullanılan açık kaynaklı bir araçtır. Nmap ile hedef sistemlerin açık portlarını, işletim sistemlerini, çalışan servisleri ve güvenlik açıklarını tespit edebilirsiniz. Nmap, farklı tarama yöntemleri sunar. Bunlardan bazıları şunlardır:
- TCP SYN taraması (-sS): Bu tarama yöntemi, hedef sistemin portlarına TCP SYN paketleri gönderir ve gelen yanıtlara göre portların durumunu belirler. Bu yöntem, hızlı, güvenilir ve gizli bir tarama sağlar. TCP SYN taraması yapmak için -sS parametresini kullanabilirsiniz. Örneğin, nmap -sS cnn.com komutu, cnn.com sitesinin portlarını TCP SYN taraması ile kontrol eder.
- TCP ACK taraması (-sA): Bu tarama yöntemi, hedef sistemin portlarına TCP ACK paketleri gönderir ve gelen yanıtlara göre portların durumunu belirler. Bu yöntem, hedef sistemin güvenlik duvarı kurallarını tespit etmek için kullanılabilir. TCP ACK taraması yapmak için -sA parametresini kullanabilirsiniz. Örneğin, nmap -sA cnn.com komutu, cnn.com sitesinin portlarını TCP ACK taraması ile kontrol eder.
- UDP taraması(-sU): Bu tarama yöntemi, hedef sistemin portlarına UDP paketleri gönderir ve gelen yanıtlara göre portların durumunu belirler. Bu yöntem, TCP tabanlı olmayan servisleri tespit etmek için kullanılabilir. UDP taraması yapmak için -sU parametresini kullanabilirsiniz. Örneğin, nmap -sU cnn.com komutu, cnn.com sitesinin portlarını UDP taraması ile kontrol eder.
Bu bilgiler ışığında, güncel bilgilerle uygulama üzerinden detaylıca açıklamak gerekirse, şöyle yapabiliriz:
1.Adım: Hedef sistemin (cnn.com) 21 portuna TCP SYN paketi göndererek hedefin ayakta olup olmadığını görelim. Hedef sistemin 21 portuna erişim olmadığı için hedefin down olduğunu görmemiz beklenmektedir. Bu adım için şu komutu kullanabiliriz:
root@pentest09:/home/rıdvan# nmap -sn -PS21 cnn.com
Bu komut, cnn.com sitesinin 21 portunu TCP SYN paketi ile pingler ve hedefin ayakta olup olmadığını gösterir. Eğer hedef down ise, şöyle bir çıktı alırız:
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.06 seconds
Bu çıktı, hedefin down olduğunu veya ping paketlerini engellediğini gösterir. Eğer hedef up ise, şöyle bir çıktı alırız:
Nmap scan report for cnn.com (151.101.65.67)
Host is up (0.012s latency).
Other addresses for cnn.com (not scanned): 151.101.129.67 151.101.193.67 151.101.1.67
rDNS record for 151.101.65.67: 151-101-65-67.rev.cloud.scaleway.com
Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds
Bu çıktı, hedefin up olduğunu ve IP adresi, ters DNS kaydı gibi bilgileri gösterir.
2.Adım: Hedef sistemin (cnn.com) 80 portuna TCP SYN paketi göndererek hedefin ayakta olup olmadığını görelim. Hedef sistemin 80 portuna erişim olduğu için hedefin up olduğunu görmemiz beklenmektedir. Bu adım için şu komutu kullanabiliriz:
root@pentest09:/home/rıdvan# nmap -sn -PS80 cnn.com
Bu komut, cnn.com sitesinin 80 portunu TCP SYN paketi ile pingler ve hedefin ayakta olup olmadığını gösterir. Eğer hedef down ise, birinci adımdaki gibi bir çıktı alırız. Eğer hedef up ise, şöyle bir çıktı alırız:
Nmap scan report for cnn.com (151.101.65.67)
Host is up (0.012s latency).
Other addresses for cnn.com (not scanned): 151.101.129.67 151.101.193.67 151.101.1.67
rDNS record for 151.101.65.67: 151-101-65-67.rev.cloud.scaleway.com
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds
Bu çıktı, hedefin up olduğunu ve 80 portunun açık olduğunu ve http servisinin çalıştığını gösterir.
3.Adım: Hedef sistemin (cnn.com) 22 portuna TCP ACK paketi göndererek hedefin ayakta olup olmadığını görelim. Hedef sistemin 22 portuna erişim olmadığı için hedefin down olduğunu görmemiz beklenmektedir. Bu adım için şu komutu kullanabiliriz:
root@pentest09:/home/rıdvan# nmap -sn -PA22 cnn.com
Bu komut, cnn.com sitesinin 22 portunu TCP ACK paketi ile pingler ve hedefin ayakta olup olmadığını gösterir. Eğer hedef down ise, birinci adımdaki gibi bir çıktı alırız. Eğer hedef up ise, şöyle bir çıktı alırız:
Nmap scan report for cnn.com (151.101.65.67)
Host is up (0.012s latency).
Other addresses for cnn.com (not scanned): 151.101.129.67 151.101.193.67 151.101.1.67
rDNS record for 151.101.65.67: 151-101-65-67.rev.cloud.scaleway.com
PORT STATE SERVICE
22/tcp filtered ssh
Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds
Bu çıktı, hedefin up olduğunu ve 22 portunun filtreli olduğunu ve ssh servisinin çalışmadığını gösterir.
4.Adım: Hedef sistemin (cnn.com) 80 portuna TCP ACK paketi göndererek hedefin ayakta olup olmadığını görelim. Hedef sistemin 80 portuna erişim olduğu ve ACK paketlerine cevap verdiği için hedefin up olduğunu görmemiz beklenmektedir. Bu adım için şu komutu kullanabiliriz:
root@pentest09:/home/rıdvan# nmap -sn -PA80 cnn.com
Bu komut, cnn.com sitesinin 80 portunu TCP ACK paketi ile pingler ve hedefin ayakta olup olmadığını gösterir. Eğer hedef down ise, birinci adımdaki gibi bir çıktı alırız. Eğer hedef up ise, şöyle bir çıktı alırız:
Nmap scan report for cnn.com (151.101.65.67)
Host is up (0.012s latency).
Other addresses for cnn.com (not scanned): 151.101.129.67 151.101.193.67 151.101.1.67
rDNS record for 151.101.65.67: 151-101-65-67.rev.cloud.scaleway.com
PORT STATE SERVICE
80/tcp unfiltered http
Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds
Bu çıktı, hedefin up olduğunu ve 80 portunun filtrelenmediğini ve http servisinin çalıştığını gösterir.
5.Adım: UDP ping genelde sistemin ayakta olup olmadığını tesbit etmede başarılı değildir. Tercih edilmez. UDP ping için ilgili nmap parametresi -PU şeklindedir. Bu adım için şu komutu kullanabiliriz:
root@pentest09:/home/rıdvan# nmap -sn -PU53 cnn.com
Bu komut, cnn.com sitesinin 53 portunu UDP paketi ile pingler ve hedefin ayakta olup olmadığını gösterir. Eğer hedef down ise, birinci adımdaki gibi bir çıktı alırız. Eğer hedef up ise, şöyle bir çıktı alırız:
Nmap scan report for cnn.com (151.101.65.67)
Host is up (0.012s latency).
Other addresses for cnn.com (not scanned): 151.101.129.67 151.101.193.67 151.101.1.67
rDNS record for 151.101.65.67: 151-101-65-67.rev.cloud.scaleway.com
PORT STATE SERVICE
53/udp open|filtered domain
Nmap done: 1 IP address (1 host up) scanned in 0.20 seconds
Bu çıktı, hedefin up olduğunu ve 53 portunun açık veya filtreli olduğunu ve domain servisinin çalıştığını gösterir.
UDP ping, TCP ping kadar güvenilir değildir, çünkü UDP paketlerine cevap vermek zorunlu değildir. Bu yüzden, UDP portlarının durumunu belirlemek için -sU parametresi ile UDP taraması yapmak daha iyidir.
17. UYGULAMA
Nmap Kullanarak TCP/UDP Port Tarama
Nmap, ağ taraması yaparak ağlar ve ana bilgisayarlar hakkında bilgi edinmek için kullanılan açık kaynaklı bir araçtır. Nmap ile farklı port tarama türleri kullanabilirsiniz, bunlar TCP segmentleri, UDP datagramları veya ICMP paketleri üzerinden olabilir. Ayrıca, güvenlik duvarları tarafından tespit edilmeleri zor olacak şekilde gizli bir şekilde tarama yapılmasına izin verir.
Nmap ile port tarama yapmak için aşağıdaki adımları izleyebilirsiniz:
1. Adım: Nmap kullanarak asaguvenlik.com sitesinin TCP 21,80,443 portlarını tarayalım. Bu portlar FTP, HTTP ve SSL protokollerini kullanır. Bu tarama için -sS parametresini kullanacağız, bu parametre hedefe TCP SYN scan yapılacağını gösterir. TCP SYN scan, bağlantı kurmadan portların durumunu belirlemek için kullanılan hızlı ve etkili bir tarama türüdür. Komutumuz şöyle olacak:
root@pentest09:~# nmap asaguvenlik.com -p 80, 21, 443 -sS
Bu komutu çalıştırdığımızda, aşağıdaki gibi bir çıktı alacağız:
Starting Nmap 7.91 ( https://nmap.org ) at 2024-01-22 06:22 EET
Nmap scan report for asaguvenlik.com (185.122.13.218)
Host is up (0.11s latency).
rDNS record for 185.122.13.218: mail.asaguvenlik.com
PORT STATE SERVICE
21/tcp open ftp
80/tcp open http
443/tcp closed https
Nmap done: 1 IP address (1 host up) scanned in 0.33 seconds
Bu çıktıda, hedef sistemin IP adresi, ters DNS kaydı, taranan portların numarası, durumu ve servisi görülebilir. Port durumları, portların açık, kapalı veya filtreli olup olmadığını gösterir. Açık portlar, bağlantı kurulabilecek portlardır. Kapalı portlar, bağlantı kurulamayacak portlardır. Filtreli portlar, bir güvenlik duvarı tarafından engellenen portlardır. Bu örnekte, 21 ve 80 numaralı portlar açık, 443 numaralı port kapalı görünmektedir.
2. Adım: Nmap kullanarak 8.8.8.8 IP adresinin UDP 53 portunu tarayalım. Bu port DNS protokolünü kullanır. Bu tarama için -sU parametresini kullanacağız, bu parametre hedefe UDP scan yapılacağını gösterir. UDP scan, UDP protokolü kullanan portların durumunu belirlemek için kullanılan bir tarama türüdür. Komutumuz şöyle olacak:
root@pentest09:~# nmap 8.8.8.8 -p 53 -sU
Bu komutu çalıştırdığımızda, aşağıdaki gibi bir çıktı alacağız:
Starting Nmap 7.91 ( https://nmap.org ) at 2024-01-22 06:22 EET
Nmap scan report for dns.google (8.8.8.8)
Host is up (0.011s latency).
PORT STATE SERVICE
53/udp open|filtered domain
Nmap done: 1 IP address (1 host up) scanned in 0.92 seconds
Bu çıktıda, hedef sistemin IP adresi, taranan portun numarası, durumu ve servisi görülebilir. Port durumu, portun açık mı yoksa filtreli mi olduğundan emin olamadığımızı gösterir. Bu durum, açık portların yanıt vermediği tarama türleri için oluşur. Biz emin olmak için -sV parametresini kullanacağız, bu parametre hedefe versiyon tespiti yapılacağını gösterir. Versiyon tespiti, portların çalıştırdığı servislerin ve işletim sistemlerinin sürümlerini belirlemek için kullanılan bir özelliktir. Komutumuz şöyle olacak:
root@pentest09:~# nmap 8.8.8.8 -p 53 -sU -sV
Bu komutu çalıştırdığımızda, aşağıdaki gibi bir çıktı alacağız:
Starting Nmap 7.91 ( https://nmap.org ) at 2024-01-22 06:22 EET
Nmap scan report for dns.google (8.8.8.8)
Host is up (0.011s latency).
PORT STATE SERVICE VERSION
53/udp open domain Google Public DNS
Service Info: Host: dns.google
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.23 seconds
Bu çıktıda, portun açık olduğunu ve Google Public DNS servisini çalıştırdığını görebiliriz. Ayrıca, servis bilgisi ve versiyon tespiti sonucu da görüntülenir.
18. UYGULAMA
Nmap Kullanarak Çalışan Servis Sürümlerini Belirleme
Nmap, ağ tarama ve zafiyet tespiti için kullanılan açık kaynaklı bir araçtır. Nmap üzerinde bulunan modüller sayesinde port taraması, servis keşfi, versiyon ve işletim sistemi tespiti gerçekleştirebilir. Nmap'i kullanabilmek için komut satırı arabirimlerine aşina olmanız gerekir. Temel nmap komutu oluştururken nmap {tarama türü} {opsiyonlar} {hedef} dizilimi temel alınır.
Nmap ile çalışan servis sürümlerini belirlemek için -sV opsiyonunu kullanabilirsiniz. Bu opsiyon, hedef portlara özel sorgular göndererek servislerin isimlerini, sürümlerini ve diğer bilgilerini tespit etmeye çalışır. Örneğin, nmap google.com -p 80 -sV komutu, google.com domaininin TCP/80 portunda çalışan servisi belirlemeye çalışır. Bu komutun çıktısı şöyle olabilir:
Starting Nmap 7.91 ( https://nmap.org ) at 2024-01-22 10:44 +03
Nmap scan report for google.com (142.250.185.238)
Host is up (0.021s latency).
Other addresses for google.com (not scanned): 2a00:1450:4017:80c::200e
PORT STATE SERVICE VERSION
80/tcp open http Google httpd 2.0 (GFE)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.77 seconds
Bu çıktıda, TCP/80 portunun açık olduğu, servisin isminin http olduğu, sürümünün Google httpd 2.0 (GFE) olduğu ve işletim sisteminin Linux olduğu görülebilir. Servis sürümü tespiti, hedef sistemin güvenlik zafiyetlerini belirlemek için önemli bir adımdır.
19. UYGULAMA
Nmap Kullanarak Belirli IP aralığındaki belirli Port Aralığını Tarama
Nmap, ağ güvenliği testlerinde yaygın olarak kullanılan güçlü bir araçtır. Nmap ile birçok tarama işlemi gerçekleştirebilir, hedef sistemlerdeki açık portları, servisleri, işletim sistemlerini ve zafiyetleri tespit edebilirsiniz.
Nmap ile Belirli IP aralığındaki belirli port aralığını taramak için aşağıdaki adımları izleyebilirsiniz:
1. Adım: Aşağıdaki çıktıdaki IP adresinin 1 ile 3389 arasındaki TCP portlarını tarayalım. Nmap ön tanımlı olarak taramaya geçmeden önce hedefin ayakta olup olmadığını tesbit etmek için ping scan işlemi yapar. Bunu iptal etmek için -PN parametresini kullandık.
root@pentest09:~# nmap 208.91.3.169 -p 1-3389 --open -PN
Bu komut, 208.91.3.169 IP adresinin 1 ile 3389 arasındaki portlarını TCP SYN taraması yaparak kontrol eder. -PN parametresi, ping atlamayı sağlar. --open parametresi, sadece açık portları gösterir.
Tarama sonucunda, bu IP adresinde 80, 443 ve 8443 numaralı portların açık olduğunu görebilirsiniz. Bu portlar, genellikle web servisleri için kullanılır.
2. Adım: Tüm portları taramak için -p- veya -p 1-65536 şeklinde kullanılabilir.
root@pentest09:~# nmap 85.95.238.173 -p- --open
Bu komut, 85.95.238.173 IP adresinin tüm portlarını TCP SYN taraması yaparak kontrol eder. --open parametresi, sadece açık portları gösterir.
Tarama sonucunda, bu IP adresinde 22, 80, 443, 8080 ve 8443 numaralı portların açık olduğunu görebilirsiniz. Bu portlar, SSH, web servisleri ve uygulama sunucuları için kullanılır.
20. UYGULAMA
Sahte IP/Tuzak Sistemler Kullanarak Port Tarama
Port tarama, bir ağdaki açık portları veya hizmetleri bulmak için kullanılan bir tekniktir. Bu, bir sızma testinin veya bir saldırının ilk adımlarından biridir. Ancak, port tarama işlemi, güvenlik duvarları, IDS/IPS gibi sistemler tarafından kolayca tespit edilebilir ve engellenebilir. Bu nedenle, port tarama yapan kişinin kimliğini gizlemek veya hedef sistemleri şaşırtmak için çeşitli yöntemler geliştirilmiştir.
Sahte IP/Tuzak Sistemler Kullanarak Port Tarama, bu yöntemlerden biridir. Bu yöntemde, port tarama yapan kişi, kendi IP adresini de içeren bir sahte IP havuzu oluşturur. Bu havuz, istenilen IP adreslerinden veya rastgele seçilen IP adreslerinden oluşabilir. Bu havuzdaki IP adreslerinden, hedef sisteme aynı anda port tarama paketleri gönderilir. Bu şekilde, hedef sistem, port tarama yapan kişinin gerçek IP adresini belirlemekte zorlanır veya yanlış belirler.
Bu yöntemi uygulamak için Nmap gibi bir port tarama aracı kullanılabilir. Nmap, -D seçeneği ile sahte IP havuzu oluşturmayı ve tarama yapmayı sağlar. Örneğin, aşağıdaki komut, asaguvenlik.com sitesine karşı, 212.23.23.145, 11.12.45.6, 5.5.5.5 IP adreslerini ve kendi IP adresimizi kullanarak port 80'i taramak için kullanılabilir.
sudo nmap asaguvenlik.com -D 212.23.23.145,11.12.45.6,5.5.5.5 -p 80 -sV -n
Bu komutun açıklaması şöyledir:
- sudo: Nmap'i root olarak çalıştırmak için kullanılır. Bu, sahte IP adresleri ile tarama yapmak için gereklidir.
- nmap: Port tarama aracının adıdır.
- asaguvenlik.com: Tarama yapılacak hedefin adı veya IP adresidir.
- -D: Sahte IP havuzu oluşturmak için kullanılan seçenektir. IP adresleri virgül ile ayrılır. Kendi IP adresimiz de otomatik olarak eklenir.
- -p 80: Tarama yapılacak port numarasını belirtir. Birden fazla port numarası veya aralığı da kullanılabilir.
- -sV: Servis versiyon tespiti yapmak için kullanılan seçenektir. Bu, portun hangi servis ve versiyon tarafından kullanıldığını belirlemeye yardımcı olur.
- -n: DNS çözümlemesi yapmamak için kullanılan seçenektir. Bu, tarama hızını artırmaya ve DNS sunucularına fazladan trafik göndermemeye yarar.
Bu komutun sonucunda, port 80'in açık olduğu ve Apache 2.4.41 web sunucusu tarafından kullanıldığı görülebilir.
Starting Nmap 7.91 ( https://nmap.org ) at 2024-01-22 10:44 +03
Nmap scan report for asaguvenlik.com (178.18.197.18)
Host is up (0.011s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Aynı zamanda, tcpdump gibi bir araç ile ağ trafiğini izleyecek olursak, girdiğimiz sahte IP adreslerinden ve kendi IP adresimizden hedefe doğru SYN paketleri set edilmiş TCP paketlerinin gittiğini görebiliriz.
tcpdump -i eth0 -n host 178.18.197.18
10:44:16.123456 IP 212.23.23.145.40212 > 178.18.197.18.80: Flags , seq 2328236182, win 2048, options [mss 1460], length 0
10:44:16.123456 IP 11.12.45.6.40212 > 178.18.197.18.80: Flags , seq 2328236182, win 1024, options [mss 1460], length 0
10:44:16.123456 IP 5.5.5.5.40212 > 178.18.197.18.80: Flags , seq 2328236182, win 3072, options [mss 1460], length 0
10:44:16.123456 IP 192.168.1.10.40212 > 178.18.197.18.80: Flags , seq 2328236182, win 4096, options [mss 1460], length 0
10:44:16.123456 IP 178.18.197.18.80 > 192.168.1.10.40212: Flags [S.], seq 2585139682, ack 2328236183, win 5840, options [mss 1460], length 0
Burada, 192.168.1.10 IP adresi, kendi IP adresimizdir. Hedef sistem, sadece bu IP adresine SYN-ACK paketi göndermiştir. Diğer IP adreslerine herhangi bir yanıt göndermemiştir. Bu, hedef sistemin port tarama yapan kişinin gerçek IP adresini belirleyemediğini veya yanlış belirlediğini gösterir.
Rastgele IP adresleri ile bir 10 IP adresine sahip havuz oluşturup bu havuz IP adresleri ile hedefe yönelik port taraması yapmak için, aşağıdaki komut kullanılabilir.
sudo nmap asaguvenlik.com -D RND:10 -p 80 -sV -n
Bu komutun açıklaması şöyledir:
- -D RND:10: Rastgele 10 IP adresi seçmek için kullanılan seçenektir. Kendi IP adresimiz de otomatik olarak eklenir.
Bu komutun sonucunda, port 80'in açık olduğu ve Apache 2.4.41 web sunucusu tarafından kullanıldığı görülebilir.
Starting Nmap 7.91 ( https://nmap.org ) at 2024-01-22 10:45 +03
Nmap scan report for asaguvenlik.com (178.18.197.18)
Host is up (0.011s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Aynı zamanda, tcpdump ile ağ trafiğini izleyecek olursak, rastgele seçilen IP adreslerinden ve kendi IP adresimizden hedefe doğru SYN paketleri set edilmiş TCP paketlerinin gittiğini görebiliriz.
tcpdump -i eth0 -n host 178.18.197.18
Ağ trafiğini izlemeye devam edersek, şunları görebiliriz:
10:45:16.123456 IP 213.116.227.58.40212 > 178.18.197.18.80: Flags , seq 2328236182, win 2048, options [mss 1460], length 0
10:45:16.123456 IP 61.2.175.211.40212 > 178.18.197.18.80: Flags , seq
2328236182, win 1024, options [mss 1460], length 0
10:45:16.123456 IP 91.93.118.125.40212 > 178.18.197.18.80: Flags , seq 2328236182, win 3072, options [mss 1460], length 0
10:45:16.123456 IP 2.42.202.142.40212 > 178.18.197.18.80: Flags , seq 2328236182, win 4096, options [mss 1460], length 0
10:45:16.123456 IP 192.168.1.10.40212 > 178.18.197.18.80: Flags , seq 2328236182, win 4096, options [mss 1460], length 0
10:45:16.123456 IP 178.18.197.18.80 > 192.168.1.10.40212: Flags [S.], seq 2585139682, ack 2328236183, win 5840, options [mss 1460], length 0
Burada, 192.168.1.10 IP adresi, kendi IP adresimizdir. Hedef sistem, sadece bu IP adresine SYN-ACK paketi göndermiştir. Diğer IP adreslerine herhangi bir yanıt göndermemiştir. Bu, hedef sistemin port tarama yapan kişinin gerçek IP adresini belirleyemediğini veya yanlış belirlediğini gösterir.
Bu yöntem, port tarama yapan kişinin kimliğini gizlemek için etkili bir yöntemdir. Ancak, bu yöntemin de bazı dezavantajları vardır. Örneğin, bu yöntem, tarama hızını düşürebilir, çünkü birden fazla IP adresi ile tarama yapmak daha fazla zaman alabilir. Ayrıca, bu yöntem, sahte IP adreslerinin gerçek olup olmadığını kontrol eden gelişmiş güvenlik sistemleri tarafından tespit edilebilir. Bu nedenle, bu yöntemi kullanırken dikkatli olmak gerekir.
21. UYGULAMA
Nmap NSE Kullanarak Güvenlik Açığı Tespit Etme
Nmap NSE, Nmap'in sunduğu geniş script kütüphanesini kullanarak hedef sistemler hakkında derinlemesine bir analiz yapmaya ve güvenlik açıklarını keşfetmeye yarayan bir araçtır. Nmap NSE ile birçok farklı senaryo çalıştırabilir ve hedef sistemlerin ağ özelliklerini, açık portlarını, çalışan servislerini, işletim sistemlerini ve zafiyetlerini tespit edebilirsiniz.
Nmap NSE kullanarak güvenlik açıklarını tespit etmek için aşağıdaki adımları takip edin:
1. Adım: Nmap Script Engine (NSE) kullanarak FTP hizmetinin Anonymous kullanıcısının parolası boş ise bunu tespit edelim.
Bu adımda, hedef sistemin 21 numaralı portunda çalışan FTP servisinin, Anonymous kullanıcısına izin verip vermediğini kontrol etmek için ftp-anon.nse isimli script'i kullanıyoruz. Bu script, FTP servisine Anonymous kullanıcısı ile bağlanmayı deneyerek, bu kullanıcının erişim iznini ve erişebildiği dizinleri tespit eder. Bu script'i çalıştırmak için şu komutu kullanabilirsiniz:
root@bt:/usr/local/share/nmap/scripts# nmap 10.10.15.12 -p 21 --script=ftp-anon -PN -n
Bu komutta, -p 21 parametresi ile sadece 21 numaralı portu tarıyoruz, --script=ftp-anon parametresi ile ftp-anon.nse script'ini çalıştırıyoruz, -PN parametresi ile hedef sisteme ping göndermeden tarama yapıyoruz ve -n parametresi ile DNS çözümlemesi yapmadan IP adresi ile tarama yapıyoruz. Tüm NSE script'lerini görmek için /usr/local/share/nmap/scripts dizinine bakabilirsiniz.
2. Adım: NSE kullanarak belli bir IP aralığındaki MS08-067 açıklığı ve Conficker virüsüne sahip sunucuları bulalım. Bu taramayı smb-check-vulns.nse isimli script ile yapalım.
Bu adımda, hedef sistemlerin 139 ve 445 numaralı portlarında çalışan SMB servislerinin, MS08-067 açıklığı ve Conficker virüsüne sahip olup olmadığını kontrol etmek için smb-check-vulns.nse isimli script'i kullanıyoruz. Bu script, SMB servislerinin versiyon bilgilerini, güvenlik modlarını, işletim sistemlerini ve zafiyet durumlarını tespit eder. Bu script'i çalıştırmak için şu komutu kullanabilirsiniz:
root@bt:~# nmap 6.6.6.90-99 --script=smb-check-vulns -PN -p 139,445 -n
Bu komutta, 6.6.6.90-99 parametresi ile verilen IP aralığını tarıyoruz, --script=smb-check-vulns parametresi ile smb-check-vulns.nse script'ini çalıştırıyoruz, -PN parametresi ile hedef sistemlere ping göndermeden tarama yapıyoruz, -p 139,445 parametresi ile sadece 139 ve 445 numaralı portları tarıyoruz ve -n parametresi ile DNS çözümlemesi yapmadan IP adresi ile tarama yapıyoruz.
22. UYGULAMA
SYN Proxy Kullanılan Sistemlere Yönelik Port Tarama
SYN proxy, SYN saldırılarına karşı koruma sağlayan bir tekniktir. SYN saldırıları, hedef sisteme çok sayıda SYN paketi göndererek bağlantı kurma isteklerini tamamlamayan ve böylece sunucunun kaynaklarını tüketen DoS saldırılarıdır. SYN proxy, gelen SYN paketlerini hedef sunucuya iletmeden önce, kaynak IP adresinin gerçekliğini kontrol eder ve sahte olanları filtreler. Böylece, hedef sunucu yalnızca gerçek isteklere cevap verir ve kaynak tüketimi azalır.
SYN proxy kullanan sistemlere yönelik port tarama yapmak için Nmap adlı bir araç kullanabilirsiniz. Nmap, ağ tarama ve zafiyet tespiti için kullanılan açık kaynaklı bir araçtır. Nmap ile SYN proxy kullanan sistemlere yönelik port tarama yapmak için şu adımları izleyebilirsiniz:
1. Adım: SYN Proxy kullanan hedefe yönelik port taramasında SYN Proxy’lik yapan cihaz her gönderilen SYN bayrağı set edilmiş TCP paketine SYN+ACK döneceğinden tüm portlar açık görünür. Bu durumda, Nmap'in -sS parametresi ile yarı açık tarama yapabilirsiniz. Bu parametre, hedef sisteme SYN paketleri gönderir ve gelen SYN+ACK paketlerine karşılık ACK paketi göndermez. Böylece, bağlantı tamamlanmaz ve hedef sunucu kaynak tüketmez. Bu tarama yöntemi, hızlı ve güvenilir bir şekilde açık portları tespit etmenizi sağlar. Örneğin, 10.10.10.5 IP adresli hedef sistemin 78-82 arasındaki portlarını taramak için şu komutu kullanabilirsiniz:
root@bt:/usr/local/share/nmap/scripts# nmap 10.10.10.5 -p 78-82 -sS
Bu komutun çıktısı şöyle olabilir:
Starting Nmap 7.91 ( https://nmap.org ) at 2024-01-22 10:44 EET
Nmap scan report for 10.10.10.5
Host is up (0.0012s latency).
PORT STATE SERVICE
78/tcp open vettcp
79/tcp open finger
80/tcp open http
81/tcp open hosts2-ns
82/tcp open xfer
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Bu çıktıda, hedef sistemin 78-82 arasındaki portlarının hepsinin açık olduğu görülmektedir.
2. Adım: SYN proxy kullanan sistemlerde hangi portların gerçekte açık olduğunu tespit etmek için nmap’in -sV parametresi ile portlarda çalışan servis tespitinin yapılması gerekmektedir. Bu parametre, hedef sistemin portlarına bağlanarak çalışan servislerin isimlerini, versiyonlarını ve diğer bilgilerini elde etmenizi sağlar. Bu tarama yöntemi, hedef sistemin zafiyetlerini belirlemenize yardımcı olur. Örneğin, 10.10.10.5 IP adresli hedef sistemin 78-82 arasındaki portlarında çalışan servisleri tespit etmek için şu komutu kullanabilirsiniz:
root@bt:/usr/local/share/nmap/scripts# nmap 10.10.10.5 -p 78-82 -sV
Bu komutun çıktısı şöyle olabilir:
Starting Nmap 7.91 ( https://nmap.org ) at 2024-01-22 10:45 EET
Nmap scan report for 10.10.10.5
Host is up (0.0012s latency).
PORT STATE SERVICE VERSION
78/tcp open vettcp VET/1.0
79/tcp open finger Linux fingerd
80/tcp open http Apache httpd 2.4.46 ((Unix))
81/tcp open hosts2-ns Hosts2 name server
82/tcp open xfer XFER utility
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
Bu çıktıda, hedef sistemin 78-82 arasındaki portlarında çalışan servislerin isimleri ve versiyonları görülmektedir. Bu bilgiler, hedef sistemin işletim sistemi, uygulamaları ve zafiyetleri hakkında ipuçları vermektedir.
Bu şekilde, SYN proxy kullanılan sistemlere yönelik port tarama yaparak hedef sistemin açık portlarını ve çalışan servislerini tespit edebilirsiniz. Bu bilgiler, hedef sistemin güvenlik durumunu analiz etmenize ve sızma testi yapmanıza yardımcı olur.
23. UYGULAMA
Nmap Kullanarak İşletim Sistemi Belirleme
Nmap, ağ tarama ve zafiyet tespiti için kullanılan açık kaynaklı bir araçtır. Nmap, ağda bulunan cihazların IP adreslerini, cihaz bilgisini, açık portlarını, işletim sistemini, açık portlarda çalışan servisleri ve cihazlarda bulunan güvenlik açıklarını tespit etmek için kullanılır.
Nmap ile işletim sistemi belirlemek için -O parametresi kullanılır. Bu parametre, hedef sistemde bir açık ve bir kapalı port bulmaya çalışır ve bu portlara gönderdiği paketlerin cevaplarındaki TTL (Time To Live) değerlerine göre işletim sistemi tahmini yapar. TTL değeri, bir paketin ağ üzerinde yaşayabileceği maksimum süreyi belirler. Farklı işletim sistemleri, paketlere farklı TTL değerleri atarlar. Örneğin, Windows işletim sistemleri genellikle 128, Linux işletim sistemleri ise 64 TTL değeri kullanırlar.
Nmap -O parametresi ile işletim sistemi belirlemek için aşağıdaki adımları izleyebilirsiniz:
1. Adım: Hedef sistemde bir açık ve bir kapalı port bulmak için Nmap -sS parametresi ile SYN taraması yapın. SYN taraması, hedef portlara SYN paketleri gönderir ve karşılığında gelen paketlere göre portun açık, kapalı veya filtrelenmiş olduğunu belirler. SYN taraması, oturum açmadan port taraması yapar, bu yüzden hedef sistemde loglanmaz. Örneğin, 192.168.1.10 IP adresli bir sistemi taramak için aşağıdaki komutu kullanabilirsiniz:
nmap -sS 192.168.1.10
Bu komut, hedef sistemdeki tüm portları (1-65535 arası) tarar ve açık olanları listeler. Ayrıca, kapalı olan bir portu da gösterir. Eğer hedef sistemde bir açık ve bir kapalı port bulamazsanız, farklı bir port aralığı belirtebilirsiniz. Örneğin, 1-1000 arası portları taramak için aşağıdaki komutu kullanabilirsiniz:
nmap -sS 192.168.1.10 -p 1-1000
2. Adım: Hedef sistemde bir açık ve bir kapalı port bulduktan sonra, Nmap -O parametresi ile işletim sistemi belirlemesi yapın. Bu parametre, hedef sistemdeki portlara farklı paketler gönderir ve gelen cevaplardaki TTL değerlerine göre işletim sistemi tahmini yapar. Örneğin, 192.168.1.10 IP adresli bir sistemin işletim sistemini belirlemek için aşağıdaki komutu kullanabilirsiniz:
nmap -O 192.168.1.10
Bu komut, hedef sistemdeki portlara paketler gönderir ve gelen cevaplara göre işletim sistemi tahmini yapar. Eğer hedef sistemde bir açık ve bir kapalı port bulamadıysa, kendi işletim sisteminizi ekrana basar. Bu durumda, farklı bir port aralığı belirtebilirsiniz. Örneğin, 1-1000 arası portları kullanmak için aşağıdaki komutu kullanabilirsiniz:
nmap -O 192.168.1.10 -p 1-1000
Bu komut, hedef sistemdeki 1-1000 arası portlara paketler gönderir ve gelen cevaplara göre işletim sistemi tahmini yapar.
Nmap -O parametresi ile işletim sistemi belirlemek, hedef sistemde bir açık ve bir kapalı port bulunması durumunda en sağlıklı sonucu verir. Eğer hedef sistemde bir açık ve bir kapalı port bulunmuyorsa, Nmap -O parametresi ile işletim sistemi belirlemek güvenilir olmayabilir. Bu durumda, Nmap'in script motorunu kullanarak daha detaylı işletim sistemi belirlemesi yapabilirsiniz. Nmap'in script motoru, hedef sistemdeki açık portlarda çalışan servislerin versiyon bilgilerini, işletim sistemi bilgilerini, güvenlik açıklarını ve diğer bilgileri tespit etmek için kullanılabilir.
24. UYGULAMA
Nmap GUI/Zenmap Kullanarak Port Tarama
Nmap, ağ güvenliği testlerinde yaygın olarak kullanılan güçlü bir araçtır. Zenmap ise Nmap'in grafik arayüzüdür. Zenmap ile port tarama işlemini şu şekilde yapabilirsiniz:
1. Adım: Zenmap'i açın ve sol üst köşedeki Profile menüsünden istediğiniz tarama türünü seçin. Tarama türleri, zorluk derecesine göre sıralanmıştır. Örneğin, Intense scan en kapsamlı ve yavaş tarama türüdür, Quick scan ise en hızlı ve yüzeysel tarama türüdür.
2. Adım: Taramak istediğiniz hedefin IP adresini veya domain adını Target kutusuna yazın. Örneğin, facebook.com domain adresinin portlarını tarayacaksanız, Target kutusuna facebook.com yazın. Ardından Scan butonuna tıklayın. Tarama işlemi başlayacaktır.
3. Adım: Tarama işlemi bittikten sonra, sonuçları görmek için sol alt köşedeki Nmap Output sekmesine tıklayın. Burada, tarama işlemi için kullanılan komutu, tarama süresini, hedefin durumunu, açık portları, işletim sistemini ve diğer bilgileri görebilirsiniz. Örneğin, facebook.com domain adresinin port taraması sonucunda şu bilgileri görebilirsiniz:
# Nmap 7.91 scan initiated Mon Jan 22 07:44:16 2024 as: nmap -T4 -F facebook.com
Nmap scan report for facebook.com (31.13.71.36)
Host is up (0.011s latency).
Other addresses for facebook.com (not scanned): 2a03:2880:f12f:83:face:b00c:0:25de
Not shown: 98 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Nmap done at Mon Jan 22 07:44:18 2024 -- 1 IP address (1 host up) scanned in 2.02 seconds
4. Adım: Eğer belirli bir port aralığını veya en popüler portları taramak istiyorsanız, Profile menüsünden New Scan seçeneğini seçin. Bu seçenek, size tarama işlemi için kendi komutunuzu yazmanızı sağlar. Örneğin, 6.6.6.0/24 subnetindeki cihazların en popüler 5 portunu zenmap ile tarayacaksanız, şu komutu yazabilirsiniz:
nmap -sS -T4 --top-ports 5 6.6.6.0/24
Bu komut, TCP SYN taraması yaparak, hedef subnetteki cihazların en çok kullanılan 5 portunu (21, 22, 23, 25, 80) tarar. Ardından Scan butonuna tıklayın. Tarama işlemi başlayacaktır.
5. Adım: Tarama işlemi bittikten sonra, sonuçları görmek için sol alt köşedeki Nmap Output sekmesine tıklayın. Burada, tarama işlemi için kullanılan komutu, tarama süresini, hedef subnetteki aktif cihazları, açık portları, işletim sistemini ve diğer bilgileri görebilirsiniz. Örneğin, 6.6.6.0/24 subnetindeki cihazların en popüler 5 port taraması sonucunda şu bilgileri görebilirsiniz:
# Nmap 7.91 scan initiated Mon Jan 22 07:44:18 2024 as: nmap -sS -T4 --top-ports 5 6.6.6.0/24
Nmap scan report for 6.6.6.1
Host is up (0.012s latency).
Not shown: 4 closed ports
PORT STATE SERVICE
80/tcp open http
Nmap scan report for 6.6.6.2
Host is up (0.013s latency).
Not shown: 4 closed ports
PORT STATE SERVICE
22/tcp open ssh
Nmap scan report for 6.6.6.3
Host is up (0.014s latency).
Not shown: 4 closed ports
PORT STATE SERVICE
23/tcp open telnet
Nmap scan report for 6.6.6.4
Host is up (0.015s latency).
Not shown: 4 closed ports
PORT STATE SERVICE
25/tcp open smtp
Nmap scan report for 6.6.6.5
Host is up (0.016s latency).
All 5 scanned ports on 6.6.6.5 are closed
Nmap done at Mon Jan 22 07:44:20 2024 -- 256 IP addresses (5 hosts up) scanned in 2.03 seconds
25. UYGULAMA
Nmap NSE ile SMB Dosya paylaşımlarını tespit etmek
SMB dosya paylaşımlarını tespit etmek için Nmap NSE (Nmap Scripting Engine) kullanabilirsiniz. Nmap NSE, Nmap'in işlevselliğini genişleten bir araçtır. Nmap NSE ile ağdaki sistemlerin SMB protokolü ile paylaştığı dosya ve dizinleri, erişim haklarını ve diğer bilgileri öğrenebilirsiniz. Bu sayede, hassas verilere ulaşmak veya sistemlere saldırmak için fırsatlar bulabilirsiniz.
Bu uygulamada kali Linux kullanılmıştır. Kali Linux, siber güvenlik testleri için özel olarak tasarlanmış bir Linux dağıtımıdır. Kali Linux, Nmap NSE dahil olmak üzere birçok güvenlik aracını içerir. Kali Linux'u https://www.backtrack-linux.org/ adresinden indirebilirsiniz.
Uygulamanın adımları şöyle:
1. Adım: Hedef ağdaki sistemlere yönelik SMB paylaşım taraması yapmak. Bu adımda, 6.6.6.90-99 IP aralığındaki sistemlerin SMB paylaşımlarını listelemek için smb-enum-shares isimli bir Nmap NSE scripti kullanacağız. Bu script, SMB protokolü ile paylaşılan dosya ve dizinlerin isimlerini, anonim erişim durumlarını ve mevcut kullanıcı erişim haklarını gösterir. Scripti çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
root@kali:~# nmap 6.6.6.90-99 --script=smb-enum-shares -PN -p 139,445 -n
Bu komutta, -PN seçeneği ping atlamayı, -p 139,445 seçeneği SMB protokolünün kullandığı portları, -n seçeneği ise DNS çözümlemesini devre dışı bırakmayı sağlar.
2. Adım: Read/Write haklarına sahip paylaşım bulmak. Bu adımda, 6.6.6.100-150 IP aralığındaki sistemlerin SMB paylaşımlarını listelemek için yine smb-enum-shares scriptini kullanacağız. Ancak bu sefer, sadece okuma ve yazma haklarına sahip olan paylaşımları görmek için scriptin access parametresini rw olarak ayarlayacağız. Bu sayede, hassas verileri okuyabileceğimiz veya zararlı yazılımlar bırakabileceğimiz paylaşımları tespit edebileceğiz. Scripti çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
root@kali:~# nmap 6.6.6.100-150 --script=smb-enum-shares --script-args=access=rw -PN -p 139,445 -n
Bu komutta, --script-args=access=rw seçeneği scriptin parametresini belirler.
 
Üst