Monday, January 2, 2012

ARP Poison 2

Continuemos te mostraré el código de como esta programado todo, y enviaremos el primer paquete de solicitud de ARP y veremos como el router responde.

Se me ha ido un punto, no he mostrado la cabecera Ethernet, comencemos con un resumen de esta y luego su código, la cabecera Ethernet es la primera en ser empaquetada después viene la cabecera ARP que ya fue explicada, la cabecera Ethernet esta compuesta por 3 campo:


- Dirección mac destino: (6 bytes)
- Dirección mac origen: (6 bytes)
- Y el tipo de protocolo de capa superior: (2 bytes)


Los primeros 6 bytes, representan la dirección mac de destino, los siguientes 6 bytes la dirección de origen y luego viene el tipo de protocolo de capa superior que en este caso deberás indicarle el tipo asignado para ARP.

El Frame Type Tendrá un valor de 0×0806 para especificar el protocolo ARP, es necesario asignar este campo, para que el nucleo entienda y sepa como desempaquetar el paquete que viene a continuación, este campo podría ser uno distinto si es que quisieras especificar el siguiente protocolo como IP.

Ahora el código en C/C++ para especificar la cabecera Ethernet:

#ifndef __Ethernet__20111128 



#include <pcap/pcap.h>


namespace Crossover{

namespace Framework{

namespace Net{

namespace Protocols{



#define ETHERNET_TYPE_ARP 0x0806

#define ETHERNET_TYPE_IP 0x0800

#define ETHERNET_TYPE_ETHER     0x0001

 

 struct Ethernet{

  u_char dst[6]; // 48.bit: Ethernet address of destination

  u_char src[6]; // 48.bit: Ethernet address of sender

  u_short type;  // 16.bit: Protocol type = ether_type$ADDRESS_RESOLUTION

 };

}}}}



#endif 

No comments:

Post a Comment