coWPAtty for Windows MAIN:" c# [' V" W5 W: S0 @- t+ L- A" K, a) K5 X5 b% z9 [5 [' ]0 C' | p& @
"coWPAtty is designed to audit the pre-shared key (PSK) selection for WPA networks based on the TKIP protocol." - Joshua Wright. ! j4 _$ I9 I$ ~6 {, C, a, \7 D T9 y& P' z4 Q; e- a
Project Homepage: http://www.willhackforsushi.com/Cowpatty.html
2 }- M; E4 X) g: L0 w: F7 {4 K% j& u, O0 Z/ r+ V% x* X* u& b. U# S1 O6 C; X7 A4 @$ ~$ y3 c9 R, b, n `
Local Mirror: Cowpatty-4.0-win32.zip MD5: aa9ead2aacfcc493da3684351425d4c6
9 b3 @4 E& O' [: O7 [3 u' P4 L4 i1 l h8 Z
' u8 t9 G) I5 T @5 ~7 [2 w- _" V* }
coWPAtty Dictionary Attack
! P4 D* R/ V4 [# s7 |! M* E
; ~7 h4 W' N$ U0 v0 j Precomputing WPA PMK to crack WPA PSK
6 z; C2 d9 r6 c8 V/ J4 ^1 d- F% P/ E$ w7 Q$ e7 b- j coWPAtty Precomputed WPA Attack
; i, y# U4 E4 B
8 Y, T9 }: ]3 ~' P9 T% rcoWPAtty Recomputed WPA2 Attack
$ C( N7 |* e# d. k5 \' M! C. F( L% f0 _
coWPAtty Tables
( R6 N& l- z' z, z+ [: [- K- w- b! [$ Y8 ? n4 CcoWPAtty Usage:" l' Q1 y& _/ ]; a, B. K6 R* J. Z3 o7 t8 }/ T+ ]
5 V! ~) Y/ b2 T- G1 @( M9 f; u/ W5 h- A9 J& W7 b
8 g* d6 s' \ R# D
; x2 i4 a0 [1 w) b9 D0 d5 r. |coWPAtty Dictionary Attack:
( n: ^6 w3 G$ [: B8 r9 a, {2 P& p m( @ Toperform the coWPAtty dictionary attack we need to supply the tool witha capture file that includes the TKIP four-way handshake, a dictionaryfile of passphrases to guess with and the SSID for the network.
! `6 ]5 @4 r% K; U3 S3 E U4 v) `
9 g1 _6 x5 V$ c, m) e: q+ k# @% d In orderto collect the four-way handshake you can either wait until a clientjoins the network or preferably you can force it to rejoin the networkusing tools like void11 or aireplay and capture the handshakes usingsomething like kismet, ethereal or airodump.
0 u' ]8 p( o- ~% F; \1 z; Y$ Q; @& B7 o) X6 m( n( ^$ c4 P3 J- l L
cowpatty -f dict -r wpapsk-linksys.dump -s linksys
' e! ?0 H5 D0 @# p
8 {# _2 t2 D# y; y3 g' R' K) C2 W3 _& H1 X/ P N& ^" Z- W: d' A* c& L$ a4 |" t, A: N
4 Y! g- y/ z% ]1 r' N0 \
, S: ^' f$ N( z, M6 d. m
% y% u0 W( x% A8 Q+ z5 T. h5 ^/ s! d; M- }' H" q! g% M/ v% a% e9 D5 ?# o r8 E7 p! ~. V1 U
As youcan see this simple dictionary attack took 51 seconds, we can speed upthis process by precomputing the WPA-PMK to crack the WPA-PSK (seebelow).
, M+ W6 X7 x2 \7 F* Y( K0 F# p/ S/ @' M7 M( x9 E
wpapsk-linksys.dump is the capture containing the four-way handshake
1 G4 P# A/ r" Z# c8 y$ j& x; t0 E7 M$ d! M& A+ ?1 n/ D* p; C
dict is the password file
B& R( A8 E) j5 \0 E5 l. f j! a- N) R8 e
linksys is the network SSID
& b, @' m2 p4 p4 ^1 @6 C; @2 V
: o+ K8 O/ ^& [% C% V1 `0 y' i3 f: [" z; k3 X6 T3 Z
5 @" e/ {# B8 q$ x( WPrecomputing WPA PMK to crack WPA PSK:& ?( q1 a- w9 ?+ R, ^4 }& y8 k& Z' [1 a! u8 a. b0 |9 ]7 \7 J6 n
genpmkis used to precompute the hash files in a similar way to Rainbow tablesis used to pre-hash passwords in Windows LANMan attacks. There is aslight difference however in WPA in that the SSID of the network isused as well as the WPA-PSK to "salt" the hash. This means that weneed a different set of hashes for each and every unique SSID i.e. aset for "linksys" a set for "tsunami" etc.
( J% Z0 [; ` P; N% H! i5 j/ J; c% [+ H( w8 i8 z5 ]' V4 E2 p; p1 q8 c! u, [* ]" a' I* z! X2 K( j. D
So to generate some hash files for a network using the SSID cuckoo we use:
3 ~: Z! Q. |$ b/ u2 [& |! Y
, T# ~- [$ P6 @& j' o$ n* e0 x' C) z* Z- [
& @: d/ n; z; k& ngenpmk -f dict -d linksys.hashfile -s linksys
" e: r5 S, a8 M1 L R \2 F) a v& K) s
: @, ^1 h( S+ O, u: m
( E: Q' u1 `( T( K g( ~0 A 
; e4 o# d5 r" V. U. S. P' t- \0 G7 ~* y# s! Y. s+ H8 `, i2 {: ~
9 |( M- r; U% G5 {; D+ zdict is the password file
$ u! {* J: _; d0 ]
H. ^, O9 X6 b" G- k. Y# zlinksys.hashfile is our output file
# m/ M) F2 A* z8 e! l
% F" u( X V' o+ `9 `; P linksys is the network ESSID
; m* a9 T1 o& I& v" R ~* L7 ?" v8 X; L7 M: j4 E; n! n9 I4 z# l. N: E5 X, X1 |+ b( P. O( b e+ b* g( p- N( ]3 n
coWPAtty Precomputed WPA Attack:4 z7 T. n" N& j p5 E1 G! A3 g
* h& d, p7 s# o z6 _Now wehave created our hash file we can use it against any WPA-PSK networkthat is utilising a network SSID of cuckoo. Remember the capture(wpa-test-01.cap) must contain the four-way handshake to be successful.
8 @ f& i$ s1 l+ \; n& L/ W {- \, V/ h3 x
( Z' W) n7 _ A) X$ P: B t/ d' s7 R# R- ^
cowpatty -d linksys.hashfile -r wpapsk-linksys.dump -s linksys
/ H, d, _ c8 o# P. w8 {, G( v' j# c8 G! n3 L! ? 
5 B+ P' U. a% |+ @
$ }6 G8 b) O& W e5 U6 K% G$ z3 ]4 e" V5 \8 f2 ^9 d" ^, d$ P: a0 {
wpa-test-01.cap is the capture containing the four-way handshake
. A4 @- o- E, i6 F6 q8 W' W; p
) h0 T) X8 j# m linksys.hashfile are our precomputed hashes
% Z; n9 o3 S& p7 U( N5 x
/ N( I! Y% d7 e, s linksys is the network ESSID
7 r! r& ?$ D& r: }. A* ~
6 L4 j) _, D+ y& O, d/ K: u. o3 D- S7 K* ]: }
1 z$ i( N: V. q& T6 `- oNotice that cracking the WPA-PSK took 0.04 seconds with the pre-computed attacked as opposed to 200 secondswith standard dictionary attack mode, albeit you do need to pre-computethe hash files prior to the attack. However, precomputing large hashfiles for common SSIDS (e.g. linksys, tsunami) would be a sensible movefor most penetration testers.
# x- r- M. _ N! B! C H9 b
8 W& s, p' @& z Y0 K, D0 M" A9 I- [/ v- L; ^
# `. W7 b$ h- v' ?3 z1 ccoWPAtty Precomputed WPA2 Attack:- d( ^7 X: ~* l+ ]0 B
8 M, r! d0 U. {9 N/ X3 {coWPAtty4.0 is also capable of attacking WPA2 captures. Note: The same hashfile as was used with the WPA capture was also used with the WPA2capture.
' `* ^/ P; `# F: x% c8 M% X+ ]& j9 d3 ^+ Y3 p: {; P& A cowpatty -d linksys.hashfile -r wpa2psk-linksys.dump -s linksys
4 ]7 D5 f3 \8 n- E/ g3 v0 F1 M' Z4 k# ~ 
3 y8 E" u [6 T4 X, N) Q0 |
) U; B1 O* z! b- q+ s1 n9 L X/ Y2 z- b; }) t
9 N* U- [" ~# J6 ], c& k7 A+ g wpa2psk-linksys.dump is the capture containing the four-way handshake
& O' ]! I: q7 O% a, {6 t8 F' A4 O- o: ^4 }! m. ~ dict is the password file
6 O* N: {( c+ q( C
1 {3 V! b% U0 ?+ Y% O linksys is the network SSID
]/ t N9 Y( E) _: e b0 _/ q1 A
! S2 {; h1 _& Z& ^5 ^9 x
* Z& C* ]2 N" w' x, ?# f: v9 t6 @# J' Y. P7 t* G, X6 `/ LcoWPAtty Tables: + @& l, |7 A$ C
8 ?! h5 l% \6 E, G3 `" n9 g1 i( ?- AThe Church of Wifi have produced some lookup tables for 1000 SSID's computed against a 170,000 word password file. The resultant table are approximately 7 Gigabytes in size and can be downloaded via Torrent:
$ v- ~7 @' S6 V: D) X& m( w0 `+ d& ~3 Z p9 A: H8 d8 ?% c- `& w+ u3 c" s0 l. j% y
http://torrents.lostboxen.net/co ... atty-4.0_2006-10-19/ @2 S; d7 G4 e3 W( D+ R1 A
2 K9 `" L& E+ T$ x, r& g4 S9 Q6 H6 y# _! P3 J% n! I8 D# m; {2 K& N/ e8 T6 |
A 33 Gigabyte set of tables are also available: http://umbra.shmoo.com:6969/$ d5 C" P* g$ p! D, i8 a
9 g6 O; o7 o9 h3 c" g/ |% N) E, X1 X2 _8 y0 q2 r
4 j1 N8 u) d+ W% V' ?2 W% rOr you can buy them via DVD, direct from Renderman (initiator of the project): http://www.renderlab.net/projects/WPA-tables/