Netcat
Introducción
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.
Conocida por muchos como "la navaja multiusos de los hackers" es una herramienta de red bajo licencia GPL (en la versión de GNU) disponible para sistemas UNIX, Microsoft y Apple que permite a través de intérprete de comandos y con una sintaxis muy sencilla abrir puertos TCP/UDP en un HOST (quedando netcat a la escucha), asociar una shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete bash de Linux remotamente) y forzar conexiones UDP/TCP (útil por ejemplo para realizar rastreos de puertos o realizar transferencias de archivos bit a bit entre dos equipos).
Sus capacidades hacen que sea a menudo usada como una herramienta para abrir puertas traseras una vez invadido un sistema y obtenido privilegios de administrador o root del equipo. También resulta extremadamente útil a efectos de depuración para aplicaciones de red.
Entre sus funciones; las principales y mas destacadas serían:
[*] Crea un socket con el destino indicado si es cliente, o en el puerto indicado, si es servidor.
[*] Una vez conectado, envía por el socket todo lo que llegue en su entrada estándar y envía a su salida estándar todo lo que llegue por el socket.
Esta simplicidad resulta ser extremadamente potente y flexible; como veremos a continuación sus capacidades tan resaltadas. Las herramientas necesarias para realizar las pruebas no son más que "netcat - bash o equivalente - utilidades GNU básicas".
Sintaxis
dijo:nc [-options] hostname port[s] [ports]
nc -l -p port [-options] [hostname] [port]
Parámetros
-l: modo ‘listen’, queda a la espera de conexiones entrantes.
-p: puerto local
-u: modo UDP
-e: ejecuta el comando dado después de conectar
-c: ejecuta órdenes de shell (hace /bin/sh -c [cadena] después de conectar
Ejemplos de implementaciones netcat
Servidor de daytime
Ponemos un servidor que ejecuta date de modo que devolverá todo lo que se le envíe
$ nc -l -p 2000 -e /bin/date
Y en otra consola:
$ nc localhost 2000
dijo:lun may 23 10:26:48 CET 2008
Chat para dos
Servidor
$ nc -l -p 2000
Cliente
$ nc localhost 2000
Transferencia de archivos
La instancia de nc que escucha recibe el fichero. El receptor ejecuta:
$ nc -l -p 2000 > archivo.recibido
Y el emisor:
$ nc localhost 2000 < archivo
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
…
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.ejemplo.org 2000 -e /bin/bash
Cliente de IRC
$ nc irc.freenode.net 6667
NOTICE AUTH :*** Looking up your hostname…
NOTICE AUTH :*** Found your hostname, welcome back
NOTICE AUTH :*** Checking ident
NOTICE AUTH :*** No identd (auth) response
NICK anonimo
USER anonimo anonimo anonimo :anonimo
:kubrick.freenode.net 001 nadie :Welcome to the freenode IRC Network anonimo
:kubrick.freenode.net 002 nadie :Your host is kubrick.freenode.net[kubrick.freenode.net/6661], running version hyperion-1.0.2b
[…]
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 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:anonimo@poringa.net
250 Ok
RCPT TO:manolete12@taringa.com
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Aviso: Necesito puntines para el truco! .
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 o Internet explorer.
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 < archivomusica.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 servidor.dominio.org 2000 | mplayer –
Proxy
Sirva para redirigir una conexión a otro puerto u otra máquina:
$ nc -l -p 2000 -c “nc servidor.dominio.org 22”
La trafico recibido en el puerto 2000 de esta máquina se redirige a la máquina servidor.dominio.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 debe ser usado con precaución "cuidado". No lo hagas si no estas seguro.
Es este ejemplo vamos a copiar un pen drive USB que está conectado al servidor a un fichero en el cliente y después lo vamos 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
Ratón remoto
Es decir, usar el ratón conectado a una máquina para usar el entorno gráfico 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 configuración del ratón para que queda así:
Section "InputDevice"
Driver "mouse"
...
Option "Device" "/tmp/fakemouse"
....
EndSection
$ mkfifo /tmp/fakemouse
$ nc server.example.org 2000 > /tmp/fakemouse
/etc/init.d/gdm restart
Ejemplos de Revisión de puertos
Para revisar los puertos abiertos, se utiliza nc con la opción , -z para solicitar se trate de escuchar por puertos abiertos, y un puerto o rango de puertos.
Si se quiere obtener una salida más descriptiva, solo es necesario especificar nc -vz y la dirección IP si se quiere revisar puertos TCP abiertos, o bien nc -vzu para puertos UDP abiertos, donde -v define se devuelva una salida más descriptiva. En el siguiente ejemplo se pide al mandato nc revisar los puertos TCP entre el puerto 20 al 25.
nc -vz 127.0.0.1 21-25
La salida de lo anterior devolverá que puertos están abiertos y cerrados.
nc: connect to 127.0.0.1 port 20 (tcp) failed: Connection refusedConnection to 127.0.0.1 21 port [tcp/ftp] succeeded!Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!nc: connect to 127.0.0.1 port 23 (tcp) failed: Connection refusednc: connect to 127.0.0.1 port 24 (tcp) failed: Connection refusedConnection to 127.0.0.1 25 port [tcp/smtp] succeeded!
Otros « Netcat`s »
Netcat Cifrado.
Socat – Cuando netcat lo consideras limitado
REFERENCIAS
--------------------------------
-Descarga netcat-
The GNU Netcat project
The Journal Linux
Bulma.net
Linuca.org (Asociacion Linux Canabria)
Wikilearning.com (español)
Wikipedia en español
Comentar no cuesta nada - Postear 

Opciones
Post Relacionados
- Windows Server 2003....Información
- Seriales de Windows server 2003 funcionando todos
- como instalar windows small bussines server 2003
- Seriales Windows Server 2003 (no repost)
- NUbuntu la mejor distro basada en Linux! [DD]
- Configurar PHP en IIS (windows 2003 server)
- Microsoft advierte sobre falla grave en seguridad
- Instalando Windows 2003 Server
- Serial Varios para Windows 2003 Server Enterprice Edition
Información del post
65 Puntos
46 Favoritos
3889 Visitas
Creado el: 07.08.2008 a las 12:57:41 hs.
Categoría: Linux y GNU
Tags: script, consola, shell, debian, servidores, operativo, Windows, Linux, openSUSE, seguridad, Server 2003, netcat, programaciòn
#1 -
Chuecko
| 07.08.2008 13:28:48 dijo:
muy buena... basica pero buena. gracias... Nadie comenta este tipo de cosas, les interesa mas un video boludo ante que esto...
#2 - ANDREL0 | 07.08.2008 13:36:23 dijo:
Chuecko , prefiero que no comenten antes que lo hagan con mojoneadas(estupideces). Y respecto a los videos; bueno cada uno tiene sus formas de divertirse o intereses, los que aportan a Linux en taringa son contados con las manos; la mayoria son mediocres o recien comienzan en este ambiente tan "Rico" en recursos. Saludos y gracias por tus 5+
#3 - Chuecko | 07.08.2008 13:39:16 dijo:
si lo que dijo es que a mas de uno le sirve y nadie comenta para agradecer, antes en taringa se agradecia cada aporte sea bueno malo en su medida
Saludos...
#4 - Benji | 07.08.2008 14:03:20 dijo:
Sirve mucho para el que esta aprendiendo

#5 - juanse0000 | 07.08.2008 17:41:02 dijo:
muy bueno!!!
#6 - guisheca | 07.08.2008 17:49:59 dijo:
Uuuu buenísimo, fui a una conferencia sobre seguridad informática y mostraban esta herramienta en acción. Ta muy buena y quiero aprender así que me viene al pelo.
Saludos
#7 - rusohattrick | 07.08.2008 22:09:38 dijo:
yo tambien quiero aprender
soy dba y las bd estan en linux 
a fvoritos!!!
#8 - rodrigoedlp | 07.08.2008 23:33:51 dijo:
esta bueno
رودريغو
#9 - gast0n | 12.08.2008 11:47:10 dijo:
a favoritos! vuelvo a leerlo con mas atencion y con puntelis! 

#10 - gast0n | 12.08.2008 21:07:44 dijo:
ahi estuvo lo prometido!

#11 - pichinep | 13.08.2008 12:11:50 dijo:
Muy bueno... Te dejo 10, de una!
#12 - lubricante | 22.08.2008 21:52:48 dijo:
uh no me meto con eso ni en pedo, seguro que si lo aprendo a usar termino preso....

#13 - maxi8815 | 24.08.2008 03:37:35 dijo:
Muy bueno, a favoritos de una.
muy buena... basica pero buena. gracias... Nadie comenta este tipo de cosas, les interesa mas un video boludo ante que esto...
#2 - ANDREL0 | 07.08.2008 13:36:23 dijo:
Chuecko , prefiero que no comenten antes que lo hagan con mojoneadas(estupideces). Y respecto a los videos; bueno cada uno tiene sus formas de divertirse o intereses, los que aportan a Linux en taringa son contados con las manos; la mayoria son mediocres o recien comienzan en este ambiente tan "Rico" en recursos. Saludos y gracias por tus 5+
#3 - Chuecko | 07.08.2008 13:39:16 dijo:
si lo que dijo es que a mas de uno le sirve y nadie comenta para agradecer, antes en taringa se agradecia cada aporte sea bueno malo en su medida
Saludos...
#4 - Benji | 07.08.2008 14:03:20 dijo:
Sirve mucho para el que esta aprendiendo


#5 - juanse0000 | 07.08.2008 17:41:02 dijo:
muy bueno!!!
#6 - guisheca | 07.08.2008 17:49:59 dijo:
Uuuu buenísimo, fui a una conferencia sobre seguridad informática y mostraban esta herramienta en acción. Ta muy buena y quiero aprender así que me viene al pelo.
Saludos
#7 - rusohattrick | 07.08.2008 22:09:38 dijo:
yo tambien quiero aprender

soy dba y las bd estan en linux 
a fvoritos!!!#8 - rodrigoedlp | 07.08.2008 23:33:51 dijo:
esta bueno
رودريغو
#9 - gast0n | 12.08.2008 11:47:10 dijo:
a favoritos! vuelvo a leerlo con mas atencion y con puntelis! 

#10 - gast0n | 12.08.2008 21:07:44 dijo:
ahi estuvo lo prometido!


#11 - pichinep | 13.08.2008 12:11:50 dijo:
Muy bueno... Te dejo 10, de una!
#12 - lubricante | 22.08.2008 21:52:48 dijo:
uh no me meto con eso ni en pedo, seguro que si lo aprendo a usar termino preso....


#13 - maxi8815 | 24.08.2008 03:37:35 dijo:
Muy bueno, a favoritos de una.
Para poder comentar necesitas estar Registrado. O.. ya tenes usuario? Logueate!







