Use NetCat para transferir archivos

Use NetCat para transferir archivos

Este tutorial ofrece una explicación fácil de cómo usar NetCat para transferir archivos entre dispositivos.

NetCat es una herramienta de red de línea de comandos utilizada para establecer conexiones TCP/UDP y análisis de red. Las características de NetCat incluyen:

  • Conexiones salientes e entrantes, TCP o UDP, hacia o desde cualquier puerto
  • Se puede usar para abrir puertos locales
  • Admite la transferencia de archivo entre dispositivos
  • NetCat se puede usar para escanear puertos.
  • Netcat se puede usar para el agarre de banner
  • Comprobación de avance/inversa de DNS completos, con advertencias apropiadas
  • Capacidad para usar cualquier dirección de origen de red configurada localmente
  • Capacidades de escaneo de puertos incorporados, con aleatorización
  • Capacidad de rutas de origen suelto incorporada
  • Modo de envío lento, una línea cada n segundos
  • Volcado hexadecimal de datos transmitidos y recibidos
  • Capacidad opcional para dejar que otro servicio del programa establezca conexiones
  • Respondedor opcional de telnet

Instalación de NetCat:

Antes de comenzar, quiero aclarar que aunque uso el comando "netcat" en este tutorial, también puede usar el comando "nc."

Para iniciar, instale NetCat ejecutando el comando que se muestra a continuación en Distribuciones de Linux con sede en Debian.

sudo apt install netcat

Para instalar NetCat en Red Hat o Centos Run:

yum instalación -y nc

Debe repetir el proceso en todos los dispositivos que desea transferir datos entre. Para este tutorial, creé una máquina virtual con IP 192.168.1.102.

Para este tutorial, también usaré el comando PV que vale la pena en las distribuciones de Linux. Este comando se utiliza para mostrar el progreso de la transferencia de archivo de progreso.

Para instalarlo, ejecute:

sudo apt install pv

Enviar un archivo usando NetCat:

En este ejemplo, el dispositivo 192.168.1.102 recibirá el archivo; Otro dispositivo lo enviará. Desde el dispositivo receptor, ejecute el siguiente comando que reemplaza a Linuxhint.Deb con el nombre del archivo real que desea transferir. La opción -l (escucha para conexiones entrantes) instruye a NetCat que escuche las conexiones entrantes en el puerto 9899.

netcat -l 9899> [nombre de archivo]

Como puede ver, NetCat permanece escuchando en el puerto 9899, ​​esperando el archivo. Ahora, desde el dispositivo del remitente, ejecute el comando a continuación, reemplazando la dirección IP con la IP de su dispositivo receptor y Linuxhint.Deb con el nombre del archivo. La opción -W se usa para definir el tiempo de espera en segundos.

netcat -w 2 192.168.1.102 9899 < [FileName]

Como puede ver a continuación, el archivo Linuxhint.Deb fue transferido al directorio actual del lado receptor.

Si no tiene el archivo para enviar el directorio actual, o el receptor no quiere almacenarlo en el directorio actual, es posible definir una ruta.

En el ejemplo a continuación, el receptor almacenará el archivo Linuxhint.Deb en el directorio Linuxhint.

En el ejemplo a continuación, el remitente tiene el archivo que quiere enviar en el subdirectorio LinuxHint2:

Como puede ver, el archivo se almacenó correctamente en el directorio Linuxhint del receptor.

Mostrando progreso en las transferencias de archivos:

También puede implementar el comando PV para mostrar el progreso en las transferencias de archivos. En el lado receptor, agregue una tubería seguida del PV de comando utilizado para monitorear el progreso de los datos a través de una tubería y la especificación de archivo entrante.

NETCAT -L 9899 | PV> Linuxhint

Luego, en el dispositivo del remitente, ejecute el comando explicado en ejemplos anteriores como se muestra a continuación.

NC -W 2 192.168.1.102 9899 < users.txt

La salida PV se puede editar para cambiar las unidades de archivo; Consulte la página del hombre de este comando para mostrar el progreso en otras unidades que bytes.

Comprimir y enviar un directorio usando netcat:

Usando los comandos a continuación, puede comprimir y enviar un directorio.

En el dispositivo receptor, escriba el comando a continuación, reemplazando a LinuxHint2 por el nombre del directorio comprimido que desea recibir de este dispositivo.

netcat -l 9899> Linuxhint2

En el dispositivo del remitente, ejecute el comando a continuación, reemplazando a Linuxhint2 con el nombre del directorio que desea comprimir y enviar. Además, reemplace la IP 192.168.1.102 con la dirección IP de su receptor.

Tar CFVZ - Linuxhint2 | netcat -w 2 192.168.1.102 9899 Linuxhint2/

Como puede ver, el archivo se recibió correctamente y se extrajo utilizando el siguiente comando:

Tar xvzf

El directorio LinuxHint2 se extrajo con su contenido.

Transferir un disco o partición completo usando NetCat:

También puede transferir un disco o partición completo utilizando NetCat con los comandos que se muestran a continuación. En el siguiente ejemplo, transferiré una partición de disco externa a una partición lateral receptor.

En el lado receptor, escriba el siguiente comando, reemplazar el puerto con el que está utilizando y el disco o partición de destino con el suyo.

NETCAT 9899 -l | bzip2 -d | DD de =/dev/sdb

En el lado de envío, ejecute el siguiente comando que reemplaza el disco o la partición (SDB1), la dirección IP y el puerto del receptor.

bzip2 -c /dev /sdb1 | Netcat 192.168.1.102 9899

En mi caso, mi dispositivo de accionamiento estaba lleno, pero podemos ver el procedimiento terminado.

Si monta el dispositivo donde almacena la copia de seguridad, debe ver los datos en el punto de montaje.

montura /dev /sdb /medios

Conclusión:

La transferencia de archivos es una de las mejores características de NetCat.

En el tutorial anterior sobre NetCat para Port Scan, la conclusión no fue favorable para este programa antes de alternativas como NMAP. Entre las limitaciones generales de NetCat, vemos que no admite escanear múltiples puertos. Las transferencias de archivos no están encriptadas, y un atacante puede lanzar a un hombre en el ataque medio para interceptar los datos en una transferencia de archivos NetCat.

Es importante aclarar la transferencia de archivos a través de NetCat no es una opción segura si no se implementan medidas de cifrado. NetCat no incluye funciones de cifrado, pero se puede combinar con PGP o alternativas que se acercan a este problema como CryptCat, que es muy similar a NetCat con pocas diferencias: CryptCat no admite opciones -T para la negociación de Telnet y no admite el tiempo de espera de Stdin (-q). Por otro lado, CryptCat agrega nuevas funcionalidades como el cifrado. Otras alternativas seguras incluyen transferencias de archivos a través del Protocolo SSH (SCP).

Espero que este tutorial haya sido útil. Siga siguiendo la pista de Linux para obtener más consejos y tutoriales de Linux.