Ağ Güvenliği 101: Tanıtım ve Ağ Temellerine Giriş

Eşref Erol
Three Arrows Security
8 min readAug 10, 2018

Merhaba sevgili okurlarımız. Okumakta olduğunuz yazı hazırladığım ilk yazı olmamakla beraber seri olarak yazacağım ilk yazı olma sıfatını taşıyor. Bu sebepten hem blogda yazarak sizlere sunduğum için hem de seri olarak yazdığım ilk yazı olacağı için ayrı bir kıvanç içerisindeyim. Müsaadenizle yazacağım seri hakkında sizlere bir bilgilendirme yapayım.

Ağ güvenliği 101 serisinde sizlere elimden geldiğimce temel ağ bilgisinden başlayıp bildiğim saldırı çeşitlerine ve araçlara doğru kademe kademe bilgiler sunmaya çalışacağım. Yazarken elimden geldiğince işin mantığına da yer vermeye ve gündelik hayattan da örnekler vererek konuyu daha rahat anlamanızı sağlamaya çalışacağım. Yazılarımız ders notu/konu anlatımının bir sentezi şeklinde olabilir ilk yazılarda. Yazdığım şeylerde benden kaynaklı hatalar ve eksikler elbette olacaktır. Gördüğünüz hatalar hakkında bize ya da bana geri dönüş sağlarsanız elim(iz)den geldiğince düzeltmeye ve geliştirmeye çalışacağım.

Müsaade ederseniz genel olarak seri hakkında bilgilendirmemizi yaptığımıza göre serimizin bu yazısında nelere değineceğimiz hakkında da bir bilgilendirme yapalım. Bu yazımızda üstünkörü olarak OSI katmanlarına, bilinmesinde fayda olan birkaç genel kavrama, ARP, RARP, ICMP, TCP, UDP protokollerine ve son olarak Hping adlı aracımıza değineceğiz. Girizgah kısmımızı yaptıktan sonra müsaadenizle yazımıza geçelim. Keyifli okumalar dilerim.

OSI Katmanları:

>Uygulama(Application): Son kullanıcının gördüğü bilgiyi dönüştüren katman. HTTP, DNS

>Sunum: Eğer bir format değişikliği yapılacaksa bu katmanda olur. SSL

>Oturum(Session): Verinin teslim edileceği uygulamaya hangi yöntemlerle iletileceğinin belirlenmesi. FTP

>Taşıma(Transport): TCP/UDP

>Ağ(Network): Veriyi yönlendirme. IPv4, ICMP

>Veri(Data/Link): Verinin formatını değiştirdiğimiz katman. Dijitale, MAC Adresleri(Ethernet ağı kullanılacaksa.) ARP, RARP

>Fiziksel(Pyshicsal): Veriyi nasıl, ne ile ilettiğimiz. Kablo, bakır.

Kriptoloji Hakkında Bilinmesi Gereken Genel Kavramlar:

>Encode: Format değiştirme. HTTP içine binary eklemek istiyorsanız binary, textview’e encode edilir. Encode gizlilik sağlamaz.

>Encryption: Geriye dönüştürülebilir şifreleme. Gizlilik sağlar. Parola(key, anahtar) ister.

>Hash: Bir verinin özetinin alınması. Geriye dönüştürülemeyen bir yöntemdir.

Genel Kavramlar:

>IP: Kişini özel ismi gibi düşünülebilir.

>MAC: Fiziksel adres, adres.

>ARP: IP’nin bilinip MAC’in sorgulandığı protokol. Yani kişi ismi bilinir lakin tam olarak fiziksel konumu nerede bilinmez.

>RARP: MAC’in bilinip IP’nin sorgulandığı protokol. Yani kişinin fiziksel olarak konumu adresi bilinir lakin kim olduğu bilinmez.

>Broadcast: Bir mesajın tüm ağdaki cihazlar tarafından alınmasını sağlayan protokoldür. “FF:FF:FF:FF:FF:FF” MAC adresi üzerinden gönderim yapılır. DHCP broadcast üzerinden haberleşme sağlar.

>Multicast: Gönderilmek istenen mesajın bant genişliğinden tasarruf sağlanarak belirli birden çok kullanıcıya yayılmasını sağlayan protokoldür. Broadcast’den farkı tüm kullanıcılara değil belirli kullanıcılara mesajı iletmesidir. Video konferansları, IPTv uygulamaları kullanım alanlarından bazılarıdır.

>Unicast: Direkt olarak belirli bir hedefe yönelik olan haberleşme türüdür.

>Default Gateway: Bütün makinelerdeki Ipv4’leri tanımlamak için kullanılır. Referans görevi üstlenir. “0.0.0.0”

>Subnetting: IP uzaylarının alt sınıflara bölünmesi. Network trafiğini azaltmak, network performansını optimize etmek, network’un yönetimini kolaylaştırmak için yapılır.

Host biti subnet mask’daki 0′lar ile gösterilen alandır. Network biti ise 1′ ler ile gösterilen alandır. İlk 1’den itibaren sağdan sola network kısmıdır.

>Apipa: Bilgisayarımızın statik IP verilmemesi ve herhangi bir DHCP sunucundan IP alınamaması halinde işletim sistemi tarafından otomatik olarak atanan IP adresidir.

ICMP(3. Katman):

Hata, durum raporu, uzak makineyle iletişimdeki aksaklıkları raporlayan bir çeşit geri bildirim mekanizmasıdır. ICMP mesajları IP başlığındaki protokol alanı “1”e ayarlanarak kullanılır.

Paket Yapısı:

Paket: Type, code, checksum, parametreler, info kısımlarını içerir.

Tipleri ve Kodları:

>Type 0 (Echo Reply): Yankı(echo) cevabı, ping yanıtı.

>Type 3 (Destination Unreachable): İletişim sağlanamıyor, hedefe erişilemedi.

Code 0 (Network Unreachable): Ağ’a ulaşamaz

Code 1 (Host Unreachable:) Cihaza ulaşılamaz

Code 2 (Protocol Unreachable:) Bulunduğu katman 3 ve bir üst katmanındaki protokolde bir sıkıntı varsa bu cevap dönebilir.

Code 3 (Port Unreachable:) TCP/UDP portlarında herhangi bir kapalı olma durumu varsa.

Code 4 (Fragmentation Needed and Don’t Fragment was Set): Paket çok büyük olduğundan parçalanması gerekiyorsa ancak parçalanmamış ya da parçalanamıyorsa yazılır.

Code 5 (Source Route Failed): Gönderilen paketin dönüşünde bir yol değişikliği varsa yazdırılır. Birden fazla router olmalı.

Code 6 (Destination Network Unknown): Hedef olarak belirtilen IP’nin network’une nasıl gideceğini bilmiyor.

Code 7 (Destination Host Unknown Error): Kendi makinemizdeki ya da geçiş yollarındaki routlerdaki sıkıntı.

Code 8 (Source Host Isolated): Yönlendirme yapacak olan router aldığı mesaj bilgisinin hatalı olduğunu bildirmek için kullanabilir.

Code 9 (Communication with Destination Network is Admistratively Prohibited): Ağa ileti izninin olmaması. Yönetici tarafından kısıtlanması.

Code 10 (Communication with Destination Host is Admistratively Prohibited): Host’a ileti izninin olmaması. Yönetici tarafından kısıtlanması

Code 11 (Destination Network Unreachable for Type Of Service): Ağ servis tipinin karşı tarafta sorun teşkil etmesi.

Code 12 (Destination Host Unreachable for Type Of Service):

Code 13 (Communication Administratively Prohibited):

Code 14 (Host Precedence Vialation): Öncelik ihlali.

Code 15 (Precedence cutoff in effect): Belirlenen öncelikten alt seviyede ileti gönderimi.

>Type 4 (Source Quench): Akan veri oranını kontrol eder. Bu uyarı geldiğinde veri akımı azaltılmalıdır.

>Type 5 (Redirect Message): Paketlerin daha iyi bir yol aracılığı ile yönlendirilmesi.

Code 0 (Network Error): Ağ için yönlendirme datagramları

Code 1 (Host Error): Ana bilgisayar için yönlendirme datagramları

Code 2 (Type of service and network): Servis türü ve ağ için yönlendirme datagramları

Code 3 (Type of service and host): Servis Türü ve ana makine için yeniden yönlendirme datagramları.

>Type 8 (Echo Request): Ping isteği

>Type 9 (Router advertisement): Yönlendirici (Router) tanıtımı.

Code 0 (Normal router advertisement): Normal yönlendirici duyurusu

Code 16 (Does not route common traffic): Trafik yönlendirilemiyor.

>Type 10 (Router Solicitation): Router isteği

>Type 11 (Time Exceeded): Zaman aşımı

Code 0 (Time to Live exceeded in Transit): Gönderilen paket hedefe ulaşamayıp döngüye girerse paketin belli bir süre sonra imhası.

Code 1 (Fragment Reassembly Time Exceeded): Parçalı olan pakette eksik ya da sorun varsa paketlerin en baştan gönderilmesini isteyen hata bildirimi.

Type 12 (Parameter Problem): Paket başlıklarındaki parametrelerde sorun olduğunu gösterir.

Code 0 (Pointer indicates the error):

Code 1 (Missing a required Option):

Code 2 (Bad Length):

>Type 13 (Timestemp Request): Tarih bilgisi istemi. Performans kontrolü için

>Type 14 (Timestemp Reply): Tarih bilgisi yanıtı

>Type 15 (Information Request): Bilgi istemi

>Type 16 (Information Reply): Bilgi yanıtı

>Type 17 (Adress Mask Request): Adress Maskesi İstemi

>Type 18 (Adress Mask Reply): Adres maskesi yanıtı

TCP(4. Katman):

Transmission Control Protocol olarak geçer. Mesaj karşıya ulaşıyor mu ulaşmıyor mu diye yapılan kontrolü yapar. İki veya daha fazla cihazın haberleşmesi için kullanılan en yaygın protokollerden biridir. Aslında TCP/IP olarak entegre şekilde kullanılırlar. İki bilgisayar arasındaki iletişimin başlaması için gerekli protokollerden biridir. İki bilgisayar iletişime başlamadan önce nasıl insanlar tanışıyor selamlaşıyorsa bilgisayarlarda tanışıp selamlaşırlar. Buna Three way handshake = Üçlü el sıkışma denir.

İstemci hedef makine’ye içinde SYN bayrağı taşıyan bir paket yollar. Karşı tarafta port açıksa SYNACK bayrağı içeren bir paket yollar. İstemci de bunun kendisine ulaştığına dair ACK bayrağı içeren bir cevap paketi yollar ve böylelikle iletişim başlamış olur. Bu paketlerin tanınması, aynı anda birden fazla paket gelirse öncelik tanınması için içlerinde bulunan seq ve ack değerleri vardır. İstemcinin yolladığı SYN bayraklı pakette bir seq değeri bulunur ack bölümü ise boştur. Kaynak gelen paketteki seq değerini kendi ack değerine bir arttırarak ekler ve kendine özgü bir seq değeri ekleyerek SYNACK bayraklı paketi yollar. İstemci ise gelen bu paketin seq değerini kendi ack değerine +1'leyerek ekler ve yine kendine özgü bir seq değeri oluşturup (bu değer 0 dır) ACK bayraklı paketi yollar.

Eğer iletişimin sonlanması istenirse bu durumda istemci hedef makineye FIN bayrağı taşıyan bir paket yollar. Bunun karşılığı olarak hedeften FINACK bayraklı bir paket gelir. Son olarak da istemci bu mesajı ACK bayraklı bir paketle onaylar.

……………….. SEQ………………..ACK

SYN:…………..x……………………-(0)

SYNACK:…….y…………………..x+1

ACK:…………..z(0)………………y+1

Olası İletişim Durumları:

  • Karşıya port açıkken syn dışı bir şey yollanırsa; rst döner.
  • Karşıya port açıkken fin yollanırsa; rst döner.
  • Karşıya port açıkken rst yollanırsa; bir şey göndermez
  • Karşıya port kapalıyken syn yollanırsa; karşı taraf reset döner.
  • Karşıya port kapalıyken ack yollanırsa; rst döner.
  • Karşıya port kapalıyken fin yollarsak, finack döner.
  • Kapalı port’a rst yollarsak; cevap yollamaz
  • Rst haricinde bir flag yollarda drop alırsak Firewall varlığını anlarız. Port açıkken ve servis varken syn yollayıp cevap olarak ICMP alırsak firewall varlığı gözükür.

Eğer karşıya yolladığınız bir pakete hedef olağan dışı bir cevap dönüyorsa yani normalde dönmemesi gereken(açıkta olsa kapalı da olsa) bir cevap dönüyorsa orada Firewall vardır.

Paket Yapısı:

>Source Port Number: Kaynak port numarası.

>Destination Port Number: Hedef servis port numarası.

>Sequence Number: Sıra numarası, ilk 8 bitlik verinin sıra numarası.

>Acknowledgement Number: Kabul numarası, sonraki 8 bitlik verinin numarası.

>Data Offset: Başlıktaki 32 bitlik kelimelerin sayısı.

>Reserved: Seneye de giyersin büyük beden alalım mantığı.

>Flags: Flag değerlerini içeren kısım.

>Window: Kaç paketin karşı taraf tarafından alındığını gösteren kısım.

>Checksum: Kontrol için kullanılır. Paketin ulaştığında bozulup bozulmadığını bu kısımdan kontrol ederiz. Hash değeri içerir.

>Urgent Pointer: Öncelik bilgisini içerir.

>Options: Boyutu belli olmayan bir değişken.

UDP(Layer 4):

UDP, TCP’ye göre çok daha hızlı olan bir protokoldür. Yaklaşık olarak 3 kat kadar bir hız farkı vardır. UDP’de kontrol kısmı OSI’nın son katmanı olan uygulama katmanın da olur. 3’lü el sıkışma yoktur. Saldım çayıra Mevlam kayıra şeklinde paketlerinizi yollarsınız. Genelde canlı yayın, görüntü iletimi gibi veri aktarımının hızlı ve paket kaybının önemli olmadığı(çok az miktarda) zamanlarda kullanılır. TCP’ye göre daha güvensizdir. Üzerinde de çeşitli servisler çalışır. DNS bunlardan en çok bilinenidir.

Olası İletişim Durumları:

  • Port açıkken veri gönderirsek illa veri alacağız diye bir durum söz konusu değil. Eğer servisin cevap verme ihtiyacı varsa cevap verir eğer cevap verme ihtiyacı yoksa cevap vermez.
  • Port kapalıyken veri gönderirsek; ICMP ile port kapalı mesajı yollanır.(port unreachable)
  • UDP ye veri yolladığımızda cevap alamıyorsak ya firewall vardır ya da servisinin işine yaramıyordur. ICMP cevabı alıyorsak Firewall yok port kapalı.

Paket Yapısı:

Source Port, Destination Port, Lenght(Header+Data), Checksum, Application Data(Message)

Hping(Araç):

İstenilen sayıda TCP/IP paketini göndermemizi sağlayan programdır. Hping(1,2,3) şeklinde versiyonları vardır.

Parametreleri:

-c: Kaç adet paket yollanacağı belirtilir.

— icmp: echo request yollar. -K ile code -C değeri ile Type değeri verilir.

— udp: UDP paketleri yollar

-p: Hedef Port

-S: Hangi portların kullanıldığını ve portların durumlarını gösterir.

-t: TTL ataması yapar.

— scan: Port taraması yapar.

Örnek Kullanım:

hping3 -S -c 1 172.18.2.181

Umarım faydalı ve anlaşılabilir bir yazı olmuştur. Serimizin bir sonraki yazısında görüşmek üzere, okuduğunuz için teşekkürler efenim.

Devam yazılarım:

Ağ Güvenliği 101 #2: DNS Nasıl Çalışır? Dig ve Nslookup İle Bilgi Toplamak:
https://link.medium.com/uAe9AYZqzV
Ağ Güvenliği 101 #3 DHCP: Nedir? Nasıl Çalışır? Neden UDP Kullanır?: https://link.medium.com/yeSub92qzV
Ağ Güvenliği 101 #4: Bilgi Toplama #1: Ping, Whois Nasıl Çalışır?,CyberOps, RIPE:
https://link.medium.com/lqazmF5qzV
Ağ Güvenliği 101 #5 Bilgi Toplama #2: Email ve Sosyal Medya Üzerinden Bilgi Toplama:
https://link.medium.com/GN4Y6e9qzV

--

--

Eşref Erol
Three Arrows Security

Dr. | Editor at @threearrowsec & @h4cktimes | @Parrotsec TR Community