LINUCA: Netcat o nc
$LOGOIMAGE
LINUCA − Asociación Usuarios GNU/Linux de Cantabria
Netcat o nc
Por Rubén Ramos, RiCe (http://www.linuca.org)
Creado el 07/05/2004 03:03 y modificado por última vez el 20/05/2004 01:18
Como solventar el problema de transferir unos ficheros de manera directa y ágil con la herramienta Netcat.
También algunos ejemplos de posibles usos del netcat: chat, webserver, obtener información de conexiones ajenas, ...
Netcat o nc
Quiero comentar muy ligeramente una herramienta que me parece de gran utilidad, el netcat.
Es una herramienta muy simple que escribe y lee através de la red, según el autor es como una navaja Suiza para la
transferencia en la red. En el manual resalta estas cualidades:
•
•
•
•
•
•
•
•
•
•
•
Outbound or inbound connections, TCP or UDP, to or from any ports
Full DNS forward/reverse checking, with appropriate warnings
Ability to use any local source port
Ability to use any locally−configured network source address
Built−in port−scanning capabilities, with randomizer
Built−in loose source−routing capability
Can read command line arguments from standard input
Slow−send mode, one line every N seconds
Hex dump of transmitted and received data
Optional ability to let another program service established connections
Optional telnet−options responder
Para obtenerlo te puedes dirigir aquí.(1) En la mayoría de las distribuciones con gestor de paquetes se refieren a este
software con el nombre de netcat, aunque el binario para ejecutarlo suele llamarse nc.
Cómo usarlo?
nc [−options] hostname port[s] [ports] ...
nc −l −p port [−options] [hostname] [port]
En el manual(2) describe muchos posibles usos, incluso como hacer un miniChat con él. Aunque el uso que más me
gusta es poder pasar mucha cantidad de ficheros como si fuera un tar.
Para cerrar la conexión pulsa "Ctrl+c".
Las opciones que más comunes son:
−l modo en escucha
−p port número puerto
−v verbose, información detallada
−v −v very verbose, información más detallada
−z escanear
− salida estándar muy usada en entornos unix
| piper, permite pasar la salida de un programa por otro
tar xvjf descomprime un tar.bz2
tar cvjf comprime un directorio a tar.bz2
1/3
LINUCA: Netcat o nc
$LOGOIMAGE
Los puertos que hay en los ejemplos están puestos al azar y se pueden cambiar por cualquier otro.
Para poder hacer las pruebas en un solo pc, basta con tener dos consolas abiertas, una para el servidor y otra para el
cliente, y poner en la IP "localhost" o 127.0.0.1
Pasar ficheros
La máquina que recibe los datos debe estar así:
nc −l −p 6000 |tar xvfj −
La máquina que envía los datos debe estar así:
tar cvfj − directorio/ | nc IP_MaquinaQueRecibe 6000
Imagínate dos equipos, donde el que va a recibir los datos no tiene espacio suficiente para almacenar un tar y luego
descomprimirlo, o sencillamente deseas pasar una cantidad de directorios y ficheros sin problemas.
De esta forma puedes pasar el directorio de una sola vez y con los permisos de los ficheros sin tocar.
Para conseguir el mismo propósito pero con el ssh se puede conseguir así:
tar cvzf − FICHEROS_A_EMPAQUETAR | ssh usuario@host_remoto \
"cat > /path/donde/dejarlos/nombre_del_fichero.tgz"
Gracias deabru.
Montar un chat
La máquina que recibe los datos debe estar así:
nc −l −p 5777
La máquina que envía los datos debe estar así:
nc IP_MáquinaQueRecibe 5777
De esta forma podrás escribir en la conexión que envía, al pulsar el enter lo recibe la máquina que se mantiene a la
escucha. Para que cada máquina pueda recibir y enviar deben tener abiertas dos consolas, una recibiendo y otra
enviando.
Averiguar servidor
nc −v −v IP_Máquina 80
Para saber que servidor esta funcionando en un determiado puerto de un servidor, es muy útil para saber el nombre y
servidor del servidor http o ftp ...
Sacar información de un cliente
nc −v −v −l −p 80
Cuando un cliente se conecte a un ordenar que esté en escucha de esta forma, sacará información de la ip, browser y
Sistema Operativo.
Webserver
nc −l −p 80 <NombreArchivo.html
Para servir de forma puntual un solo fichero html. Cada vez que se desconecta el cliente debes lanzar otra vez la
aplicación.
2/3
LINUCA: Netcat o nc
Conclusiones
$LOGOIMAGE
El netcat es una aplicación muy verstátil, que permite hacer muchos experimentos, tampoco es que tenga ningún uso
'profesional', pero juntando algún comando del netcat con otro poco de bash, se pueden conseguir cosas muy sencillas y
curiosas.
Lista de enlaces de este artículo:
1.
2.
http://www.atstake.com/research/tools/network_utilities/
http://www.atstake.com/research/tools/network_utilities/nc110.txt
E−mail del autor:
[email protected]
Podrás encontrar este artículo e información adicional en: http://linuca.org/body.phtml?nIdNoticia=276
3/3
Comentarios de: LINUCA: Netcat o nc (0)
No hay comentarios