Inicio > Ethernet, geek, gratuito, hackear, Linux, manuales, seguridad, Tcp/Ip, tutoriales > Envenenamiento ARP (Protocolo ARP – II)

Envenenamiento ARP (Protocolo ARP – II)


PROTOCOLO ARP

En una red tipo IEEE 802/Ethernet los hosts se comunican conociendo sus direcciones MAC, y no siempre sabremos ni dispondremos a mano de todas las direcciones MAC de todos los ordenadores que conforman la red. Como hemos dicho, el protocolo ARP será el encargado de obtener las direcciones físicas a partir de direcciones IP. En este tipo de redes es necesario conocer la MAC del destino con el fin de que solo el paquete llegue al interfaz de red correspondiente y no a otro, así que cuando se quiere producir una comunicación entre un host1 y un host2 en este tipo de redes, se tendrán que realizar una serie de pasos para llevar a cabo una comunicación correcta. Como observamos, el concepto de ARP solo cobra sentido si nos encontramos en el ámbito de redes conmutadas / locales, pues de lo contrario no sería necesario conocer la MAC del destino dentro de la red, pues la información se enviaría en modo multidifusión a todos los equipos de la red.

Imaginemos los siguientes datos y que el host1 quiere enviar paquetes al host2:

HOST1 ­> Dirección IP: 10.11.11.1 ; MAC: 11:11:11:11:11:11

HOST2 ­> Dirección IP: 10.11.11.2 ; MAC: 22:22:22:22:22:22

Los primero que debemos preguntarnos es: ¿ conoce host1 la dirección MAC del host2 ?. En caso de no conocerla es cuando el protocolo ARP actuará para averiguar a partir de la IP del destino (host2 , que sí la conocemos) su correspondiente MAC. Esta comunicación se encapsula en tramas tipo Ethernet de formato como el que sigue:

TIPO DE PROTOCOLO ­> Indica a que tipo de protocolo pertenece la trama (0x0806 indica ARP).

HLEN ­> Longitud dirección MAC.

PLEN ­> Longitud dirección IP.

OPERACION ­> Código de operación (ARP­request o ARP­reply).

SENDER HA ­> Dirección de origen hardware. (MAC origen).

SENDER IP ­> Dirección IP de origen. (IP de host1).

TARGET HA ­> Dirección MAC del destino. (En un arp­request irá vacío).

TARGET IP ­> Dirección IP del destino (IP de host2).

En base a este formato, se envían dos tipos de mensajes: Petición ARP (ARP­request) y Respuesta ARP (ARP­ reply). El primero es una trama con el código de operación de un ARP Request (campo operación igual a 1), y es lanzado a la dirección de multidifusión (broadcast FF:FF:FF:FF:FF:FF) del segmento de red con el fin de que el host destino responda a tal mensaje con el respectivo ARP­reply. De esta forma, el host1 que mencionábamos anteriormente tendría que enviar un arp­request a la red con sus campos de la siguiente manera:

OPERACION ­> 0x1 (ARP request)

SENDER HA ­> 11:11:11:11:11:11 (Ejemplo de MAC del host1)

SEND IP ­> 10.11.11.1 (Dirección IP de host1)

TARGET HA ­> 00:00:00:00:00:00 (Dirección MAC del host2. Campo vacío, pues es el dato que pretendemos averiguar)

TARGET IP ­> 10.11.11.2 (Dirección IP del destino host2)

Esta trama es enviada a todos los ordenadores de la red y únicamente el host destino responderá con un ARP ­reply al comparar la dirección contenida en el campo TARGET IP con su propia dirección IP, y en caso de ser iguales intercambiará los valores de los campos de la siguiente manera:

OPERACION ­> 0x2 (ARP reply)

SENDER HA ­> 22:22:22:22:22:22 (MAC del host2)

SEND IP ­> 10.11.11.2 (Dirección IP del destino host2)

TARGET HA ­> 22:22:22:22:22:22 (Dirección MAC del host2)

TARGET IP ­> 10.11.11.1 (IP del host1)

Con este mecanismo, el host1 ya conoce la dirección MAC del host2 y puede comunicarse con él. A continuación el sistema operativo se encarga de almacenar el par IP/MAC del host2 en una tabla en memoria caché, de donde se reutilizarán por un tiempo las direcciones MAC con el fin de que cada vez que se quiera enviar paquetes IP no se inunde la red con peticiones ARP.

Haremos uso de esta tabla para insertar entradas falsas en ella y hacer creer al host de origen que la dirección MAC de una determinada IP le corresponde otra MAC modificada interesadamente.

Tutorial I

Anuncios
  1. nycko
    19/03/2012 en 6:34 pm

    En la OPERACION: 0×2 (ARP reply), el TARGET HA ­deberia ser 11:11:11:11:11:11 (Dirección MAC del host1)

    • 01/04/2012 en 1:53 pm

      Gracias…espero que sigas asi, y perdona la equivocacion, pero a veces no tengo tiempo de corregir ciertos fallos. Un saludo.

  2. francisco
    23/05/2011 en 3:42 pm

    ola a ver si alguien me pude solucionar este problema resulta que creo el filtro en archivo de texto
    luego lo compilo con etterfilter y luego dentro de la interfaz grafica lo compilo vale asta hay bien el filtro supuestamente funciona por que el mensaje me lo da bien pero cuando yo ago el replacce a otra pagina no me reidirecciona , alquien me puede aydar mi correo es clase_18@hotmail.com este es el codigo de mi archivoif (ip.proto == TCP) {
    replace(“http://www.google.es”, “http://www.tuenti.com”);
    msg(“El filtro está siendo utilizado por mi.\n”);
    }

  1. 02/02/2011 en 5:34 pm
  2. 02/02/2011 en 5:27 pm
  3. 02/02/2011 en 5:19 pm
  4. 26/01/2011 en 9:02 pm

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: