netcat (a menudo abreviado como nc ) es una utilidad de redes informáticas para leer y escribir en conexiones de red mediante TCP o UDP . El comando está diseñado para ser un back-end confiable que se puede usar directamente o controlar fácilmente mediante otros programas y scripts. Al mismo tiempo, es una herramienta de investigación y depuración de redes con muchas funciones, ya que puede producir casi cualquier tipo de conexión que su usuario pueda necesitar y tiene varias capacidades integradas.
Es capaz de realizar escaneo de puertos , transferencia de archivos y escucha de puertos.
Las características del netcat original incluyen: [2]
Las reescrituras como las de GNU y OpenBSD admiten características adicionales. Por ejemplo, nc de OpenBSD admite TLS y netcat de GNU admite de forma nativa un modo de tunelización que admite UDP y TCP (lo que permite opcionalmente que uno se tunelice sobre el otro) en un solo comando, [3] mientras que otras versiones pueden requerir la canalización de datos desde una instancia de netcat a otra.
La versión original de netcat era un programa Unix . La última versión (1.10) se publicó en marzo de 1996. [4]
Existen varias implementaciones en sistemas POSIX , incluidas reescrituras desde cero como GNU netcat [5] o OpenBSD netcat, [6] el último de los cuales soporta IPv6 y TLS . La versión de OpenBSD ha sido portada a la base de FreeBSD , [7] Windows/Cygwin, [8] y Linux. [9] Mac OS X viene con netcat instalado a partir de OSX 10.13 o los usuarios pueden usar MacPorts para instalar una variante. [10]
Una versión DOS de netcat llamada NTOOL está incluida en el grupo de paquetes FreeDOS Networking . [11] Está basada en la pila WatTCP y tiene licencia de la Licencia Pública de la Unión Europea versión 1.1. [12]
Los puertos conocidos para sistemas integrados incluyen versiones para Windows CE (denominada "Netcat 4 wince" [13] ) o para el iPhone . [14]
BusyBox incluye por defecto una versión ligera de netcat.
Solaris 11 incluye la implementación de netcat basada en netcat de OpenBSD.
Socat [15] es una variante más compleja de netcat . Es más grande y más flexible y tiene más opciones que se deben configurar para una tarea determinada. El 1 de febrero de 2016, Santiago Zanella-Beguelin y Microsoft Vulnerability Research emitieron un aviso de seguridad sobre un parámetro compuesto Diffie-Hellman que se había codificado de forma rígida en la implementación OpenSSL de socat . [16] La improbabilidad de que se haya introducido de forma involuntaria un compuesto donde se requiere un número primo ha llevado a la sospecha de sabotaje para introducir una vulnerabilidad de software de puerta trasera . [17] Este error de socat afectó a la versión 1.7.3.0 y 2.0.0-b8 y se corrigió en las siguientes versiones 1.7.3.1 y 2.0.0-b9. [16]
Cryptcat [18] es una versión de netcat con capacidades de cifrado de transporte integradas.
A mediados de 2005, Nmap anunció otra encarnación de netcat llamada Ncat. [19] Presenta nuevas posibilidades como "Intermediación de conexión", redirección TCP/UDP, soporte para cliente y servidor SOCKS4, capacidad de "encadenar" procesos Ncat, proxy HTTP CONNECT (y encadenamiento de proxy), soporte para conexión/escucha SSL y filtrado de direcciones IP/conexión. Al igual que Nmap , Ncat es multiplataforma .
En algunos sistemas, las versiones modificadas o utilidades netcat similares se ejecutan con los nombres de comando nc
, ncat
, pnetcat
, socat
, sock
, socket
, sbd
.
Ncat es una herramienta similar a Netcat proporcionada por la suite Nmap . [19] "Si bien Ncat no está basado en ningún código del Netcat “tradicional” (ni de ninguna otra implementación), Ncat definitivamente se basa en Netcat en espíritu y funcionalidad". [20]
Las características de Ncat incluyen: capacidad de encadenar Ncats, redirigir puertos TCP y UDP a otros sitios, soporte SSL y conexiones proxy a través de servidores proxy SOCKS4 o HTTP (método CONNECT) (con autenticación proxy opcional también). [21]