SlideShare a Scribd company logo
1 of 75
Cracking WiFi… Faster!
(Faster PwninG Assured)
RECON 2006 – June 16th
, 2006
David Hulton <dhulton@openciphers.org>
RECON 2006 - June 16th, 2006 © The OpenCiphers
Cracking WiFi… Faster!
 FPGAs
 Quick Intro (I swear!)
 coWPAtty
 WPA Overview
 Precomputing tables
 Performance
 Airbase
 jc-aircrack
 jc-wepcrack
 pico-wepcrack
 Performance
 Conclusion
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGAs
 Quick Intro
 Chip with a ton of general purpose logic
 ANDs, ORs, XORs
 FlipFlops (Registers)
 BlockRAM (Cache)
 DSP48’s (ALUs)
 DCMs (Clock Multipliers)
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGAs
 Virtex-4 LX25
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGAs
 Virtex-4 LX25
 IOBs (448)
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGAs
 Virtex-4 LX25
 IOBs
 Slices (10,752)
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGAs
 Virtex-4 LX25
 IOBs
 Slices
 DCMs (8)
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGAs
 Virtex-4 LX25
 IOBs
 Slices
 DCMs
 BlockRAMs (72)
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGAs
 Virtex-4 LX25
 IOBs
 Slices
 DCMs
 BlockRAMs
 DSP48s (48)
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGAs
 Virtex-4 LX25
 IOBs
 Slices
 DCMs
 BlockRAMs
 DSP48s
 Programmable Routing Matrix
(~18 layers)
RECON 2006 - June 16th, 2006 © The OpenCiphers
Introduction to WPA
 WiFi Protected Access
RECON 2006 - June 16th, 2006 © The OpenCiphers
Introduction to WPA
 PSK
 MK is your passphrase
 It’s run through PBKDF2
to generate the PMK
RECON 2006 - June 16th, 2006 © The OpenCiphers
Introduction to WPA
 PSK
 MK is your passphrase
 It’s run through PBKDF2
to generate the PMK
RECON 2006 - June 16th, 2006 © The OpenCiphers
Introduction to WPA
 PSK
 MK is your passphrase
 It’s run through PBKDF2
to generate the PMK
RECON 2006 - June 16th, 2006 © The OpenCiphers
Introduction to WPA
 PBKDF2
unsigned char hash[32];
t = sha1_hmac(MK, SSID, 1);
for(i = 1; i < 4096; i++)
t = sha1_hmac(MK, t);
memcpy(hash, &t, 20);
t = sha1_hmac(MK, SSID, 1);
for(i = 1; i < 4096; i++)
t = sha1_hmac(MK, t);
memcpy(hash + 20, &t, 12);
RECON 2006 - June 16th, 2006 © The OpenCiphers
Introduction to WPA
 sha1_hmac
sha1(MK ^ 0x5c, sha1(MK ^ 0x36, t));
sha1init(ctx);
ctx = sha1update(ctx, MK ^ 0x36);
ctx = sha1update(ctx, t);
innersha1_ctx = sha1final(ctx);
sha1init(ctx);
ctx = sha1update(ctx, MK ^ 0x5c);
ctx = sha1update(ctx, innersha1_ctx);
outersha1_ctx = sha1final(ctx);
RECON 2006 - June 16th, 2006 © The OpenCiphers
Introduction to WPA
 sha1_hmac
sha1(MK ^ 0x5c, sha1(MK ^ 0x36, t));
sha1init(ctx);
ctx = sha1update(ctx, MK ^ 0x36); You can cache
ctx = sha1update(ctx, t); some of the state
innersha1_ctx = sha1final(ctx); to reduce the number
of required SHA1’s
sha1init(ctx);
ctx = sha1update(ctx, MK ^ 0x5c);
ctx = sha1update(ctx, innersha1_ctx);
outersha1_ctx = sha1final(ctx);
RECON 2006 - June 16th, 2006 © The OpenCiphers
Introduction to WPA
 For every possible PMK compute PTK and see if it
matches the handshake captured on the network
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGA coWPAtty
 Uses 8 SHA-1 Cores
 Uses BlockRAM to buffer the words fed to the
cores
 As long as the machine is able to supply words
fast enough, the SHA-1 cores will be utilized fully
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGA coWPAtty
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
0
1
2
3
4
5
7
6
8
9
…
247
248
249
250
251
252
253
254
255
Computer
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGA coWPAtty
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
0
1
2
3
4
5
7
6
8
9
…
247
248
249
250
251
252
253
254
255
Computer
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGA coWPAtty
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
0
1
2
3
4
5
7
6
8
9
…
247
248
249
250
251
252
253
254
255
Computer
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGA coWPAtty
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
0
1
2
3
4
5
7
6
8
9
…
247
248
249
250
251
252
253
254
255
Computer
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGA coWPAtty
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
0
1
2
3
4
5
7
6
8
9
…
247
248
249
250
251
252
253
254
255
Computer
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGA coWPAtty
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
0
1
2
3
4
5
7
6
8
9
10
11
12
13
14
15
16
…
254
255
Computer
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGA coWPAtty
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
0
1
2
3
4
5
7
6
8
9
10
11
12
13
14
15
16
…
254
255
Computer
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGA coWPAtty
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
0
1
2
3
4
5
7
6
8
9
10
11
12
13
14
15
16
…
254
255
Computer
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGA coWPAtty
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
SHA-1
0
1
2
3
4
5
7
6
8
9
10
11
12
13
14
15
16
…
254
255
Computer
RECON 2006 - June 16th, 2006 © The OpenCiphers
Performance Comparison
PC
 Cowpatty
 800MHz P3 ~25/sec
 3.6GHz P4 ~60/sec
 AMD Opteron ~70/sec
 2.16GHz IntelDuo ~70/sec
 Aircrack
 3.6GHz P4 ~100/sec
FPGA
 Cowpatty
 LX25 ~430/sec
 15 Cluster ~6,500/sec
 FX60 ~1,000/sec
RECON 2006 - June 16th, 2006 © The OpenCiphers
Results
 Decided to compute hash tables for a 1,000,000
passphrase wordlist for the top 1,000 SSIDs
“That million word list that I fed you incorporated a
430,000 word list from Mark Burnett and Kevin Mitnick
(of all people) and was made up of actual harvested
passwords acquired through some google hacking.
They are passwords that people have actually used. I
padded it out to 1 million by adding things like
websters dictionary, and other such lists, and then
stripped the short word (<8 chars.) out of it.”
RECON 2006 - June 16th, 2006 © The OpenCiphers
Results
 Took RenderMan 1 month to compute on his
cluster
 Found out that his wordlist had return characters
at the end of every line
 (after computing for a month)
 He sent me an email asking for help
 A 15 card cluster did it in 2 days ;-)
RECON 2006 - June 16th, 2006 © The OpenCiphers
FPGA coWPAtty
+ + = ?
Demo
RECON 2006 - June 16th, 2006 © The OpenCiphers
Mac OS-X coWPAtty???
 /
System/Library/PrivateFrameworks/Apple80211.
framework/Versions/Current/Resources/airport
airport AirPort v.427.2 (427.2.0)
Supported arguments:
<snip a whole bunch of semi-normal iwconfig-like features>
-P<arg> --psk=<arg> Create PSK from specified passphrase
and SSID.
The following additional arguments must be specified with this
command:
--ssid=<arg> Specify SSID when
RECON 2006 - June 16th, 2006 © The OpenCiphers
ghetto_pmk.pl
#!/usr/bin/perl
open(INFILE,"dictionary.txt");
my $start = time;
my $count = 0;
foreach (<INFILE>) {
chop($_);
$cmd = "airport --psk=$_ --ssid=linksys >> pmks.txt";
system $cmd;
$count++;
}
$elapsed = time - $start;
$perform = $count / $elapsed;
print "$count passphrases tested in $elapsed seconds: ";
print "$perform passphrases/secondn";
beetles-computer:~/Downloads beetle$ ./ghetto_pmk.pl
2253 passphrases tested in 217 seconds: 10.3824884792627 passphrases/second
Airbase
RECON 2006 - June 16th, 2006 © The OpenCiphers
Airbase
RECON 2006 - June 16th, 2006 © The OpenCiphers
Airbase
RECON 2006 - June 16th, 2006 © The OpenCiphers
jc-aircrack
RECON 2006 - June 16th, 2006 © The OpenCiphers
jc-aircrack
RECON 2006 - June 16th, 2006 © The OpenCiphers
jc-wepcrack
RECON 2006 - June 16th, 2006 © The OpenCiphers
jc-wepcrack
RECON 2006 - June 16th, 2006 © The OpenCiphers
jc-wepcrack, no pico
RECON 2006 - June 16th, 2006 © The OpenCiphers
Accelerating brute forcing
RECON 2006 - June 16th, 2006 © The OpenCiphers
Current arch
RECON 2006 - June 16th, 2006 © The OpenCiphers
Future arch
RECON 2006 - June 16th, 2006 © The OpenCiphers
Pico client details
RECON 2006 - June 16th, 2006 © The OpenCiphers
Airbase
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
 FPGA Core
 Uses 32/48 custom RC4 cores
 Uses BlockRAM for S-Boxes
 Will try every key between a start and end
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
 RC4:
for(i = 0; i < 256; i++) // Initialization
S[i] = i;
for(i = j = 0; i < 256; i++) { // KSA
j += S[i] + K[i];
Swap(S[i], S[j]);
}
for(i = 1, j = 0; ; i++) { // PRGA
j += S[i];
Swap(S[i], S[j]);
PRGA[i – 1] = S[S[i] + S[j]];
}
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
 RC4:
for(i = 0; i < 256; i++) // Initialization
S[i] = i;
for(i = j = 0; i < 256; i++) { // KSA
j += S[i] + K[i]; // K is input
Swap(S[i], S[j]);
}
for(i = 1, j = 0; ; i++) { // PRGA
j += S[i];
Swap(S[i], S[j]);
PRGA[i – 1] = S[S[i] + S[j]]; // PRGA is output
}
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
RC4
Keygen
Key: 0
Key: 1
Key: 2
Start: 0
End: 16
PRGA: bling
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
RC4
Keygen
Start: 0
End: 16
PRGA: bling
PRGA: w00t!
PRGA: arg?
PRGA: samy is my hero
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
RC4
Keygen
3
4
5
Start: 0
End: 16
PRGA: bling
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
RC4
Keygen
Start: 0
End: 16
PRGA: bling
PRGA: meow
PRGA: bling
PRGA: yo
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
 RC4:
for(i = 0; i < 256; i++) // Initialization
S[i] = i; // S-Box must be reset
for(i = j = 0; i < 256; i++) { // KSA
j += S[i] + K[i];
Swap(S[i], S[j]);
}
for(i = 1, j = 0; ; i++) { // PRGA
j += S[i];
Swap(S[i], S[j]);
PRGA[i – 1] = S[S[i] + S[j]];
}
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
A
A
A
B
B
B
S
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
A
A
A
B
B
B
S
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
A
A
A
B
B
B
S
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
A
A
A
B
B
B
S
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
A
A
A
B
B
B
S
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
A
A
A
B
B
B
S
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
S
S
S
Read: 2 -> XX13
Read: 57 -> XX7A
Read: 3C -> XX25
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
S
S
S
Write: 02 -> 0213
Write: 57 -> 577A
Write: 3C -> 3C25
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
00: 0073
01: 019B
02: 0296
03: 03c2
04: 0431
05: 05df
06: 0609
07: 078c
…..
 RC4:
for(i = 0; i < 256; i++) // Init
S[i] = i; // S-Box must
be reset
for(i = j = 0; i < 256; i++) { // KSA
j += S[i] + K[i];
Swap(S[i], S[j]);
}
for(i = 1, j = 0; ; i++) { // PRGA
j += S[i];
Swap(S[i], S[j]);
PRGA[i – 1] = S[S[i] + S[j]];
}
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
S
S
S
Read: 2 -> 13XX
Read: 57 -> 7AXX
Read: 3C -> 25XX
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
RC4
RC4
RC4
Computer
S
S
S
Write: 02 -> 1302
Write: 57 -> 7A57
Write: 3C -> 253C
RECON 2006 - June 16th, 2006 © The OpenCiphers
pico-wepcrack
+ +
= ?
Demo
RECON 2006 - June 16th, 2006 © The OpenCiphers
Performance Comparison
PC
 jc-wepcrack
 1.25GHz G4 ~150,000/sec
 3.6GHz P4 ~300,000/sec
FPGA
 pico-wepcrack
 LX25 ~9,000,000/sec
 15 Cluster ~135,000,000/sec
 FX60 ~18,000,000/sec
RECON 2006 - June 16th, 2006 © The OpenCiphers
Conclusion
 Get an FPGA and start cracking!
 Make use if your hardware to break crypto
 Add cool ascii matrix fx when you can :-)
 Choose bad passwords (please!)
RECON 2006 - June 16th, 2006 © The OpenCiphers
Hardware Used
 Pico E-12
 Compact Flash
 64 MB Flash
 128 MB SDRAM
 Gigabit Ethernet
 Optional 450MHz PowerPC 405
RECON 2006 - June 16th, 2006 © The OpenCiphers
Hardware Used
 Pico E-12 Super Cluster
 15 - E-12’s
 2 - 2.8GHz Pentium 4’s
 2 - 120GB HDD
 2 - DVD-RW
 550 Watt Power Supply
RECON 2006 - June 16th, 2006 © The OpenCiphers
Greetz
 Johny Cache (airbase/jc-wepcrack/jc-aircrack)
 Josh Wright (cowpatty)
 RenderMan (pmk hashtable monkey)
 Beetle (ghettopmk!)
 Audience (feel free to throw rotten fruit now!!)
RECON 2006 - June 16th, 2006 © The OpenCiphers
Questions?
 I’ll give you a free set of hash tables!
 David Hulton
 dhulton@openciphers.org
 http://www.openciphers.org
 http://www.picocomputing.com
 http://www.802.11mercenary.net
 http://www.churchofwifi.org

More Related Content

What's hot

What's hot (17)

Hacking the swisscom modem
Hacking the swisscom modemHacking the swisscom modem
Hacking the swisscom modem
 
Triển khai vpn client to site qua router gpon
Triển khai vpn client to site qua router gponTriển khai vpn client to site qua router gpon
Triển khai vpn client to site qua router gpon
 
AMOOCON 2009 - Asterisk Project Update
AMOOCON 2009 - Asterisk Project UpdateAMOOCON 2009 - Asterisk Project Update
AMOOCON 2009 - Asterisk Project Update
 
HackLU 2018 Make ARM Shellcode Great Again
HackLU 2018 Make ARM Shellcode Great AgainHackLU 2018 Make ARM Shellcode Great Again
HackLU 2018 Make ARM Shellcode Great Again
 
OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...
OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...
OpenStack cloud for ConoHa, Z.com and GMO AppsCloud in okinawa opendays 2015 ...
 
SMP Implementation for OpenBSD/sgi [Japanese Edition]
SMP Implementation for OpenBSD/sgi [Japanese Edition]SMP Implementation for OpenBSD/sgi [Japanese Edition]
SMP Implementation for OpenBSD/sgi [Japanese Edition]
 
Snort
SnortSnort
Snort
 
Predikin and PredikinDB: tools to predict protein kinase peptide specificity
Predikin and PredikinDB:  tools to predict protein kinase peptide specificityPredikin and PredikinDB:  tools to predict protein kinase peptide specificity
Predikin and PredikinDB: tools to predict protein kinase peptide specificity
 
OpenStack DVR_What is DVR?
OpenStack DVR_What is DVR?OpenStack DVR_What is DVR?
OpenStack DVR_What is DVR?
 
Make ARM Shellcode Great Again
Make ARM Shellcode Great AgainMake ARM Shellcode Great Again
Make ARM Shellcode Great Again
 
Open stack@ebay
Open stack@ebayOpen stack@ebay
Open stack@ebay
 
LF_OVS_17_OVS-DPDK Installation and Gotchas
LF_OVS_17_OVS-DPDK Installation and GotchasLF_OVS_17_OVS-DPDK Installation and Gotchas
LF_OVS_17_OVS-DPDK Installation and Gotchas
 
Nxll20 na ting
Nxll20 na ting Nxll20 na ting
Nxll20 na ting
 
Nxll26 bgp ii
Nxll26 bgp iiNxll26 bgp ii
Nxll26 bgp ii
 
Nxll21 ospf filtering & summarization
Nxll21 ospf filtering & summarizationNxll21 ospf filtering & summarization
Nxll21 ospf filtering & summarization
 
09 - ROP countermeasures, can we fix this?
09 - ROP countermeasures, can we fix this?09 - ROP countermeasures, can we fix this?
09 - ROP countermeasures, can we fix this?
 
最後の楽園の開発をちょこっとだけ手伝った話
最後の楽園の開発をちょこっとだけ手伝った話最後の楽園の開発をちょこっとだけ手伝った話
最後の楽園の開発をちょこっとだけ手伝った話
 

Viewers also liked

Viewers also liked (19)

Audience feedback q3
Audience feedback q3Audience feedback q3
Audience feedback q3
 
Власний педагогічний досвід
Власний педагогічний досвід Власний педагогічний досвід
Власний педагогічний досвід
 
ITB2016 best practices are best except when they are not
ITB2016 best practices are best except when they are notITB2016 best practices are best except when they are not
ITB2016 best practices are best except when they are not
 
Customer service lead
Customer service leadCustomer service lead
Customer service lead
 
Seminar ppt
Seminar pptSeminar ppt
Seminar ppt
 
Album artwork
Album artwork Album artwork
Album artwork
 
Кожна дитина має право
Кожна дитина має правоКожна дитина має право
Кожна дитина має право
 
ITB2016 - AWS lambda
ITB2016 - AWS lambdaITB2016 - AWS lambda
ITB2016 - AWS lambda
 
Horror
HorrorHorror
Horror
 
Проблеми комп’ютероманії
Проблеми комп’ютероманіїПроблеми комп’ютероманії
Проблеми комп’ютероманії
 
Office administrative assistant
Office administrative assistantOffice administrative assistant
Office administrative assistant
 
ITB2016 - ContentBox Modular CMS
ITB2016 - ContentBox Modular CMSITB2016 - ContentBox Modular CMS
ITB2016 - ContentBox Modular CMS
 
Conquering ORM with DataBoss
Conquering ORM with DataBossConquering ORM with DataBoss
Conquering ORM with DataBoss
 
ITB2015 - Customizing ContentBox with Themes, Widgets, and Modules, Oh My!
ITB2015 - Customizing ContentBox with Themes, Widgets, and Modules, Oh My!ITB2015 - Customizing ContentBox with Themes, Widgets, and Modules, Oh My!
ITB2015 - Customizing ContentBox with Themes, Widgets, and Modules, Oh My!
 
Planning booklet
Planning bookletPlanning booklet
Planning booklet
 
Fc, cp, dps
Fc, cp, dpsFc, cp, dps
Fc, cp, dps
 
Content Modularization Is Here
Content Modularization Is HereContent Modularization Is Here
Content Modularization Is Here
 
Ancillary task
Ancillary taskAncillary task
Ancillary task
 
მუქარა
მუქარამუქარა
მუქარა
 

Similar to Breaking wifi-faster

Scrypt Chacha by Travis Tolle (Ultracoin)
Scrypt Chacha by Travis Tolle (Ultracoin)Scrypt Chacha by Travis Tolle (Ultracoin)
Scrypt Chacha by Travis Tolle (Ultracoin)
Hashers United
 
Mitaka_IntroStarlink.pdf
Mitaka_IntroStarlink.pdfMitaka_IntroStarlink.pdf
Mitaka_IntroStarlink.pdf
robinsroy28
 
SockJS Intro
SockJS IntroSockJS Intro
SockJS Intro
Ngoc Dao
 

Similar to Breaking wifi-faster (20)

Scrypt Chacha by Travis Tolle (Ultracoin)
Scrypt Chacha by Travis Tolle (Ultracoin)Scrypt Chacha by Travis Tolle (Ultracoin)
Scrypt Chacha by Travis Tolle (Ultracoin)
 
Scapy the packet 途中01
Scapy the packet 途中01Scapy the packet 途中01
Scapy the packet 途中01
 
IPv6 for Pentesters
IPv6 for PentestersIPv6 for Pentesters
IPv6 for Pentesters
 
IPv6 for Pentesters
IPv6 for PentestersIPv6 for Pentesters
IPv6 for Pentesters
 
David-FPGA
David-FPGADavid-FPGA
David-FPGA
 
David-FPGA
David-FPGADavid-FPGA
David-FPGA
 
OpenCV acceleration battle:OpenCL on Firefly-RK3288(MALI-T764) vs. FPGA on Ze...
OpenCV acceleration battle:OpenCL on Firefly-RK3288(MALI-T764) vs. FPGA on Ze...OpenCV acceleration battle:OpenCL on Firefly-RK3288(MALI-T764) vs. FPGA on Ze...
OpenCV acceleration battle:OpenCL on Firefly-RK3288(MALI-T764) vs. FPGA on Ze...
 
6th floorsharingsession ep 1 - networking - arp v 1.0
6th floorsharingsession ep 1 - networking - arp v 1.06th floorsharingsession ep 1 - networking - arp v 1.0
6th floorsharingsession ep 1 - networking - arp v 1.0
 
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみるK8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
 
DOAG 2016 Oracle Logon Security
DOAG 2016 Oracle Logon SecurityDOAG 2016 Oracle Logon Security
DOAG 2016 Oracle Logon Security
 
10G/40G gen to 25G/100G gen, and go forward (HPVI community meetup)
10G/40G gen to 25G/100G gen, and go forward (HPVI community meetup)10G/40G gen to 25G/100G gen, and go forward (HPVI community meetup)
10G/40G gen to 25G/100G gen, and go forward (HPVI community meetup)
 
Mitaka_IntroStarlink.pdf
Mitaka_IntroStarlink.pdfMitaka_IntroStarlink.pdf
Mitaka_IntroStarlink.pdf
 
SFScon16 - Michele Baldessari: "OpenStack – An introduction"
SFScon16 - Michele Baldessari: "OpenStack – An introduction"SFScon16 - Michele Baldessari: "OpenStack – An introduction"
SFScon16 - Michele Baldessari: "OpenStack – An introduction"
 
IO_Analysis_with_SAR.ppt
IO_Analysis_with_SAR.pptIO_Analysis_with_SAR.ppt
IO_Analysis_with_SAR.ppt
 
SockJS Intro
SockJS IntroSockJS Intro
SockJS Intro
 
TechWiseTV Workshop: Software-Defined Access
TechWiseTV Workshop: Software-Defined AccessTechWiseTV Workshop: Software-Defined Access
TechWiseTV Workshop: Software-Defined Access
 
What’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorWhat’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributor
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
 
Drupalcon2007 Sun
Drupalcon2007 SunDrupalcon2007 Sun
Drupalcon2007 Sun
 
Oracle on AWS RDS Migration - 성기명
Oracle on AWS RDS Migration - 성기명Oracle on AWS RDS Migration - 성기명
Oracle on AWS RDS Migration - 성기명
 

Recently uploaded

原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
ydyuyu
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Monica Sydney
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理
F
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
ydyuyu
 
一比一原版(Dundee毕业证书)英国爱丁堡龙比亚大学毕业证如何办理
一比一原版(Dundee毕业证书)英国爱丁堡龙比亚大学毕业证如何办理一比一原版(Dundee毕业证书)英国爱丁堡龙比亚大学毕业证如何办理
一比一原版(Dundee毕业证书)英国爱丁堡龙比亚大学毕业证如何办理
AS
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
JOHNBEBONYAP1
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
gajnagarg
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
ydyuyu
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Monica Sydney
 

Recently uploaded (20)

Local Call Girls in Gomati 9332606886 HOT & SEXY Models beautiful and charmi...
Local Call Girls in Gomati  9332606886 HOT & SEXY Models beautiful and charmi...Local Call Girls in Gomati  9332606886 HOT & SEXY Models beautiful and charmi...
Local Call Girls in Gomati 9332606886 HOT & SEXY Models beautiful and charmi...
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
South Bopal [ (Call Girls) in Ahmedabad ₹7.5k Pick Up & Drop With Cash Paymen...
South Bopal [ (Call Girls) in Ahmedabad ₹7.5k Pick Up & Drop With Cash Paymen...South Bopal [ (Call Girls) in Ahmedabad ₹7.5k Pick Up & Drop With Cash Paymen...
South Bopal [ (Call Girls) in Ahmedabad ₹7.5k Pick Up & Drop With Cash Paymen...
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
 
一比一原版(Dundee毕业证书)英国爱丁堡龙比亚大学毕业证如何办理
一比一原版(Dundee毕业证书)英国爱丁堡龙比亚大学毕业证如何办理一比一原版(Dundee毕业证书)英国爱丁堡龙比亚大学毕业证如何办理
一比一原版(Dundee毕业证书)英国爱丁堡龙比亚大学毕业证如何办理
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 

Breaking wifi-faster

  • 1. Cracking WiFi… Faster! (Faster PwninG Assured) RECON 2006 – June 16th , 2006 David Hulton <dhulton@openciphers.org>
  • 2. RECON 2006 - June 16th, 2006 © The OpenCiphers Cracking WiFi… Faster!  FPGAs  Quick Intro (I swear!)  coWPAtty  WPA Overview  Precomputing tables  Performance  Airbase  jc-aircrack  jc-wepcrack  pico-wepcrack  Performance  Conclusion
  • 3. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGAs  Quick Intro  Chip with a ton of general purpose logic  ANDs, ORs, XORs  FlipFlops (Registers)  BlockRAM (Cache)  DSP48’s (ALUs)  DCMs (Clock Multipliers)
  • 4. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGAs  Virtex-4 LX25
  • 5. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGAs  Virtex-4 LX25  IOBs (448)
  • 6. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGAs  Virtex-4 LX25  IOBs  Slices (10,752)
  • 7. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGAs  Virtex-4 LX25  IOBs  Slices  DCMs (8)
  • 8. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGAs  Virtex-4 LX25  IOBs  Slices  DCMs  BlockRAMs (72)
  • 9. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGAs  Virtex-4 LX25  IOBs  Slices  DCMs  BlockRAMs  DSP48s (48)
  • 10. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGAs  Virtex-4 LX25  IOBs  Slices  DCMs  BlockRAMs  DSP48s  Programmable Routing Matrix (~18 layers)
  • 11. RECON 2006 - June 16th, 2006 © The OpenCiphers Introduction to WPA  WiFi Protected Access
  • 12. RECON 2006 - June 16th, 2006 © The OpenCiphers Introduction to WPA  PSK  MK is your passphrase  It’s run through PBKDF2 to generate the PMK
  • 13. RECON 2006 - June 16th, 2006 © The OpenCiphers Introduction to WPA  PSK  MK is your passphrase  It’s run through PBKDF2 to generate the PMK
  • 14. RECON 2006 - June 16th, 2006 © The OpenCiphers Introduction to WPA  PSK  MK is your passphrase  It’s run through PBKDF2 to generate the PMK
  • 15. RECON 2006 - June 16th, 2006 © The OpenCiphers Introduction to WPA  PBKDF2 unsigned char hash[32]; t = sha1_hmac(MK, SSID, 1); for(i = 1; i < 4096; i++) t = sha1_hmac(MK, t); memcpy(hash, &t, 20); t = sha1_hmac(MK, SSID, 1); for(i = 1; i < 4096; i++) t = sha1_hmac(MK, t); memcpy(hash + 20, &t, 12);
  • 16. RECON 2006 - June 16th, 2006 © The OpenCiphers Introduction to WPA  sha1_hmac sha1(MK ^ 0x5c, sha1(MK ^ 0x36, t)); sha1init(ctx); ctx = sha1update(ctx, MK ^ 0x36); ctx = sha1update(ctx, t); innersha1_ctx = sha1final(ctx); sha1init(ctx); ctx = sha1update(ctx, MK ^ 0x5c); ctx = sha1update(ctx, innersha1_ctx); outersha1_ctx = sha1final(ctx);
  • 17. RECON 2006 - June 16th, 2006 © The OpenCiphers Introduction to WPA  sha1_hmac sha1(MK ^ 0x5c, sha1(MK ^ 0x36, t)); sha1init(ctx); ctx = sha1update(ctx, MK ^ 0x36); You can cache ctx = sha1update(ctx, t); some of the state innersha1_ctx = sha1final(ctx); to reduce the number of required SHA1’s sha1init(ctx); ctx = sha1update(ctx, MK ^ 0x5c); ctx = sha1update(ctx, innersha1_ctx); outersha1_ctx = sha1final(ctx);
  • 18. RECON 2006 - June 16th, 2006 © The OpenCiphers Introduction to WPA  For every possible PMK compute PTK and see if it matches the handshake captured on the network
  • 19. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGA coWPAtty  Uses 8 SHA-1 Cores  Uses BlockRAM to buffer the words fed to the cores  As long as the machine is able to supply words fast enough, the SHA-1 cores will be utilized fully
  • 20. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGA coWPAtty SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 0 1 2 3 4 5 7 6 8 9 … 247 248 249 250 251 252 253 254 255 Computer
  • 21. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGA coWPAtty SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 0 1 2 3 4 5 7 6 8 9 … 247 248 249 250 251 252 253 254 255 Computer
  • 22. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGA coWPAtty SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 0 1 2 3 4 5 7 6 8 9 … 247 248 249 250 251 252 253 254 255 Computer
  • 23. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGA coWPAtty SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 0 1 2 3 4 5 7 6 8 9 … 247 248 249 250 251 252 253 254 255 Computer
  • 24. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGA coWPAtty SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 0 1 2 3 4 5 7 6 8 9 … 247 248 249 250 251 252 253 254 255 Computer
  • 25. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGA coWPAtty SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 0 1 2 3 4 5 7 6 8 9 10 11 12 13 14 15 16 … 254 255 Computer
  • 26. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGA coWPAtty SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 0 1 2 3 4 5 7 6 8 9 10 11 12 13 14 15 16 … 254 255 Computer
  • 27. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGA coWPAtty SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 0 1 2 3 4 5 7 6 8 9 10 11 12 13 14 15 16 … 254 255 Computer
  • 28. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGA coWPAtty SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 0 1 2 3 4 5 7 6 8 9 10 11 12 13 14 15 16 … 254 255 Computer
  • 29. RECON 2006 - June 16th, 2006 © The OpenCiphers Performance Comparison PC  Cowpatty  800MHz P3 ~25/sec  3.6GHz P4 ~60/sec  AMD Opteron ~70/sec  2.16GHz IntelDuo ~70/sec  Aircrack  3.6GHz P4 ~100/sec FPGA  Cowpatty  LX25 ~430/sec  15 Cluster ~6,500/sec  FX60 ~1,000/sec
  • 30. RECON 2006 - June 16th, 2006 © The OpenCiphers Results  Decided to compute hash tables for a 1,000,000 passphrase wordlist for the top 1,000 SSIDs “That million word list that I fed you incorporated a 430,000 word list from Mark Burnett and Kevin Mitnick (of all people) and was made up of actual harvested passwords acquired through some google hacking. They are passwords that people have actually used. I padded it out to 1 million by adding things like websters dictionary, and other such lists, and then stripped the short word (<8 chars.) out of it.”
  • 31. RECON 2006 - June 16th, 2006 © The OpenCiphers Results  Took RenderMan 1 month to compute on his cluster  Found out that his wordlist had return characters at the end of every line  (after computing for a month)  He sent me an email asking for help  A 15 card cluster did it in 2 days ;-)
  • 32. RECON 2006 - June 16th, 2006 © The OpenCiphers FPGA coWPAtty + + = ?
  • 33. Demo
  • 34. RECON 2006 - June 16th, 2006 © The OpenCiphers Mac OS-X coWPAtty???  / System/Library/PrivateFrameworks/Apple80211. framework/Versions/Current/Resources/airport airport AirPort v.427.2 (427.2.0) Supported arguments: <snip a whole bunch of semi-normal iwconfig-like features> -P<arg> --psk=<arg> Create PSK from specified passphrase and SSID. The following additional arguments must be specified with this command: --ssid=<arg> Specify SSID when
  • 35. RECON 2006 - June 16th, 2006 © The OpenCiphers ghetto_pmk.pl #!/usr/bin/perl open(INFILE,"dictionary.txt"); my $start = time; my $count = 0; foreach (<INFILE>) { chop($_); $cmd = "airport --psk=$_ --ssid=linksys >> pmks.txt"; system $cmd; $count++; } $elapsed = time - $start; $perform = $count / $elapsed; print "$count passphrases tested in $elapsed seconds: "; print "$perform passphrases/secondn"; beetles-computer:~/Downloads beetle$ ./ghetto_pmk.pl 2253 passphrases tested in 217 seconds: 10.3824884792627 passphrases/second
  • 37. RECON 2006 - June 16th, 2006 © The OpenCiphers Airbase
  • 38. RECON 2006 - June 16th, 2006 © The OpenCiphers Airbase
  • 39. RECON 2006 - June 16th, 2006 © The OpenCiphers jc-aircrack
  • 40. RECON 2006 - June 16th, 2006 © The OpenCiphers jc-aircrack
  • 41. RECON 2006 - June 16th, 2006 © The OpenCiphers jc-wepcrack
  • 42. RECON 2006 - June 16th, 2006 © The OpenCiphers jc-wepcrack
  • 43. RECON 2006 - June 16th, 2006 © The OpenCiphers jc-wepcrack, no pico
  • 44. RECON 2006 - June 16th, 2006 © The OpenCiphers Accelerating brute forcing
  • 45. RECON 2006 - June 16th, 2006 © The OpenCiphers Current arch
  • 46. RECON 2006 - June 16th, 2006 © The OpenCiphers Future arch
  • 47. RECON 2006 - June 16th, 2006 © The OpenCiphers Pico client details
  • 48. RECON 2006 - June 16th, 2006 © The OpenCiphers Airbase
  • 49. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack  FPGA Core  Uses 32/48 custom RC4 cores  Uses BlockRAM for S-Boxes  Will try every key between a start and end
  • 50. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack  RC4: for(i = 0; i < 256; i++) // Initialization S[i] = i; for(i = j = 0; i < 256; i++) { // KSA j += S[i] + K[i]; Swap(S[i], S[j]); } for(i = 1, j = 0; ; i++) { // PRGA j += S[i]; Swap(S[i], S[j]); PRGA[i – 1] = S[S[i] + S[j]]; }
  • 51. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack  RC4: for(i = 0; i < 256; i++) // Initialization S[i] = i; for(i = j = 0; i < 256; i++) { // KSA j += S[i] + K[i]; // K is input Swap(S[i], S[j]); } for(i = 1, j = 0; ; i++) { // PRGA j += S[i]; Swap(S[i], S[j]); PRGA[i – 1] = S[S[i] + S[j]]; // PRGA is output }
  • 52. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer RC4 Keygen Key: 0 Key: 1 Key: 2 Start: 0 End: 16 PRGA: bling
  • 53. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer RC4 Keygen Start: 0 End: 16 PRGA: bling PRGA: w00t! PRGA: arg? PRGA: samy is my hero
  • 54. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer RC4 Keygen 3 4 5 Start: 0 End: 16 PRGA: bling
  • 55. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer RC4 Keygen Start: 0 End: 16 PRGA: bling PRGA: meow PRGA: bling PRGA: yo
  • 56. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack  RC4: for(i = 0; i < 256; i++) // Initialization S[i] = i; // S-Box must be reset for(i = j = 0; i < 256; i++) { // KSA j += S[i] + K[i]; Swap(S[i], S[j]); } for(i = 1, j = 0; ; i++) { // PRGA j += S[i]; Swap(S[i], S[j]); PRGA[i – 1] = S[S[i] + S[j]]; }
  • 57. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer A A A B B B S
  • 58. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer A A A B B B S
  • 59. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer A A A B B B S
  • 60. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer A A A B B B S
  • 61. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer A A A B B B S
  • 62. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer A A A B B B S
  • 63. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer S S S Read: 2 -> XX13 Read: 57 -> XX7A Read: 3C -> XX25
  • 64. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer S S S Write: 02 -> 0213 Write: 57 -> 577A Write: 3C -> 3C25
  • 65. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack 00: 0073 01: 019B 02: 0296 03: 03c2 04: 0431 05: 05df 06: 0609 07: 078c …..  RC4: for(i = 0; i < 256; i++) // Init S[i] = i; // S-Box must be reset for(i = j = 0; i < 256; i++) { // KSA j += S[i] + K[i]; Swap(S[i], S[j]); } for(i = 1, j = 0; ; i++) { // PRGA j += S[i]; Swap(S[i], S[j]); PRGA[i – 1] = S[S[i] + S[j]]; }
  • 66. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer S S S Read: 2 -> 13XX Read: 57 -> 7AXX Read: 3C -> 25XX
  • 67. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack RC4 RC4 RC4 Computer S S S Write: 02 -> 1302 Write: 57 -> 7A57 Write: 3C -> 253C
  • 68. RECON 2006 - June 16th, 2006 © The OpenCiphers pico-wepcrack + + = ?
  • 69. Demo
  • 70. RECON 2006 - June 16th, 2006 © The OpenCiphers Performance Comparison PC  jc-wepcrack  1.25GHz G4 ~150,000/sec  3.6GHz P4 ~300,000/sec FPGA  pico-wepcrack  LX25 ~9,000,000/sec  15 Cluster ~135,000,000/sec  FX60 ~18,000,000/sec
  • 71. RECON 2006 - June 16th, 2006 © The OpenCiphers Conclusion  Get an FPGA and start cracking!  Make use if your hardware to break crypto  Add cool ascii matrix fx when you can :-)  Choose bad passwords (please!)
  • 72. RECON 2006 - June 16th, 2006 © The OpenCiphers Hardware Used  Pico E-12  Compact Flash  64 MB Flash  128 MB SDRAM  Gigabit Ethernet  Optional 450MHz PowerPC 405
  • 73. RECON 2006 - June 16th, 2006 © The OpenCiphers Hardware Used  Pico E-12 Super Cluster  15 - E-12’s  2 - 2.8GHz Pentium 4’s  2 - 120GB HDD  2 - DVD-RW  550 Watt Power Supply
  • 74. RECON 2006 - June 16th, 2006 © The OpenCiphers Greetz  Johny Cache (airbase/jc-wepcrack/jc-aircrack)  Josh Wright (cowpatty)  RenderMan (pmk hashtable monkey)  Beetle (ghettopmk!)  Audience (feel free to throw rotten fruit now!!)
  • 75. RECON 2006 - June 16th, 2006 © The OpenCiphers Questions?  I’ll give you a free set of hash tables!  David Hulton  dhulton@openciphers.org  http://www.openciphers.org  http://www.picocomputing.com  http://www.802.11mercenary.net  http://www.churchofwifi.org

Editor's Notes

  1. Introduction, welcome, blah blah
  2. Overview of what we’re going to cover (in case anyone stumbled into the wrong talk, oh wait only one track, mwahahahaha, no escape!)
  3. Explaining the different components in an fpga
  4. This is the beast
  5. Iobs are the links to the outside world
  6. Slices allow you to create cool shiz
  7. DCMs get you your nice clean timing
  8. Blockrams are tiny ram blocks that are real fast and kind of like cache (and also the current bain of my existence)
  9. Dsp48’s let you do 18x18 multiply and accumulates with 48-bit values…. Nifty for doing fast math and DSP stuff
  10. Somehow the card gets a pmk, then it does the 4 way auth handshake and then life is happy (or sad if you’re a bad guy)
  11. Pbkdf2 is the beast of the transformation
  12. Master key is your passphrase
  13. Pbkdf2 hashes it up to create a fairly secure pmk hash
  14. Pbkdf2 basically just runs sha1 hmac about 8 thousand times
  15. Inside sha1_hmac it will normally end up running ~ 4 sha1’s per hmac
  16. Cool optimizations let you reduce it down to only 2 because you can cache some of the values
  17. Once you generate a PMK you can verify it with the network traffic to see if it’s the right one
  18. W3rd to fpgas
  19. Uses a ring buffer to keep the SHA-1 cores fed
  20. W00t! Performance rox
  21. Supa fast when clustered together
  22. Supa fast when clustered together
  23. Ready for a demo????
  24. Ok, with this I basically need to: Make sure the WPA AP is setup and configured for WPA Connect up with the presentation laptop Switch display to auditor laptop Setup card for monitor mode: ifconfig ath0 up; iwconfig ath0 mode Monitor channel 6 Find network and client in ethereal. might need to filter with: wlan.fc.type_subtype == 5 (probe response) or wlan.da/wlan.sa == mac Use mac addresses to fire off airforge &amp;lt;bssid&amp;gt; &amp;lt;dst mac&amp;gt; deauth.pcap Switch to eapol filter in ethereal Run aireplay –m 26 –u 0 –v 12 –w 0 –x 10 –r deauth.pcap ath0 Ctrl+c once we see Start and Key in ethereal Stop ethereal capture and save dump (only viewed packets) to file on flash drive and unmount flash drive Switch display to cracker laptop Plug flash drive into cracker laptop and mount drive Swap to cowpatty image: swap2cowpatty.sh Fire up cowpatty –f dict –r dump.pcap –s dachb0den –F 0 Watch the magic happen Demo genpmk –f dict -s dachb0den –F 0 –d hashfile; cowpatty –d hashfile -r dump.pcap –s dachb0den
  25. Beetle found some cool trix with Mac OS X
  26. Tools, jc-aircrack, jc-wepcrack
  27. Talk about lorcon a bit
  28. Talk about file compatability, airodump works on OSX in real time.
  29. Give live demo on how it works, what acceleration would do (show the real time effects of the -x [bytes to brute force] flag) Explain why accelerating statistics silly.
  30. If this was written in corporate speak “scale your key-cracking infrastructure to the next level while maintaining compatability with currently existing investments”
  31. GetNewData()
  32. 48 gets a little iffy unless you’ve got really good cooling, 32 runs a lot more stable under normal conditions
  33. W00t rc4, I hope this doesn’t leave people in the dust at all
  34. When thinking about it as a module, you only need to worry about K as input and PRGA as output
  35. High level view of how the cracker works
  36. Initialization usually takes forever to do.
  37. Method A of speeding it up
  38. Even better method B
  39. So, what do we have when we combine these wonderful things together?
  40. Demo… With this we’ll want to do the following: Reconfigure AP to WEP Connect up to AP with presentation laptop Switch display over to auditor laptop Remount flash drive Fire up ethereal again and find AP (might want to use wlan.fc.type_subtype == 5 for probe resp or 32 for data) Filter on data and mac address of access point and/or client Start ping on presentation laptop Stop capture and save file to flash drive and unmount Switch display to cracker laptop Mount drive and fire up startwepcrack.sh capture.pcap 40 Have fun!
  41. Preformance !!!
  42. I really hope I’m drunk by now
  43. Thanks everyone, you’ve been wonderful
  44. Hopefully I’ll actually have more than just one set of hashtables by now…..