Netcat 101: Remote Shells in Windows, HakTip 86
İçindekiler:
- Netcat Sözdizimi
- Port Tarama
- Netcat ile Dosya Gönderme
- Basit Bir Sohbet Sunucusu Oluşturma
- HTTP isteği gerçekleştirme
- Sonuç
Netcat (veya nc), TCP veya UDP protokollerini kullanarak ağ bağlantıları üzerinden veri okuyan ve yazan bir komut satırı yardımcı programıdır. Ağ ve sistem yöneticileri cephaneliğindeki en güçlü araçlardan biridir ve bir İsviçre ordu ağ araçları bıçağı olarak kabul edilir.
Netcat çapraz platformdur ve Linux, macOS, Windows ve BSD için kullanılabilir. Ağ bağlantılarında hata ayıklamak ve izlemek, açık bağlantı noktalarını taramak, veri aktarmak, proxy olarak ve daha fazlasını yapmak için Netcat'i kullanabilirsiniz. Netcat paketi macOS ve Ubuntu gibi popüler Linux dağıtımlarına önceden yüklenmiştir.
Netcat Sözdizimi
Netcat yardımcı programının en temel sözdizimi aşağıdaki formu alır:
nc host port
Ubuntu'da
netcat
veya
nc
. Her ikisi de Netcat'in openBSD sürümünün sembolleridir.
Varsayılan olarak, Netcat belirtilen ana makine ve bağlantı noktasına bir TCP bağlantısı başlatmayı dener. Bir UDP bağlantısı kurmak istiyorsanız,
-u
seçeneğini kullanın:
Port Tarama
Portları taramak, Netcat'in en yaygın kullanımlarından biridir. Tek bir bağlantı noktasını veya bağlantı noktası aralığını tarayabilirsiniz.
Örneğin, 20-80 aralığındaki açık portları taramak için aşağıdaki komutu kullanırsınız:
nc -z -v 10.10.8.8 20-80
-z
seçeneği
nc
, onlara herhangi bir veri göndermeden yalnızca açık bağlantı noktalarını taramasını ve daha ayrıntılı bilgi sağlamak için
-v
seçeneğini bildirir.
Çıktı şöyle görünecektir:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
Sunucu yazılımını ve sürümünü bulmak için Netcat'i de kullanabilirsiniz. Örneğin, varsayılan SSH bağlantı noktası 22'deki sunucuya bir “EXIT” komutu gönderirseniz:
echo "EXIT" | nc 10.10.8.8 22
Çıktı şöyle görünecektir:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.
UDP bağlantı noktalarını taramak için
-u
seçeneğini aşağıda gösterildiği gibi komuta eklemeniz yeterlidir:
nc -z -v -u 10.10.8.8 20-80
Çoğu durumda, Nmap karmaşık bağlantı noktası taraması için Netcat'ten daha iyi bir araçtır.
Netcat ile Dosya Gönderme
Netcat, temel bir istemci / sunucu modeli oluşturarak bir ana bilgisayardan diğerine veri aktarmak için kullanılabilir.
Bu, Netcat'i alıcı ana bilgisayardaki belirli bir bağlantı noktasını (
-l
seçeneğini kullanarak) dinleyecek şekilde ayarlayıp diğer ana bilgisayardan düzenli bir TCP bağlantısı kurarak ve dosyayı üzerine göndererek çalışır.
Alıcıda, gelen bağlantı için 5555 numaralı bağlantı noktasını açacak ve çıktıyı dosyaya yönlendirecek olan aşağıdaki komutu çalıştırın:
nc -l 5555 > file_name
Gönderen ana bilgisayardan alıcı ana bilgisayara bağlanın ve dosyayı gönderin:
nc receiving.host.com 5555 < file_name
Bir dizini aktarmak için, kaynak ana bilgisayardaki dizini arşivlemek ve hedef ana bilgisayardaki arşivi çıkarmak için tar kullanabilirsiniz.
Alıcı ana bilgisayarda Netcat aracını, 5555 numaralı bağlantı noktasında gelen bir bağlantıyı dinleyecek şekilde ayarlayın. Gelen veriler, arşivi çıkaracak tar komutuna bağlanır:
nc -l 5555 | tar xzvf -
Gönderen ana bilgisayarda dizini paketleyin ve alıcı ana makinedeki dinleme
nc
işlemine bağlanarak verileri gönderin:
tar czvf - /path/to/dir | nc receiving.host.com 5555
Her iki uçta da aktarım ilerlemesini izleyebilirsiniz. Tamamlandığında, bağlantıyı kapatmak için
CTRL+C
basın.
Basit Bir Sohbet Sunucusu Oluşturma
İki veya daha fazla ana bilgisayar arasında çevrimiçi sohbet oluşturma prosedürü, dosya aktarımı ile aynıdır.
İlk ana bilgisayarda 5555 numaralı bağlantı noktasını dinlemek için bir Netcat işlemi başlatın:
nc -l 5555
İkinci ana bilgisayardan, dinleme bağlantı noktasına bağlanmak için aşağıdaki komutu çalıştırın:
nc first.host.com 5555
Şimdi bir mesaj yazar ve
ENTER
tuşuna basarsanız, her iki ana bilgisayarda da gösterilir.
Bağlantıyı kapatmak için
CTRL+C
.
HTTP isteği gerçekleştirme
Kıvrılma gibi HTTP istekleri için çok daha iyi araçlar olmasına rağmen, uzak sunuculara çeşitli istekler göndermek için Netcat'i de kullanabilirsiniz.
Örneğin, Netcat man sayfasını OpenBSD web sitesinden almak için şunu yazarsınız:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
HTTP üstbilgileri ve HTML kodunu içeren tam yanıt uçbirime yazdırılacaktır.
Sonuç
Bu öğreticide, TCP ve UDP bağlantılarını kurmak ve sınamak için Netcat yardımcı programını nasıl kullanacağınızı öğrendiniz.
Daha fazla bilgi için Netcat kılavuz sayfasını ziyaret edin ve Netcat komutunun diğer tüm güçlü seçeneklerini okuyun.
netcat terminaliÖrneklerle Linux kesme komutu
Kes, belirtilen dosyalardan veya borulu verilerden satır parçalarını kesmenizi ve sonucu standart çıktıya yazdırmanızı sağlayan bir komut satırı yardımcı programıdır. Bu öğreticide, pratik örnekler ve en yaygın kesim seçeneklerinin ayrıntılı açıklamaları ile Linux kesim komutunun nasıl kullanılacağını göstereceğiz.
Örneklerle Linux tarih komutu
Date komutu sistem tarihini görüntüler veya ayarlar. En çok tarih ve saati farklı formatlarda yazdırmak ve gelecekteki ve geçmiş tarihleri hesaplamak için kullanılır.
Örneklerle Linux tee komutu
Tee komutu standart girdiden okur ve aynı anda hem standart çıktıya hem de bir veya daha fazla dosyaya yazar. Tee en yaygın olarak borular aracılığıyla diğer komutlarla birlikte kullanılır.







