Gelin Tünelleme Protokolünü Beraber Öğrenelim

X-Code

Uzman üye
19 Mar 2019
1,855
335
Localhost

jyo2qm.png

Merhaba TürkHackTeam Üyeleri.
Bu Konumda Sizlere Tünelleme Protokolünü Tanıtacağım.


1.png



Konu İçeriği

Nedir Bu Tünelleme Protokolü?

HTTP Tünelleme

SSH Tünelleme




Nedir Bu Tünelleme Protokolü?

Ağ sistemlerinde cihazlar birbirleriyle protokolleri kullanarak iletişim kurarlar. Bu protokoller onların dili gibidir, iki farklı cihaz aynı protokolü kullanıp veri transferi gerçekleştirirek aralarında trafik oluşturur. Tünelleme protokolü ise normalinden farklı bir protokol ve port kullanılarak bu trafiğin sağlanmasıdır.

Hemen size bir örnek vererek anlatayım. Diyelim ki PC'nizin bulunduğu local ağda sadece 80 ve 443 portları kullanılıyor. Bunlar HTTP ve HTTPS portları. Diğer portlar kapalı farzedelim. Sizin 21 yani FTP portunu kullanmanızı gerektirecek bir durum söz konusu oldu lakin 21. port ağınızda kapalı olduğu için kullanamıyorsunuz. Bu durumda imdadımıza tünelleme protokolü sistemi yetişiyor. Siz özel VPN ağları sayesinde normalde 21. porttan yapacağınız trafiği 80. porttan gerçekleştiriyorsunuz. Bu işleme de tünelleme işlemi deniyor.

Örnek üzerinde verdiğim bu işlemi teknik terimler üzerinden anlatacak olursam; Hedef ağa paket göndermeden önce bu pakete, tünelleme protokolünün header yani başlık bilgileri dahil edilir. Bu başlıkta da yönlendirme bilgileri bulunur. Bu sayede mesela NetBIOS gibi yönlendirme özelliği olmayan bir protokol bu başlıklar ile yönlendirilebilir hale geliyor. Yönlendirilebilirden kastım internet üzerinde aktarılabilir.

Tünelleme protokolü esasında veri güvenliği açısından önem arz eden bir işlemdir. Zira veriler doğrudan hedefe gideceğine araya tünelleme işlemi girerek, bir şifrelemeye tabii tutularak hedefe gönderilir. Takdir edersiniz ki buda MITM(Man in The Middle) yani Ortadaki Adam Saldırısından korunmamızı sağlar.


2uayipb.png


jQG9Gn.gif



HTTP Tünelleme

HTTP(Hyper Text Transfer Protocol), herhalde en çok kullandığımız protokoldür. Zira internette bulunan bütün web uygulamaları cihazımızla HTTP protokolünü kullanarak iletişim kurar.

Yine bir örnek üzerinden devam edelim. Mesela tarayıcımızdan turkhackteam.org sitesine girelim ve arka planda neler dönüyor kabaca bakalım. Tarayıcımızdan THT ye giriyoruz ve sağ tık yapıp İncele diyoruz akabinde Network kısmına giriyoruz ve sayfayı yeniliyoruz.

jrp4jlm.jpeg


Şimdi burada sayfa açılırken ağımızda hangi işlemler dönüyor görebiliyoruz. Yukarıdaki resimi yorumladığımız zaman, Status sunucunun bize verdiği dönütü söyler bize 200 OK yani istek onaylandı ve çalıştırıldı dönütü verilmiş. Öte yandan isteğimiz HTTP/1.1 protokolü ile gönderilmiş ve GET methodu kullanılmış. Diğer kısımlarda tarayıcı tarafından eklenmiş istemci ile alakalı cookie gibi verilerde bulunuyor, dilerseniz inceleyebilirsiniz.

2f9xvqc.jpeg


Daha yeni sunucunun bizim isteğimize karşın 200 OK cevabını verdiğini söylemiştim, bu istek ile sunucu istemciye yani bizim tarayıcımıza ulaşmaya çalıştığımız web uygulamasının kaynak kodlarını gönderir. Yukarıda THT nin sunucusunun bize gönderdiği THT nin kaynak kodlarını görmektesiniz. Tabi tarayıcıda alır bu kaynak kodlarını kendi nezlinde yorumlar ve bize çıktıyı yansıtır. Yukarıdaki kaynak kodlarını benim tarayıcım aldı yorumladı ve bana aşağıdaki sayfayı yansıttı.

9jcvdm8.jpeg


Bu vakte kadar size HTTP'yi anlattım şimdi HTTP tünellemenin ne olduğuna geçelim. HTTP tünelleme işlemi, tünellemenin mantığını anlatırken de dediğim gibi HTTP protokolü ile anlaşan iki cihaz arasında tünelleme işlemi yapılmasıdır. Bu işlem genelde iki cihaz arasına bir güvenlik duvarı atamak için yapılır. Tabi bunun tam tersi yani güvenlik duvarını atlatmak için de yapılır :)

En baştaki örnekten devam edelim, ağınız 80 ve 443 portlarına açık fakat 21 e kapalı olsun. Siz FTP ile uzak sunucuya dosya transferi yapmak istiyorsunuz lakin FTP portu yani 21. port açık değil. Bu durumda Proxyler ile tünelleme yapmanız gerekiyor. Bunu yapınca siz ve uzak sunucu arasına bir proxy giriyor ve köprü görevi görüyor. Bu durumda siz dosyanızı 80 portundan proxye sıkıntısız gönderiyorsunuz proxy dosyayı alıp 21 portu ile uzak sunucuya gönderiyor aynı şekilde uzak sunucudan gelen cevabı tekrar kendi üzerinde size gönderiyor. Böylelikle de aslında güvenlik duvarını aşmış oluyorsunuz.


koggcoj.png


jQG9Gn.gif



SSH Tünelleme


SSH(Secure Shell), genelde uzak sunucuya kabuk (shell) bağlayıp bizim uzak sunucuda komut çalıştırmamızı sağlayan bir protokoldür. SSH tünelleme ise yine iki cihaz arasında bulunan SSH bağlantısına bir tünel oluşturarak verilerin güvenli aktarılmasını sağlar. SSH tünelleme işlemi 3 farklı şekilde yapılır. Bunlar; Local Port Forwarding, Reverse SSH Connection ve Dynamic SSH Tunelling.

hh73wsl.png



Local Port Forwarding

Yerel Port Yönlendirmesi, local ağda çıkış portunu değiştirme işlemine denir. Direkt pratik örnek üzerinden devam edelim. GNU/Linux işletim sisteminde OpenSSH aracını kullanarak ağ içinde port yönlendirmesi yapalım.

Aşağıdaki komutu kendimize göre düzenleyip komut isteminde çalıştırdığımızda yerel ağda port yönlendirmesi yapmış oluyoruz. Komutdaki user@host kısmı bağlantı kuracağımız uzak makinenin kullanıcı adı ve makine IP'si ya da makine ismidir. -L parametresinden sonra ise port yönlendirmesini belirtiyoruz. Bunuda localport kısmına çıkış yapmak istediğimiz portu, host kısmına makine ismini, remoteport kısmına ise çıkış yapacağımız portu giriyoruz. Bu durumda komutu yukarıdaki örnektekine uygun olarak editlersek resimdeki komutu yazmış olmamız gerekirdi.

ssh user@host -L localport:host:remoteport

m40xmt4.jpeg



Reverse SSH Connection

Ters SSH Bağlantısında ise amaç genelde güvenlik duvarını atlatmaktır. Buradaki güvenlik duvarı, sunucuda bulunan bir bağlantıyı bizim açmamıza engel oluyor olabilir. Bu durumda araya bir tünelleme atarak açmak istediğimiz bağlantıyı tünel üzerinden açabiliyoruz.

Yine OpenSSH aracı üzerinden örnek vermek gerekirse aşağıdaki komut bize bağlantının tünel aracılığıyla açılmasını sağlayacaktır. Komutdaki -R parametresinden sonra gelen kısım daha yeniki ile aynı. Komutun sonundaki adress kısmı ise bağlanacağımız makinenin adı oluyor.

ssh -R user@host adress

bd14zum.jpeg



Dynamic SSH Tunelling

Dinamik SSH Tünelleme, SSH sunucusunun Proxy olarak kullanılarak hedefe gönderilen verilerin şifrelenerek gönderilmesidir. Burada köprü/tünel olarak kullanılan şey aslında sizin SSH sunucunuzdur.

OpenSSH aracındaki pratik kullanımı ise aşağıdaki komut şeklindedir. Bu komutdaki -D parametresinden sonra gelen localport kısmı çıkış portumuzu, bindadress kısmı ise istemci yani bizim makine adımızı belirtir.

ssh -D localport bindadress


tm9y9ue.jpeg



Okuduğunuz İçin Teşekkür Ederim.
Esenlikle Kalın...

Saygılarımla


 
Ü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.