1 Haziran 2020 Pazartesi

nc komutu - netcat

Giriş
nc netcat anlamına gelir. Aklımda hep netchat olarak kalıyor :) Bu komuta alternatif olarak socat komutu da kullanılabilir.

Bazı yerlerde nc yerine ncat komutu da kullanılıyor. İkisi de aynı şey

Windows Kurulum
https://nmap.org/dist/ adresinden setup.exe indirilir ve kurulur. Bundan sonra komut satırıından ncat kullanılabilir

Sürümler
İki tane farklı netcat sürümü var.
1. netcat-traditional - Eski olan
2. netcat-openbsd - Yeni olan
Farkları şöyle
$ apt-cache show netcat-traditional 
...
 This is the "classic" netcat, written by *Hobbit*. It lacks many
 features found in netcat-openbsd.
...
$ apt-cache show netcat-openbsd 
...
 This package contains the OpenBSD rewrite of netcat, including support
 for IPv6, proxies, and Unix sockets.
...
Kullanım
Bir sunucuya bağlanmak için şöyle yaparız.
netcat localhost 4444
-4 seçeneği
IPv4 kullanmak istediğimizi belirtir
Örnek
Sunucuya IPv4 ile bağlanmak için şöyle yaparız
nc -4 localhost 8080
-l seçeneği - listen mode, for inbound connects
Sunucu açar. Eğer protokolü belirtmezsek TCP sunucudur. Şöyle yaparız.
netcat -l localhost 8087 <<< '"status":"okay", "id":"game-23", "letter":2'
-n seçeneği - numeric-only IP addresses, no DNS
DNS kullanmamayı sağlar. Şöyle yaparız.
nc -n localhost 9999
-p seçeneği -  local port number
UDP sunucusu açmak için şöyle yaparız.
nc -l -u -p 5006
-u seçeneği - UDP mode
Örnek
UDP sunucusu açmak için şöyle yaparız.
nc -l -u -p 5006
Örnek
UDP paketi göndermek için şöyle yaparız.
echo -n 1234567890| nc -u 224.4.4.4 1234
-w seçeneği - timeout for connects and final net reads

timeout süresini belirtir. Şöyle yaparız.
nc -w 1 -zv host1
-v seçeneği
verbose (daha detaylı) gösterir. Açıklaması şöyle.
enables verbose mode

-z seçeneği - port scanning içindir
Karşı sunucudaki portları taramak için kullanılır. Sadece bağlantı açar ve veri göndermez. Yani I/O yapmaz. Açıklaması şöyle.
sets nc to simply scan for listening daemons, without actually sending any data to them
Bir başka açıklama şöyle.
It may be useful to know which ports are open and running services on a target machine.  The -z flag can be used to tell nc to report open ports, rather than initiate a connection. Usually it's useful to turn on verbose output to stderr by use this option in conjunction with -v option.

 For example:

       $ nc -zv host.example.com 20-30
       Connection to host.example.com 22 port [tcp/ssh] succeeded!
       Connection to host.example.com 25 port [tcp/smtp] succeeded!

 The port range was specified to limit the search to ports 20 - 30, and is scanned by increasing order (unless the -r flag is set).

 You can also specify a list of ports to scan, for example:

       $ nc -zv host.example.com http 20 22-23
       nc: connect to host.example.com 80 (tcp) failed: Connection refused
       nc: connect to host.example.com 20 (tcp) failed: Connection refused
       Connection to host.example.com port [tcp/ssh] succeeded!
       nc: connect to host.example.com 23 (tcp) failed: Connection refused

 The ports are scanned by the order you given (unless the -r flag is set).

 Alternatively, it might be useful to know which server software is running, and which versions.  This information is often contained within the greeting banners.  In order to retrieve these, it is necessary to first make a connection, and then break the connection when the banner has been retrieved.  This can be accomplished by specifying a small timeout with the -w flag, or perhaps by issuing a "QUIT" command to the server:

       $ echo "QUIT" | nc host.example.com 20-30
       SSH-1.99-OpenSSH_3.6.1p2
       Protocol mismatch.
       220 host.example.com IMS SMTP Receiver Version 0.84 Ready
Örnek
Şöyle yaparız.
nc -zv kafka02 6667

Hiç yorum yok:

Yorum Gönder