Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

NMAP ile istediğimiz bir ağın taramasını yapabilir ve çeşitli bilgiler elde edebiliriz.
  • sudo nmap -sn -n -v --open 192.168.1.0/24
komutu ile yerel ağımızda bulunan bilgisayarların IP adreslerini öğrenebiliriz.
  • -sn parametresi port taramasının da yapılmasını belirtiyor.
  • -n parametresi DNS çözümlemesi yapılmasını belirtiyor.
  • -v parametresi ile gösterilecek bilgilerin detayını belirtiyoruz.
  • --open parametresi ile sadece açık portların gösterilmesini belirtiyoruz.



NMAP, açık kaynak kodlu bir ağ yazılımıdır. En temelde ağımızda ki bilgisayarları tarama işlemini gerçekleştir.

NMAP ile taranan ağın haritası çıkarılabilir ve ağda bulunan makinalarda çalışan servislerin durumlarını, işletim sistemlerini, portların durumlarını öğrenebiliriz. Ayrıca ağa bağlı herhangi bir bilgisayarın işletim sistemini, çalışan fiziksel aygıtlarını, çalışma süresini, yazılımların hangi servisleri kullandığını, yazılımların sürüm numaralarını, bilgisayarın güvenlik duvarına sahip olup olmadığını, ağ kartının üreticisinin adı gibi çeşitleri elde edebiliriz.

NMAP Kurulumu
  • sudo apt install nmap
komutu ile kurulum gerçekleştirilir.

NMAP Komutlarında Kullanılan Parametreler
  • -sn = Port taraması yapılmasını belirtir.
  • -n = DNS çözümlemesi yapılması anlamına gelir.
  • -F = Daha hızlı tarama yapar ancak daha az sonuç bulur.
  • -sS = Syn taraması yapılmasını belirtir.
  • -v, -vv, -vvv = Gösterilecek bilgilerin detaylarını arttırır.
  • --open = Sadece açık portları gösterir.
  • --reason = Bulunan sonuçların sebeplerini de gösterir.
  • -p- = Bir IP üzerinde bulunabilecek 65535 portun hepsinin taranmasını belirtir.
  • -sV = Açık portlarda çalışan servisin ne olduğunu bulmaya çalışır.(Doğru çalışması için -sC ile birlikte kullanılmalıdır.)
  • -sC = -sV ile versiyon tespiti yapılırken nmap scriptlerini kullanır.
  • -p = Sadece bu parametreden sonra belirtilen portlarda tarama yapılmasını belirtir.

NMAP de Olan Varsayılan Kurallar

  • Herhangi bir tarama türü belirtilmezse TCP taraması yapılır.
  • Farklı bir aralık belirtilmezse, bir IP adresi üzerinde en çok kullanılan 1000 port taranır.
  • NMAP bir IP adresine ping sinyali gönderip cevap alamaz ise o IP adresini kapalı olarak kabul eder. Oysa ki IP adresinde çalışan bir Firewall var ise ping sinyaline cevap vermemek üzere ayarlanmış olabilir. Ping taraması yapmadan her IP adresini açık kabul etmek için -Pn parametresini kullanmalıyız.
NMAP de Kullanılan Tarama Adımları
  • IP Tarama : Ağımızda bulunan bilgisayarları ve IP adreslerini tespit etmek için kullanılır.
  • Port Tarama: Ağımızda tespit ettiğimiz IP adreslerini kullanarak, bu adreslerde hangi portların açık olduğunu tespit etmek için kullanılır.
  • Portlarda Servis Taraması : Portlarda bulunan servislerin tespiti için kullanılır.
NMAP de Bulunan Tarama Türleri (Kaynak Vikipedia)
  • TCP Syn (half open) Scan : Kaynak makinanın hedef makinaya TCP SYN bayraklı segment göndererek başlattığı bir tarama türüdür. Portların kapalı olduğu durumlarda hedef makina cevap olarak RST + ACK bayraklı segmenti döndürür. Portların açık olduğu durumlarda ise hedef makina SYN + ACK bayraklı segment döndürür. Daha sonra kaynak makina RST bayraklı segment göndererek bağlantıyı koparır ve böylelikle TCP üçlü el sıkışma (TCP three-way handshaking) tamamlanmaz. Bu tarama türünde TCP üçlü el sıkışma gerçekleşmediği için bu tarama türü hedef sistemlerinde herhangi bir şekilde iz bırakmaz. Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır : nmap -sS -v [Hedef_IP]
  • TCP Connect Scan : Kaynak makinanın gerçekleştireceği TCP Connect Scan, kapalı portlara yapıldığı zaman RST + ACK bayraklı segment dönecektir. Ancak açık portlara yapıldığı durumlarda hedef makinanın göndereceği SYN + ACK bayraklı segmenti, kaynak makina ACK bayraklı segment göndererek cevaplar ve üçlü el sıkışmayı tamamlar. Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır : nmap -sT -v [Hedef_IP]
  • FIN (stealth) Scan : Hedef makinaya TCP bağlantı isteği olmadan gönderilen segmentle tarama yapılır. Kaynak makinanın göndereceği FIN bayraklı segment, hedef makinanın kapalı bir portuna gelirse hedef makina RST + ACK bayraklı segment döndürecektir. Eğer açık portuna gelirse hedef makinadan herhangi bir tepki dönmeyecektir. Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır : nmap -sF -v [Hedef_IP]
  • Xmas Scan : Bu tarama türünde kaynak bilgisayarın TCP segmentine URG,PSH ve FIN bayraklarını set edeceği ("1" yapılacağı) segment hedef makinaya gönderilir. Eğer Kaynak makinanın göndereceği URG,PSH ve FIN bayraklı segment, hedef makinanın kapalı bir portuna gelirse hedef makina RST + ACK bayraklı segment döndürecektir. Eğer port açık olursa hedef makinadan herhangi bir tepki dönmeyecektir. Bu tarama türünde TCP başlığı içerisinde yer alan toplam altı adet bayraktan üç tanesi set edildiği ("1" yapıldığı) için, gönderilen segment yılbaşı ağacının yanan lambalarına benzetilmiştir. Bundan dolayı da bu tarama türüne Xmas (Christmas) Scan denmiştir. Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır : nmap -sX -v [Hedef_IP]
  • Null Scan : Hiçbir bayrağın bulunmayacağı bu tarama türü, gerçek hayatta karşımıza çıkmayan bir durumdur. Kaynak makinanın göndereceği bayraksız segmentler karşısında hedef makinanın vereceği tepkiler FIN Scan ile aynıdır. Kaynak makinanın göndereceği bayraksız segment, hedef makinanın kapalı bir portuna gelirse hedef makina RST + ACK bayraklı segment döndürecektir. Eğer port açık olursa hedef makinadan herhangi bir tepki dönmeyecektir. Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :            nmap -sN -v [Hedef_IP]
  • Ping Scan : Bu tarama türünde kaynak makina hedef makinaya tek bir ICMP Echo istek paketi gönderir. IP adresi erişilebilir ve ICMP filtreleme bulunmadığı sürece, hedef makina ICMP Echo cevabı döndürecektir. Eğer hedef makina erişilebilir değilse veya paket filtreleyici ICMP paketlerini filtreliyorsa, hedef makinadan herhangi bir cevap dönmeyecektir. Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır : nmap -sP -v [Hedef_IP]
  • UDP Scan : Kaynak makinanın hedef makinaya göndereceği UDP datagramına, ICMP Port Unreachable cevabı döndürülüyorsa hedef makina kapalı kabul edilecektir. Herhangi bir tepki döndürmeyen hedef makina open|filtered kabul edilecektir. UDP datagramıyla cevap döndüren hedef makinaya ait port ise açık kabul edilecektir. Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır : nmap -sU -v [Hedef_IP]
  • IP Protocol Scan : Bu tarama türü standart NMAP tarama türlerinden biraz farklıdır. Bu tarama türünde hedef makinaların üzerlerinde çalışan IP tabanlı protokoller tespit edilmektedir. Bu yüzden bu tarama türüne tam anlamıyla bir port taraması demek mümkün değildir. Hedef makina üzerinde, taramasını yaptığımız IP protokolü aktif haldeyse hedef makinadan bu taramaya herhangi bir cevap gelmeyecektir. Hedef makina üzerinde, taramasını yaptığımız IP protokolü aktif halde değilse hedef makinadan bu taramaya, tarama yapılan protokolün türüne göre değişebilen RST bayraklı (RST bayrağı "1" yapılmış) bir segment cevap olarak gelecektir. Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır : nmap -sO -v [Hedef_IP]
  • ACK Scan : Bu tarama türünde kaynak makina hedef makinaya TCP ACK bayraklı segment gönderir. Eğer hedef makina ICMP Destination Unreachable mesajını dönerse ya da hedef makinada bu taramaya karşılık herhangi bir tepki oluşmazsa port “filtered” olarak kabul edilir. Eğer hedef makina RST bayraklı segment döndürürse port “unfiltered” kabul edilir. Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır : nmap -sA -v [Hedef_IP]
  • Window Scan : Window Scan, ACK Scan türüne benzer ancak bir önemli farkı vardır. Window Scan portların açık olma durumlarını yani “open” durumlarını gösterebilir. Bu taramanın ismi TCP Windowing işleminden gelmektedir. Bazı TCP yığınları, RST bayraklı segmentlere cevap döndüreceği zaman, kendilerine özel window boyutları sağlarlar. Hedef makinaya ait kapalı bir porttan dönen RST segmentine ait window boyutu sıfırdır. Hedef makinaya ait açık bir porttan dönen RST segmentine ait window boyutu sıfırdan farklı olur. Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır : nmap -sW -v [Hedef_IP]
  • IdleScan : Bu tarama türü, kaynak makinanın hedef makinayı tarama esnasında aktif olarak rol almadığı bir türdür. Kaynak makina “zombi” olarak nitelendirilen makinalar üzerinden hedef makinayı tarayarak bilgi toplar. Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır : nmap -sI -v [Zombie_IP] [Hedef_IP]
NMAP ile Örnekler

Oluşturulan dizinin frekansını bulan kod

from random import randint
from scipy.stats import itemfreq

array = []

length = input("Eleman sayısını giriniz: ")
minimum = input("En düşük değeri giriniz: ")
maximum = input("En yüksek değeri giriniz: ")

for i in range(0, int(length)):
 array.append(randint(int(minimum), int(maximum)))

array.sort()
print("Oluşturulan dizi(sıralı)\n-----------------")
print(array)
print("Frekans\n-----------------")
print(itemfreq(array))

Çanakkale Onsekiz Mart Üniversitesi Bilgisayar Mühendisliği Bölümü ikinci stajım boyunca geliştirdiğim projem.

Birinci stajım boyunca iş yerinin benden istediği yerelde çalışacak bir web sitesini ASP.NET ile kodlamamdı. Birinci stajım sonunda bu projeyi kodladım ve teslim ettim. Ancak daha sonra firmadakiler benden daha fazla özellik eklememi istediler. Bende ikinci stajım boyunca yeni özellikleri ekledim. Ayrıca ikinci stajımda projeyi tamamlayarak çalışır hale getirme işlemini tamamladım ve stajımın sonunda çalışan bir proje ile orada bir iz bıraktım.

Günlük Olarak Yaptıklarımın Detaylı Anlatımı


Proje Kodları


Çalışır Haldeki Proje






Çanakkale Onsekiz Mart Üniversitesi Bilgisayar Mühendisliği Bölümü birinci stajım boyunca geliştirdiğim projem.

Birinci stajım boyunca iş yerinin benden istediği yerelde çalışacak bir web sitesini ASP.NET ile kodlamamdı. Bu web sitesi firma içerisine bulunan telefon kayıtlarına daha kolay bir şekilde ulaşabilmek için oluşturulmuş bir telefon fihristi olacaktı. Firmada halihazırda kullanılan bir telefon fihristi vardı ancak bu telefon fihristi çok eskidiği için benden yenisini yazmamı istediler. Ben de stajım boyunca firmanın istediği şekilde yerelde çalışacak bir telefon fihristini kodladım.

Günlük Olarak Yaptıklarımın Detaylı Anlatımı


Proje Kodları