SSH Port Yönlendirmesini İnceleyelim //SSH Port Forwarding

X-Code

Uzman üye
19 Mar 2019
1,855
335
Localhost

svsurnf.jpg

Merhaba TürkHackTeam Üyeleri.
Bu Konumda Sizlere SSH Port Yönlendirmesini Anlatacağım.


1.png



Konu İçeriği

SSH Port Yönlendirme Nedir?

SSH Port Yönlendirme Çeşitleri




SSH Port Yönlendirme Nedir?

Yönlendirme kelimesi verinin bir noktadan bir noktaya iletilmesi anlamına gelir. Dolayısıyla SSH Port Yönlendirme de bir SSH portunun sunucu ile client arasında farklı bir porttan yönlendirilmesidir. Bu yönlendirme 4 farklı şekilde yapılabilir. Dilerseniz fazla uzatmadan bu 4 tipte nasıl yapılacağına geçelim.

7r0ggvs.png


jQG9Gn.gif



SSH Port Yönlendirme Çeşitleri


Local Port Forwarding

Türkçe karşılığı Yerel Port Yönlendirmesi olan kavram aslında yereldeki bir porta gelen requstlerin belirlenen host ya da porta ssh server üzerinden iletilmesidir. Biz bu işlemleri yapmak için OpenSSH aracını kullanacağız. Aracın yerel port yönlendirmesi için kullanılması gereken syntaxı aşağıdaki gibidir.

ssh -L [bind_address]:[port]:[host]:[hostport] [ssh_server]

-L : Local Port Forwarding parametresidir.

[bind_address] : Opsiyonel bir alandır. Extra bir terim belirtilmediği sürece 127.0.0.1 bind edilir. Tüm interfacelerin bind edilmesi için * kullanılır.

[port] : Yereldeki bind edilecek port belirtilir.

[host] : Gelen paketin iletileceği hostu belirtir.

[hostport] : Paketin iletileceği hostun portunu belirtir.

[ssh_server] : SSH sunucusunu belirtir.


Örnek olarak aşağıdaki komutu terminale yazdığımızı farzedelim. Ve sonraki süreci detaylıca inceleyelim.

Bash:
ssh -L *:1234:example.com:443 [email protected]

Komut çalıştırıldığında ilk olarak hedef 192.168.18.81 IP adresine bağlantı sağlanır. Böylelikle hedefle güvenli bir kanal oluşturulmuş olur.
Akabinde 1234 portu, ssh hedef prosesi tarafından kendi hostunda açılır ve dinlemeye alınır.
1234 portuna bir request geldiğinde ssh prosesi gelen bu paketi alır ve ssh sunucusuna encrypted edilmiş bir şekilde gönderir. SSH sunucusu ise gelen paketleri decrypt eder ve yönlendirme açık olduğundan dolayı hedef host ve porta iletir. Elbette tekrar kendisine gelen yanıtları da geri döndürür.
İşlem esasında bu şekilde gerçekleşir.


Remote Port Forwarding

Remote Port Forwarding ise Local Port Forwardinge çok benzerdir. Temel farkı ise yönlendirilen trafik ters yönde işler. Onun dışında yerel port yönlendirmesi ile aynı mantıkdadır. OpenSSh aracında bu işlemi gerçekleştirmek için ihtiyacımız olan syntax aşağıdaki gibidir.

ssh -R [bind_address]:[port]:[host]:[hostport] [ssh_server]

-R : Remote Port Forwarding parametresidir.

[bind_address] : Opsiyonel bir alandır. Extra bir terim belirtilmediği sürece 127.0.0.1 bind edilir. Tüm interfacelerin bind edilmesi için * kullanılır.

[port] : Remote edilecek port belirtilir.

[host] : Gelen paketin iletileceği hostu belirtir.

[hostport] : Paketin iletileceği hostun portunu belirtir.

[ssh_server] : SSH sunucusunu belirtir.


Yine aynı şekilde aşağıdaki gibi bir örnek komut yazalım ve süreci detaylıca inceleyelim.


Bash:
ssh -R *:1234:example.com:443 [email protected]

Komutumuz ilk çalıştırıldığında aynı şekilde 192.168.18.81 hedefi ile bağlantı kurulur.
Bağlantı sağlandıktan sonra 1234 portu, ssh sunucusunun sshd prosesi tarafından kendi hostu üzerinde açılır ve dinlemeye alınır.
Sonrasında 1234 portuna bir istek yapıldığında sshd prosesi kendisine gelen bu paketi encrypted olarak ssh hedefine iletir. SSH sunucusu da tabiki gelen bu paketi decrypt eder ve hedef host ve porta iletir. Döndürülen cevapları da aynı şekilde geri döndürür.
Bu işlemde bu şekilde gerçekleşir.


Dynamic Port Forwarding

Dinamik SSH tünelleme ise diğer ikisinden farklı. Bu yöntem ssh sunucusunun proxy niyetine kullanılmasıdır esasında. Local ve Remote port yönlendirmesinde sadece 1 porta yönlendirme yapılabilir. Bunda ise böyle bir kısıtlama yoktur, socks4/5 server gibi davranış sergiler. Bu yönlendirme tipimizin kullanımı aşağıdaki syntax yapısı şeklindedir.

ssh -D [bind_address]:[port] [ssh_server]

-D : Dynamic Port Forwarding parametresidir.

[bind_address] : Opsiyonel bir alandır. Extra bir terim belirtilmediği sürece 127.0.0.1 bind edilir. Tüm interfacelerin bind edilmesi için * kullanılır.

[port] : Bind olunacak portu belirtir.

ssh_server : SSH sunucusunu belirtir.


Bu yönlendirme tipini de örnek bir komut üzerinden detaylıca inceleyelim.

Bash:
ssh -D 1234 [email protected]

Öncelikle olarak 192.168.18.81 adresindeki ssh sunucusuna bağlantı sağlanır.
Akabinde 1234 portunu, ssh prosesi yerelde açar ve dinlemeye alır.
Sonrasında ise 1234 portuna gelen requestler ssh sunucusu üzerinde ilgili yerlere iletilir. Aynı şekilde verilen cevaplarda alınıp geri döndürülür.
İşlemimizin gerçekleşme mantığı bu şekildedir.


Reverse Dynamic Port Forwarding

Bu yönlendirme ise adından da anlaşılabileceği üzere dinamik port yönlendirmesinin tam tersidir. Reverse Port Forwarding de port, Remote Port Forwarding de olduğu gibi ssh serverda dinlemeye alınır. OpenSSH aracında bu işlemi gerçekleştireceğiz lakin araç bu yönlendirmeyi 7.6 sürümü ve sonrası için desteklemektedir. Yani kullandığınız OpenSSH aracının sürümü 7.6 dan düşük ise bu işlemi desteklemeyecektir. Aracın sürümünü öğrenmek için de terminalde ssh -v komutunu çalıştırabilirsiniz. Bu yönlendirmeyi gerçekleştirmek için ihtiyacımız olan syntax aşağıdaki gibidir.

ssh -R [bind_address]:[port] [ssh_server]

-R : Reverse(Remote) Port Forwarding parametresidir.

[bind_address] : Opsiyonel bir alandır. Extra bir terim belirtilmediği sürece 127.0.0.1 bind edilir. Tüm interfacelerin bind edilmesi için * kullanılır.

[port] : Bind olunacak portu belirtir.

ssh_server : SSH sunucusunu belirtir.

Bu yönlendirme türünü de bir örnek kod üzerinden detaylıca analiz edelim.

Bash:
ssh -R 1234 [email protected]

Komut çalıştırıldığında ilk olarak 192.168.18.81 adresine bağlantı kurar.
Akabinde 1234 portunu, sshd prosesi açar ve dinlemeye alır.


gbrnuu8.png




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.