Table of Contents

Packetforge-ng

Descripción

El propósito de packetforge-ng es crear paquetes encriptados para poder inyectarlos con posterioridad. Podemos crear varios tipos de paquetes como “ARP requests”, UDP, ICMP o paquetes hechos a la medida. El uso más común es crear paquetes “ARP requests” para ser inyectados.

Para crear un paquete encriptado, es necesario tener un archivo PRGA (pseudo random genration algorithm). Este archivo lo usaremos para encriptar el paquete que vamos a crear. Este archivo se obtiene con aireplay-ng chopchop o con el ataque de fragmentación.

Uso

Uso: packetforge-ng <modo> <opciones>

Opciones:

Opciones de origen:

Modos:

Ejemplos de uso

Aquí ponemos un ejemplo de como generar un paquete “arp request”.

Primero hay que obtener un archivo xor (PRGA) con el ataque chopchop o con el ataque de fragmentación.

Despues usa un comando como el siguiente:

packetforge-ng -0 -a 00:14:6C:7E:40:80 -h 00:0F:B5:AB:CB:9D -k 192.168.1.100 -l 192.168.1.1 -y fragment-0124-161129.xor -w arp-request

Donde:

Asumiendo que estás experimentando con tu propio punto de acceso, el paquete “arp request” generado con anterioridad puede desencriptarse con la clave que ya conoces. Por lo que para mirar el paquete que hemos creado podemos desencriptarlo:

Escribe “airdecap-ng -w <clave> arp-request”

El resultado es algo como esto:

Total number of packets read             1
Total number of WEP data packets         1
Total number of WPA data packets         0
Number of plaintext data packets         0
Number of decrypted WEP  packets         1
Number of decrypted WPA  packets         0

Para ver el paquete que acabamos de desencriptar , escribimos “tcpdump -n -vvv -e -s0 -r arp-request-dec”

El resultado será similar a:

reading from file arp-request-dec, link-type EN10MB (Ethernet)
18:09:27.743303 00:0f:b5:ab:cb:9d > Broadcast, ethertype ARP (0x0806), length 42: arp who-has 192.168.1.100 tell 192.168.1.1

Que es lo que esperábamos ver. Ahora podemos inyectar este paquete “arp request” con el siguiente comando: “aireplay-ng -2 -r arp-request ath0”.

El programa nos contestará:

      Size: 68, FromDS: 0, ToDS: 1 (WEP)

           BSSID  =  00:14:6C:7E:40:80
       Dest. MAC  =  FF:FF:FF:FF:FF:FF
      Source MAC  =  00:0F:B5:AB:CB:9D

      0x0000:  0841 0201 0014 6c7e 4080 000f b5ab cb9d  .A....l~@.......
      0x0010:  ffff ffff ffff 8001 6c48 0000 0999 881a  ........lH......
      0x0020:  49fc 21ff 781a dc42 2f96 8fcc 9430 144d  I.!.x..B/....0.M
      0x0030:  3ab2 cff5 d4d1 6743 8056 24ec 9192 c1e1  :.....gC.V$.....
      0x0040:  d64f b709                                .O..

Use this packet ? y

Saving chosen packet in replay_src-0124-163529.cap
You should also start airodump-ng to capture replies.
End of file.

Introduciendo la “y”, inyectaremos el paquete que hemos creado con packetforge-ng.

Trucos de uso

A la mayor parte de los puntos de acceso no les importa las IPs que se usan en los paquetes “arp request”. En estos casos podemos usar 255.255.255.255 tanto para la IP de origen como para la IP de destino.

Problemas de uso

Un error muy común que comete mucha gente es incluir las opciones -j y/o -o creando paquetes inválidos. Estas opciones ajustan las variables FromDS y ToDS en el paquete que se ha generado. A menos que estes haciendo algo especial y realmente sepas lo que estás haciendo; no uses estas opciones. En general, no son necesarias.