Consejos y trucos con el comando NetCat en Linux
- 4638
- 907
- Claudia Baca
NetCat es una utilidad de red versátil que se puede usar para leer y escribir en conexiones TCP y UDP en puertos arbitrarios (como con otras utilidades utilizadas en Linux, los puertos por debajo de 1024 requieren privilegios de raíz/sudo). Por defecto, NetCat usa conexiones TCP, pero UDP se puede especificar con el -u
bandera. NetCat se puede usar como servidor y cliente. Cuando se usa como servidor el -l
La bandera se usa para escuchar una conexión. Similar al comando CAT, NetCat puede recibir información de Stdin y escribir a Stdout, lo que lo hace excelente para flujos de trabajo que involucran tuberías y redireccionamientos. El Carolina del Norte El comando se usa típicamente para evocar netcat para facilitar el uso.
En este tutorial aprenderá a hacer lo siguiente con Netcat:
- Realice una solicitud HTTP para obtener una página web
- Chatear con amigos en todas las máquinas
- Copiar archivos entre máquinas
- Realizar escaneo de puertos
- Ver mensajes de NetCat en un navegador web
- Crear y conectar a una carcasa inversa
Requisitos y convenciones de software utilizados
Categoría | Requisitos, convenciones o versión de software utilizada |
---|---|
Sistema | Independiente de la distribución |
Software | Netcat |
Otro | Privilegios de raíz para usar puertos por debajo de 1024 |
Convenciones | # - Los comandos de Linux se ejecutarán con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio$ - Los comandos de Linux se ejecutarán como un usuario regular no privilegiado |
Agarrando una página web
ADVERTENCIALas conexiones de NetCat no están encriptadas. Los siguientes ejemplos transmiten datos en el claro. No use NetCAT para transmitir datos confidenciales en redes no confiables como Internet y Wi-Fi público. Si necesita transmitir datos de forma segura, considere OpenSsh.
NetCat se puede utilizar para hacer conexiones arbitrarias con servicios de red. Como resultado, se puede usar para realizar solicitudes HTTP a un servidor web de manera muy similar a un navegador web. Sigamos adelante y tomemos la página de índice de Google.comunicarse.
Introducir el Carolina del Norte comando seguido de la anfitrión y el puerto quieres conectarte a.
$ nc google.com 80
Ahora hagamos la solicitud HTTP. Escriba o copie/pegue lo siguiente y presione Entrar dos veces.
Obtener /índice.html http/1.1
Debería ver la salida similar a esta captura de pantalla.
Tomar el sitio web con NetCatCharlar
Este ejemplo supone que tiene 2 computadoras en la misma red, con nombres de host host1 y anfitrión. Esta suposición también se hará en los siguientes ejemplos. Para crear una conexión de escucha de NetCat en host1, ingrese lo siguiente.
$ NC -LV 8888
Esto escucha las conexiones en el puerto 8888. El -V
El indicador especifica la salida detallada que le dará más información sobre las conexiones entrantes.
Ahora anfitrión
ingresar:
$ nc host1 8888
Notará que cualquier texto ingresado en el terminal en host1 se envía a la terminal en host2 y viceversa. Esto se puede usar como un chat adhoc entre dos usuarios en la misma red.
Transferencia de archivos
NetCat se puede usar para copiar un archivo de una máquina a otra. Supongamos que tiene un archivo llamado ncnotes.txt del que desea transferir host1
a anfitrión
En el host1, ingrese lo siguiente para crear el archivo y escuche una conexión entrante para transferirlo en el puerto 2222:
$ Echo "Estas son mis notas netcat"> ncnotes.txt $ nc -l 2222 < ncnotes.txt
En host2 Ingrese lo siguiente para copiar/recibir el archivo y luego imprímalo a stdout para verificar que la transferencia de archivo fuera succionada.
$ nc host1 2222> ncnotes.txt $ cat ncnotes
¿Qué pasa si desea transferir una carpeta completa en lugar de un solo archivo?? NetCat no es capaz de hacer esto por sí mismo, por lo que tendremos que utilizar el comando de alquitrán.
Ingrese lo siguiente en host1 para crear una carpeta llena con cinco archivos y luego use alquitrán para crear un archivo y colocarlo sobre la red con NetCat.
$ Mkdir archivos; Touch Files/1 ... 5 $ Tar -Cvz Archivos | NC -L 8888
Ingrese lo siguiente en anfitrión
Para transferir la carpeta y verificar que incluya los cinco archivos.
$ NC Host1 8888 | Tar -xvz $ LS archivos
En host1 el -C
El indicador se usa para crear el archivo que se meterá en Netcat, -V
se usa para la salida verbosa para que tengamos retroalimentación visual que nos haga saber que esto está sucediendo y -z
se utiliza para comprimir el archivo para que la transferencia de red sea más rápida. En nuestro ejemplo, la compresión no hace mucha diferencia desde el archivos La carpeta está llena de archivos vacíos, pero es posible que desee transferir directorios/archivos grandes, por lo que es bueno saberlo. En host2 el -X
La bandera se usa para extraer el archivo que se tiene en cuenta desde Netcat, -V
es para extracción verbosa, y -z
es descomprimir el archivo.
Escaneo de puertos
NetCat se puede usar como un escáner de puerto rudimentario utilizando el -z
bandera.
Supongamos que estás en host1
y quieres saber si un servidor SSH se está ejecutando en host2. Suponiendo que se esté ejecutando en el puerto predeterminado (22) y no hay acceso de bloqueo de firewall, puede usar el siguiente comando para ver si el servicio se está ejecutando.
$ nc -zv host2 22
NetCat también puede escanear una gama de puertos para ver cuál de ellos está abierto si. Esto se puede utilizar para inferir qué servicios se está ejecutando esa máquina. Supongamos que estás en anfitrión
y quieres ver si algún puerto entre 1
y 1024
están abiertos host1
; puedes usar el siguiente comando.
$ NC -ZV HOST1 1-1024
Dependiendo de la versión de NetCat que haya instalado en su sistema, el comando anterior informará solo los puertos abiertos o imprimirá una línea para cada puerto abierto y cerrado. Si el primero es el caso, entonces la salida es muy fácil de leer, pero si el segundo es el caso, la salida puede resultar difícil de analizar y el siguiente comando debe usarse en su lugar para que solo se muestren puertos abiertos.
$ NC -ZV Host1 1-1024 2> & 1 | Grep tuvo éxito
Ver mensaje en el navegador
En host1
introduzca la siguiente. El -k
La bandera mantiene la conexión viva para que pueda volver a conectarse nuevamente por la misma máquina o por otras máquinas. Sin esta bandera host1
dejará de escuchar más conexiones una vez que se realice la primera conexión.
$ Echo "Hola" | NC -LKV 5555
En anfitrión
Abra un navegador y navegue a Host1: 5555
Deberías ver las palabras hola
mostrado en el navegador.
Caparazón
NetCat también se puede utilizar para establecer un shell inverso para administrar de forma remota una máquina sobre la red. Esto se hace con el -mi
bandera. En este ejemplo, queremos conectarnos a un shell de Bash en anfitrión
para administrarlo desde host1
.
En host1
ingresar:
$ NC -LV 6666
En anfitrión
ingresar:
$ nc -v host1 6666 -e /bin /bash
Ahora host1
Ingrese lo siguiente y será evidente que tenemos acceso remoto a la shell Bash en anfitrión
.
$ hostname $ whoami $ ls
Deberías ver el nombre de host para anfitrión
, el nombre de usuario del usuario que inició Carolina del Norte en anfitrión
y sus archivos. Muchas versiones de NetCat no incluyen el -mi
opción debido a su potencial de abuso. Establecer una carcasa remota en una máquina que tenga una versión de NetCat que no incluya la opción -E requeriría realizar los mismos comandos NetCat en Host1, mientras usa un programa diferente para crear el shell inverso en anfitrión
. Las soluciones para esto existen para Bash, Python, Perl, PHP y más.
Tutoriales de Linux relacionados:
- Una introducción a la automatización, herramientas y técnicas de Linux
- Mastering Bash Script Loops
- Cosas para instalar en Ubuntu 20.04
- Ubuntu 20.04 trucos y cosas que quizás no sepas
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 1
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 3
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 4
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 2
- Introducción a las tuberías con nombre en Bash Shell
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 5
- « Cómo instalar, configurar y usar Mutt con una cuenta de Gmail en Linux
- Cómo rastrear las llamadas del sistema realizadas por un proceso con Strace on Linux »