Netcat

Netcat

Netcat es una de las herramientas más potentes y flexibles que existen en el campo de la programación, depuración, análisis y manipulación 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.

Introducción

Aunque netcat puede hacer muchas cosas, su función principal es muy simple:

Algo tan simple resulta ser extraordinariamente potente y flexible como vas a ver a continuación. Por simplicidad se utilizan conexiones locales aunque, por supuesto, se pueden utilizar entre máquinas diferentes. Ingredientes

Sintaxis

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

Parámetros básicos

Un chat para dos

    nc -l -p 2000
    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 envíe

    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

    nc localhost 2000

Telnet inverso

En esta ocasión 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 hyperion-1.0.2b
    []

y a partir de ahí puedes introducir cualquier comando de IRC:

Cliente de correo SMTP

Podemos usar netcat para enviar correo electrónico 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
    354 End data with <CR><LF>.<CR><LF>
    Aviso: su licencia ha caducado. Me deben un pastón.
    .
    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 conexión a otro puerto u otra máquina:

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

El trafico recibido en el puerto 2000 de esta máquina se redirige a la máquina example.org:22. Permite incluso que la conexión entrante sea UDP pero la redirección sea TCP o viceversa!

Clonar un disco a través de la red

Esto se debe usar con muchísima precaución. ¡Si no estás 100% seguro, no lo hagas! No digas que no te avisé.

En este ejemplo voy a copiar un pen drive USB que está conectado al servidor a un fichero en el cliente y después 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

Ver “La Guerra de las Galaxias”

    nc towel.blinkenlights.nl 23

last updated on April 11, 2015, 7:41 p.m.
Back