TCP Threeway Handshake ve TCP Mimarisi [Makale]

ix Tr

Yeni üye
5 Haz 2016
45
0
#Merhaba Arkadaşlar..
#Bu makale için birçok siteden bilgi aldım..Sizler için derledim topladım..
#Genellikle wikipedia , bga , ve birkaç çeşit siteden yararlandım..
#Umarım faydalı olur...
ix-Tr​
------------------------------------------------------------------------------------------------------------------------------------

Bilgisayarlar ilk geliştirilmeye başlandıkları zamanlarda tek başlarına çalışan birimlerdi. Ancak
Şirketlerde kullanılan bilgisayar sayısının artması sonucu bu durumun işletmeler için etkin ve
ucuz olmadığı anlaşıldı. Maliyeti düşürmek için ve işlerin daha hızlı ve kolay yapılabilmesi için
bilgisayarların haberleşmesi gerektiği fikri ortaya çıktı. Sonunda günümüzde vazgeçilmez olan
ağ yapıları geliştirildi.

#Ağ nedir ?

Wikipedi tanımına göre ağ ;
Bilgisayar ağı, küçük bir alan içerisindeki veya uzak mesafelerdeki bilgisayarların ve/veya iletişim
cihazını iletişim hatları aracılığıyla birbirine bağlandığı, dolayısıyla bilgi ve sistem kaynaklarının
farklı kullanıcılar tarafından paylaşıldığı, bir yerden başka bir yere veri aktarımının mümkün olduğu
iletişim sistemi.
Yani kısacısı bilgisayarların birbiriyle konuşmasını sağlayan iletişim aracı diyebiliriz :)
Bu kurulan iletişim sisteminin bizlere yararı saymak ile bitmez.Ama başlıca belirgin olanları şunlardır:
* Program/Dosya paylaşımı
* Oyunlar
* Düşük Maliyet İle Haberleşme
* Daha Kolay Yönetilebilirlik

Ağ ortamında iki tane rol vardır.Bunlar Server ve İstemci'dir.

Server (Sunucu): Adında “Server” kelimesi olan her işletim sistemi sunucu özelliğine sahiptir.
Sunucu bilgisayarlar, ağ kaynaklarını tutan ve bu kaynakları diğer bilgisayarların ve
kullanıcıların kullanımına sunan bilgisayarlardır. Örneğin, yazıcı ve dosya kaynaklarını
kullanıma sunan bilgisayarlar gibi.

Client (İstemci): Kullanıcıların sunulan kaynaklara erişirken kullandıkları sistemlerdir.
Yani server internet iken client biz oluyoruz.. :) (Genelde..)
Ağdaki bu cihazların belirli bir uyum içinde çalışması gerekir.Bunu ise İletişim Protokolleri sağlar.

#İletişim Protokolleri Nedir/Nelerdir ?
İletişim protokolü veya ağ protokolü, iki ya da daha fazla bilgisayar arasındaki iletişimi sağlamak amacıyla
verileri düzenlemeye yarayan, standart olarak kabul edilmiş kurallar dizisidir.
Yani kısacası düzen için konulan kurallar bütünü :) .Günümüzde en yaygın kullanılan iletişim protokolü
TCP\İP'dir.Sebebi ise her türlü ağda rahatlıkla kullanılabilen esnek ve gelişmiş bir protokoldür.

# TCP\İP Nedir ?



DARPA tarafından geliştirilen TCP/IP, sadece DARPA tarafından kullanılmak üzere tasarlanmış
olup, “Berkeley Software Distribution of UNIX” sistemlerinde kullanılmasıyla başlayan
gelişme sürecinin sonunda, en yaygın ağ protokolü olmuştur.
Günümüzde ağlar arası iletişimde ve internette kullanılan standart ağ protokolü TCP/IP’dir.
Her türlü ağ altyapısında kullanılabilecek esnek ve yönetilebilir bir yapıya sahiptir. Her üretici
tarafından kullanılabilen, geliştirilebilen açık bir protokoldür.
TCP/IP bu özellikleri sonucunda günümüz ağlarında kullanılan tek protokol olmuştur.

Evet yavaş yavaş konumuza geliyoruz... :)

TCP ile yapılan veri iletimlerinde, iletim başlamadan önce “Three-Way Handshake”
yöntemiyle bir bağlantı kurulur. Veri, bağlantı kurulduktan sonra kontrollü bir şekilde iletilir.

#TCP Three-Way Handshake nedir ?

Bağlantının kurulabilmesi için cihazlar birbirlerinin sıra numaralarını senkronize ederler. Sıra
numaraları gönderilen mesajların gönderilme sıralarının tespiti için kullanılır.

Bu mesajların sonunda bağlantı kurulur ve veri iletimi başlar. Veri, segmentlere bölünür ve
sırayla gönderilir. Alıcı cihaz, veri ulaştıktan sonra sıradakini ister. Eğer veri ulaşamazsa tekrar
istenir.
Akış kontrolü bu şekilde sağlanır.


Bir TCP oturumu bayraklar ile yürütülmektedir (SYN, ACK, FIN, PUSH, RST, URG), dolayısıyla TCP oturumunun başlaması için
bu bayrakların öncelikle anlaşabilmesi gerekir. İstemci bilgisayar bir web sayfasına ulaşmak için öncelikle TCP oturumunu
başlatması gerekir, bunun için istemci bilgisayar bilgilerinin olduğu SYN (istek paketi) paketini Sunucuya gönderir,
Sunucu istenilen TCP portunun açık olması durumunda ACK (Onay Paketi) paketi ile birlikte (SYN+ACK) cevabı döner. İstemci
bilgisayar gelen SYN+ACK paketini aldığına dair son bilgilerle Sunucuya ACK paketini döner ve böylece TCP oturumu kurulmuş olur.

İstemci SYN (x) --- > Sunucu
İstemci <--- SYN(y) + ACK (x+1) Sunucu
İstemci ACK --- > (y+1) Sunucu





Bu kısım biraz karışık olabilir :) Ama bayrakların açıklamasını öğrenince daha da kafanıza yatıcaktır..

#TCP Bayrakları

Veri transferine başlamadan önce iki uç arasında oturum açılır akabinde veri transferi gerçekleştirilir. Ayrıca gönderilen her segment (veri parçası) için segmentin
sorunsuzca hedefe ulaşıp ulaşmadığını öğrenmek için onay (ACK) beklemektedir.

Toplam 6 adet tcp flag’i bulunmaktadır: ACK,SYN,FIN,RST,URG,PSH

ACK: Verinin karşı tarafa sorunsuzca ulaştığını belirtir.
SYN: TCP bağlantısının kurulacağını belirtir. Özetle three-way-handshake’ in başlatılmasını sağlar diyebiliriz.
FIN: TCP oturumunun sonlandırılmasını sağlar.
RST: Bağlantılarda hatalar meydana geldiğinde, alıcı ve göndericinin bağlantıyı kesmesini sağlar. TCP oturumunu sağlıklı bir şekilde
sonlandırmak için FIN bayrağı kullanılır.
URG: Gelen veri parçasının öncelikli olarak işleme alınmasını sağlar.
PSH: Veri parçaları içerisinde öncelik belirlemek için kullanılır.



TCP/IP Güvenli olduğu kadar zayıf yönleride bulunmaktadır...

#Var olan TCP/IP Zayıflıkları nelerdir?
Şu an kullanılan IPv4 protokolü tasarlanırken çok eskilere dayanması ve o zamanlar güvenliğin dikkate alınmaması sonucu bazı zafiyetler ortaya çıkmıştır.
1. Gizlilik:
Bir paketin bir bilgisayardan çıkıp karşı bilgisayara iletildiği yol boyunca gizlenmemesi sebebi ile paketin içeriği yol boyunca, karşı tarafa ulaşana kadar izlenebilir ve okunabilir.
Bir mektup yazıp zarf içerisine koymadan sevgilinize gönderdiğinizi düşünün. O mektup, postacıdan tutun da görevlilere kadar herkesin eline geçebilir, hatta posta arabasındaki görevliye, masaları temizleyen temizlikçiye kadar herkes, zarf içine konmamış açık mektubu görebilir ve okuyabilir…
Önlem olarak paket içeriklerinin şifrelenerek gönderilmesi düşünülebilir… Yani mektubunuzu kendi şifreleme tekniğiniz ile yazıp sevgilinize gönderebilirsiniz. Ya da en azından bir zarf içerisine koyabilirsiniz :)
2. Paket doğrulama yoktur:
Bir paketin kaynak adresi değiştirilmiş olabilir. Mesela Bill Gates’in sevgilinize, sizin adınıza mektup gönderebilmesi gibi. Eğer ki bir mührünüz yoksa ve standart bir şekilde mesaj gönderiyorsanız doğal olarak herkes sizin adınıza başkaları da mektup gönderebilir. Fakat mektup üzerine bir mühür ya da mektup içerisine bir imza atarak gönderiyorsanız kimden geldiğini karşı taraf doğrulayabilir.
Genelde Spoof ismini verdiğimiz saldırılar da bu şekilde yapılır. Bu güvenlik zafiyeti için daha doğru daha kuvvetli doğrulama yöntemleri kullanılabilir.
Spoof saldırıları, Ip spoofing teoride olsa bile pratikte mümkün değildir. UDP katmanında mümkündür. Yani uygulama katmanından TCP üzerinden spoofing yapamazsınız. Kısacası bir yorum sayfasına başka birinin ip adresinden geliyormuş gibi yorum yapamayız. Proxy kullanarak yapılan işlemler IP spoofing e girmez.
IP parçalama en büyük sıkıntıdır.
IP de bir hata kontrol mekanizması yoktur.
UDP katmanında IP spoofing kolayca yapılabilir. Kontrol olmadığı içinde yapılması gayet kolaydır.
UDP kolay manipüle edilen bir protokoldür. Üzerinde birçok oynama yapabilirsiniz.
TCP UDP ye göre yavaştır, ama güvenlidir. 3 way handshake sayesinde saldırı konusunda manipülasyon bir nebze zordur.
3. İçerik bütünlüğü korunmaz:
Paketin içeriği değiştirilmiş olabilir. Mektubunuzu kurşun kalem ile yazarsanız adamın biri silgi ile mektubunuzu silip, mesajınızı değiştirebilir.Önlem: Daha gelismis data bütünlügü kontrollerinin yapılması. – Uygulama: IPsec - AH
Bu tarz zafiyetler için gelişmiş data bütünlüğü kontrollerinin yapılması gereklidir.
4. Flood Saldırıları:
Protokolde trafik önceliğinin olmaması yüzünden ağa yönelik flood saldırıları yapılabilmektedir. En basit saldırı yöntemi ise klavyenizdeki F5 tuşuna sürekli basarak saldırmaktır. Evet klavyenizden sürekli F5 tuşuna basarak karşı sisteme, küçük de olsa bir nevi saldırı yapabilirsiniz.
Flood saldırıları dediğimiz bu zafiyetlerin de önüne geçilebilmekte. Servis kalitesi (QOS) ve güvenlik duvarlarında önlemler alınarak çözülebilir.



***SYN Flood***




***Diğer Flood Türleri***



*** GET/POST Flood Türleri***



5. DOS-DDOS Saldırıları:
Sistemleri ve servisleri devre dışı bırakmak için yapılan saldırı yöntemleridir. Popülerdir ve önlem almak çok zordur. Güvenlik duvarı kullanmak ve ek güvenlik önlemleri almak gibi farklı savunma çeşitlilikleri üretilmiştir. Fakat tam olarak bir çözümü yoktur. En korkulan ve baş edilmesi en zor olan güvenlik zafiyetidir.
Sonuç olarak farklı TCP/IP zafiyetleri kullanılarak sistemlere zarar vermek için kötü niyetli kişiler yöntemler geliştirmiştir. Bu tarz zafiyetler protokolün doğasında olduğu için rahatlıkla kötü niyetli kişiler tarafından önlem alınmayan sistemlere saldırı için kullanılabilir.

-------------------- *** -----------------------**--------------

Evet arkadaşlar sonuç olarak TCP/IP hakkında biraz bilgi edindik.Şimdi ise bu bilgi kullanma vakti ;)
Bu bilgiler nmap komutunda kullanacağız..Şimdi nmap hakkındada biraz bilgi edinelim...

# nmap Nedir?

Nmap, bilgisayar ağları uzmanı Gordon Lyon (Fyodor) tarafından geliştirilmiş bir güvenlik tarayıcısıdır. Taranan ağın haritasını çıkarabilir ve ağ makinalarında çalışan servislerin durumlarını, işletim sistemlerini, portların durumlarını gözlemleyebilir.

Nmap kullanarak ağa bağlı herhangi bir bilgisayarın işletim sistemi, çalışan fiziksel aygıt tipleri, çalışma süresi, yazılımların hangi servisleri kullandığı, yazılımların sürüm numaraları, bilgisayarın güvenlik duvarına sahip olup olmadığı, ağ kartının üreticisinin adı gibi bilgiler öğrenilebilmektedir.

**Nmap'ın kullanım alanları nelerdir?**

*Taranan ağ üzerindeki sistemler hakkında bilgi sahibi olunmasında(port, üzerinde koşan uygulama vb. bilgileri öğrenmek gibi).
*Ağ topolojisinin çıkarılmasında.
*Sızma testlerinin gerçekleştirilmesinde.
*Herhangi bir ağ hazırlanırken gerekli ayarların test edilmesinde.
*Ağ envanteri tutulması, haritalaması, bakımında ve yönetiminde.

Nmap herhangi bir istemci veya sunucuyu birçok farklı şekilde tarama yeteneğine sahiptir. Nmap'i güçlü kılan farklı tarama tekniklerine sahip olmasıdır. Protokol temelli (TCP, UDP, vb.) tarama yapılabileceği gibi, belirli aralıklardaki IP adresleri, alt ağlar (subnet) ve üzerlerinde çalışan port ve servisleri de taranabilir.

Tarama sonuçlarında ortaya çıkabilecek port durumları aşağıdaki gibidir :

Open (Açık): Portun erişilebilir durumda olduğunu ve port üzerinde bir uygulamanın TCP bağlantılarını ya da UDP datagramlarını kabul ettiği anlamına gelmektedir.[2]
Closed (Kapalı): Portun erişilebilir olduğunu (Paketleri almakta ve geri paket göndermekte) fakat üzerinde herhangi bir uygulamanın olmadığı anlamını taşımaktadır.
Filtered (Filtreli): Dönen tepkiler bir paket filtreleme mekanizması tarafından engellenir. Nmap portun açık olduğuna karar veremez.
Unfiltered (Filtresiz): Portlar erişilebilir ancak Nmap portların açık veya kapalı olduğuna karar veremez. (Sadece ACK scan için )
Open|filtered (Açık|Filtreli): Nmap portların açık veya filtrelenmiş olduğuna karar veremez. (UDP, IP Protocol, FIN, Null, Xmas Scan için )
Closed|filtered (Kapalı|Filtreli): Nmap portların kapalı ya da filtreli olduğuna karar veremez. (Sadece Idle Scan için )


#TCP Syn Scan



Bu taramayı gerçekleştirmek için (linux terminal'e):

nmap -sS -v [Hedef_IP] şeklinde tarama yapabiliriz..

#TCP Connect Scan



Bu taramayı gerçekleştirmek için (linux terminal'e):

nmap -sT -v [Hedef_IP] şeklinde tarama yapabiliriz..

#TCP FIN Scan



#XMas Tree Scan



#Null Scan



Kodumuz:nmap -sN -v [Hedef_IP]

#ACK Scan



Kodumuz: nmap -sA -v [Hedef_IP]

#RPC Scan

RPC Scan, hedef makina üzerinde koşan RPC uygulamalarını keşfeder. Başka bir tarama türü ile açık
portlar keşfedildikten sonra,RPC Scan hedef makinanın açık portlarına RPC null göndererek, eğerçalışan
bir RPC uygulaması varsa, RPC uygulamasını harekete geçirir.RPC Scan, Version Detection Scan
işlemi esnasında otomatik olarak çalıştırılır :



Kodumuz: nmap -sR -v [Hedef_IP]
 

eyuboo2

Üye
25 Nis 2016
109
0
Kaynak : Bilgi Güvenliği Akademisi

Zamanında çok çalıştığım için bilgim var .
 

02d3

Kıdemli Üye
23 Haz 2015
2,581
1
LA
1- TCP taşıma protokolüdür. HTTPS, SSH ve SFTP de TCP kümesine girer. Asimetrik şifreleme ile güvenlik sağlanabilir. Bu TCP'nin zayıflığı değil, protokolü tasarlayan kişinin yaptığı bir seçimdir.

2- Asıl data gönderilmeden önce üçlü el sıkışma olur. Bill sevgiline senin adınla mesaj gönderemez. Göndermek ister ise, Bill senin ipni spooflar, makine sana bir SYN+ACK yollar, ama sen makineye SYN yollamadığın için bilgisayarın ACK yollamaz. Yani asıl data gönderme aşamasına dahi geçmez. Kaynak doğrulama vardır. UDP'de oluyor dediğin şey.

3- Spoofed SYN flood olur, çok da güzel olur. Sen x:123123 kaynağını spoof edersin, sunucuya gönderdiğin her SYN için makinenin backlog queuesinden bir eksilir. Backlog queuedeki boş alan eksile eksile dolar, sunucu saldırgan olmayan kişilerden gelen SYN'ları yoksayar. Yani down gözükür. Aynı zamanda x:123123'e de SYN+ACK gideceği için ona da bir saldırı yapmış olursun. Ki internet hızı belli sunucunun aynı anda upload ve download yapmasına neden olarak internetini yavaşlatmış olursun.
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.