SSH Tüneli Kullanarak Firewall/IPS/CF Atlatma Çalışması

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara

Amaç:

Güvenlik araçlarının SSH tünel kullanılarak atlatılması.

Uygulama:

Sızma testi esnasında kurum ağından dışarıya yapılan kısıtlamalar en sık karşılaşılan durumlardan biridir. Böyle bir durumda belirli portlar haricindeki portlar erişime kapatılmıştır. Bunları aşmak için ise açık olan port üzerinden dışardaki bir sunucuya SSH tünnel kurulumu yapılabilir.

Diğer bir durum ise sızma testleri yapılırken genellikle testi yaptıran firma kendisine hangi IP adresi, IP adreslerinden denemeler yapıldığını bilmek ister. Bazı durumlarda Firewall/IPS/WAF sistemlerden bu IP adreslerine özel erişimler tanımlanması da gerekebilir.

Eğer sızma test ekibi birden fazla kişiden oluşuyorsa tek bir IP adresinden çıkış yapabilmek için ofis çıkış IP adresi ya da internet üzerinden alınacak VPS sunucular kullanılabilir. VPS sunucunun Linux olması durumunda birden fazla kişi bu sunucuya bağlanarak sızma testlerini gerçekleştirebilir.

Sunucu üzerinden iki farklı şekilde sızma testleri gerçekleştirilebilir. Bunlardan biri Linux sunucu üzerine VPN kurularak tüm sızma test uzmanları VPN'le bağlanıp sunucu üzerinden çıkış yaparak test gerçekleştirir.

VPN kurulumu ve yönetimi biraz daha zahmetli olduğu için diğer yöntem olan uzaktaki sunucuyu SOCKS Proxy olarak kullanma daha tercih edilebilir ya da SSH üzerinden kolay VPN kurulumu yapabilecek SSHuttle aracı kullanılabilir. Bu işlem çoğu zaman yasaklı sitelere girmek veya şirket networklerinden içerik filtreleme sistemlerini atlatma veya kablosuz ağlarda güvenli dolaşma için vs. kullanılır.

Bunun için proxy sunucumuz üzerinde SSH Port adresi 443 olarak set edildikten sonra yerel sistemde aşağıdaki komut ile uzak sisteme SSH tünel kurulması ve yereldeki TCP/8080 portuna gelen isteklerin sunucu IP adresiyle internete çıkartılması sağlanır.

root@pentest-pc:~# SSH -D 8080 username@proxysunucu -p 443

Fakat burada localdeki 8080 portu socks proxy desteği olan araçlarda set edilip kullanılabilir. Örneğin browserlarda(ie,firefox v.s) proxy ayarından socks proxy bölümü localhost:8080 yapılarak browser üzerinden hedefe proxy üzerinden gidebiliriz. Fakat bu işlem pentest işlemlerinde bize yetmeyebilir. Yani bazı hazır otomatize araçlar (zap,burb suite vs.) kullanmak istediğimizde karşımıza socks proxy desteğinin olmaması gibi sorunlar çıkabilir.

Bu durumda pentest yapacağımız araçların da kurduğumuz SSH proxy bağlantımız üzerinden geçmesini isteyebiliriz. Yani localimizin tüm trafiğini bu uzak proxy sunucuya secure olarak göndermek isteyebiliriz. Bunun için SSHuttle aracı kullanılabilir. Bu araç ile proxy sunucusunun istenilen portuna SSH bağlantınızı kurabilir ve tüm internet trafiğinizin bu proxy üzerinden gitmesini sağlayabilirsiniz. Böylece zap gibi güvenlik araçlarının socks proxy desteginin olmamasından dolayı yaşanabilecek zorluklar giderilebilir.

SSHuttle Kurulum:

SSHuttle indirmek için https://github.com/apenwarr/SSHuttle adresini ziyaret edebilirsiniz.

SSHhuttle aracının basit kullanımı aşağıdaki gibidir;

root@pentest-pc:/SSHuttle# ./SSHuttle -r username@proxysunucu:SSHportu 0.0.0.0/0 -vv

Sizden ilgili kullanıcıya ait parolayı isteyecek girdikten sonra tüm trafiğiniz artık proxy server üzerinden geçecektir. Bundan sonra pentest için kullanılan proxylik de yapan ZAP/Burb suite gibi uygulamalar rahatlıkla kullanılabilir.

Örneğin ZAP kullanmak için, browser üzerinde http proxy ayarı localhost:8080 olarak girildikten sonra ilgili siteler üzerinde gezinti yapılarak ZAP aracının üzerinden trafiğin geçmesi ve cache'lenmesi sağlanabilir.