Android

Örneklerle Netcat (nc) komutu

Netcat 101: Remote Shells in Windows, HakTip 86

Netcat 101: Remote Shells in Windows, HakTip 86

İçindekiler:

Anonim

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:

nc -u host port

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