nc – Unix, Linux Command


nc- arbitrary TCP and UDP connections and listens

SYNOPSIS

nc
.Bk -words]]
.Ek

DESCRIPTION

Thenc(or netcat)utility is used for just about anything under the sun involving TCPor UDP.It can open TCP connections, send UDP packets, listen on arbitraryTCP and UDP ports, do port scanning, and deal with both IPv4 andIPv6.,Unliketelnet(1), ncscripts muy bien, y separa los mensajes de error en lugar de enviarlos a la salida estándar, astelnet (1) lo hace con algunos.

los usos comunes incluyen:

  • proxies TCP simples
  • clientes y servidores HTTP basados en shell-script
  • prueba de demonio de red
  • A SOCKS o HTTP ProxyCommand forssh(1)
  • y mucho, mucho más

las opciones son las siguientes:

tag description
-4 forcesncto use direcciones IPv4 solamente.,
-6 Forcesncto use direcciones IPv6 solamente.
-D Habilitar la depuración en el zócalo.
-d no intente leer de la entrada estándar.
-h Imprime outnchelp.
-i intervalo
Especifica un retardo de tiempo de intervalo entre las líneas de texto enviados y recibidos.También causa un tiempo de retardo entre las conexiones a múltiples puertos.
– K Forcesnc to stay listening for another connection after its current connection is completed.,Es un error usar esta opción sin la opción-L.
– l se usa para especificar que NC debe escuchar una conexión entrante en lugar de iniciar una conexión a un control remoto host.It es un error usar esta opción junto con las opciones-p,-s o-Z.Además, los tiempos de espera especificados con la opción-w se ignoran.
– n no realice búsquedas de DNS o servicios en direcciones,nombres de host o puertos especificados.,
-p source_port
Especifica el origen de portncshould uso, sujetos a privilegio restricciones y disponibilidad.Es un error utilizar esta opción junto con la opción-l.
– R especifica que los puertos de origen y/o destino deben elegirse aleatoriamente en lugar de secuencialmente dentro de un rango o en el orden en que el sistema los asigna.
– s habilita la opción de firma RFC 2385 TCP MD5.,
-s source_ip_address
Especifica la dirección IP de la interfaz que se utiliza para enviar los paquetes.Es un error utilizar esta opción junto con la opción-l.
-T ToS
Especifica el Tipo de Servicio IP (ToS) para la conexión.Los valores válidos son los tokens «lowdelay»,»throughput»,»reliability», o un valor hexadecimal de 8 bits precedido por «0x».
– t Causesncto send RFC 854 DON’T and WON responses to RFC 854 DO and WILL requests.,Esto hace posible el uso de sesiones de script telnet.
-U Especifica el uso de los Sockets de Dominio Unix.
– u Use UDP en lugar de la opción predeterminada de TCP.
– v tiene una salida más detallada.
– W timeout
si una conexión y stdin están inactivas durante más de segundos de tiempo, entonces la conexión se cierra silenciosamente.La bandera-w no tiene efecto sobre la opción-l, es decir, NC escuchará para siempre una conexión, con o sin la bandera-W.El valor predeterminado es no timeout.,
-X proxy_version
las Solicitudes thatncshould utilizar el protocolo especificado cuando se habla con el servidor proxy.Los protocolos soportados son»4″(SOCKS V.4),»5″(SOCKS V. 5)y «connect» (proxy HTTPS).Si no se especifica el Protocolo, se usa SOCKS versión 5.
-x proxy_address
las Solicitudes thatncshould conectarse a hostnameusing un proxy en proxy_addressand puerto.Si no se especifica portis, se utiliza el puerto conocido para el protocolo proxy (1080 para SOCKS, 3128 para HTTPS).,
– z especifica que NC solo debe buscar demonios de escucha, sin enviar ningún dato a them.It es un error usar esta opción junto con la opción-l.

nombre de host puede ser una dirección IP numérica o un nombre de host simbólico(a menos que se dé la opción-n).en general, se debe especificar un nombre de host,a menos que se dé la opción-l(en cuyo caso se utilizará el host local).

el puerto puede ser enteros simples o rangos.Los rangos están en la forma nn-mm.,En general, se debe especificar un puerto de destino, a menos que se dé la opción-U(en cuyo caso se debe especificar un socket).

modelo cliente / servidor

es bastante simple construir un modelo cliente / servidor muy básico usando NC.En una consola, startnclistening en un puerto específico para una conexión.Por ejemplo:

nc nc-l 1234

ncis ahora escucha en el puerto 1234 para una conexión.En una segunda consola(o en una segunda máquina),conéctese a la máquina y al puerto en el que se está escuchando:

nc nc 127.0.0.1 1234

Ahora debería haber una conexión entre los puertos.,Cualquier cosa escrita en la segunda consola será concatenada a la primera, y viceversa.Después de que la conexión se ha configurado,ncdoes realmente no importa qué lado se está utilizando como un «servidor» y qué lado se está utilizando como un «cliente».La conexión puede ser terminada usando un EOF (‘^D’).

transferencia de datos

el ejemplo de la sección anterior se puede ampliar para construir el modelo de transferencia de datos abasic.Cualquier entrada de información en un extremo de la conexión se enviará al otro extremo, y la entrada y la salida se pueden capturar fácilmente para simular la transferencia de archivos.,

comience usando ncpara escuchar en un puerto específico, con la salida capturada en un archivo:

nc nc-l 1234 > filename.out

Usando una segunda máquina, conéctese al proceso listeningnc, alimentándolo con el archivo que se va a transferir:

nc nc host.example.com 1234 < filename.in

después de transferir el archivo, la conexión se cerrará automáticamente.

hablar con los servidores

A veces es útil hablar con los servidores»a mano» en lugar de a través de una interfaz de usuario.,Puede ayudar en la solución de problemas,cuando podría ser necesario verificar qué datos envía un servidor en respuesta a los comandos emitidos por el cliente.Por ejemplo, para recuperar la página de inicio de un sitio web:

$ echo -n "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80

tenga en cuenta que esto también muestra los encabezados enviados por el servidor web.Se pueden filtrar, utilizando una herramienta como assed (1),si es necesario.

se pueden crear ejemplos más complicados cuando el Usuario conoce el formato de las solicitudes requeridas por el servidor.,Como otro ejemplo, un correo electrónico puede ser enviado a un servidor SMTP usando:

exploración de puertos

puede ser útil saber qué puertos están abiertos y ejecutando servicios en una máquina de destino.El indicador-z se puede usar para informar a CNT de puertos abiertos, en lugar de iniciar una conexión.Por ejemplo:

el rango de puertos se especificó para limitar la búsqueda a los puertos 20 – 30.

alternativamente, podría ser útil saber qué software de servidor se está ejecutando y qué versiones.Esta información a menudo está contenida en los banners de saludo.,Para recuperarlos, es necesario primero hacer una conexión y luego romper la conexión cuando se haya recuperado el banner.Esto se puede lograr especificando un pequeño tiempo de espera con el indicador-w, O tal vez emitiendo un comando «QUIT» al servidor:

ejemplos

abrir una conexión TCP al puerto 42 de host.example.com, usando el puerto 31337 como el puerto fuente, con un tiempo de espera de 5 segundos:

nc nc-p 31337-w 5 host.example.com 42

abrir una conexión UDP al puerto 53 de host.example.com:

nc nc-u host.example.com 53

abra una conexión TCP al puerto 42 del host.ejemplo.,com usando 10.1.2.3 como theIP para el extremo local de la conexión:

nc nc-s 10.1.2.3 host.example.com 42

crear y escuchar en un Socket de dominio Unix:

nc nc-lU/var/tmp / dsocket

conectarse al puerto 42 de host.example.com a través de un proxy HTTP en 10.2.3.4, puerto 8080.Este ejemplo también podría ser usado por SSH(1); vea el ProxyCommanddirective inssh_config(5) para más información.

$ nc -x10.2.3.4:8080 -Xconnect host.example.com 42

VÉASE TAMBIÉN

ssh(1)

AUTORES

implementación Original por *el Hobbit*<[email protected]>.,
reescrito con soporte IPv6 por
.Un Eric Jackson Aq [email protected] .

advertencias

las exploraciones de puertos UDP siempre tendrán éxito (es decir,reportarán el puerto como abierto), haciendo que la combinación de banderas-uz sea relativamente inútil.

Anuncios

Author: admin

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *