NetcatNetcat es un pequeño programa bastante interesante para administradores de red y para hackers. Se le suele denominar navaja multiusos por su gran abanico de posibilidades, que le confieren su múltiples opciones en línea de comandos. La especialidad de esta herramienta es el protocolo TCP/IP .
La gran utilidad es la de asociar a netcat a un puerto en un ordenador(servidor, ordenador objetivo) y poder conectarse a él desde otra máquina (cliente, ordenador origen), abriendo una puerta trasera. Por ejemplo podríamos obtener una shell (los privilegios que obtendríamos serían los del usuario que lanzo netcat en dicha máquina). Dado que se puede conectar a cualquier puerto, ya sea TCP o UDP, podemos usarle para crear nuestro propio ftp, o incluso para escaner de puertos.
De dónde bajarlo: -->
netcatUsos de netcat: -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 rastrear 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.
Parámetros básicos: -l: modo ‘listen’, queda a la espera de conexiones entrantes. En sistemas Windows, podemos usar la opción -L , permite a netcat reiniciarse con los mismos parámetros tras cerrar una conexión, cosa que no ocurre con -l.
-p: puerto local, es necesario cuando se usa la opción -l o -L. Si no se especifica puerto para las conexiones salientes, netcat utilizará cualquier puerto que le proporcione el sistema operativo. Hay que tener en cuenta que en los equipos Unix, solo el root puede especificar puertos 0-1024.
-u: modo UDP
-e: ejecuta el comando dado después de conectar. Solo funciona si se compilo netcat con el flag GAPING_SECURITY_HOLE.
-c: ejecuta órdenes de shell (hace /bin/sh -c [comando] después de conectar
-v: verbose. Informará de el número de datos enviados y recibidos al finalizar la conexión, asi como los problemas que puedan surgir.
Otros parámetros: -z: se usa en el escaneo de puertos, permite conocer que puertos están abiertos...
-w: el tiempo que esperará netcat antes de dejar de intentar conectarse.
-t: si se compiló con la opción TELNET, netcat gestionará la fase de negociación de una sesión telnet.
-r: selecciona número de puertos origen y destino de forma aleatoria, para evitar que el ratreo de puertos sea tan evidente.
-i: intervalo en segundos que espera netcat entre el envío de datos y el siguiente.
-g: para enrutamiento. Se pueden especificar hasta 8 direcciones a través de las que navega el tráfico netcat. La mayoría de los router ignoran las opciones de enrutamiento.
-G: puntero de salto, permite alterar la dirección IP siguiente de la lista de ruta. Siempre aparece en múltiplos de 4, siendo 0 la primera de la lista, 4 la segunda, etc..
-d: opción solo disponible en Windows. Pone a netcat en modo silencioso, permitiendo ejecutarse de forma independiente de la ventana de comandos de MS-DOS.
Algunos usos:1.Chat: Servidor:
nc -l -p 2000
Cliente:
nc localhost 2000
2.Transferencia de ficheros Receptor:
nc -l -p 2000 > fichero.recibido
Emisor:
nc localhost 2000 < fichero
3.Servidor de echo: Servidor:
nc -l -p 2000 -e /bin/cat
Cliente:
nc localhost 2000
Con la opción -e podremos ejecutar cualquier tipo de programa creado por nosotros mismos

.
4.Cliente IRC nc irc.freenode.net 6666
Lo podemos usar con cualquier servicio que use un protocolo de texto. Por ejemplo SMTP (Simple mail transfer protocol)
nc mail.servidor.com
5.Crear un proxy: Tan sencillo como :
nc -l -p 2000 -c “nc host1 22” (Redirigimos el tráfico de esta máquina recibido en el puerto 2000 se envía a la máquina host1 en el puerto 22)
Si en host1 hacemos un
nc -l -p 22 -c "nc host2 23"
podemos hacer una cadena de proxy y permitir dificultar el rastreo.
(/*------ CONTINUARÁ ------*/)
Programas afines:crypcat: netcat + criptografía del tráfico.
Fuentes:
http://www.hakim.ws/software/nc.manual.txthttp://crysol.org/node/28es.wikipedia.org/wiki/Netcat