Selamün Aleyküm, Aleyküm Selam arkadaşlar. Bu konumuzda sizlere bir ağ protkolü olan ICMP Paketlerinden, ICMP paket yapısından, ICMP saldırı türlerinden ve bu saldırı türlerinden korunma yöntemlerinden bahsedeceğiz.
# ICMP(Internet Control Message Protocol) Nedir?
İnternet protokol takımı, İnternetin çalışmasını sağlayan bir iletişim protokolleri bütünüdür. Bu protokoller bazen TCP/IP protokol takımı olarak da adlandırılır. TCP(Transmission Control Protocol) İP(Internet Protocol).
İşte İCMP(İnternet Control Message Protocol) ve ya Türkçe adıyla İnternet Kontrol Mesaj iletişim Kuralı TCP/IP yazılımının bir takım kendi mesaj trafiği amaçları için kullanılır. İnternet Protokolü(İP) hata-raporlama veya hata-düzeltme mekanizmalarına sahip değildir. ICMP, bu gibi durumlarda hataları raporlamak için kullanılan, kontrol amaçlı bir protokoldür. Her hostta muhakkak ICMP protokolü bulunur. Aynı şekilde uzak bir sistem hakkında bilgi toplamak için sıkça kullanıldığından çok önemli bir protokoldür. Tabii ki İCMPnin hata raporlamak için kullanılması İP(İnternet Protocol) protokolünü güvenli duruma getirdiği anlamına gelmez. ICMP paketleri ortamda bir geri besleme sağlar ve Bu yolla ağda meydana gelen ciddi sorunları, haberleşen birimlere bildirerek bir nevi bir hata bildirim mekanizması oluştururlar. ICMP, UDP ile aynı yapıdadır. UDP nedir? Tıkla! Ancak UDPye göre daha basit bir yapıdadır. Başlık bilgisinde port numarası bulundurmaz, Çünkü bütün ICMP mesajları ağ yazılımının kendisi tarafından yorumlanır. ICMP mesajı, IP paketinin veri bölümünde taşınır. Bu yüzden ICMP paketlerinin dağıtım güvenilirliği, IP paketlerinin dağıtım güvenilirliği ile sınırlı kalmaktadır. Kısacası İP paketinizin dağıtım güvenirliliği, ICMP paketinin de hedefe güvenli bir şekilde iletilip iletilmediği ile paraleldir.
# ICMP(Internet Control Message Protocol) Paketinin Yapısı ve Formatı
ICMP mesajları IP datagramının veri alanında taşınır. IP başlığındaki protokol alanı 1e ayarlanarak ICMPnin kullanıldığı gösterilir. ICMP hata raporlama mesajları aynı zamanda internet başlığı ve kullanıcı veri alanının ilk 64 bitini taşırlar. Bu bitler problem giderme ve problem analizi için faydalıdır. Aşağıda tabloda ICMP mesaj formatı gösterilmiştir.
-Açıklamalar
-Tip alanı: Burada mesajın tipi tanımlanır
-Kod alanı: Burada ağdan kaynaklanan hata veya durum bilgisi tipi tanımlanır.
-Toplamsal-hata (checksum) alanı: ICMP mesajının 16-bit lik 1e tümleyenini hesaplar.
-Parametreler: Parametlerin daha uzun halinin belirlenmesinde kullanılır.
-Bilgi: Mesajla ilgili bilgidir.
#ICMP(Internet Control Message Protocol)Niçin Kullanılır
-TTL süresi dolduğu zaman paket sahibine bildirim yapmak.TTL Hk. Tıkla!
-Herhangi bir durumda yok edilen paket hakkında geri bildirim sağlamak,
-Parçalanmasın! komutu verilen paket
parçalanmaya maruz kaldığında kullanıcıya geri bildirim sağlamak,
-Hata oluşumlarında geri bildirim sağlamak,
-Paket başka yollara gittiğinde kullanıcıya geri bildirim sağlamak,
-ICMP parametrelerelerine ve komutlarına ulaşmak için bir DOS penceresi açmanız gerekir. Bu komutlara örnek olarak Ping ve Traceroute örnek verilebilir.
#ICMP(Internet Control Message Protocol) Hata Durum ve Raporlama Prosedürleri
Herhangi bir durumda İCMPnin rapor ettiği hata ve durum analizlerine yönelik raporlama servisleri aşağıdaki gibidir.
19.Code field: Alıcı makine için daha çok bilgi içerir.
20.Checksum: Ip headerdaki gibidir.
-Açıklamalar
- Hedef ulaşılamaz(Destination Unreachable)
Hedef bilgisayardan ağda herhangi bir bilgi alınamadığı durumlarda bu parametre kullanılır.
-Echo(Yankı)
Yankı mesajları, bir yönlendirici(Router) veya bilgisayar tarafından diğer bir yönlendirici veya bilgisayara gönderilen mesajlardır. Yankı mesajı kaynaktan hedefe yönelen bir mesaj olup, yankı mesajı olarak hedeften kaynağa Yankı Cevabı (Echo Reply) mesajı döner. Yankı mesajı ile hedef bilgisayarın çalışıp çalışmadığı ve iletişim kurmak için gerekli yolun sağlanıp sağlanamayacağının testi yapılır. TCP / IP protokol grubu yüklü olan bilgisayarlar üzerinde çalıştırılan Ping komutu bu işlevi yerine getirir. Ping isteğini gönderen cihaz (Yankı İsteği) Echo Requestte bulunur. ICMP mesajlarındaki Yankı İsteği Tipi (Echo Request Type) 8 ve Kod(Code) 0dır.Hedef IP adresi Yankı İsteği (Echo Request) mesajını aldığında gönderen cihaza Yankı Cevabı(Echo Reply) mesajını gönderir. Bu mesajın Tipi (Type) ve Kodu (Code) 0dır.
- Kaynak Kapatmak(Source Quench)
Datagramların geçiş oranını kontrol eder. Bu mesajı alındığınızda gönderim hızınızı azaltılmalısınız.
-Yeniden Yönlendirmek(Redirect)
Daha iyi bir rota mevcut olduğu durumlarda ağ geçidine(gateway) gönderilir. Bu mesaj gönderilince kod alanında(code field) oluşan numara yönlendirmenin(routing) nasıl olacağını belirler.
-Parametre Problemi(Parameter Problem)
Parametre sorunu paket başlık parametrelerinde oluşan hataları paremeter problem message olarak geri bildirir.
-Tarih Bilgisi İstemi ve Yanıtı
Ağdan geçen mesajın süresinin gözlenmesini sağlar.
-Bilgi İstemi ve Yanıtı, Addres Maskesi İstemi ve Yanıtı (information request ve reply, address mask request ve Reply)
Özel ağın veya alt ağın denenmesini sağlar.
# ICMP(Internet Control Message Protocol)Uygulamaları
En çok bilinen iki uygulamadan bahsedeceğiz. Bunlardan biri: Ping, bir diğeri ise Traceroute uygulamalarıdır.
#Ping
En basit TCP/IP protokol uygulamasıdır. Eğer bir hoşta ulaşmak istiyorsanız bunun en kısa yolu Ping atmaktan geçer. Eğer bir hosta Ping ile ulaşabiliyorsanız, aynı şekilde
TELNET nedir? Tıkla! ve FTP nedir? Tıkla! ile de ulaşabilirsiniz. Tabii bir şartla ilgili açık portlar mevcutsa! Geçmiş yıllarda varsayılan Eğer bir hosta Ping çekemiyorsanız, Telnet ve ya FTP ile de o hosta erişim sağlayamazsınız. kanısı son yıllarda güvenlik duvarlarının yönlendiricilerindeki Access list lerin sıkça kullanılmasıyla beraber çürütülmüştür. Access list nedir? Merak edenler şu bağlantıya gidebilirler.Access list nedir? Tıkla!
Dönelim konumuza peki Ping neler yapar?Ping, hedef bir hosta, icmp echo paketlerini gönderir ve hosttan icmp reply paketini bekler. Aşağıda örnek bir Ping komutu ve ping atılan bir site görünüyor.
C:WINDOWS>ping www.xxx.com

Burada söz konusu siteye ping gönderdik. İcmp echo paketini yolladık ve bize icmp reply paketiyle cevap geldi. Yukarıdaki görselde ping atılan söz konusu site için verilen istatistikler mevcuttur.
#Bir Diğer Uygulama: Traceroute
Bu uygulama ise paket gönderen bilgisayardan, alıcı bilgisayara giden paket ve paketin izlediği yol hakkında bilgi edinmemizi sağlar. Ki bu ICMP işleminde önemli bir konuma sahiptir.
Elde edilen bu bilgiler arasında en önemlisi paketin izlediği yol bilgisidir. Edinilen bu bilgiyle beraber paketin hangi yollardan geçerek hosta ulaştığı rahatlıkla izlenebilir.
Aşağıda örnek bir Traceroute komutu ve izlenilen host hakkında bilgiler görünüyor.
C:WINDOWS>tracert Buraya ping ile elde edilen host yolu numarası verilir.

ICMP uygulamaları ve İcmp hakkında söyleyeceklerimiz bu kadar. Şimdide İcmp ile yapılan saldırılardan bahsedelim biraz: İcmp yukarıdaki bilgileri hatırlarsanız bir ağ protokolüydü. Dolayısıyla bahsedeceğimiz saldırı türleri de Ağ saldırısı türleri olacaktır. Biz bu konumuzda İcmp Keşif Saldırılarıdan bahsedeceğiz.
# ICMP(Internet Control Message Protocol) Keşif Saldırıları
İcmp mesajlarının değiştirilip, bu mesajların başlık kısmında bulunan belirli alanlarda editlemeler yaparak ve ya bu mesajların amaç dışı kullanımıyla, İcmp keşif saldırıları düzenlenebilir. Bu saldırıların temel amacı, daha sonra yapılacak asıl saldırılar için ön bilgiler elde etmek, saldırılacak sistemlere en etkin saldırı düzenekleri kurmaktır. Bu başlık altında toplamda 7 keşif saldırısı inceleyeceğiz.
+Sunucu Tespiti
Icmp mesajlarının saldırganın çıkarı doğrultusunda kullanılarak sunucu tespiti yapılması iki çeşit yöntemler mümkün olmaktadır:
-ICMP/Ping Taraması (ICMP/Ping Sweep)
Yukarıda İcmp uygulamalarında bahsettiğim gibi, ping komutuyla yerel ağdaki ve ya internet üzerinden aktif ve erişilebilir olan sunucuların tespit edilmesi mümkün olabilmektedir. Bu yöntemden yukarıda bahsetmiştik.
-ICMP Yayınlama (Broadcast ICMP)
Bu yöntemle, tespit edilen sunucuların her birinin IP adresine tek tek Icmp Echo Request mesajı göndermekle uğraşmak yerine, Saldırılacak hedef ağın yayın(Broadcast) adresine bir tek Icmp Echo Request mesajı gönderilerek gerçekleştirilir. Bu yöntemler beraber toplu olarak tespit edilen ağdaki aktif olan sunucuların saldırgana ıcmp Echo Reply yani geri dönüte dayalı mesajları göndermesi sağlatılarak, ağda çalışan tüm sunucuların tespit edilmesi sağlanır.
+Ağ Topolojisinin Tespiti
Saldırılacak hedefi sunucusunun ağdaki yerinin tespitinde Traceroute komutu kullanılır. Bu komutun işlevini yerine getirebilmesi için Icmp Echo Request mesajları ve ıcmp paketi içerisinde yer alan TTL alanı kullanılır. Burada TTL değeri, saldırılacak sunucuya gönderilen paketin hedefe giderken izlediği yol boyunca uğradığı her bir yönlendirici tarafından bir azaltılarak bir sonrakine iletilir. Bu iletim sırasında TTL değeri sıfıra ulaşırsa, paket düşürülür ve gönderen sunucuya Icmp Time Exceed mesajı gönderilerek paketin hedefe ulaşmadan düşürüldüğü bildirilir. Bu komut ile yapılmak istenen aslında hedefe giderken izlenilen yol boyunca ilk olarak TTL değeri 1 olan Icmp paketinin gönderilmesi ve sonrasında Icmp paketindeki TLL değerinin sırasıyla birer arttırılarak yollanması, böylelikle her sunucudan dönecek Icmp Time Exceeded mesajlarıyla yol üzerindeki sunucuların tespit edilebilmesidir.
+Güvenlik Duvarı Kuralları Tespiti(Firewalk)
Bu işlem, iki aşamada yapılmaktadır. İlk aşamada, saldırganla güvenlik duvarı arasındaki sunucu/yönlendiricilerin ("hop") sayısı "traceroute" yapılarak tespit edilir. İkinci aşama olan tarama aşamasında ise, güvenlik duvarı arkasındaki bilinen bir sunucuya, TTL değeri güvenlik duvarından bir büyük olan TCP veya UDP segmentleri gönderilir. Bu işlem sonrası cevap olarak "ICMP Time Exceeded" mesajı geliyorsa, bu segmentin güvenlik duvarını geçebildiği anlaşılır (Segmentler güvenlik duvarını geçtikten sonra TTL değerleri sıfıra düşeceğinden dolayı). Cevap olarak herhangi bir mesajın geri dönmediği durumda ise segmentin güvenlik duvarı tarafından engellendiği sonucu çıkarılır. Bu işlemin olası bütün TCP/UDP port kombinasyonları için gerçekleştirilmesi durumunda, güvenlik duvarı üzerindeki açık olan portlar tespit edilebilir.
Güvenlik duvarı kurallarının tespiti genellikle dışarıdan yapıldığı için, içeriden dışarıya doğru "ICMP Time Exceeded" hata mesajının gönderilmesi engellenmelidir ("ICMP Time-to-Live Exceeded in Transit").
+Ters Eşleme (Inverse Mapping)
Ters eşleme yöntemiyle, güvenlik duvarı arkasında bulunan sunucuların veya tüm bir ağın tespit edilmesi mümkün olabilmektedir.
Bu keşif saldırısı yöntemi, ICMP mesajları için dinamik filtreleme / durum denetimli ("stateful") engelleme uygulanmayan ve ICMP sorgu mesajları engellenmemiş güvenlik duvarları için geçerli olmaktadır. Bu durumda güvenlik duvarı arkasındaki bir iç ağın, sahip olduğu tahmin edilen bir IP adres aralığı için, "ICMP Echo Reply" mesajları gönderilebilmektedir. İç ağdan "ICMP Echo Request" mesajı gönderilmediği halde, güvenlik duvarı durum bilgisini tutmadığı için, "ICMP Echo Reply mesajları engellenmeden güvenlik duvarından geçebilirler.
Güvenlik duvarını geçen "ICMP Echo Reply " mesajları arasından hedef IP adresinde bir sunucu bulunmayan mesajlar için, iç ağdaki bir yönlendirici tarafından "ICMP Host Unreachable" mesajı gönderilir. Saldırgan gönderilen bütün bir IP aralığındaki adreslerden, "ICMP Host Unreachable mesajı gelen adresleri elde eder. Bu sayede, "ICMP Host Unreachable" mesajı gönderilmeyen IP adreslerinde çalışan sunucular bulunduğu tespit edilerek, güvenlik duvarı arkasında bulunan iç ağ ortaya çıkarılabilir.
Ters eşleme yöntemiyle sunucu tespitinin yapılamaması için, durum denetimli ("stateful") güvenlik duvarı kullanılmıyorsa, dışarıdan içeriye ("inbound") gelen "ICMP Echo Reply" mesajı gibi ICMP sorgu cevap mesajları engellenmelidir. Ayrıca, iç ağda yer alan sunucuların tespitinde kullanılan "ICMP Host Unreachable" hata mesajının içeriden dışarıya ("outbound") gönderilmesine izin verilmemelidir.
+Erişim Kontrol Listesi(Access Control List) Tespiti
ICMP hata mesajlarını kullanarak, yönlendirici veya sunucu gibi filtreleme yapabilen cihazlarda bulunan erişim denetim listelerinin tespit edilmesi mümkün olmaktadır.
Bu yöntem, IP paketi başlığı içinde yer alan, toplam uzunluk ("Total Length") alanının gerçek değerinden daha büyük bir değer ile değiştirilmesi ilkesine dayanmaktadır. Toplam uzunluk alanı değiştirilen paket hedef sunucuya ulaştığında, hedef sunucu tarafından paket açılacaktır. Fakat toplam uzunluk değerine göre olması gereken ama gerçekte olmayan alandaki veriye ulaşılamaması sonucunda, hedef sunucu tarafından "ICMP Parameter Problem Code 2" mesajı oluşturulacak ve saldırgana yollanacaktır. Gönderilen paketin karşılığında, ICMP parametre sorunu mesajının alınması, saldırgana pakette kullanılan protokol ve servisin filtreleme cihazı tarafından engellenmediğini göstermektedir. Başlık kısmı değiştirilen IP paketi içinde, ICMP veya daha üst seviye protokoller olan TCP veya UDP protokolleri sarmalanmış olabilir.
Bu işlemin, tüm olası protokol ve servis kombinasyonları ile bütün bir ağ için tekrarlanması durumunda, filtreleme cihazında yer alan erişim listelerinin tamamını elde etmek mümkün olabilmektedir.
Filtreleme cihazlarına girilmiş olan erişim denetim listelerinin bu yolla tespitinin engellenmesi için, "ICMP Parameter Problem" hata mesajlarının içeriden dışarıya gönderilmesine izin verilmemeli ve güvenlik duvarı tarafından engellenmelidir.
+Protocol/Port Taraması
ICMP "Protocol/Port Unreachable" mesajlarını kullanarak, hedef sunucu üzerinde hangi protokol veya portların kullanıldığını tespit etmek mümkündür.
Bu yöntemde, IP başlığı içinde yer alan sekiz bitlik protokol alanın tüm kombinasyonları (toplamda 256 değişik protokol) kullanılarak hazırlanan paketler hedef sunucuya gönderilir, cevap olarak "ICMP Port/Protocol Unreachable" mesajı gelen protokol veya portların kapalı olduğu, cevap gelmeyenlerin ise açık olduğu anlaşılabilmektedir. Bu sayede, hedef sunucunun kullanımda olan açık protokol veya portlarının bir listesi elde edilebilmektedir.
Sunuculara gönderilen IP paketindeki protokol alanının bütün kombinasyonları kullanılarak, açık olan port ve protokollerin tespit edilememesi için, "ICMP Port/Protocol Unreachable" hata mesajlarının içeriden dışarıya gönderilmesi engellenmelidir.
+İşletim Sistemi Tanıma(OS Fingerprinting)
Farklı işletim sistemi geliştiricilerinin, ağ trafiğini yönetme anlamında birbirlerine göre az da olsa farklı yolları benimsemiş olmaları sebebiyle, aktif veya pasif olarak hedef sunucunun işletim sisteminin tespit edilmesi mümkün olmaktadır.
-Aktif Tanıma
İşletim sisteminin aktif olarak tanınması, hedef sunucuya doğrudan ICMP hata/sorgu mesajları gönderilmesi ve sonrasında gelen cevapların analiz edilmesi ile gerçekleştirilir. Dönen ICMP mesajlarının başlık kısmındaki belirli alanlar, işletim sistemlerine göre farklılık gösterebildiğinden dolayı, bir veya birden fazla mesaj alış verişi ile işletim sistemlerinin tespit edilmesi mümkün olabilmektedir (Herhangi bir cevabın dönmemesi de tanıma işleminde kullanılır). Gönderilen farklı türdeki ICMP mesajlarına dönülen/dönülmeyen cevapların işletim sistemlerine göre değişebilmesi sayesinde, aşağıdaki örneklerdeki gibi hedef sistemlerin işletim sistemleri ve bu işletim sistemlerinin versiyonları tespit edilebilmektedir.

-Pasif Tanıma
Pasif tanıma, hedef sunucuya doğrudan ICMP mesajları göndermek yerine, hedef sunucunun ağ trafiğinin dinlenmesi sonucu elde edilen bilgilerin (gelen/giden ICMP mesajlarının) analiz edilmesiyle gerçekleştirilir. Pasif tanımanın aktif tanımaya göre pozitif yönleri olarak; herhangi bir ağ trafiği oluşturmadığından zor fark edilebilmesi, tüm trafiğin kaydedilmesinden dolayı daha fazla mesajın incelenebilmesi, trafik analizinin çevrimdışı olarak yapılabilmesi, iç veya dış ağın farklı noktalarının dinlenerek (ağı dinleyen sensörler yardımıyla), farklı ağ trafik bilgilerine erişilebilmesi gibi özellikleri sayılabilir.
ICMP mesajları kullanılarak aktif tanıma yöntemiyle işletim sisteminin tespit edilmesinin engellenmesi, pasif tanıma yöntemine göre daha kolay olabilmektedir. Aktif tanıma yöntemi, sunucuya gönderilen ICMP mesajlarına dönen cevapların analiziyle yapıldığı için, internetten içeriye ICMP istek mesajları gelmesi ve içeriden dışarıya ICMP cevap ve hata mesajlarının gönderilmesi engellenmelidir. İç ağda aktif tanıma işleminin yapılamaması için de, iç ağdaki güvenlik duvarı ve sunucu/istemcilerde yer alan kişisel güvenlik duvarı üzerinden, yönetim amaçlı ayrılan sunucular dışındaki bütün sunucuların/istemcilerin ICMP mesajları göndermesi ve bu sunuculara ICMP cevap ve hata mesajı dönülmesi engellenmelidir.
ICMP mesajları kullanılarak pasif tanıma yöntemiyle işletim sisteminin tespit edilmesi, ağ trafiğinin dinlemesi yoluyla yapıldığı için engellenmesi oldukça zor olmaktadır. En etkili yöntem, ağ trafiğini dinleme işlemini yapan ağ dinleyicisinin ("sniffer") tespit edilip devre dışı bırakılması olacaktır. Fakat bunun yapılamaması durumunda, iç ağda ve içeriden dışarıya/dışarıdan içeriye ICMP trafiğinin en alt düzeyde tutulup, mümkün olan durumlarda engellenmesi yoluyla pasif tanıma işleminin zor hale getirilmesi , hatta engellenmesi mümkün olabilmektedir.
# ICMP(Internet Control Message Protocol) Nedir?
İnternet protokol takımı, İnternetin çalışmasını sağlayan bir iletişim protokolleri bütünüdür. Bu protokoller bazen TCP/IP protokol takımı olarak da adlandırılır. TCP(Transmission Control Protocol) İP(Internet Protocol).
İşte İCMP(İnternet Control Message Protocol) ve ya Türkçe adıyla İnternet Kontrol Mesaj iletişim Kuralı TCP/IP yazılımının bir takım kendi mesaj trafiği amaçları için kullanılır. İnternet Protokolü(İP) hata-raporlama veya hata-düzeltme mekanizmalarına sahip değildir. ICMP, bu gibi durumlarda hataları raporlamak için kullanılan, kontrol amaçlı bir protokoldür. Her hostta muhakkak ICMP protokolü bulunur. Aynı şekilde uzak bir sistem hakkında bilgi toplamak için sıkça kullanıldığından çok önemli bir protokoldür. Tabii ki İCMPnin hata raporlamak için kullanılması İP(İnternet Protocol) protokolünü güvenli duruma getirdiği anlamına gelmez. ICMP paketleri ortamda bir geri besleme sağlar ve Bu yolla ağda meydana gelen ciddi sorunları, haberleşen birimlere bildirerek bir nevi bir hata bildirim mekanizması oluştururlar. ICMP, UDP ile aynı yapıdadır. UDP nedir? Tıkla! Ancak UDPye göre daha basit bir yapıdadır. Başlık bilgisinde port numarası bulundurmaz, Çünkü bütün ICMP mesajları ağ yazılımının kendisi tarafından yorumlanır. ICMP mesajı, IP paketinin veri bölümünde taşınır. Bu yüzden ICMP paketlerinin dağıtım güvenilirliği, IP paketlerinin dağıtım güvenilirliği ile sınırlı kalmaktadır. Kısacası İP paketinizin dağıtım güvenirliliği, ICMP paketinin de hedefe güvenli bir şekilde iletilip iletilmediği ile paraleldir.
# ICMP(Internet Control Message Protocol) Paketinin Yapısı ve Formatı
ICMP mesajları IP datagramının veri alanında taşınır. IP başlığındaki protokol alanı 1e ayarlanarak ICMPnin kullanıldığı gösterilir. ICMP hata raporlama mesajları aynı zamanda internet başlığı ve kullanıcı veri alanının ilk 64 bitini taşırlar. Bu bitler problem giderme ve problem analizi için faydalıdır. Aşağıda tabloda ICMP mesaj formatı gösterilmiştir.
-Açıklamalar
-Tip alanı: Burada mesajın tipi tanımlanır
-Kod alanı: Burada ağdan kaynaklanan hata veya durum bilgisi tipi tanımlanır.
-Toplamsal-hata (checksum) alanı: ICMP mesajının 16-bit lik 1e tümleyenini hesaplar.
-Parametreler: Parametlerin daha uzun halinin belirlenmesinde kullanılır.
-Bilgi: Mesajla ilgili bilgidir.
#ICMP(Internet Control Message Protocol)Niçin Kullanılır
-TTL süresi dolduğu zaman paket sahibine bildirim yapmak.TTL Hk. Tıkla!
-Herhangi bir durumda yok edilen paket hakkında geri bildirim sağlamak,
-Parçalanmasın! komutu verilen paket
parçalanmaya maruz kaldığında kullanıcıya geri bildirim sağlamak,
-Hata oluşumlarında geri bildirim sağlamak,
-Paket başka yollara gittiğinde kullanıcıya geri bildirim sağlamak,
-ICMP parametrelerelerine ve komutlarına ulaşmak için bir DOS penceresi açmanız gerekir. Bu komutlara örnek olarak Ping ve Traceroute örnek verilebilir.
#ICMP(Internet Control Message Protocol) Hata Durum ve Raporlama Prosedürleri
Herhangi bir durumda İCMPnin rapor ettiği hata ve durum analizlerine yönelik raporlama servisleri aşağıdaki gibidir.
19.Code field: Alıcı makine için daha çok bilgi içerir.
20.Checksum: Ip headerdaki gibidir.
-Açıklamalar
- Hedef ulaşılamaz(Destination Unreachable)
Hedef bilgisayardan ağda herhangi bir bilgi alınamadığı durumlarda bu parametre kullanılır.
-Echo(Yankı)
Yankı mesajları, bir yönlendirici(Router) veya bilgisayar tarafından diğer bir yönlendirici veya bilgisayara gönderilen mesajlardır. Yankı mesajı kaynaktan hedefe yönelen bir mesaj olup, yankı mesajı olarak hedeften kaynağa Yankı Cevabı (Echo Reply) mesajı döner. Yankı mesajı ile hedef bilgisayarın çalışıp çalışmadığı ve iletişim kurmak için gerekli yolun sağlanıp sağlanamayacağının testi yapılır. TCP / IP protokol grubu yüklü olan bilgisayarlar üzerinde çalıştırılan Ping komutu bu işlevi yerine getirir. Ping isteğini gönderen cihaz (Yankı İsteği) Echo Requestte bulunur. ICMP mesajlarındaki Yankı İsteği Tipi (Echo Request Type) 8 ve Kod(Code) 0dır.Hedef IP adresi Yankı İsteği (Echo Request) mesajını aldığında gönderen cihaza Yankı Cevabı(Echo Reply) mesajını gönderir. Bu mesajın Tipi (Type) ve Kodu (Code) 0dır.
- Kaynak Kapatmak(Source Quench)
Datagramların geçiş oranını kontrol eder. Bu mesajı alındığınızda gönderim hızınızı azaltılmalısınız.
-Yeniden Yönlendirmek(Redirect)
Daha iyi bir rota mevcut olduğu durumlarda ağ geçidine(gateway) gönderilir. Bu mesaj gönderilince kod alanında(code field) oluşan numara yönlendirmenin(routing) nasıl olacağını belirler.
-Parametre Problemi(Parameter Problem)
Parametre sorunu paket başlık parametrelerinde oluşan hataları paremeter problem message olarak geri bildirir.
-Tarih Bilgisi İstemi ve Yanıtı
Ağdan geçen mesajın süresinin gözlenmesini sağlar.
-Bilgi İstemi ve Yanıtı, Addres Maskesi İstemi ve Yanıtı (information request ve reply, address mask request ve Reply)
Özel ağın veya alt ağın denenmesini sağlar.
# ICMP(Internet Control Message Protocol)Uygulamaları
En çok bilinen iki uygulamadan bahsedeceğiz. Bunlardan biri: Ping, bir diğeri ise Traceroute uygulamalarıdır.
#Ping
En basit TCP/IP protokol uygulamasıdır. Eğer bir hoşta ulaşmak istiyorsanız bunun en kısa yolu Ping atmaktan geçer. Eğer bir hosta Ping ile ulaşabiliyorsanız, aynı şekilde
TELNET nedir? Tıkla! ve FTP nedir? Tıkla! ile de ulaşabilirsiniz. Tabii bir şartla ilgili açık portlar mevcutsa! Geçmiş yıllarda varsayılan Eğer bir hosta Ping çekemiyorsanız, Telnet ve ya FTP ile de o hosta erişim sağlayamazsınız. kanısı son yıllarda güvenlik duvarlarının yönlendiricilerindeki Access list lerin sıkça kullanılmasıyla beraber çürütülmüştür. Access list nedir? Merak edenler şu bağlantıya gidebilirler.Access list nedir? Tıkla!
Dönelim konumuza peki Ping neler yapar?Ping, hedef bir hosta, icmp echo paketlerini gönderir ve hosttan icmp reply paketini bekler. Aşağıda örnek bir Ping komutu ve ping atılan bir site görünüyor.
C:WINDOWS>ping www.xxx.com

Burada söz konusu siteye ping gönderdik. İcmp echo paketini yolladık ve bize icmp reply paketiyle cevap geldi. Yukarıdaki görselde ping atılan söz konusu site için verilen istatistikler mevcuttur.
#Bir Diğer Uygulama: Traceroute
Bu uygulama ise paket gönderen bilgisayardan, alıcı bilgisayara giden paket ve paketin izlediği yol hakkında bilgi edinmemizi sağlar. Ki bu ICMP işleminde önemli bir konuma sahiptir.
Elde edilen bu bilgiler arasında en önemlisi paketin izlediği yol bilgisidir. Edinilen bu bilgiyle beraber paketin hangi yollardan geçerek hosta ulaştığı rahatlıkla izlenebilir.
Aşağıda örnek bir Traceroute komutu ve izlenilen host hakkında bilgiler görünüyor.
C:WINDOWS>tracert Buraya ping ile elde edilen host yolu numarası verilir.

ICMP uygulamaları ve İcmp hakkında söyleyeceklerimiz bu kadar. Şimdide İcmp ile yapılan saldırılardan bahsedelim biraz: İcmp yukarıdaki bilgileri hatırlarsanız bir ağ protokolüydü. Dolayısıyla bahsedeceğimiz saldırı türleri de Ağ saldırısı türleri olacaktır. Biz bu konumuzda İcmp Keşif Saldırılarıdan bahsedeceğiz.
# ICMP(Internet Control Message Protocol) Keşif Saldırıları
İcmp mesajlarının değiştirilip, bu mesajların başlık kısmında bulunan belirli alanlarda editlemeler yaparak ve ya bu mesajların amaç dışı kullanımıyla, İcmp keşif saldırıları düzenlenebilir. Bu saldırıların temel amacı, daha sonra yapılacak asıl saldırılar için ön bilgiler elde etmek, saldırılacak sistemlere en etkin saldırı düzenekleri kurmaktır. Bu başlık altında toplamda 7 keşif saldırısı inceleyeceğiz.
+Sunucu Tespiti
Icmp mesajlarının saldırganın çıkarı doğrultusunda kullanılarak sunucu tespiti yapılması iki çeşit yöntemler mümkün olmaktadır:
-ICMP/Ping Taraması (ICMP/Ping Sweep)
Yukarıda İcmp uygulamalarında bahsettiğim gibi, ping komutuyla yerel ağdaki ve ya internet üzerinden aktif ve erişilebilir olan sunucuların tespit edilmesi mümkün olabilmektedir. Bu yöntemden yukarıda bahsetmiştik.
-ICMP Yayınlama (Broadcast ICMP)
Bu yöntemle, tespit edilen sunucuların her birinin IP adresine tek tek Icmp Echo Request mesajı göndermekle uğraşmak yerine, Saldırılacak hedef ağın yayın(Broadcast) adresine bir tek Icmp Echo Request mesajı gönderilerek gerçekleştirilir. Bu yöntemler beraber toplu olarak tespit edilen ağdaki aktif olan sunucuların saldırgana ıcmp Echo Reply yani geri dönüte dayalı mesajları göndermesi sağlatılarak, ağda çalışan tüm sunucuların tespit edilmesi sağlanır.
+Ağ Topolojisinin Tespiti
Saldırılacak hedefi sunucusunun ağdaki yerinin tespitinde Traceroute komutu kullanılır. Bu komutun işlevini yerine getirebilmesi için Icmp Echo Request mesajları ve ıcmp paketi içerisinde yer alan TTL alanı kullanılır. Burada TTL değeri, saldırılacak sunucuya gönderilen paketin hedefe giderken izlediği yol boyunca uğradığı her bir yönlendirici tarafından bir azaltılarak bir sonrakine iletilir. Bu iletim sırasında TTL değeri sıfıra ulaşırsa, paket düşürülür ve gönderen sunucuya Icmp Time Exceed mesajı gönderilerek paketin hedefe ulaşmadan düşürüldüğü bildirilir. Bu komut ile yapılmak istenen aslında hedefe giderken izlenilen yol boyunca ilk olarak TTL değeri 1 olan Icmp paketinin gönderilmesi ve sonrasında Icmp paketindeki TLL değerinin sırasıyla birer arttırılarak yollanması, böylelikle her sunucudan dönecek Icmp Time Exceeded mesajlarıyla yol üzerindeki sunucuların tespit edilebilmesidir.
+Güvenlik Duvarı Kuralları Tespiti(Firewalk)
Bu işlem, iki aşamada yapılmaktadır. İlk aşamada, saldırganla güvenlik duvarı arasındaki sunucu/yönlendiricilerin ("hop") sayısı "traceroute" yapılarak tespit edilir. İkinci aşama olan tarama aşamasında ise, güvenlik duvarı arkasındaki bilinen bir sunucuya, TTL değeri güvenlik duvarından bir büyük olan TCP veya UDP segmentleri gönderilir. Bu işlem sonrası cevap olarak "ICMP Time Exceeded" mesajı geliyorsa, bu segmentin güvenlik duvarını geçebildiği anlaşılır (Segmentler güvenlik duvarını geçtikten sonra TTL değerleri sıfıra düşeceğinden dolayı). Cevap olarak herhangi bir mesajın geri dönmediği durumda ise segmentin güvenlik duvarı tarafından engellendiği sonucu çıkarılır. Bu işlemin olası bütün TCP/UDP port kombinasyonları için gerçekleştirilmesi durumunda, güvenlik duvarı üzerindeki açık olan portlar tespit edilebilir.
Güvenlik duvarı kurallarının tespiti genellikle dışarıdan yapıldığı için, içeriden dışarıya doğru "ICMP Time Exceeded" hata mesajının gönderilmesi engellenmelidir ("ICMP Time-to-Live Exceeded in Transit").
+Ters Eşleme (Inverse Mapping)
Ters eşleme yöntemiyle, güvenlik duvarı arkasında bulunan sunucuların veya tüm bir ağın tespit edilmesi mümkün olabilmektedir.
Bu keşif saldırısı yöntemi, ICMP mesajları için dinamik filtreleme / durum denetimli ("stateful") engelleme uygulanmayan ve ICMP sorgu mesajları engellenmemiş güvenlik duvarları için geçerli olmaktadır. Bu durumda güvenlik duvarı arkasındaki bir iç ağın, sahip olduğu tahmin edilen bir IP adres aralığı için, "ICMP Echo Reply" mesajları gönderilebilmektedir. İç ağdan "ICMP Echo Request" mesajı gönderilmediği halde, güvenlik duvarı durum bilgisini tutmadığı için, "ICMP Echo Reply mesajları engellenmeden güvenlik duvarından geçebilirler.
Güvenlik duvarını geçen "ICMP Echo Reply " mesajları arasından hedef IP adresinde bir sunucu bulunmayan mesajlar için, iç ağdaki bir yönlendirici tarafından "ICMP Host Unreachable" mesajı gönderilir. Saldırgan gönderilen bütün bir IP aralığındaki adreslerden, "ICMP Host Unreachable mesajı gelen adresleri elde eder. Bu sayede, "ICMP Host Unreachable" mesajı gönderilmeyen IP adreslerinde çalışan sunucular bulunduğu tespit edilerek, güvenlik duvarı arkasında bulunan iç ağ ortaya çıkarılabilir.
Ters eşleme yöntemiyle sunucu tespitinin yapılamaması için, durum denetimli ("stateful") güvenlik duvarı kullanılmıyorsa, dışarıdan içeriye ("inbound") gelen "ICMP Echo Reply" mesajı gibi ICMP sorgu cevap mesajları engellenmelidir. Ayrıca, iç ağda yer alan sunucuların tespitinde kullanılan "ICMP Host Unreachable" hata mesajının içeriden dışarıya ("outbound") gönderilmesine izin verilmemelidir.
+Erişim Kontrol Listesi(Access Control List) Tespiti
ICMP hata mesajlarını kullanarak, yönlendirici veya sunucu gibi filtreleme yapabilen cihazlarda bulunan erişim denetim listelerinin tespit edilmesi mümkün olmaktadır.
Bu yöntem, IP paketi başlığı içinde yer alan, toplam uzunluk ("Total Length") alanının gerçek değerinden daha büyük bir değer ile değiştirilmesi ilkesine dayanmaktadır. Toplam uzunluk alanı değiştirilen paket hedef sunucuya ulaştığında, hedef sunucu tarafından paket açılacaktır. Fakat toplam uzunluk değerine göre olması gereken ama gerçekte olmayan alandaki veriye ulaşılamaması sonucunda, hedef sunucu tarafından "ICMP Parameter Problem Code 2" mesajı oluşturulacak ve saldırgana yollanacaktır. Gönderilen paketin karşılığında, ICMP parametre sorunu mesajının alınması, saldırgana pakette kullanılan protokol ve servisin filtreleme cihazı tarafından engellenmediğini göstermektedir. Başlık kısmı değiştirilen IP paketi içinde, ICMP veya daha üst seviye protokoller olan TCP veya UDP protokolleri sarmalanmış olabilir.
Bu işlemin, tüm olası protokol ve servis kombinasyonları ile bütün bir ağ için tekrarlanması durumunda, filtreleme cihazında yer alan erişim listelerinin tamamını elde etmek mümkün olabilmektedir.
Filtreleme cihazlarına girilmiş olan erişim denetim listelerinin bu yolla tespitinin engellenmesi için, "ICMP Parameter Problem" hata mesajlarının içeriden dışarıya gönderilmesine izin verilmemeli ve güvenlik duvarı tarafından engellenmelidir.
+Protocol/Port Taraması
ICMP "Protocol/Port Unreachable" mesajlarını kullanarak, hedef sunucu üzerinde hangi protokol veya portların kullanıldığını tespit etmek mümkündür.
Bu yöntemde, IP başlığı içinde yer alan sekiz bitlik protokol alanın tüm kombinasyonları (toplamda 256 değişik protokol) kullanılarak hazırlanan paketler hedef sunucuya gönderilir, cevap olarak "ICMP Port/Protocol Unreachable" mesajı gelen protokol veya portların kapalı olduğu, cevap gelmeyenlerin ise açık olduğu anlaşılabilmektedir. Bu sayede, hedef sunucunun kullanımda olan açık protokol veya portlarının bir listesi elde edilebilmektedir.
Sunuculara gönderilen IP paketindeki protokol alanının bütün kombinasyonları kullanılarak, açık olan port ve protokollerin tespit edilememesi için, "ICMP Port/Protocol Unreachable" hata mesajlarının içeriden dışarıya gönderilmesi engellenmelidir.
+İşletim Sistemi Tanıma(OS Fingerprinting)
Farklı işletim sistemi geliştiricilerinin, ağ trafiğini yönetme anlamında birbirlerine göre az da olsa farklı yolları benimsemiş olmaları sebebiyle, aktif veya pasif olarak hedef sunucunun işletim sisteminin tespit edilmesi mümkün olmaktadır.
-Aktif Tanıma
İşletim sisteminin aktif olarak tanınması, hedef sunucuya doğrudan ICMP hata/sorgu mesajları gönderilmesi ve sonrasında gelen cevapların analiz edilmesi ile gerçekleştirilir. Dönen ICMP mesajlarının başlık kısmındaki belirli alanlar, işletim sistemlerine göre farklılık gösterebildiğinden dolayı, bir veya birden fazla mesaj alış verişi ile işletim sistemlerinin tespit edilmesi mümkün olabilmektedir (Herhangi bir cevabın dönmemesi de tanıma işleminde kullanılır). Gönderilen farklı türdeki ICMP mesajlarına dönülen/dönülmeyen cevapların işletim sistemlerine göre değişebilmesi sayesinde, aşağıdaki örneklerdeki gibi hedef sistemlerin işletim sistemleri ve bu işletim sistemlerinin versiyonları tespit edilebilmektedir.

-Pasif Tanıma
Pasif tanıma, hedef sunucuya doğrudan ICMP mesajları göndermek yerine, hedef sunucunun ağ trafiğinin dinlenmesi sonucu elde edilen bilgilerin (gelen/giden ICMP mesajlarının) analiz edilmesiyle gerçekleştirilir. Pasif tanımanın aktif tanımaya göre pozitif yönleri olarak; herhangi bir ağ trafiği oluşturmadığından zor fark edilebilmesi, tüm trafiğin kaydedilmesinden dolayı daha fazla mesajın incelenebilmesi, trafik analizinin çevrimdışı olarak yapılabilmesi, iç veya dış ağın farklı noktalarının dinlenerek (ağı dinleyen sensörler yardımıyla), farklı ağ trafik bilgilerine erişilebilmesi gibi özellikleri sayılabilir.
ICMP mesajları kullanılarak aktif tanıma yöntemiyle işletim sisteminin tespit edilmesinin engellenmesi, pasif tanıma yöntemine göre daha kolay olabilmektedir. Aktif tanıma yöntemi, sunucuya gönderilen ICMP mesajlarına dönen cevapların analiziyle yapıldığı için, internetten içeriye ICMP istek mesajları gelmesi ve içeriden dışarıya ICMP cevap ve hata mesajlarının gönderilmesi engellenmelidir. İç ağda aktif tanıma işleminin yapılamaması için de, iç ağdaki güvenlik duvarı ve sunucu/istemcilerde yer alan kişisel güvenlik duvarı üzerinden, yönetim amaçlı ayrılan sunucular dışındaki bütün sunucuların/istemcilerin ICMP mesajları göndermesi ve bu sunuculara ICMP cevap ve hata mesajı dönülmesi engellenmelidir.
ICMP mesajları kullanılarak pasif tanıma yöntemiyle işletim sisteminin tespit edilmesi, ağ trafiğinin dinlemesi yoluyla yapıldığı için engellenmesi oldukça zor olmaktadır. En etkili yöntem, ağ trafiğini dinleme işlemini yapan ağ dinleyicisinin ("sniffer") tespit edilip devre dışı bırakılması olacaktır. Fakat bunun yapılamaması durumunda, iç ağda ve içeriden dışarıya/dışarıdan içeriye ICMP trafiğinin en alt düzeyde tutulup, mümkün olan durumlarda engellenmesi yoluyla pasif tanıma işleminin zor hale getirilmesi , hatta engellenmesi mümkün olabilmektedir.
