coWPAtty for Windows MAIN:" c# [' V" W5 W: S0 @- t+ L- A" K8 ~2 `1 G5 G3 z4 u! e
"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
& y9 a; \8 B0 p" F$ L h- n4 Z
Project Homepage: http://www.willhackforsushi.com/Cowpatty.html
8 \; Q4 s# u4 d0 k; i+ ^0 a* Q7 {4 K% j& u, O0 Z/ r+ V% x* X* u& b. U
% C- O+ P% E3 j8 ~* z$ bLocal Mirror: Cowpatty-4.0-win32.zip MD5: aa9ead2aacfcc493da3684351425d4c6
9 b3 @4 E& O' [: O7 [
( T, E3 e i( B& h6 ^, f9 W' u8 t9 G) I5 T @
. f- l/ e: g2 a, E% scoWPAtty Dictionary Attack
# ]& `$ t' f) J1 I- D# ~4 G% C. M; ~7 h4 W' N$ U0 v0 j Precomputing WPA PMK to crack WPA PSK
9 Z/ B7 j/ ]" Q$ v u" g; ]
- F% P/ E$ w7 Q$ e7 b- j coWPAtty Precomputed WPA Attack
; i, y# U4 E4 B2 v( @# l- ~& I# b5 S- ~
coWPAtty Recomputed WPA2 Attack
$ C( N7 |* e# d. k
+ M/ B, j+ x4 f; XcoWPAtty Tables
' \- x+ @0 q% O5 K- b4 M2 C& q
+ [: [- K- w- b! [$ Y8 ? n4 CcoWPAtty Usage:" l' Q1 y& _/ ]; a, B. K
' W$ N q/ @6 C# M: {* `
5 V! ~) Y/ b2 T- G1 @
$ s3 U+ H- A+ L5 e8 g* d6 s' \ R# D
) f% h7 _( ] | n% }6 o2 ]8 v2 r' PcoWPAtty Dictionary Attack:
3 H% Q) a- _$ C A# S9 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.
# J2 F! J2 m/ P5 |6 X: O% B$ J" @2 U
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) l8 _8 B u1 H5 n; K7 h
cowpatty -f dict -r wpapsk-linksys.dump -s linksys
' e! ?0 H5 D0 @# p
1 p N! k. a- _3 _& H1 X/ P N& ^" Z# A: N O8 H' I+ t1 t) a

" l* p5 e4 Y/ H2 E, S: ^' f$ N( z, M6 d. m
8 I% Q( x8 [6 B# T5 T. h5 ^/ s! d; M- }' H" q! g% M/ v% a% e
8 u7 J1 z7 p4 x1 @# gAs 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
! I1 T( d* M* Q% X7 T2 _4 _1 U* _wpapsk-linksys.dump is the capture containing the four-way handshake
1 G4 P# A/ r" Z# c8 y$ j& x; t0 E7 M `1 Z' b: q a3 k
dict is the password file
B& R( A8 E) j5 \
8 _4 ], y1 ^1 W5 W2 @& b1 H' ~linksys is the network SSID
& b, @' m2 p4 p4 ^1 @6 C; @2 V& \4 s2 l/ V" d: b1 v% ~
3 f: [" z; k3 X6 T3 Z( r/ L8 z% V6 Z! J
Precomputing WPA PMK to crack WPA PSK:& ?( q1 a- w9 ?+ R, ^4 }& y8 k& Z' [
& W# b- `+ t# P: r; ygenpmkis 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.
$ \+ w3 L# q) q, Q8 x2 R
5 j/ J; c% [+ H( w8 i8 z5 ]' V4 E2 p; p1 q8 c! u
2 {, B( m, Z. Z0 M& T9 hSo to generate some hash files for a network using the SSID cuckoo we use:
3 ~: Z! Q. |$ b/ u2 [& |! Y8 S% n) X) T% g) _, z; w
$ n* e0 x' C) z* Z- [# y7 F1 Y; C8 K$ g/ r" y( N- D, _
genpmk -f dict -d linksys.hashfile -s linksys
" e: r5 S, a8 M1 L
1 Z3 |; F$ O, Q7 I% \7 A9 W. @- G, [' w' Y5 P# _2 u
( E: Q' u1 `( T( K g( ~0 A 
% y- N" R6 }4 j, L( X) Z) z9 [' t- \0 G7 ~* y# s! Y. s+ H8 `, i2 {: ~
! ?* R3 ]% L6 t6 p9 hdict is the password file
$ u! {* J: _; d0 ]- V* C6 F& x; a2 d0 A4 C3 ~
linksys.hashfile is our output file
! c4 v1 C1 Y& R/ n
% F" u( X V' o+ `9 `; P linksys is the network ESSID
3 m* U. o* V7 M) I" v8 X; L7 M: j4 E; n! n9 I4 z# l. N: E5 X, X1 |+ b( P. O( b3 j9 M4 ^0 [2 j( l$ V; i G. b
coWPAtty Precomputed WPA Attack:4 z7 T. n" N& j p5 E1 G! A3 g) J4 f/ R' C" N& F* B& I
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
- g1 y3 G! V- ]% ?5 C, f5 A( Z' W) n7 _ A) X$ P: B+ s2 X5 d1 _! B1 ~) ?
cowpatty -d linksys.hashfile -r wpapsk-linksys.dump -s linksys
- L( ^7 F! M% c8 D* }; ]: u0 k0 W1 K& Y. w8 {, G( v' j# c8 G! n3 L! ? 
" C% \9 V+ m8 v6 s
$ }6 G8 b) O& W e5 U6 K% G$ z3 ]4 e" V5 \8 f2 ^9 d" G n3 i. X' W/ L" `( q/ g
wpa-test-01.cap is the capture containing the four-way handshake
* b& P% y' B y: u) h0 T) X8 j# m linksys.hashfile are our precomputed hashes
5 g& Q; i. g# {( N8 n$ r* D! h/ N( I! Y% d7 e, s linksys is the network ESSID
7 r! r& ?$ D& r: }. A* ~
9 o6 O7 f* Z. }, d/ K: u. o3 D- S7 K* ]: }
3 f! K: y* t; L: W! ?; N0 q6 b6 M: y# eNotice 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.
( e0 n3 b. \( e8 x+ @8 }3 {
8 W& s, p' @& z Y, W2 T( s( G2 X! w1 t
# `. W7 b$ h- v' ?3 z1 ccoWPAtty Precomputed WPA2 Attack:- d( ^7 X: ~* l+ ]0 B3 Q( v% q" B; q& m* O3 j
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.
6 T+ O0 Z1 a. E( u* y
% X+ ]& j9 d3 ^+ Y3 p: {; P& A cowpatty -d linksys.hashfile -r wpa2psk-linksys.dump -s linksys
. \5 b$ @3 F( m- d: O! P
3 v0 F1 M' Z4 k# ~ 
3 y8 E" u [6 T4 X, N) Q0 |
7 N7 g. M) X+ N# t A
* y! a! Q' w6 _* ^9 N* U- [" ~# J6 ], c& k7 A+ g wpa2psk-linksys.dump is the capture containing the four-way handshake
3 q) s' }3 Y2 X1 t
4 O- o: ^4 }! m. ~ dict is the password file
0 Q8 d1 p6 _5 r7 ^, r2 n# @) k
1 {3 V! b% U0 ?+ Y% O linksys is the network SSID
]/ t N9 Y( E) _: e b0 _/ q1 A# O; V V6 D" T0 C J, A; a
0 A7 _% g( _7 O# c3 g: v9 t6 @# J' Y. P7 t* G, X6 `/ LcoWPAtty Tables:
6 N9 p/ h O: T+ m. f( A8 ?! 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:
3 x; A, s& Q2 q/ b# A4 T0 p* p- Y( w0 `+ d& ~3 Z p9 A: H8 d8 ?% c- `& w
# v0 Z1 T% {# ]/ Q- J# N( T' j6 [http://torrents.lostboxen.net/co ... atty-4.0_2006-10-19
4 O, s) j" o5 N5 w+ \' `2 K9 `" L& E+ T$ x, r& g4 S9 Q6 H6 y# _! P3 J% n
; _3 ~# o' y$ c Z+ wA 33 Gigabyte set of tables are also available: http://umbra.shmoo.com:6969/$ d5 C" P* g$ p! D, i8 a4 A8 ^6 T! e" B+ p3 b/ m! R8 S
9 c( S6 U6 a9 D1 b9 i4 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/