Published

Tue 03 July 2018

←Home

TCP RELAY / PORT FORWARDING

Pentest işlemleri esnasında kimi zaman saldırgan makinelerden erişemediğimiz fakat ilgili makinelerden shell aldığımız vakit çalıştığını gördüğümüz çeşitli servis ve portlarla karşılılaşıyoruz. Böyle zamanlarda eğer ilgili servisleri sömürebileceğimiz yeterli bilgiye sahipsek gerek msfconsole gerekse de plink gibi uygulamalar aracılığıyla kendi üzerimize TCP paketleri yollayıp hedef sistemin ilgili portlarına yönlendiriyoruz. Hikaye ve tanım kısımları çok uzun tutmadan örnek bir senaryoya göz atalım; Çeşitli senaryolar dahilinde kullanım alanı oldukça genişleyebilecek bu tekniği bu makaledeki senaryo dahilinde düşük yetkilerle shell elde ettiğimiz bir makine üzerindeki Firewall yapılandırmasını atlatıp daha önce hatalı konfigürasyonlardan ve/veya yedek dosyalarından elde ettiğimiz mssql giriş bilgilerini kullanarak NT AUTHORITY\System yetkilerinde bir shell almak için kullanacağız.

Düşük Yetkili Shell:

Tcp Relay

İlgili makineden Alınan Netstat Çıktısı:

Tcp Relay

Bu çıktı üzerinde gözümüze 1433 numaralı portun dinlendiği çarpıyor. Normal koşullardan dışarıdan nmap atıldığında 1433 numaralı portun filtered olduğunu görüyoruz;

Tcp Relay

Buradan yaptığımız çıkarım doğrultusunda 1433 numaralı port üzerine gelen isteklerin firewall tarafından kısıtlandığı kanısına varıyoruz.

Tcp Relay

Local dinlenen portlar ve firewall kuralından bahsettiğimize göre işin uygulama kısmına geçebiliriz. Yazının başında da belirttiğim üzere elimizde mssql: sa kullanıcısının giriş bilgileri bulunmakta fakat dışarıdan ilgili servisin çalıştığı porta erişemiyoruz. Meterpreter'in modüllerinden biri olan portfwd modülünü kullanarak kendi local portumuza gönderdiğimiz isteği bağlantı üzerinden yönlendirerek hedef sistemin 1433 numaralı portuna erişeceğiz.

Parametre Açıklaması
add ekle
-l local port
-p yönlenecek port
-r yönlenecek host

Tcp Relay

Gerçekleşen olayı basit bir grafikle gösterecek olursak;

Tcp Relay

Yönlendirme işlemi ardından port tarama sonucu:

Tcp Relay

Administrator Yetkilerinde Ters Bağlant Eldesi:

Bu işlem için farklı yollar izlenebilir fakat benim favorim, xp_cmdshell ve empire powershell suite'nin kombinasyonu. İlk adım olarak, empire üzerinden bir listener oluşturup powershell kodunu üretiyorum;

Tcp Relay

powershell komutunun çok uzun olmasından ötürü tamamı yok.

Sırada ikinci adım va: xp_cmdshell özelliğini kullanmak. sqsh gibi uygulamar aracılığı ile xp_cmdshell özelliğini kullanabileceğiniz gibi msfconsole üzerinde de ilgili özelliği kullanabileceğimiz bir modül mevcut. Bu senaryo dahilinde msfconsole'u kullanalım.

Tcp Relay

Modülü çalıştırdığımızda: Bingo !

Tcp Relay

Tcp Relay

Makale Özeti:

  1. Hedef sistemde düşük yetkilerle bir shell ve sa kullanıcısının giriş bilgileri elimizde bulunuyordu.
  2. MSSQL servisinin portuna dışarıdan erişimler kesilmişti.
  3. Düşük yetkili shell üzerinden yönlendirme yaparak kendi üzerimize attığımız isteği oturum üzerinden geçirdik ve firewall'ı atlattık.
  4. Yönlendirme işlemi ardından, empire ve mssql_exec modüllerini kullanarak hedef üzerinden SA kullanıcısının yetkilerinde shell aldık (NT AUTHORITY\SYSTEM).

Empire için github linki: Empire

Go Top