PDF de programación - Tutorial de Netcat

<<>>
Imágen de pdf Tutorial de Netcat

Tutorial de Netcatgráfica de visualizaciones

Publicado el 22 de Mayo del 2018
1.561 visualizaciones desde el 22 de Mayo del 2018
15,3 KB
8 paginas
Tutorial de Netcat
Este Artículo proviene de Shutdown
El URL para esta Historia es: http://www.shutdown.org.ar/modules/sections/index.php?op=viewarticle&artid=6

Como lo describe su autor netcat es una especie de navaja suiza para usuarios de
internet (los que la usen claro esta...).
Es caratulado como una herramienta de diagnostico y exploracion de redes, la cual
puede crear cualquier tipo de conexion a cualquier puerto, en cualquier host. Tambien
lo podemos usar solo o en complemento a cualquier otro programa como comando en
cualquier script SH. | Peque~o tutorial sobre netcat
-:._.:-:._.:-:._.:-:._.:-:._.:-

NOTA PRELIMINAR
===============

Asumo cierta cantidad de conocimiento de parte del lector sobre el tema redes,
protocolos de transmision, y escencialmente sobre linux. Ademas no me hago cargo
de los hechos que ustedes pueden realizar con la informacion aqui expuesta.

REVISION
========

Como lo describe su autor netcat es una especie de navaja suiza para los usuarios
de internet (los que la usen claro esta...). Su autor es 'Hobbit', y el escribio la
version para Unix, Berkeley y System V en la que esta centrada este documento. Weld
Pond, de l0pht Heavy Ind. escribio despues Netcat

1.1 NT
Para Windows NT, aunque tambien puede ser usada en Windows 95/98, pero creo que seria
mas recomendable usarlo en nuestro querido Linux. ;-)
Podemos encontrar a Netcat en casi cualquier distribucion de linux e
instalarlo mediante el gestor de paquetes de nuestra distribucion (.rpm .deb o el que
sea).
En su archivo 'README' es caratulado como una herramienta de
diagnostico y exploracion de redes, la cual puede crear cualquier tipo de conexion a
cualquier puerto, en cualquier host. Tambien lo podemos usar solo o en complemento
a cualquier otro programa como comando en cualquier script SH

Las habilidades basicas de netcat son:

* Conexiones al exterior o del exterior, usando UDP o TCP, hacia o desde cualquier
puerto
* Verificacion de DNS normal o en reversa, con las advertencias
correspondientes
* Uso de cualquier puerto local
* Uso de cualquier direccion a la que se tenga acceso en la red local
* Habilidad de escanear puertos, incluso de manera aleatoria
* Capacidad de decidir que camino tomaran los paquetes de enviados, a modo de
"encaminarlos" (source-routing)
* Puede procesar comandos de programas, de scripts, y del usuario.
* Capaz de enviar datos en modo de transmision lenta,una linea cada N segs.
* Monitoreo y presentacion, en modo hexadecimal, de datos transmitidos y recibidos
* Capacidad de dejar que otro programa maneje conexiones ya establecidas
* Opcionalmente responde a opciones caracteristicas de telnet
* Creacion de nuevas herramientas, basandonos en los servicios de Netcat.



Netcat tambien puede funcionar como servidor. Escuchando intentos de
conexion a los puertos que elijamos, y haciendo el mismo proceso de entrada y salida
de datos. Se puede decir que a Netcat funciona de la misma forma en modo de
servidor o modo de cliente, seguira transmitiendo y recibiendo datos hasta que ya no
haya mas. En ambos modos, puede forzarse la desconexion al configurarse cierto tiempo
de inactividad del otro lado.

Bueh, menos charla y mas trabajo:

En su uso mas simple, "nc maquina puerto", establece una conexion TCP al puerto
especificado de esa maquina, y lo que nosotros introduzcamos mediante la standard input
(stdin), sera transmitido hacia el otro host, y todo lo que este transmita nos llegara
a nosotros mediante standar output ( stdout ), o sea por nuestro monitor. Cabe aclarar
que este tipo de conexiones tambien pueden ser realizadas
mediante UDP, pasandole a netcat el argumento "-u" o sea: "nc -u maquina puerto"

El uso de netcat, puede ser mas beneficioso que el de telnet, en ciertos casos por
ejemplo, cuando se necesita mantener cierto tiempo de espera en la conexion esto se
nota mas en ciertos tipos de scripts. Con netcat es posible mantener viva la conexion
por un tiempo indefinido, y que no se corte cuando el otro lado termina la
transmision. Netcat tiene muchas mas ventajas por sobre telnet,
aunque puede haber muchas mas, queria que quedara clarito que netcat no es un simple
cliente telnet, como he encontrado muchas personas que lo han considerado asi ( no voy a
decir quienes ).

OPCIONES
========

Desglosemos un poco la ayuda de este programa y traduzcamosla...

$ nc -h
[v1.10]
conectarse hacia algun lado: nc [-options] hostname port[s] [ports] ...
esperar conexiones: nc -l -p port [-options] [hostname] [port]
opciones:
-e prog programa a ejectuar de la conexion [peligroso!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h duh? mmmmm, creo que es esto
-i secs delay interval for lines sent, ports scanned
-l modo de escucha, para conexiones entrantes
-n solamente direcciones IP, no DNS
-o file salida en hexadecimal del trafico
-p port numero del puerto local
-r puertos locales o remotos al azar
-s addr direccion local de envio
-t responder a negociacion de TELNET
-u modo UDP
-v verbose [usar doble para ser mas verbose]
-w secs tiempo fuera para desconeccion y lecturas de red
-z zero-I/O mode [used for scanning]
los puertos pueden ser nombrados individualmente o en rangos: lo-hi
[inclusive]



Bueh, empecemos desde el principio:

La opcion "-e" no es compilada en versiones estandar, lo mismo que la opcion "-t",
esto se obtiene colocando los siguiente flags en el Makefile en la seccion
"PREDEFINES" :

DFLAGS= -DGAPING_SECURITY_HOLE -DTELNET

Y como resultado el Makefile quedaria mas o menos asi:
...
### PREDEFINES

# DEFAULTS, possibly overridden by <systype> recursive call:
# pick gcc if you'd rather , and/or do -g instead of -O if debugging
# debugging
CFLAGS = -O
DFLAGS= -DGAPING_SECURITY_HOLE -DTELNET <--- Aca esta la linea
XFLAGS = # xtra cflags, set by systype targets
XLIBS = # xtra libs if necessary?
... ( recortado por motivos de espacio.. )

Ejecutamos el "make", y obtenemos el binario correspondiente, compilado estatico

[ NOTA: cuando ejecutes "make" sin ningun argumento, no va a compilar directo, sino
que va a pedir que le introduzcamos el tipo de sistema. Lo mas comun es que tengamos
que ejecutar "make linux", pero por si tenemos otro tipo donde lo estamos compilando
tendremos que ejecutar el correspondiente, como puede ser "make sunos, o solaris". ]

Ahora si, especifiquemos. La opcion -e sirve para ejecutar un programa despues de
establecer la conexion, (comunmente una shell). Por ejemplo podriamos hacer lo
siguiente

$ nc -vv -l -p 666 -e /bin/sh
listening on [any] 555 ...

Entonces cuando alguien se conecte hacia nosotros al puerto 666 bajo TCP,
obtendra una shell. Hmmm, creo que ese uso no me gusta nada, demosle un uso mas
sofisticado, juajua!

$ nc -vv -l -p 23 -e /usr/bin/yes

Ahora me gusta mas, es parecido al anterior pero mas interesante, cada vez que alguien
se conecte, tendra una "peque~a sorpresa", no es gran cosa, pero asi
podemos mantener lejos a alguno que ande escaneando puertos por ahi.

Entendido???? ok!, seguimos con la siguiente funcion:

Es posible tambien usar el argumento "-g" para enviar paquetes por un camino
predeterminado ( source-routing ). Se puede usar hasta 8 veces para construir el
camino que seguira la informacion. Ejemplo:

$ nc -v -w 3 -g makina1.ar -g makina2.ar otramakina.ar 23



Entonces encaminaremos todos los paquetes por "makina1.ar" y "makina2.ar" para que
luego lleguen a "otramakina.ar". A esta funcion, no le encontrado mucha utilidad,
aunque puede ser muy util para probar si nuestra red acepta este tipo de paquetes. Se
puede lograr esto con un maximo de 8 hosts diferentes,
aunque a mayor cantidad de maquina que pasen los paquetes, mayor va a ser la demora en
que lleguen a destino Con el argumento "-i" podemos lograr que espere cierto tiempo
(en segundos) de
espera entre los paquetes enviados.

Usando el argumento "-l" podemos hacer que netcat en vez de enviar paquetes los
reciba. Hay que usarlo en conjunto con el argumento "-p" para poder
indicarle el puerto en el que debe quedar en escucha. Para poder dejar a netcat en
modo de escucha a netcat en puertos menores a 1024, hay que ser root. Creo que seria
recomendable decir que es mejor usarlo sin ser root por algun tipo de problema que
pueda llegar a afectar a nuestro sistema. (como se dice en todos lados, no(c
  • Links de descarga
http://lwp-l.com/pdf11214

Comentarios de: Tutorial de Netcat (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad