NetCat: nc

Contenido:
NetCat
|-- Introducción
|-- Abriendo el apetito
|-- Mensajería instantánea
|-- Redirección de ficheros
|-- Mudándonos de ordenata
|-- Netcat como shell
`-- Conclusiones

Introducción:

Netcat es un pequeño programa muy versátil y útil. NetCat pretende ser la versión para redes del conocido comando cat, por una parte por su orientación al manejo de texto(como tantas herramientas Unix). Esta herramienta me sorprendió al realizar autenticas proezas con una tremenda sencillez.

Dejemos los conceptos -no menos importantes por supuesto- y vamos a la practica.

Abriendo el apetito:

Lo que debemos saber, es que netcat puede trabajar tanto como cliente como servidor, dependiendo de los parámetros que pasemos.

Como cliente:
$nc ip_maquina puerto-por-donde-nos-vamos-a-conectar

Como servidor:
$nc -l -p puerto-por-donde-se-recibe-las-conexiones

Para aclarar dudas abran su terminal e ingresen:
$nc -l -p 9090

El programa se quedara esperando conexiones en el puerto 9090. Ahora abran su navegador preferido e introduscan la siguiente URL:
http://localhost:9090

NetCat mostrará por consola algo parecido a esto:

GET / HTTP/1.1
Host: localhost:9090
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050914 Firefox/1.0.4 (Debian package 1.0.4-2sarge4)
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive


Bien, se preguntaran ¿pero que es esto?
Esto es lo que nuestro navegador envia cada vez que nos conectamos a una pagina web. :o

Ahora sin esperar a mas hagamos que nuestro humilde servidor web envie una respuesta.
En la consola que lanzamos el netcat escribir algo como esto y presionar intro.

<h1>Yo amo a GNU/Linux!!!</h1>

Seguidamente pulsar CTRL+C para parar netcat. Ahora observen su navegador ;o

Mensajeria instantanea:

Estan cansados de esos programas de mensajeria con tantos graficos y ventanas y todo eso. Netcat al rescate...

Para iniciar este sencillo sistema, uno de los interlocutores debe lanzar netcat como servidor, y el otro como cliente en un puerto determindado. Algo como esto.
Usuario 1:nc -l -p 4000
Usuario 2:nc IP-Usuario1 4000

Si no tienen internet en casa o no tienen amiguitos en el internet pueden hablar con ustedes mismos sustituyendo IP-Usuario1 por 127.0.0.1 que es la IP del computador de ustedes mismos.

Para que ya buscar... netcat con sus 17Kb es una nena bien concentidora.

Redirección de ficheros:

Quien no a redireccionado algun fichero a otra salida no estandar. Agarrence... que netcat es una bestia.
Servidor: nc -l -p 3000
Cliente: cat /etc/fstab | nc localhost 3000

Como imaginaran localhost es mi misma maquina.

Mudandonos de ordenata:

Hacer una copia de los ficheros que dejamos al mudarnos a otra computadora ya no es un problema. Netcat nos engrie aun mas...

En nuestro nuevo ordenador ejecutamos netcat de esta manera:
$nc -l -p 5000 > partición1.iso


Y en el obsoleto ordenador ejecutamos algo como esto:
$dd if=/dev/hda1 | nc ip-nuevo-ordenador 5000

dd: Convierte y copia un fichero desde la entrada estandar.
if=/dev/hda1: Obvia la entrada estandar y copia desde la ruta dada /dev/hda1(que vendria a ser una particion)

Ahora solo nos queda montar nuestro fichero .iso para tener una copia exacta de la particion de nuestra vieja maquina.

Creamos un directorio.
#mkdir /mnt/el-viejo

Montamos la imagen iso.
#mount -o loop particion.iso /mnt/el-viejo

Y en /mnt/el-viejo tendriamos exactamente la particion de nuestro viejo ordenador.

Netcat como shell:

Para los menos exigentes... Podemos implementar un terminal de control al estilo ssh aunque no muy comodo, pero sirve...
Servidor: nc -l -p 5000 -c /bin/sh
Cliente: nc ip-pobrecillo 5000

La opcion -c le dice a netcat que ejecute el programa cuando recibe una conexion.

Conclusion:

Para ser una herramienta de 17Kb no esta nada mal y para matar el rato mucho menos. Crescamos en sabiduria y que mejor compartiendolo. Agradesco a Er Manitas de OCCAM's Razor por este grandioso articulo y que me tome la libertad de copiarlo y modificar. AND YOU USE SOFTWARE LIBRE?

About this entry