Netcat
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 11 de junio de 2015; las comprobaciones requieren
15 ediciones .
netcat ( inglés net network + cat ) es una utilidad de Unix que permite establecer conexiones TCP y UDP, recibir datos desde allí y transmitirlos. A pesar de su utilidad y sencillez, esta utilidad no está incluida en ningún estándar (por ejemplo, POSIX ).
Acción
En un caso simple, NetCat se llama como:
puerto
de host nc
Esto da como resultado que se cree una conexión TCP con las credenciales especificadas y que se acorte la entrada estándar a la salida de la red y viceversa, la salida estándar a la entrada de la red. Esta funcionalidad recuerda al comando cat , que llevó a elegir el nombre "netcat". Si la conexión falla, el programa imprime un mensaje de error en stderr .
La utilidad reconoce las siguientes claves:
-h
|
Referencia; no se hace nada
|
-v
|
Diagnósticos adicionales (detallado)
|
-o archivo_salida
|
Volcados de datos de
salida |
-i numero
|
Retraso entre los datos enviados (en segundos )
|
-t
|
compatible con telnet
|
-z
|
No enviar datos (escaneo de puertos)
|
-tu
|
Conéctese a través de UDP (en lugar de TCP)
|
-l
|
Modo pasivo (escucha en un puerto)
|
-p número
|
* Número de puerto local (para -l)
|
-s anfitrión
|
Usar la dirección IP local ("propia") especificada
|
-norte
|
Deshabilite las búsquedas de DNS y número de puerto en /etc/services
|
-w número
|
Establecer tiempo de espera (en segundos)
|
-q número
|
Establecer el tiempo de espera después de EOF en la entrada (en segundos) **
|
-e ejecutable
|
! Ejecute el programa especificado para comunicarse con la red (en lugar de la entrada y salida estándar)
|
comando -c
|
! Lo mismo, como comando para /bin/sh
|
-k
|
Continúe escuchando otras conexiones después de que la conexión actual haya terminado.
|
! - requiere un ensamblaje especial, deshabilitado en los archivos ejecutables proporcionados (crea fácilmente una vulnerabilidad de red).
* - en algunas implementaciones, el número de puerto para escuchar se establece a través de -l y falta el modificador -p.
** - no disponible en todas las versiones.
Opciones:
- -d. Disponible solo en Windows. Hace que Netcat sea invisible. Puede ejecutar el programa en modo de escucha sin abrir la ventana del modo MS-DOS. También permite a los crackers enmascarar mejor un programa en ejecución de los administradores del sistema.
- -e <comando>. Si Netcat se compila con la opción GAPING_SECURITY_HOLE, un programa puede ejecutar un <comando> siempre que alguien establezca una conexión en el puerto de escucha, siempre que el cliente de Netcat redirija la E/S al programa en ejecución. Usar esta opción es bastante peligroso si no comprende completamente lo que está haciendo. Esta es una manera rápida y fácil de abrir una "puerta trasera" a su sistema. A continuación se dará un ejemplo.
- -i <segundos>. Intervalo de retraso entre transferencias de fragmentos de datos. Si se pasa un archivo a través de la canalización de Netcat, el programa espera <segundos> segundos antes de pasar la siguiente línea como entrada. Si usa Netcat para administrar varios puertos en el mismo host, Netcat espera <segundo> segundos antes de conectarse al siguiente puerto que aparece en la línea. Esto hace posible enmascarar ligeramente una transferencia de datos o un ataque al servicio del sistema, y permite enmascarar los escaneos de puertos de algún software de análisis de intrusión y de los administradores del sistema.
- -g <lista-de-rutas>. El uso de esta opción puede ser bastante no trivial. Netcat admite la capacidad de enmascarar el origen del enrutamiento (discutido con más detalle en Make a Friend: IP Address Spoofing). Puede especificar hasta ocho opciones -g en la línea de comando para obligar a Netcat a enrutar el tráfico a través de direcciones IP específicas, que normalmente se usan si está falsificando la dirección IP de origen de la que proviene su tráfico (por ejemplo, para intentar eludir un cortafuegos o comprobando los hosts permitidos). Al usar este truco en la máquina desde la que está controlando el proceso, puede hacer que los paquetes transmitidos regresen a la dirección que especifique en lugar de reenviarlos en la dirección real. Tenga en cuenta que esto generalmente no funciona porque la mayoría de los enrutadores ignoran las opciones de fuente de enrutamiento y muchos filtros y firewalls registran tales intentos.
- -G <puntero de salto>. Esta opción le permite modificar la lista de enrutamiento especificada por la opción -g para determinar a qué dirección saltar. Dado que una dirección IP es un número de cuatro bytes, este argumento siempre es un múltiplo de cuatro, donde 4 es la primera dirección IP de la lista, 8 es la segunda y así sucesivamente. Esta opción generalmente se usa si está tratando de falsificar una lista de enrutamiento para que parezca que los paquetes provienen de otro lugar. Al ignorar las dos primeras direcciones IP en la lista especificada por la opción -g y especificar el número 12 en la opción -G, tendrá paquetes enrutados directamente a la tercera dirección en su lista de enrutamiento. El contenido real del paquete seguirá conteniendo las direcciones IP que se omitieron, lo que hace que parezca que los paquetes provienen de una dirección cuando en realidad provienen de otro lugar. Esta técnica le permite ocultar de dónde vino al host cuando usa la suplantación de direcciones o una lista de enrutamiento, pero no se garantiza que pueda obtener una respuesta, ya que se enrutará de regreso a través de sus direcciones IP falsificadas.
- -l. Esta opción cambia el modo de "escucha" de Netcat. Se usa junto con la opción -p para vincular Netcat a un puerto TCP específico y escuchar las conexiones entrantes. Para usar el puerto UDP, use la opción -u.
- -l Disponible solo en la versión de Windows del programa, una opción de modo de "escucha" más restrictiva que -l. Le dice al programa que se reinicie con los mismos parámetros si la conexión estaba cerrada. Esto le da a Netcat la capacidad de monitorear conexiones posteriores sin la intervención del usuario, cada vez que finaliza la conexión inicial. Al igual que con la opción -l, esta opción debe usarse junto con la opción -p.
- -n le dice a Netcat que no busque ningún host. Si usa esta opción, no debe proporcionar ningún nombre de host como argumento.
- -o <archivo hexadecimal> hace que se genere un volcado hexadecimal de los datos y se almacene en un archivo hexadecimal. El comando nc -o hexfile escribe datos en ambas direcciones y comienza cada línea con < o > para indicar entrada o salida, respectivamente. Para escribir solo datos entrantes en un archivo, debe usar el comando nc -o <hexfile. En consecuencia, para escribir solo datos salientes, utilice el comando nc -o >hexfile.
- -p <puerto>. Esta opción le permite especificar el número de puerto local que debe usar Netcat. Este argumento es necesario si utiliza las opciones -l o -L para el modo de escucha. Si no se especifica esta opción para una conexión saliente, Netcat utilizará el puerto definido para ello en el sistema, que es lo que hacen la mayoría de los clientes TCP o UDP. Tenga en cuenta que en los sistemas Unix, solo el usuario raíz puede definir números de puerto inferiores a 1024.
- -r. Netcat elige los puertos locales y remotos al azar. Esta opción es útil cuando se usa Netcat para obtener información sobre una amplia gama de números de puerto en un sistema y presentar la situación de una manera que se parece menos a un escaneo de puertos. Si esta característica se usa junto con la opción -i y en un intervalo lo suficientemente grande, entonces es probable que la exploración de puertos no se detecte sin un examen cuidadoso del registro del sistema por parte del administrador.
- -s Especifica la dirección IP saliente que utiliza Netcat para establecer una conexión. Esta opción permite a los piratas informáticos realizar algunos trucos ingeniosos: ocultar su dirección IP o falsificar algo más. Pero para que la información se envíe a la dirección falsificada, deben usar la opción de pedido de enrutamiento -g. Además, al usar el modo de escucha, puede enlazar repetidamente a un servicio ya escuchado. Todos los servicios TCP y UDP funcionan en puertos, pero no todos funcionan en una dirección IP específica. Muchos servicios escuchan en todas las interfaces disponibles de forma predeterminada. Syslog, por ejemplo, escucha en el puerto UDP 514 para leer el tráfico de syslog. Al mismo tiempo, si comienza a escuchar Netcat en el puerto 514 y usa la opción -s para determinar la dirección IP saliente, cualquier tráfico que pase a través de la dirección IP que especifique se enrutará a través de Netcat en primer lugar. ¿Por qué? Si un socket especifica tanto una dirección IP como un número de puerto, eso especifica su prioridad sobre un socket que no especifica ambos. Más adelante hablaremos de esto con más detalle y demostraremos cómo determinar qué servicio en el sistema se puede predefinir.
- -t. Compilado con la opción TELNET, Netcat puede comunicarse con el servidor telnet de acuerdo con las convenciones establecidas al responder con información vacía, pero le permite ingresar información en respuesta a un aviso de inicio de sesión cuando usa una conexión TCP en el puerto 23.
- -u. La opción le dice al programa que use el protocolo UDP en lugar de TCP, trabajando tanto en modo de escucha como de cliente.
- -v determina qué tan detallado le informa el programa sobre lo que está haciendo. Si no usa la opción -v, Netcat solo genera la información recibida. Si la opción -v se usa una vez, podrá averiguar a qué dirección se conectó o qué dirección se está monitoreando en caso de que haya algún problema. Reutilizar la opción le permitirá saber cuántos datos se enviaron o recibieron antes de que finalizara la conexión.
- -w <segundos> Especifica la cantidad de tiempo que Netcat espera una conexión. Esta opción también le dice cuánto tiempo debe esperar después de recibir una señal EOF (fin de archivo) en la entrada estándar antes de interrumpir la conexión y salir. Esto es especialmente importante si está enviando comandos a un servidor remoto utilizando Netcat y espera recibir una gran cantidad de información (por ejemplo, al enviar un comando a un servidor web HTTP para descargar un archivo grande).
- -z. Si solo le preocupa determinar qué puerto está abierto, debe usar nmap (consulte la lección Escáneres de puertos). Pero esta opción le dice a Netcat que envíe suficientes datos para buscar puertos abiertos en el rango de valores dado. [una]
Aplicación
- Pruebas y trabajos manuales con protocolos de red ;
- Comprobación de la disponibilidad de puertos;
- Interfaz de red para el shell de UNIX (sin embargo, algunas versiones de bash pueden conectarse a TCP y UDP por sí mismas);
- (Con el interruptor -l) cree servidores simples, generalmente de prueba;
- (Compartido con inetd ) reenvío de puertos.
Ejemplos
Bajo Windows:
Ejecute CMD, vaya a la carpeta con netCat (por ejemplo, C:\netcat\)
Para crear un chat entre anfitriones
En una máquina (10.10.10.1), abra el puerto 1234 para escuchar: nc -l -p 1234 En otra máquina, conéctese al host 10.10.10.1 en el puerto 1234 nc 10.10.10.1 1234
Enviando texto con Enter. Romper conexión CTRL+C
Para ubuntu , elimine "-p" de los interruptores.
Mostrar una página HTML de prueba a un cliente con un navegador normal con un comando (puerto 8080):
(echo -e "HTTP/1.1 200 OK\nContent-Type: text/html\n\n Hello World";) | nc -vv -l -p 8080
Transferir un archivo a un cliente con un navegador normal en un solo comando (puerto 8080):
(echo -e "HTTP/1.1 200 OK\nContent-Disposition: attachment; filename=целевое-имя-которое-увидит-клиент\nContent-Type: application/octet-stream\nConnection: close\n"; cat имя-файла-на-диске ) | nc -vv -l -p 8080
Transferencia del directorio actual con todos los archivos y subdirectorios a través de Internet o Intranet, puerto 3333, con descompresión al directorio actual:
nc -l -p 3333 | tar xv (выполняется на приёмной стороне)
tar cv * | nc -q 0 ip.адрес.приёмной.стороны 3333 (выполняется на передающей стороне)
Nombres de equipos
nc , netcat , ncat , pnetcat (en diferentes sistemas ).
Véase también
Notas
- ↑ fker. todo sobre NETCAT (inglés) . ANTICHAT - Comunidad de seguridad en línea (23 de febrero de 2009). Consultado el 5 de diciembre de 2019. Archivado desde el original el 5 de diciembre de 2019.
Enlaces
Comandos Unix |
---|
|
GNU Coreutils |
---|
Utilidades de archivo |
|
---|
Utilidades de texto |
|
---|
Utilidades de shell |
|
---|
|