| netcat | |
|---|---|
The netcat command | |
| Original author | *Hobbit* |
| Developer | Avian Research |
| Initial release | October 28, 1995; 30 years ago (1995-10-28)[1] |
| Final release | 1.10 / March 1996; 29 years ago (1996-03) |
| Operating system | Unix andUnix-like,DOS,Microsoft Windows,Windows CE |
| Type | Networkutility |
| License | Original version: custom,permissive license GNU version:GPL OpenBSD version:BSD |
| Website | nc110 |
netcat (often abbreviated tonc) is a computer networking utility for reading from and writing to network connections usingTCP orUDP. Thecommand is designed to be a dependableback-end that can be used directly or easily driven by other programs and scripts. At the same time, it is a feature-rich network debugging and investigation tool, since it can produce almost any kind of connection its user could need and has a number of built-in capabilities.
It is able to performport scanning,file transferring and port listening.
The original netcat's features include:[2]
Rewrites like GNU's and OpenBSD's support additional features. For example, OpenBSD's nc supportsTLS, and GNU netcat natively supports atunneling mode supporting UDP and TCP (optionally allowing one to be tunneled over the other) in a single command,[3] where other versions may require piping data from one netcat instance to another.
The original version of netcat was aUnix program. The last version (1.10) was released in March 1996.[4]
There are several implementations onPOSIX systems, including rewrites from scratch likeGNU netcat[5] orOpenBSD netcat,[6]the latter of which supports IPv6 andTLS. The OpenBSD version has been ported to theFreeBSD base,[7]Windows/Cygwin,[8]and Linux.[9]Mac OS X comes with netcat installed as of OSX 10.13 or users can useMacPorts to install a variant.[10]
ADOS version ofnetcat calledNTOOL is included in theFreeDOS Package groupNetworking.[11] It is based on the WatTCP stack and licensed under theEuropean Union Public Licence Version 1.1.[12]
Known ports for embedded systems includes versions forWindows CE (named "Netcat 4 wince"[13]) or for theiPhone.[14]
BusyBox includes by default a lightweight version of netcat named mini-netcat.[15] Another version with more features, named bloaty nc, is also available.[16]
Solaris 11 includes netcat implementation based on OpenBSD netcat.[17]
Socat[18] is a more complex variant ofnetcat. It is larger and more flexible and has more options that must be configured for a given task. On February 1, 2016,Santiago Zanella-Beguelin andMicrosoft Vulnerability Research issued a security advisory regarding acompositeDiffie-Hellman parameter which had beenhard-coded into theOpenSSL implementation ofsocat.[19] The implausibility that a composite might have been unintentionally introduced where aprime number is required has led to the suspicion ofsabotage to introduce abackdoorsoftware vulnerability.[20] This socat bug affected version 1.7.3.0 and 2.0.0-b8 it was corrected in following releases from 1.7.3.1 and 2.0.0-b9.[19]
Cryptcat[21] is a version ofnetcat with integrated transport encryption capabilities.
In the middle of 2005,Nmap announced another netcat incarnation called Ncat.[22] It features new possibilities such as "Connection Brokering", TCP/UDP Redirection, SOCKS4 client and server support, ability to "Chain" Ncat processes, HTTP CONNECT proxying (and proxy chaining), SSL connect/listen support and IP address/connection filtering. LikeNmap, Ncat iscross-platform.
On some systems, modified versions or similar netcat utilities go by the command name(s)nc,ncat,pnetcat,socat,sock,socket,sbd.
Ncat is a similar tool to netcat provided byNmap suite.[22]"While Ncat isn't built on any code from the “traditional” Netcat (or any other implementation), Ncat is most definitely based on Netcat in spirit and functionality."[23]
Ncat features includes: ability to chain Ncats together, redirect both TCP and UDP ports to other sites, SSL support, and proxy connections viaSOCKS4 or HTTP (CONNECT method) proxies (with optional proxy authentication as well).[24]
nc(1) – Linux User CommandsManual