Vous êtes sur la page 1sur 6

Netcat, la navaja suiza de TCP/IP | CRySoL

http://crysol.org/es/netcat

Principal Blogs david.villa's blog

Netcat, la navaja suiza de TCP/IP


Lun, 2005-10-10 14:45 david.villa

:: receta

networking
4

Netcat es una de las herramientas ms potentes y flexibles que existen en el campo de la programacin, depuracin, anlisis y manipulacin de redes y servicios TCP/IP. Es un recurso imprescindible tanto para expertos en seguridad de redes como para hackers. Esta receta incluye varios ejemplos de uso de GNU netcat.

Introduccin
Aunque netcat puede hacer muchas cosas, su funcin principal es muy simple: 1. Crea un socket con el destino indicado si es cliente, o en el puerto indicado, si es servidor 2. Una vez conectado, enva por el socket todo lo que llegue en su entrada estndar y enva a su salida estndar todo lo que llegue por el socket Algo tan simple resulta ser extraordinariamente potente y flexible como vas a ver e continuacin. Por simplicidad se utilizan conexiones locales aunque, por supuesto, se pueden utilizar entre mquinas diferentes.

Ingredientes
netcat bash (o equivalente) utilidades GNU bsicas

Sintaxis
nc [-options] hostname port[s] [ports] nc -l -p port [-options] [hostname] [port]

Parmetros bsicos
-l: modo listen, queda a la espera de conexiones entrantes. -p: puerto local -u: modo UDP -e: ejecuta el comando dado despus de conectar -c: ejecuta rdenes de shell (hace /bin/sh -c [comando] despus de conectar

Un chat para dos


Servidor

$ nc -l -p 2000

1 de 6

06/04/13 10:42

Netcat, la navaja suiza de TCP/IP | CRySoL

http://crysol.org/es/netcat

Cliente

$ nc localhost 2000

Transferencia de ficheros
La instancia de nc que escucha recibe el fichero. El receptor ejecuta:

$ nc -l -p 2000 > fichero.recibido

Y el emisor:

$ nc localhost 2000 < fichero

Servidor de echo
Ponemos un servidor que ejecuta cat de modo que devolver todo lo que se le enve

$ nc -l -p 2000 -e /bin/cat

Y en otra consola:

$ nc localhost 2000 hola hola

Servidor de daytime
Exactamente lo mismo que el ejemplo anterior pero ejecutando date en lugar de cat.

$ nc -l -p 2000 -e /bin/date

Y en otra consola:

$ nc localhost 2000 lun feb 23 21:26:48 CET 2004

shell remota estilo telnet


Servidor

$ nc -l -p 2000 -e /bin/bash

Cliente
2 de 6 06/04/13 10:42

Netcat, la navaja suiza de TCP/IP | CRySoL

http://crysol.org/es/netcat

$ nc localhost 2000

Telnet inverso
En esta ocasin es el cliente quien pone el terminal remoto

Servidor
$ nc -l -p 2000

Cliente
$ nc server.example.org 2000 -e /bin/bash

Cliente de IRC

$ nc irc.freenode.net 6666 NOTICE AUTH :*** Looking up your hostname NOTICE AUTH :*** Found your hostname, welcome back NOTICE AUTH :*** Checking ident NOTICE AUTH :*** No identd (auth) response NICK nadie USER nadie nadie nadie :nadie :kubrick.freenode.net 001 nadie :Welcome to the freenode IRC Network nadie :kubrick.freenode.net 002 nadie :Your host is kubrick.freenode.net[kubrick.freenode.net/6666], running version h []

y a partir de ah puedes introducir cualquier comando de IRC: LIST JOIN #canal PART #canal PRIVMSG #canal :mensaje WHO #canal QUIT

Cliente de correo SMTP


Podemos usar netcat para enviar correo electrnico por medio de un servidor SMTP, utilizando el protocolo directamente:

~$ nc mail.servidor.com 220 mail.servidor.com ESMTP Postfix HELO yo 250 mail.servidor.com MAIL FROM:guillermito@microchof.com 250 Ok RCPT TO:manolo@cocaloca.es 250 Ok DATA

3 de 6

06/04/13 10:42

Netcat, la navaja suiza de TCP/IP | CRySoL

http://crysol.org/es/netcat

354 End data with <CR><LF>.<CR><LF> Aviso: su licencia ha caducado. Me deben un pastn. . 250 Ok: queued as D44314A607 QUIT 221 Bye

HTTP
Es sencillo conseguir un cliente y un servidor HTTP rudimentarios.

Servidor
$ nc -l -p http -c cat index.html

Al cual podemos conectar con cualquier navegador HTTP, como por ejemplo firefox.

Cliente
$ echo GET / | nc www.google.com 80 > index.html

Streaming de audio
Un sencillo ejemplo para hacer streaming de un fichero .mp3:

Servidor
$ nc -l -p 2000 < fichero.mp3

y para servir todos los .mp3 de un directorio:

$ cat *.mp3 | nc -l -p 2000

Cliente
$ nc server.example.org 2000 | madplay

Streaming de video
Servidor
$ nc -l -p 2000 < pelicula.avi

Cliente
$ nc server.example.org 2000 | mplayer

Proxy
Sirva para redirigir una conexin a otro puerto u otra mquina:

4 de 6

06/04/13 10:42

Netcat, la navaja suiza de TCP/IP | CRySoL

http://crysol.org/es/netcat

$ nc -l -p 2000 -c nc example.org 22

El trfico recibido en el puerto 2000 de esta mquina se redirige a la mquina example.org:22. Permite incluso que la conexin entrante sea UDP pero la redireccin sea TCP o viceversa!

Clonar un disco a travs de la red


Esto se debe usar con muchsima precaucin. Si no ests 100% seguro, no lo hagas! No digas que no te avis. Es este ejemplo voy a copiar un pen drive USB que est conectado al servidor a un fichero en el cliente y despus lo voy a montar para acceder al contenido.

Servidor
$ dd if=/dev/sda1 | nc -l -p 2000

Cliente
$ nc server.example.org 2000 | dd of=pendrive.dump $ mount pendrive.dump -r -t vfat -o loop /mnt/usb

Ratn remoto
Es decir, usar el ratn conectado a una mquina para usar el entorno grfico de otra. El ejemplo est pensado para Xorg.

Servidor
# nc -l -p 2000 < /dev/input/mice

Cliente
Editar el fichero /etc/X11/xorg.conf y modificar la configuracin del ratn para que queda as:

Section "InputDevice" Driver "mouse" ... Option "Device" .... EndSection

"/tmp/fakemouse"

$ mkfifo /tmp/fakemouse $ nc server.example.org 2000 > /tmp/fakemouse # /etc/init.d/gdm restart

Medir el ancho de banda


Servidor
$ nc -l -p 2000 | pv > /dev/null

Cliente

5 de 6

06/04/13 10:42

Netcat, la navaja suiza de TCP/IP | CRySoL

http://crysol.org/es/netcat

$ nc server.example.org 2000 < /dev/zero

Imprimir un documento en formato PostScript


Funciona en impresoras que soporten el estndar AppSocket/JetDirect, que son la mayora de las que se conectan por Ethernet. $ cat fichero.ps | nc -q 1 nombre.o.ip.de.la.impresora 9100

Ver La Guerra de las Galaxias


$ nc towel.blinkenlights.nl 23

Otros netcats
cryptcat netcat cifrado. socat Cuando netcat te queda corto. socket ncat

Referencias
The GNU Netcat project Netcat network connections made easy Play with the Lovely Netcat Usando la herramienta netcat en GNU/Linux. La navaja suiza del protocolo TCP/IP Netcat o nc Tutorial de netcat

david.villa's blog

Inicie sesin o regstrese para enviar comentarios

64077 lecturas

Condiciones de copia y distribucin | Aviso legal

2328815

6 de 6

06/04/13 10:42

Vous aimerez peut-être aussi