Netcat Relay

Post-exploitation aşamasında hedef sunucu üzerinde hizmet veren ssh, ftp, rdp, vnc gibi servislere yapılan inbound isteklerin network-based firewall veya host-based firewall'un bloklaması nedeniyle erişim sağlanamayabilir. Aynı zamanda firewall bazı portlar için inbound isteklere izin veriyorsa sunucu üzerinde netcat ile yönlendirme yaparak bu servislere erişim elde edilebilir.Senaryo şu şekilde olsun:

  • Hedef sunucu üzerinde shell erişimimiz var.

  • Network-based firewall, 22 (ssh-tcp) portuna inbound erişimi engellerken 80,443 (tcp) portlarına yapılan inbound istekleri kesmiyor.

  • Ele geçirdiğimiz sunucu 443 portu üzerinde herhangi bir servis çalıştırmıyor.

  • Hedef sunucuya, Windows bilgisayardan ssh bağlantısı yapılmak isteniyor.

Shell alınmış sunucu üzerinde netcat ile 443 portuna gelen istekleri 22 (ssh) portuna yönlendirerek firewall kuralına takılmadan ssh bağlantısı elde edilebilir. Senaryo, firewall konfigürasyonuna göre değişebilir ve netcat listener 443 yerine farklı bir port üzerinde de çalıştırılabilir tabii ki.

Hedef sunucu (192.168.211.130 - Ubuntu) üzerinde netcat 443 portunu dinleyecek ve gelen isteği 22 (ssh) portuna forward pipe ( | ) ile iletecektir. Forward pipe ( | ) netcat listener'a gelen veriyi netcat client'a gönderir fakat netcat çift yönlü bir iletişim sağlamaktadır. Response almak için ise oluşturulan backpipe adlı dosya kullanılacak ve bu sayede netcat client'tan gelen veri netcat listener'a iletilecek çift yönlü iletişim kurulmuş olacaktır.

Hedef sunucunun ssh portuna bağlantı yapılmaya çalışıldığında beklenildiği gibi connection timed out hatası alınır.

İstek sunucunun (192.168.211.130 - Ubuntu) 443 portuna gönderildiğinde ise başarılı bir şekilde ssh bağlantısı sağlanmış olur.

# Author: Metin Yunus Kandemir

Reference:

Last updated