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.