Siber güvenlik yayını izlerken aldığım notlardan bir kesiti paylaşmak istedim. Yanlışlar varsa söylerseniz ii olur.
Kendi yerel ağımızda iki tane bilgisayarımız olsun. Biri PC1 diğeri PC2;
PC1 bilgisayarı açıp CMD'ye ipconfig yazdığında DHCP protokolünden bir İP isteyecek.
İp adresini isterken İP adresini istediğine dair bir mesajda atacak.
DHCP talebini de gateway karşılıyor, modem veya router de denebilir.
Modemimiz : 10.0.0.1 8.8.8.8
PC1 : 10.0.0.2 8.8.8.8
PC2 : 10.0.0.17 8.8.8.8
PC1 - PC2 ile iletişime geçmeden önce layer2 de dönen olay;
>> İletişim kurmak için önce MAC adresini öğrenmesi gerek.
>> Mac adresini öğrenmesi için bir mesaj yayınlıyor ve PC2 ile iletişim kurmak istediğini söylüyor.
>> Mesaj gönderildikten sonra PC2 PC1'e kendi mac adresini tanıtacak.
>> PC1 'de kendi işletim sisteminde olan ARP tablosuna PC2'yi kayıt edecek.
NOT: İlk devrede mesaj olarak PC2 ye iletişim kurmak istediğini söyler.
PC1 : 10.0.0.2 8.8.8.8
ARP Table : X : 10.0.0.17
Z : 10.0.0.1
PC2 : 10.0.0.17 8.8.8.8
ARP Table : Y : 10.0.0.2
Z : 10.0.0.1
Gateway(Modem) : 10.0.0.1 8.8.8.8
ARP Table : X : 10.0.0.17
Y : 10.0.0.2
Her cihaz kendi ARP tablosunda MAC adreslerini kayıt etti.
Protokolun Sıkıntısı :
-- Ben A cihazıyım.
-- Yerel ağımızda 8 cihaz olsun.
-- Ben C cihazını istediğimde.
-- C cihazı gelir.
-- Ama gerçekten de gelen cihaz "C" cihazı mı?
-- Gelen kişiyi C olarak algılar çünkü o C yi istedi.
Bu olay ARP Spoofing'e geliyor.
Şimdi yerel ağ örneğimize gelelim;
PC1 gateway'a gidip 10.0.0.17'in MAC'i X değil artık Y derse;
Bu durumda gateway ile 10.0.0.17 arasındaki iletişimi bozar ilk önce.
10.0.0.17 arasında olan iletişim paketleri 10.0.0.2'e gelir.
NOT: Buda MAN IN THE MIDDLE'a sebebiyet veren durum.
NOT : Şuan da gateway da olan durum;
--Aynı IP adresine iki MAC adresi kayıtlı.
--Biri 10.0.0.2'in MACi iken diğeri 10.0.0.17 nin olmakta.
--Bu durumda geteway 10.0.0.17 ile iletişim kurmak istediğinde;
--İletişim 10.0.0.2'den geçer.
(Bu durum da ARP Poising'e giriyor.)
SubnetMask Ne İş Görüyor?
>> SubnetMask DHCP tarafından alınır.
>> 255.255.255.0
>> SubnetMask bizim cihazımız bir cihaz ile iletişim kurmak istediğinde;
Onun yerel ağda olup olmadığının tespitini yapar.
Yavaş Yavaş Dış Ağa...
PC1 Browser'ı açtı selenia.com yazdı;
(selenia.com ip si = 1.3.3.7 varsaysak.)
>> İlk önce işletim sistemi sistemin host dosyasına bakar ve selenia.com'a dair bir kayıt arayışına girer.
>> selenia.com'a dair bir kayıt bulunamazsa;
>> DNS'e sorulacak. DNS 8.8.8.8 (Bu bilgi DHCP tarafından verildi.)
>> DNS ile konuşulmaya başlanır.
(NOT: Tabi Dış ağa çıkarken kapı olarak gateway'ı kullanıyoruz.)
>> PC1 DNS ile konuşurken 53 numaralı port'a bir UDP bağlantısı kuruldu.
>> Resolver DNS oluyor, eğer Resolver DNS'de de selenia.com bulunamazsa;
>> Resolver DNS root DNS ile iletişim kurur.
>> selenia.com'un IP adresini ister. root DNS'de bunu veremezse;
>> TLD'ye gidilir. (Top Level Domain)
>> Top Level Domainin işi .com'lu web sitelerini bilmek
>> Top Level Domain'de selenia.com'u bulamazsa;
>> Yetkili DNS'e gidilir. Yani selenia.com'un DNS sunucusuna.
>> DNS Sunucusuna giderek selenia.com'u tanırız. Ama henüz ulaşabilir değiliz.
Artık gelen dönüt'den PC1 de selenia.com : 1.3.3.7 olarak kayıt edildi.
(Not: Henüz selenia.com ile ilgili bir iletişim kurulmadı.)
(Not: Yaşanan bu sorgu sürecinde artık Resolver DNS'de selenia.com'u tanıdı.)
(Bu durumda arık PC2 de selenia.com ile iletişim kurmak istediğinde aynı süreç yaşanmayacak.)
Şimdi PC1'imiz 1.3.3.7'nin 80 portuna gidilmeye çalışıyor.
Bu bağlantı Protokolu : TCP
TCP Header: (4 parça olarak bakarsak)
1) Source IP : 10.0.0.2
2) Destenation IP : 1.3.3.7
3) Source port : Rastgele bir değer
4) Destanation Port : 80
(Bir TCP paketi.)
PC1 in internet'de takılması için Source IP'nin 10.0.0.2 olmaması gerek.
Nat İşlemi Oluşmaya Başlar;
>> Network Adress Translation
>> Router giden TCP paketinin Source IP'sini siler ve 85.******** bir değer atıyor. (Google'a What İs My IP yazıldığında karşımıza çıkan IP adresi Source IP'ye yazılmıştı aslında.)
>> Her giden gelen paket de TCP paketinin Header'ları değişir.
Önce giderken TCP Syn paketi gönderdik. Sonra bize gelen paket TCP Ack paketi. Daha Sonra tekrar bir paket gönderdik bu da ACK paketi.
Bu durumun adı da threewayhandshake (üçlü sıkışma). ;
>> Üçlü sıkışma olduktan sonra konuşulmaya başlanıyor. Bir HTTP talebinde bulunulmadı hala, oraya girirsek bulunduğumuz konumdan uzaklaşacağız. Bir sonraki konuya artık...