SSH Tünelleme: Windows İstemci Üzerinde Putty İle Uzak Port Yönlendirme

Sızma testlerinde veya günlük hayatta normalde erişilemeyen bir hedefe erişmek için, bu hedefe erişebilen başka bir bilgisayar kullanılabilir. Bu yazıda, SSH uzak port yönlendirme konusu incelenmiştir.

Uzak port yönlendirmenin temel iki kullanım alanı aşağıdaki gibidir:

  • Günlük hayatta internet üzerinden erişime açık olmayan bir bilgisayara internet ortamından erişim sağlanma ihtiyacı olabilir. Örneğin, evdeki bir bilgisayarda yüklü olan Apache uygulamasına (HTTP servisine), FTP/SMB gibi dosya paylaşımına veya bilgisayarın masaüstüne internet ortamından erişilmeye çalışılabilir. Ancak ISP tarafından statik bir IP tahsis edilmemiş olabilir veya modemde portun internete açılması istenmiyor olabilir. Bu amaçla uzak port yönlendirme tercih edilebilir.
  • Kurumlara gerçekleştirilen kurum içi sızma testleri sırasında uzak port yönlendirmeye ihtiyaç duyulabilir. İç ağ sızma testleri sırasında ele geçirilen bir bilgisayara farklı bir ağ üzerindeki (örneğin internet üzerindeki) başka bir bilgisayardan erişilmek istenebilir. Bu amaçla ele geçirilen bilgisayardan, internet ortamındaki köprü görevi görecek olan Linux sunucuya bir şekilde SSH yapılır ve internet üzerindeki herhangi bir bilgisayarın aynı Linux sunucuya bir şekilde SSH ile bağlanması ile aslında kurum içerisinde ele geçirilen Windows bilgisayara erişmesi sağlanabilir.

Mevcut ortamda internet üzerinde köprü görevi görecek ara bilgisayarın DNS ve SSH servisleri internete açıktır.

netstat -nlpt -4

ssh-tunneling-remote-port-forwarding-with-putty-on-windows-client-01

Bu bilgisayar, iki bilgisayar arasında geçiş noktası olacağı için trafiği yönlendirmesi gerekmektedir. Bu amaçla sshd_config dosyasında GatewayPort seçeneği “yes” olarak belirtilmelidir. Sonrasında da “ssh” servisi yeniden başlatılmalıdır.

cat /etc/ssh/sshd_config
service ssh restart

ssh-tunneling-remote-port-forwarding-with-putty-on-windows-client-02

Not: Bu seçenek “no” olarak belirtilirse sadece Linux sunucudan yapılan bağlantılar yönlendirilir, internete açık olan üçüncü bir bilgisayardan erişime izin verilmez.

SSH sunucuda gerçekleştirilen bu değişikliklerden sonra ters bağlantı yapılmak istenen Windows bilgisayardan Linux sunucuya SSH bağlantısı sağlanabilir. Windows üzerindeki Putty üzerinde “Connection > Tunnels” adımları ile gelen pencerede erişimler belirtilir. Windows bilgisayarın masaüstü erişimi internete açılacağı için, “Destination” kısmına “localhost:3389” yazılır. Linux bilgisayarın internete açılacak olan portu da “Source port” kısmına yazılır. Ayrıca uzak port yönlendirme yaoılacağı için “Remote” seçeneği işaretlenir. Yapılan bu ayarlar balantıya “Add” butonu ile eklenir.

ssh-tunneling-remote-port-forwarding-with-putty-on-windows-client-03

Aradaki Linux sunucunun portunun (TCP 12345) internete açılması için de “Remote ports do the same” seçeneği işaretlenir.

ssh-tunneling-remote-port-forwarding-with-putty-on-windows-client-04

Putty üzerinde “Session” penceresinde yerel portun bağlanacağı uzak bilgisayarın oturum bilgileri yazılır.

ssh-tunneling-remote-port-forwarding-with-putty-on-windows-client-05

Not: Kurumlarda dışarıya doğru standart SSH portu (TCP 22) kapalı olabilmektedir. Bu sebeple, SSH işlemi için TCP 443. port tercih edilebilir.

Uzak bilgisayarda oturum açılır.

ssh-tunneling-remote-port-forwarding-with-putty-on-windows-client-06

Linux bilgisayarda oturum açıldığında, Linux bilgisayarın TCP 12345. portunun internete açıldığı görülmektedir.

netstat -nlpt -4

ssh-tunneling-remote-port-forwarding-with-putty-on-windows-client-07

Bu porttan hizmet veren servisin de SSH servisi olduğu görülmektedir.

ps -ef | grep 12889 | grep -v grep
ps -ef | grep 12273 | grep -v grep

ssh-tunneling-remote-port-forwarding-with-putty-on-windows-client-08

Böylece Linux sunucunun TCP 12345. erişebilen herhangi bir bilgisayar ile Linux sunucunun 12345. portuna başlanılmaya çalışıldığında, Linux sunucu bu bağlantıyı, (Linux sunucuya SSH ile bağlanan) Windows bilgisayarın TCP 3389. portuna yönlendirir.

ssh-tunneling-remote-port-forwarding-with-putty-on-windows-client-09

Bu yönlendirme sonrasında gelen pencereye hedef sistem üzerinde yetkili bir kullanıcının bilgileri girilir.

ssh-tunneling-remote-port-forwarding-with-putty-on-windows-client-10

Böylece uzak masaüstü servisine internet ortamından erişilemeyen bir bilgisayarın masaüstüne erişim sağlanmış olur.

ssh-tunneling-remote-port-forwarding-with-putty-on-windows-client-11

 

Not: Windows bilgisayarın RDP servisini açmak yerine, bir veritabanının bağlantı servisi, Linux bilgisayarın komut satırı, Linux bilgisayarın VNC servisi,… de internet ortamından (veya farklı bir ağdan) erişilmek üzere açılabilirdi.

 

Linux Üzerinde SSH Komutu ile Uzak Port Yönlendirme

Windows istemcisinde Putty uygulaması ile yapılan bu işlemler yerine, Linux istemcisinde SSH uygulaması ile aşağıdaki komut çalıştırılarak da SSH ile yerel port yönlendirme gerçekleştirilebilirdi.

ssh root@178.62.251.211 –p 22 –R 12345:localhost:3389

 

Windows Üzerinde Plink Aracı ile Uzak Port Yönlendirme

Benzer olarak Windows işletim sisteminde Plink aracı kullanılarak da komut satırı ile de bağlantı gerçekleştirilebilirdi.

plink -l root -pw Aa123456 178.62.251.211 -R 12345:127.0.0.1:3389

 

 

 

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.