coWPAtty for Windows MAIN:" c# [' V" W5 W: S0 @- t+ L- A" K
) {/ c" W' S' G- h( |"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
. ]: A2 }. [: A! P H
Project Homepage: http://www.willhackforsushi.com/Cowpatty.html
- W- ]5 B2 P: o- P- g7 {4 K% j& u, O0 Z/ r+ V% x* X* u& b. U
! e8 v; J; b7 h4 h: B# K! W, JLocal Mirror: Cowpatty-4.0-win32.zip MD5: aa9ead2aacfcc493da3684351425d4c6
9 b3 @4 E& O' [: O7 [
% s4 P2 J* V) F) d1 s2 n; S' O' u8 t9 G) I5 T @1 j2 v j" V, h( `8 n2 b% \* W
coWPAtty Dictionary Attack
5 m2 k( o% F0 N& K) m; ~7 h4 W' N$ U0 v0 j Precomputing WPA PMK to crack WPA PSK
: @$ c: C/ n- g, R4 O; ]
- F% P/ E$ w7 Q$ e7 b- j coWPAtty Precomputed WPA Attack
; i, y# U4 E4 B+ \0 i& Z# Q4 l$ j$ P6 q/ X
coWPAtty Recomputed WPA2 Attack
$ C( N7 |* e# d. k7 V5 }9 u! @* I8 E0 L5 E
coWPAtty Tables
+ E2 N* D: j9 L: T+ }7 c# [, v) G7 r
+ [: [- K- w- b! [$ Y8 ? n4 CcoWPAtty Usage:" l' Q1 y& _/ ]; a, B. K- |5 x$ e" e& P E: F p
5 V! ~) Y/ b2 T- G1 @$ ?6 Y& h, d# K* z( r3 Q
8 g* d6 s' \ R# D& I8 r9 F) b+ t+ d
coWPAtty Dictionary Attack:
) Q) L( ^7 a5 i% z+ h3 W8 P9 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.
$ d& D4 c x. B) ]: Z/ S9 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& {- Z3 M) }0 w
cowpatty -f dict -r wpapsk-linksys.dump -s linksys
' e! ?0 H5 D0 @# p
+ `7 f9 ~& h! ]* Q3 _) f3 _& H1 X/ P N& ^" Z
! n; Z4 b+ W3 N0 T, |. R
8 t4 B3 E# s2 b9 c, S: ^' f$ N( z, M6 d. m
4 c) \* H) [6 T" v5 T. h5 ^/ s! d; M- }' H" q! g% M/ v% a% e7 r# R' F7 g5 [$ }* T/ Q; _* M
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$ k8 m3 F5 f0 q0 V& s6 y
wpapsk-linksys.dump is the capture containing the four-way handshake
1 G4 P# A/ r" Z# c8 y$ j& x; t0 E7 M
7 Q; ]$ d( A2 U* v" hdict is the password file
B& R( A8 E) j5 \
7 O7 `, z! P* m) @4 Y; y8 c/ y6 ~linksys is the network SSID
& b, @' m2 p4 p4 ^1 @6 C; @2 V7 P4 @# x* U* f/ e
3 f: [" z; k3 X6 T3 Z: t; [3 x" f- v5 X% y
Precomputing WPA PMK to crack WPA PSK:& ?( q1 a- w9 ?+ R, ^4 }& y8 k& Z' [7 ~! k' ]+ M; d8 c9 F. r4 ^; v
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.
/ F4 y5 P. F8 Z: J+ v: s% l' `
5 j/ J; c% [+ H( w8 i8 z5 ]' V4 E2 p; p1 q8 c! u; F- `% g; D- c9 K9 |+ ?7 _6 k
So to generate some hash files for a network using the SSID cuckoo we use:
3 ~: Z! Q. |$ b/ u2 [& |! Y
0 X/ F3 x! h+ C' m9 @$ [$ n* e0 x' C) z* Z- [
0 I8 x7 k/ H4 N" M. N/ hgenpmk -f dict -d linksys.hashfile -s linksys
" e: r5 S, a8 M1 L
& H: p L; \9 l5 ]- e1 a- ~# } M
+ A: }$ q& `3 E4 s/ E4 V( E: Q' u1 `( T( K g( ~0 A 
! W; f! Z/ q2 U( Q+ }, r$ |) k
' t- \0 G7 ~* y# s! Y. s+ H8 `, i2 {: ~4 a6 v) L6 v5 Y. L9 l
dict is the password file
$ u! {* J: _; d0 ]" v8 p4 W$ \" S; i( X( J
linksys.hashfile is our output file
3 F0 B3 f& ^7 a7 V3 _- h4 s5 Q% F" u( X V' o+ `9 `; P linksys is the network ESSID
, j# L" | O# |+ e4 j* Z: g D+ ^" v8 X; L7 M: j4 E; n! n9 I4 z# l. N: E5 X, X1 |+ b( P. O( b
* J* w: Z0 y+ d2 R6 z$ f& z& Q! TcoWPAtty Precomputed WPA Attack:4 z7 T. n" N& j p5 E1 G! A3 g1 V. _5 |* W8 e: S7 x
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" ^. l7 r( W. |5 F9 K9 m& Y% z
( Z' W) n7 _ A) X$ P: B
r8 _6 ?1 M) f0 c8 Ecowpatty -d linksys.hashfile -r wpapsk-linksys.dump -s linksys
9 c1 M. z5 w+ k% {, w+ q. w8 {, G( v' j# c8 G! n3 L! ? 
+ I" n/ N2 H" C8 c* a5 Y. `; v
$ }6 G8 b) O& W e5 U6 K% G$ z3 ]4 e" V5 \8 f2 ^9 d
8 M, n, v- H8 j4 u) wwpa-test-01.cap is the capture containing the four-way handshake
3 n6 a2 T; }! [' s R
) h0 T) X8 j# m linksys.hashfile are our precomputed hashes
! m* {4 g/ C5 J( E f
/ N( I! Y% d7 e, s linksys is the network ESSID
7 r! r& ?$ D& r: }. A* ~
. C4 e, G$ _6 K2 [4 @6 L, d/ K: u. o3 D- S7 K* ]: }
( s( @% b9 k+ mNotice 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.
& ^2 }% V5 A- l' c1 i" h" |& P8 W& s, p' @& z Y3 V$ P/ C0 F9 a. d7 n6 `
# `. W7 b$ h- v' ?3 z1 ccoWPAtty Precomputed WPA2 Attack:- d( ^7 X: ~* l+ ]0 B
' T* D/ R' u9 V4 lcoWPAtty4.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.
, C) u3 P4 L1 i) _) P
% X+ ]& j9 d3 ^+ Y3 p: {; P& A cowpatty -d linksys.hashfile -r wpa2psk-linksys.dump -s linksys
1 q& Z( Z% _% _2 O) _ F
3 v0 F1 M' Z4 k# ~ 
3 y8 E" u [6 T4 X, N) Q0 |6 O! Y$ Z( l' n9 e
( [0 _3 r( V1 U& S5 O! L7 l9 N* U- [" ~# J6 ], c& k7 A+ g wpa2psk-linksys.dump is the capture containing the four-way handshake
6 O/ U0 {/ r% ]) h* N1 P* E. P4 O- o: ^4 }! m. ~ dict is the password file
+ z& w7 z& _1 N) { r" T1 {3 V! b% U0 ?+ Y% O linksys is the network SSID
]/ t N9 Y( E) _: e b0 _/ q1 A7 b# U/ ?! ~$ v7 x/ G4 g2 k% K$ s
2 R% I' H* E9 s& w: v9 t6 @# J' Y. P7 t* G, X6 `/ LcoWPAtty Tables:
* }6 z3 x8 B; p/ m8 ?! 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:
1 _7 P. C% Q( D9 _0 M1 @5 o( w0 `+ d& ~3 Z p9 A: H8 d8 ?% c- `& w2 U- o1 X3 ~% v8 w) c% X7 o$ c
http://torrents.lostboxen.net/co ... atty-4.0_2006-10-19# l' D1 X. A( O8 D% \: ?, s
2 K9 `" L& E+ T$ x, r& g4 S9 Q6 H6 y# _! P3 J% n
0 I2 B0 j: H3 F& z8 r% f3 yA 33 Gigabyte set of tables are also available: http://umbra.shmoo.com:6969/$ d5 C" P* g$ p! D, i8 a
) R4 {7 o0 x) u* [2 W" K" B, q4 |# s* b4 V( w) `
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/