/* Variable definitions ==================== */ /* Use this with templates/template-twocol.html */ -->

Chat-Kasper MH

Que es el IP-Spoofing ?

Posted by kasp3r11 15:39, under |

Que es el IP-Spoofing ?


El IP-Spoofing es basicamente el aprovechamiento de una relacion de
confianza entre dos "trusted hosts".
Supongamos que nosotros trabajamos diariamente en un server llamado
CAOS y tambien lo hacemos diariamente en otro server llamado RAXR,
veran rapidamente que seria muy molesto tener que estar a cada rato
telneteando a CAOS para ingresar el user y el pass, y luego
deslogueandonos para telnetearnos a RAXR para volver a poner el user
y el pass, y si tenemos que hacer distintas tareas secuencialmente en
cada uno de los servers directamente nos queremos matar. Bueno, para
evitar una serie de suicidios en masa se invento el concepto de
"trusted hosts", o podriamos traducirlo como "hosts de confianza";
que quiere decir esto.. que si yo soy un usuario del servidor CAOS y
tambien lo soy del servidor RAXR y no quiero estar logueandome a cada
rato en cada uno de estos servidores, pues establezco una relacion de
confianza entre ambos (trusted hosts) con lo cual yo estando logueado
en CAOS puedo pasar directamente a RAXR usando un comando y sin
necesidad de desloguearme ni poner contrase~a; en sistemas *nix el
comando que se utiliza para pasar de un server a otro es "rlogin".
Bueno, ya se estaran dando cuenta por donde viene esto del IP-Spoofing;
vamos a explicarlo de la forma divertida, ahora yo soy el sujeto "X"
que quiero entrar al server RAXR aprovechando la relacion de confianza
que tiene con CAOS, lo que hago es ir al server RAXR y decir que soy un
usuario de CAOS y como habiamos quedado el otro dia en que eramos
"trusted hosts" me tenes que dejar pasar, y como el servidor RAXR
verifica que evidentemente venimos del server CAOS nos dice "pasa que
esta todo bien". ;)
Una cosa que tenemos que tener en cuenta es el que el IP-Spoofing no es
un ataque, es solo un paso en el ataque; porque digo esto, porque si el
sujeto "X" entra a RAXR diciendo que es un usuario de CAOS, estariamos
en el server RAXR pero con los privilegios que tenia ese usuario, una
vez estando en RAXR tendriamos que buscar la forma de hacernos "root"
si es que ese es nuestro objetivo.




2. Un poco de TCP/IP.


El IP-Spoofing es una tecnica muy complicada ya que necesita de un
amplio conocimiento del protocolo TCP/IP. Siendo que no es el
objetivo de este texto entrar en el ambito tecnico no me extendere
mucho en la explicacion del protocolo, al que le interese saber mas
sobre esto puede buscar en el RFC 1180.

El TCP/IP es en realidad 2 protocolos que estan unidos, el TCP
(Transmission Control Protocol) es el encargado de las comunicaciones,
y el IP (Internet Protocol) es el encargado de enviar los paquetes.

El IP a diferencia de los protocolos "seguros" no esta orientado a la
conexion, lo que se puede decir que hace el IP es encargarse de mandar
los datos pero sin saber si llegan o no.

EL protocolo IP tiene varios campos de 32 bits en los que se almacena
diferente tipo de informacion como ser las direcciones de origen y
destino, la longitud del paquete, la version del protocolo, etc.
Todos estos campos los podemos modificar facilmente y podemos encontrar
muchos programas para hacerlo.

Dentro del TCP/IP, el TCP es el protocolo mas seguro y es el que se
encarga de que se haga la conexion.
El TCP estable la conexion utilizando un proceso denominado "saludo de
las tres direcciones" (traducido es algo asi) y como habran deducido
consta de tres pasos:

1. CAOS ---SYN--> RAXR
2. CAOS <--SYN/ACK--- RAXR
3. CAOS ---ACK--> RAXR

Aqui vemos como el server CAOS quiere establecer una conexion con el
server RAXR y le envia un indicador SYN, luego RAXR autentifica con un
SYN/ACK, y CAOS le vuelve a confirmar con otro ACK.
A todo esto, en el SYN enviado por CAOS ya aparece el "numero de
secuencia" que al ser lo primero en enviarse se lo llama ISN (Initial
Secuence Number) y es diferente en cada paquete; cuando RAXR responde
con el SYN/ACK tambien le envia su ISN, y por ultimo cuando CAOS vuelve
a responder con un ACK envia el ISN que le habia enviado antes RAXR pero
sumandole 1 (osea ISN+1).

Podemos simplificar todo este "saludo de las tres direcciones" que sirve
para iniciar una conexion de esta forma:

1. CAOS: Hola! te puedo mandar algo ?
2. RAXR: Si, me lo podes mandar, me lo mandas ?
3. CAOS: Si, ahora te lo mando.




4. Como funciona el IP-Spoofing ?


Muchos estaran pensando que despues de todo lo unico que tenemos que
hacer es buscar algun programita que cambie nuestra direccion IP y
listo, logramos spoofearnos y conseguimos la muy codiciada shell en
nuestro objetivo, pues no :(

Recordemos que para establecer una conexion debemos saber el ISN de
nuestro objetivo (RAXR), puesto que de lo contrario no podremos
responderle a su SYN/ACK, y nosotros al estar falsificando una
direccion IP (CAOS) no recibimos ninguna respuesta de la victima,
estamos totalmente ciegos; aparte ahora surge un nuevo problema ya que
el host CAOS va a estar recibiendo datos de RAXR hablandole sobre una
conexion, y CAOS al no entender nada de esto va a terminar el dialogo
con RAXR y aqui se termino nuestro ataque.

Bueno, veamos ahora cuales son los pasos que deberiamos seguir para
lograr un IP-Spoof exitoso:

1. Elegir un host victima.
2. Buscar algun trusted host de nuestra victima.
3. Desactivar el trusted host.
4. Conseguir los numeros secuenciales (ISN) de la victima.
5. Usurpar la identidad del trusted host (Spoofearse!).

Y si hacemos las cosas bien habremos vencido a nuestra victima.

Ahora veamos mas en profundidad cada uno de estos pasos, salvo el 1
que cada uno sabra porque y para que elegir la victima :)

2. Encontrar un trusted host de nuestra victima puede ser algo para
nada facil, pero algunas de las cosas que podemos hacer para
conseguirlo es un "showmount -e" para ver adonde se exportan los
archivos del sistema, o usar el comando "rcpinfo" que nos puede dar
informacion muy interesante.

3. Supongo que ya sabran la necesidad de desactivar al trusted host,
puesto que si no lo hacemos a CAOS le va a llegar el SYN/ACK en
respuesta al SYN que envio X suplantando a CAOS.
Bueno, y como desactivamos a CAOS ? lo hacemos facilmente mediante un
"SYN Flooding"! Vamos a suponer que ya todos alguna vez hemos
floodeado a alguien y conocemos la teoria del flood :) asi que el
proceso es simple enviamos SYN consecutivos al puerto TCP que
queramos desactivar y nos aseguramos de que de la direccion IP de la
que estamos enviando el ataque sea un host inalcanzable, osea hacemos
un spoof antes de floodear, para que si CAOS en una de esas alcanza a
mandar un SYN/ACK a la IP de la que vienen las peticiones SYN, que
esta no desactive la conexion puesto que no sabe de que se trata y nos
arruine todo nuestro noble floodeo.

4. Como ya habiamos dicho al principio necesitamos saber el ISN de
nuestro objetivo para terminar la conexion, puesto que a nosotros no
nos llega el SYN/ACK de RAXR con el ISN de este, y sin este ISN que
envia no podemos mandarle el ACK con el ISN+1; espero que todavia
recuerden "el saludo de las tres direciones" y todo lo que me gaste
explicando mas arriba..
Bueno y como conseguimos el ISN (o numeros secuenciales) de nuestra
victima ?? lo que hacemos es lo siguiente, nos conectamos a un puerto
TCP de nuestra victima (como ser el SMTP), todo esto lo hacemos justo
antes de iniciar nuestro ataque, y completamos "el saludo de las tres
direcciones"; este procedimiento es el normal que ya conocemos pero
con la sola excepcion de que ahora nos vamos a guardar el ISN de el
otro host :) Este proceso ("el del saludo...") es factible que se
repita varias veces y recien se guarde el ultimo ISN que nos envie,
tambien nos sirve para poder calcular el tiempo de ida y vuelta (osea
cuanto tarda) entre la victima y nosotros.

5. Aqui hemos llegado al ultimo paso, a la etapa en la que la totalidad
del IP-Spoofing es completado. Veamos como seria:

a). CAOS(X) ---SYN--> RAXR
b). CAOS <--SYN/ACK--- RAXR
c). CAOS(X) ---ACK--> RAXR
d). CAOS(X) ---PSH--> RAXR

Primero lo que hacemos es spoofearnos para que X tome la identidad de
CAOS y aproveche la relacion de confianza que tiene con RAXR; en este
paso X envia un SYN al puerto 513 para entablar una conexion con RAXR
diciendo que viene de CAOS.
Segundo RAXR recibe nuestro SYN que supuestamente viene de CAOS y le
manda a este un SYN/ACK, por supuesto que este SYN/ACK nunca le va a
llegar a CAOS porque le estamos haciendo un "SYN Flooding" y no va a
dar abasto para atender a lo que le dice RAXR, en el caso que si
atendiera a CAOS este terminaria la conexion y nuestro ataque habria
finalizado.
Tercero esperamos un poco a que RAXR le envie el SYN/ACK a CAOS, cada
uno sabra como hacer esta prediccion en base a los datos adquiridos,
y una vez transcurrido este tiempo nosotros "X" le enviamos a RAXR un
ACK con el ISN de RAXR que ya antes habiamos conseguido mas 1, osea
ISN+1.
Cuarto paso, si acertamos en todas nuestras predicciones RAXR habra
aceptado nuestro ACK, la conexion se habra establecido y comenzara la
transmision de datos :) !!




5. Comentario final.


Vamos a aclarar que toda la tecnica de IP-Spoofing explicada en este
texto es muy basica, y como dije al principio va dedicado para entender
el concepto a un nivel de conocimientos bajo.
Posiblemente se pregunten como realizar muchas de las tecnicas
explicadas aqui, para todo esto hay muchos programas que nos van a
facilitar la tarea y que los pueden conseguir en cualquier parte de la
red. Pero igualmente no olvidemos que todo esta en la buena prediccion
que hagamos, y cuanto mayor conocimientos sobre el Spoof y el TCP/IP
tengamos nuestra prediccion va a ser mucho mas certera.
Por ultimo quiero decir que el IP-Spoof es solo una de las muchas
formas que tiene el Spoof, explique esta porque me parece que es la
mas general y la que puede ayudar a entender otras mas complejas y
por supuesto el concepto en si mismo.

Bueno, espero que hayan disfrutado en leer este texto tanto como yo
en escribirlo. Y ya saben cualquier comentario, consulta o correccion
la pueden hacer a kasper11@masterhacks.net

Tags

Labels

Blog Archive

Blog Archive