Skip to main content

nc / netcat

  • Opción -l. Indicamos a netcat que debe escuchar una conexión entrante por un puerto específico.
  • Opción -p. Se utiliza para indicar el puerto que queremos que nc use.
  • Opción -v. Modo verbal, que nos muestran las acciones o escuchas que ocurren en el momento.
  • Opción -u. Para usar paquetes UDP en vez de TCP que son los que viene por defecto.
  • Opción -w. Rechaza las conexiones que no se han realizado en el tiempo que determinemos, no afecta a la opción -l que siempre se mantendrá en escucha.

SERVIDOR nc -l p 5588

Estamos a la escucha de la conexiones entrantes en el puerto 5588

CLIENTE nc ipservidor 5588

Mandamos paquetes TCP a la ip del servidor al puerto 5588

SERVIDOR nc -l -u -p 5555 < archivo

Estamos a la escucha de los paquetes UDP que entran en el puerto 5555, estos datos viene del archivo.

CLIENTE nv -u -w 10 ipservidor 5555 > archivo

Enviamos paquetes UDP y siempre que la conexión sea inferior a 10 seg. guardamos la información en el fichero.


SERVIDOR nc -l -p 6789

Estamos a la escucha en el puerto 6789

CLIENTE echo "QUIT" | nc -v ipserver 6789
SERVIDOR nc -v -l -p 8888 | dd of=archivo.iso

Estamos en la escucha en modo verbose del puerto 8888 y lo guardamos todo en una archivo.iso mediante el comando dd y su segundo paso el of.

CLIENTE dd if=/dev/sda | nc ipserver 8888

Mandamos por el puerto 8888 el flujo de datos para crear una copia de sda.

Cabeceras HTTP con nc

printf "GET / HTTP/1.0/r/n/r/n" | nc www.redhat.com 80 > pagina.html cat pagina.html

Resumen

nc -l v -p 50499. Ponemos el servidor en modo escucha ss -tunl | grep 50499. Comprobamos en el servidor que el servicio esta funcionando. nv -C localhost 50499. Desde el cliente nos conectamos.

En la terminal del primer comando podemos apreciar la conexión.