Académique Documents
Professionnel Documents
Culture Documents
http://crysol.org/es/netcat
:: 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
$ nc -l -p 2000
1 de 6
06/04/13 10:42
http://crysol.org/es/netcat
Cliente
$ nc localhost 2000
Transferencia de ficheros
La instancia de nc que escucha recibe el fichero. El receptor ejecuta:
Y el emisor:
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:
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 -l -p 2000 -e /bin/bash
Cliente
2 de 6 06/04/13 10:42
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
~$ 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
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
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
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!
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:
"/tmp/fakemouse"
Cliente
5 de 6
06/04/13 10:42
http://crysol.org/es/netcat
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
64077 lecturas
2328815
6 de 6
06/04/13 10:42