Web shell Üzerinden Default RDP Portunu Değiştirerek Firewall Atlatma

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara

Amaç:

Sistemlere shell atıldıktan sonra Firewall ile giriş çıkış için yazılmış kuralları bypass etmek.

Lab Senaryosu: Web uygulaması üzerinden, SQL'i açıklığı ile sisteme sızılarak, webshell ile sistem üzerinde kontrol sağlanmış fakat sistemin önünde bulunan firewall incoming trafikte, 80 ve 22 dışındaki portları engellendiği belirlenmiş. Dolayısıyla 3389 üzerinde çalışan RDP'ye erişmemiz, sunucu üzerinde bu port açık olsada mümkün olmaz. Firewall'u bypass etmek için burada RDP TerminalService hizmet,i default 3389 üzerinden 22 üzerine alınmıştır. Öncesinde 22 portunda çalışan Ftp uygulaması, webshell üzerinden durdurulur.

Araç:

  • Windows komutları

Adımlar:

  • SQL injection açıklığı üzerinden hedef sisteme, webshell atıldıktan sonraki adımlar anlatılacaktır. Webshell ile windows bir sunucu olan web sunucu üzerinde, komut satırı seviyesinde erişimimiz olduğu için webshell üzerinden verdiğimiz komutlar, windows shell'inde çalışacaktır. Hangi port üzerinde hangi process çalıştığını görmek için netstat -anb -p tcp komutu kullanılabilir. Tasklist komutu ile çalışan task'lar listelenebilir.
  • Taskkill komutu ile 22. portta çalışan filezillaftp.exe uygulaması durduruldu ve port 22 boşa çekildi.

İlgili komut şu şekilde:

taskkill /F /T /IM filezillaftp.exe

Burada /T ile ilişkili tüm processleri öldürmesini istiyoruz, /F ile öldürme işlemine zorlanıyor.

  • Ardından boşa çekilen 22 portu üzerinde, RDP servisini(TerminalService) çalıştırmalıydık. Bu işlemi, windows komut satırından regedit dosyasına müdahale ederek gerçekleştirilebilir.

İlgili komut şu şekilde:

REG ADD "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x16 /f

Burada 0x16 , 22 decimal değerinin hexadecimal karşılığıdır.

  • Bu inputu regedit dosyasına yazdırdıktan sonra TerminalService'in 22. portta çalışması için bu servisi durdurup tekrar başlatmak gerekiyor, bunun içinde;

net stop TerminalService /y ve net start TerminalService /y komutlarını kullanılabilir. Böylece 22 portu üzerinden sisteme RDP ile eriştik, daha öncesinde webshell üzerinden oluşturulan kullanıcı adı ve şifre ile sisteme login olunabilir.

  • Sistemde kullanıcı oluşturup administrators grubuna ilave etmek için aşağıdaki komutlar kullanılabilir.
Net user bga gizlipass123 /add
Net localgroup administrators bga /add