User Tools

Site Tools


simple_wep_crack

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
simple_wep_crack [2007/07/12 21:07] – Switched step 3 and step 2 mister_xsimple_wep_crack [2018/03/11 20:13] (current) – [Introduction] Removed link to trac mister_x
Line 1: Line 1:
 ====== Tutorial: Simple WEP Crack ====== ====== Tutorial: Simple WEP Crack ======
-Version: 1.05 Jul 122007\\+Version: 1.20 January 112010\\
 By: darkAudax By: darkAudax
  
Line 6: Line 6:
  
 This tutorial walks you though a very simple case to crack a WEP key.  It is intended to build your basic skills and get you familiar with the concepts.  It assumes you have a working wireless card with drivers already patched for injection. This tutorial walks you though a very simple case to crack a WEP key.  It is intended to build your basic skills and get you familiar with the concepts.  It assumes you have a working wireless card with drivers already patched for injection.
 +
 +The basic concept behind this tutorial is using aireplay-ng replay an ARP packet to generate new unique IVs.  In turn, aircrack-ng uses the new unique IVs to crack the WEP key.  It is important to understand what an ARP packet is.  This [[arp-request_reinjection#what_is_arp|"What is an ARP?"]] section provides the details.
  
 For a start to finish newbie guide, see the [[newbie_guide|Linux Newbie Guide]].  Although this tutorial does not cover all the steps, it does attempt to provide much more detailed examples of the steps to actually crack a WEP key plus explain the reason and background of each step.  For more information on installing aircrck-ng, see [[install_aircrack|Installing Aircrack-ng]] and for installing drivers see [[install_drivers|Installing Drivers]]. For a start to finish newbie guide, see the [[newbie_guide|Linux Newbie Guide]].  Although this tutorial does not cover all the steps, it does attempt to provide much more detailed examples of the steps to actually crack a WEP key plus explain the reason and background of each step.  For more information on installing aircrck-ng, see [[install_aircrack|Installing Aircrack-ng]] and for installing drivers see [[install_drivers|Installing Drivers]].
  
 It is recommended that you experiment with your home wireless access point to get familiar with these ideas and techniques. If you do not own a particular access point, please remember to get permission from the owner prior to playing with it. It is recommended that you experiment with your home wireless access point to get familiar with these ideas and techniques. If you do not own a particular access point, please remember to get permission from the owner prior to playing with it.
- 
-I would like to acknowledge and thank the [[http://trac.aircrack-ng.org|Aircrack-ng team]] for producing such a great robust tool.  
  
 Please send me any constructive feedback, positive or negative. Additional troubleshooting ideas and tips are especially welcome. Please send me any constructive feedback, positive or negative. Additional troubleshooting ideas and tips are especially welcome.
Line 20: Line 20:
   * You are using drivers patched for injection. Use the [[injection_test|injection test]] to confirm your card can inject prior to proceeding.   * You are using drivers patched for injection. Use the [[injection_test|injection test]] to confirm your card can inject prior to proceeding.
   * You are physically close enough to send and receive access point packets.  Remember that just because you can receive packets from the access point does not mean you may will be able to transmit packets to the AP.  The wireless card strength is typically less then the AP strength.  So you have to be physically close enough for your transmitted packets to reach and be received by the AP.  You should confirm that you can communicate with the specific AP by following [[injection_test#hidden_or_specific_ssid|these instructions]].   * You are physically close enough to send and receive access point packets.  Remember that just because you can receive packets from the access point does not mean you may will be able to transmit packets to the AP.  The wireless card strength is typically less then the AP strength.  So you have to be physically close enough for your transmitted packets to reach and be received by the AP.  You should confirm that you can communicate with the specific AP by following [[injection_test#hidden_or_specific_ssid|these instructions]].
-  * You are using v0.9 of aircrack-ng. If you use a different version then some of the comman options may have to be changed.+  * There is at least one wired or wireless client connected to the network and they are active.  The reason is that this tutorial depends on receiving at least one ARP request packet and if there are no active clients then there will never be any ARP request packets. 
 +  * You are using v0.9 of aircrack-ng. If you use a different version then some of the common options may have to be changed.
  
 Ensure all of the above assumptions are true, otherwise the advice that follows will not work.  In the examples below, you will need to change "ath0" to the interface name which is specific to your wireless card. Ensure all of the above assumptions are true, otherwise the advice that follows will not work.  In the examples below, you will need to change "ath0" to the interface name which is specific to your wireless card.
- 
-In the examples, the option "double dash bssid" is shown as "- -bssid" Remember to remove the space between the two dashes when using it in real life.  This also applies to  "- -ivs". 
  
 ===== Equipment used ===== ===== Equipment used =====
Line 39: Line 38:
  
 ===== Solution ===== ===== Solution =====
- 
 ==== Solution Overview ==== ==== Solution Overview ====
  
Line 49: Line 47:
  
   - Start the wireless interface in monitor mode on the specific AP channel   - Start the wireless interface in monitor mode on the specific AP channel
 +  - Test the injection capability of the wireless device to the AP
   - Use aireplay-ng to do a fake authentication with the access point   - Use aireplay-ng to do a fake authentication with the access point
   - Start airodump-ng on AP channel with a bssid filter to collect the new unique IVs   - Start airodump-ng on AP channel with a bssid filter to collect the new unique IVs
Line 56: Line 55:
 ==== Step 1 - Start the wireless interface in monitor mode on AP channel ==== ==== Step 1 - Start the wireless interface in monitor mode on AP channel ====
  
-The purpose of this step is to put your card into what is called monitor mode.  Monitor mode is mode whereby your card can listen to every packet in the air.  Normally your card will only "hear" packets addressed to you.  By hearing every packet, we can later select some for injection.  As well, only (there are some rare exceptions) monitor mode allows you to inject packets.+The purpose of this step is to put your card into what is called monitor mode.  Monitor mode is mode whereby your card can listen to every packet in the air.  Normally your card will only "hear" packets addressed to you.  By hearing every packet, we can later select some for injection.  As well, only (there are some rare exceptions) monitor mode allows you to inject packets. (Note: this procedure is different for non-Atheros cards.)
  
 First stop ath0 by entering: First stop ath0 by entering:
Line 83: Line 82:
    airmon-ng start wifi0 9    airmon-ng start wifi0 9
  
-Note: In this command we use "wifi0" instead of our wireless interface of "ath0" This is because the madwifi-ng drivers are being used.+Substitute the channel number that your AP runs on for "9" in the command above.  This is important.  You must have your wireless card locked to the AP channel for the following steps in this tutorial to work correctly. 
 + 
 +Note: In this command we use "wifi0" instead of our wireless interface of "ath0" This is because the madwifi-ng drivers are being used.  For other drivers, use the wireless interface name.  Examples: "wlan0" or "rausb0".
  
 The system will respond: The system will respond:
Line 114: Line 115:
           Tx excessive retries: Invalid misc:  Missed beacon:0           Tx excessive retries: Invalid misc:  Missed beacon:0
  
-In the response above, you can see that ath0 is in monitor mode, on the 2.452GHz frequency which is channel 9 and the Access Point shows the MAC address of your wireless card.  Please note that only the madwifi-ng drivers show the MAC address of your wireless card, the other drivers do not do this.  So everything is good.   It is important to confirm all this information prior to proceeding, otherwise the following steps will not work properly.+In the response above, you can see that ath0 is in monitor mode, on the 2.452GHz frequency which is channel 9 and the Access Point shows the MAC address of your wireless card.  Please note that only the madwifi-ng drivers show the MAC address of your wireless card, the other drivers do not do this.  So everything is good. It is important to confirm all this information prior to proceeding, otherwise the following steps will not work properly.
  
 To match the frequency to the channel, check out: To match the frequency to the channel, check out:
-http://www.rflinx.com/help/calculations/#2.4ghz_wifi_channels then select the "Wifi Channel Selection and Channel Overlap" tab.  This will give you the frequency for each channel.+http://www.cisco.com/en/US/docs/wireless/technology/channel/deployment/guide/Channel.html#wp134132 .  This will give you the frequency for each channel.
  
-==== Step 2 -  Start airodump-ng to capture the IVs ====+ 
 +==== Step 2 - Test Wireless Device Packet Injection ==== 
 + 
 +The purpose of this step ensures that your card is within distance of your AP and can inject packets to it. 
 + 
 +Enter: 
 + 
 +   aireplay-ng -9 -e teddy -a 00:14:6C:7E:40:80  ath0 
 + 
 +Where: 
 +  *-9 means injection test 
 +  *-e teddy is the wireless network name 
 +  *-a 00:14:6C:7E:40:80 is the access point MAC address 
 +  *ath0 is the wireless interface name 
 + 
 +The system should respond with: 
 + 
 +   09:23:35  Waiting for beacon frame (BSSID: 00:14:6C:7E:40:80) on channel 9 
 +   09:23:35  Trying broadcast probe requests... 
 +   09:23:35  Injection is working! 
 +   09:23:37  Found 1 AP  
 +    
 +   09:23:37  Trying directed probe requests... 
 +   09:23:37  00:14:6C:7E:40:80 - channel: 9 - 'teddy' 
 +   09:23:39  Ping (min/avg/max): 1.827ms/68.145ms/111.610ms Power: 33.73 
 +   09:23:39  30/30: 100% 
 + 
 +The last line is important.  Ideally it should say 100% or a very high percentage.  If it is low then you are too far away from the AP or too close.  If it is zero then injection is not working and you need to patch your drivers or use different drivers. 
 + 
 +See the [[injection_test|injection test]] for more details. 
 + 
 + 
 +==== Step 3 - Start airodump-ng to capture the IVs ====
  
 The purpose of this step is to capture the IVs generated.  This step starts airodump-ng to capture the IVs from the specific access point. The purpose of this step is to capture the IVs generated.  This step starts airodump-ng to capture the IVs from the specific access point.
Line 129: Line 162:
 Where: Where:
   *-c 9 is the channel for the wireless network   *-c 9 is the channel for the wireless network
-  *- -bssid 00:14:6C:7E:40:80 is the access point MAC address.  This eliminate extraneous traffic.+  *-''''-bssid 00:14:6C:7E:40:80 is the access point MAC address.  This eliminate extraneous traffic.
   *-w capture is file name prefix for the file which will contain the IVs.   *-w capture is file name prefix for the file which will contain the IVs.
   *ath0 is the interface name.   *ath0 is the interface name.
Line 146: Line 179:
  
  
-==== Step - Use aireplay-ng to do a fake authentication with the access point ====+==== Step - Use aireplay-ng to do a fake authentication with the access point ====
  
-In order for an access point to accept a packet, the source MAC address must already be associated.  If the source MAC address you are injecting is not associated then the AP ignores the packet and sends out a "DeAuthentication" packet.  In this state, no new IVs are created because the AP is ignoring all the injected packets.+In order for an access point to accept a packet, the source MAC address must already be associated.  If the source MAC address you are injecting is not associated then the AP ignores the packet and sends out a "DeAuthentication" packet in cleartext.  In this state, no new IVs are created because the AP is ignoring all the injected packets.
  
 The lack of association with the access point is the single biggest reason why injection fails.  Remember the golden rule:  The MAC you use for injection must be associated with the AP by either using fake authentication or using a MAC from an already-associated client. The lack of association with the access point is the single biggest reason why injection fails.  Remember the golden rule:  The MAC you use for injection must be associated with the AP by either using fake authentication or using a MAC from an already-associated client.
Line 161: Line 194:
   *-e teddy is the wireless network name   *-e teddy is the wireless network name
   *-a 00:14:6C:7E:40:80 is the access point MAC address   *-a 00:14:6C:7E:40:80 is the access point MAC address
-  *-h 00:0F:B5:88:AC:82 is our card MAC addresss+  *-h 00:0F:B5:88:AC:82 is our card MAC address
   *ath0 is the wireless interface name   *ath0 is the wireless interface name
  
Line 175: Line 208:
  
 Where: Where:
-  * 6000 - Reauthenticate very 6000 seconds.  The long period also causes keep alive packets to be sent.+  * 6000 - Reauthenticate every 6000 seconds.  The long period also causes keep alive packets to be sent.
   * -o 1 - Send only one set of packets at a time.  Default is multiple and this confuses some APs.   * -o 1 - Send only one set of packets at a time.  Default is multiple and this confuses some APs.
   * -q 10 - Send keep alive packets every 10 seconds.   * -q 10 - Send keep alive packets every 10 seconds.
Line 205: Line 238:
 === Troubleshooting Tips === === Troubleshooting Tips ===
  
-  *Some access points are configured to only allow selected MAC addresses to associate and connect.  If this is the case, you will not be able to successfully do fake authentication unless you know one of the MAC addresses on the allowed list.  If you suspect this is the problem, use the fullowing command while trying to do fake authentication.  Start another session and...+  *Some access points are configured to only allow selected MAC addresses to associate and connect.  If this is the case, you will not be able to successfully do fake authentication unless you know one of the MAC addresses on the allowed list.  If you suspect this is the problem, use the following command while trying to do fake authentication.  Start another session and...
  
-Run: tcpdump -n -vvv -s0 -e -i <interface name> | grep -E "(RA:<MAC addreess of your card>|Authentication|ssoc)"+Run: tcpdump -n -vvv -s0 -e -i <interface name> | grep -i -E "(RA:<MAC address of your card>|Authentication|ssoc)"
  
 You would then look for error messages. You would then look for error messages.
Line 221: Line 254:
 Notice that the access point (00:14:6c:7e:40:80) is telling the source (00:0F:B5:88:AC:82) you are not associated.  Meaning, the AP will not process or accept the injected packets. Notice that the access point (00:14:6c:7e:40:80) is telling the source (00:0F:B5:88:AC:82) you are not associated.  Meaning, the AP will not process or accept the injected packets.
  
-If you want to select only the DeAuth packets with tcpdump then you can use: "tcpdump -n -e -s0 -vvv -i ath0 | grep DeAuth" You may need to tweak the phrase "DeAuth" to pick out the exact packets you want.+If you want to select only the DeAuth packets with tcpdump then you can use: "tcpdump -n -e -s0 -vvv -i ath0 | grep -i DeAuth" You may need to tweak the phrase "DeAuth" to pick out the exact packets you want.
  
-==== Step -  Start aireplay-ng in ARP request replay mode ====+==== Step -  Start aireplay-ng in ARP request replay mode ====
  
 The purpose of this step is to start aireplay-ng in a mode which listens for ARP requests then reinjects them back into the network.   For an explanation of ARP, see this [[http://www.pcmag.com/encyclopedia_term/0,2542,t=ARP&i=37988,00.asp|PC Magazine page]] or [[http://en.wikipedia.org/wiki/Address_Resolution_Protocol|Wikipedia]].  The reason we select ARP request packets is because the AP will normally rebroadcast them and generate a new IV.  Again, this is our objective, to obtain a large number of IVs in a short period of time. The purpose of this step is to start aireplay-ng in a mode which listens for ARP requests then reinjects them back into the network.   For an explanation of ARP, see this [[http://www.pcmag.com/encyclopedia_term/0,2542,t=ARP&i=37988,00.asp|PC Magazine page]] or [[http://en.wikipedia.org/wiki/Address_Resolution_Protocol|Wikipedia]].  The reason we select ARP request packets is because the AP will normally rebroadcast them and generate a new IV.  Again, this is our objective, to obtain a large number of IVs in a short period of time.
Line 231: Line 264:
    aireplay-ng -3 -b 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0    aireplay-ng -3 -b 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0
  
-It will start listening for ARP requests and when it hears one, aireplay-ng will immediately start to inject it.  On your home network, here is an easy way to generate an ARP request:  On wired PC, ping a non-existent IP on your home LAN.+It will start listening for ARP requests and when it hears one, aireplay-ng will immediately start to inject it.  See the [[simple_wep_crack#Generating ARPs]] section for tricks on generating ARPs if your screen says "got 0 ARP requests" after waiting long time.
  
 Here is what the screen looks like when ARP requests are being injected: Here is what the screen looks like when ARP requests are being injected:
Line 239: Line 272:
    Read 629399 packets (got 316283 ARP requests), sent 210955 packets...    Read 629399 packets (got 316283 ARP requests), sent 210955 packets...
  
-You can confirm that you are injecting by checking your airodump-ng screen.  The data packets should be increasing rapidly.  The "#/s" should be a decent number.  However, decent depends on a large variety of factors.  A typical range is 300 to 400 data packets per second.  It can as low as a 100/second and as high as a 1000/second.+You can confirm that you are injecting by checking your airodump-ng screen.  The data packets should be increasing rapidly.  The "#/s" should be a decent number.  However, decent depends on a large variety of factors.  A typical range is 300 to 400 data packets per second.  It can as low as a 100/second and as high as a 500/second.
  
  
-==== Step - Run aircrack-ng to obtain the WEP key ====+=== Troubleshooting Tips === 
 + 
 +  * If you receive a message similar to "Got a deauth/disassoc packet. Is the source mac associated?", this means you have lost association with the AP.  All your injected packets will be ignored.  You must return to the fake authentication step (Step 3) and successfully associate with the AP. 
 + 
 +==== Step - Run aircrack-ng to obtain the WEP key ====
  
 The purpose of this step is to obtain the WEP key from the IVs gathered in the previous steps. The purpose of this step is to obtain the WEP key from the IVs gathered in the previous steps.
Line 248: Line 285:
 Note: For learning purposes, you should use a 64 bit WEP key on your AP to speed up the cracking process.  If this is the case, then you can include "-n 64" to limit the checking of keys to 64 bits. Note: For learning purposes, you should use a 64 bit WEP key on your AP to speed up the cracking process.  If this is the case, then you can include "-n 64" to limit the checking of keys to 64 bits.
  
-Two methods will be shown.  It is recommended you try both for learning purposes.  By trying both methods, you will see quickly the PTW method successfully determines the WEP key compared to the FMS/Korek method.  As a reminder, the PTW method only works successfully with arp request/reply packets.  Since this tutorial covers injection arp request packets, you can properly use this method.  The other requirement is that you capture the full packet with airodump-ng.  Meaning, do not use the "- -ivs" option.+Two methods will be shown.  It is recommended you try both for learning purposes.  By trying both methods, you will see quickly the PTW method successfully determines the WEP key compared to the FMS/Korek method.  As a reminder, the PTW method only works successfully with arp request/reply packets.  Since this tutorial covers injection of ARP request packets, you can properly use this method.  The other requirement is that you capture the full packet with airodump-ng.  Meaning, do not use the "-''''-ivs" option.
  
 Start another console session and enter: Start another console session and enter:
- 
-   aircrack-ng -z -b 00:14:6C:7E:40:80 output*.cap 
- 
-Where: 
-  * -z invokes the PTW WEP-cracking method. 
-  * -b 00:14:6C:7E:40:80 selects the one access point we are interested in.  This is optional since when we originally captured the data, we applied a filter to only capture data for this one AP. 
-  * output*.cap selects all files starting with "output" and ending in ".cap". 
- 
-To also use the FMS/Korek method, start another console session and enter: 
  
    aircrack-ng -b 00:14:6C:7E:40:80 output*.cap    aircrack-ng -b 00:14:6C:7E:40:80 output*.cap
Line 266: Line 294:
   * -b 00:14:6C:7E:40:80 selects the one access point we are interested in.  This is optional since when we originally captured the data, we applied a filter to only capture data for this one AP.   * -b 00:14:6C:7E:40:80 selects the one access point we are interested in.  This is optional since when we originally captured the data, we applied a filter to only capture data for this one AP.
   * output*.cap selects all files starting with "output" and ending in ".cap".   * output*.cap selects all files starting with "output" and ending in ".cap".
- 
-You can run this while generating packets.  In a short time, the WEP key will be calculated and presented.   Using the PTW method, 40-bit WEP can be cracked with as few as 20,000 data packets and 104-bit WEP with 40,000 data packets.  These are very approximate and there are many variables as to how many IVs you actually need to crack the WEP key. 
- 
-Here is what success looks like: 
- 
-                                                Aircrack-ng 0.9 
-    
-                                [00:01:18] Tested 0/140000 keys (got 30680 IVs) 
-    
-   KB    depth   byte(vote) 
-    0    0/  1   12( 170) 35( 152) AA( 146) 17( 145) 86( 143) F0( 143) AE( 142) C5( 142) D4( 142) 50( 140)  
-    1    0/  1   34( 163) BB( 160) CF( 147) 59( 146) 39( 143) 47( 142) 42( 139) 3D( 137) 7F( 137) 18( 136)  
-    2    0/  1   56( 162) E9( 147) 1E( 146) 32( 146) 6E( 145) 79( 143) E7( 142) EB( 142) 75( 141) 31( 140)  
-    3    0/  1   78( 158) 13( 156) 01( 152) 5F( 151) 28( 149) 59( 145) FC( 145) 7E( 143) 76( 142) 92( 142)  
-    4    0/  1   90( 183) 8B( 156) D7( 148) E0( 146) 18( 145) 33( 145) 96( 144) 2B( 143) 88( 143) 41( 141)  
-    
-                         KEY FOUND! [ 12:34:56:78:90 ]  
-        Decrypted correctly: 100% 
  
 To also use the FMS/Korek method, start another console session and enter: To also use the FMS/Korek method, start another console session and enter:
  
-   aircrack-ng -b 00:14:6C:7E:40:80 output*.cap+   aircrack-ng -K -b 00:14:6C:7E:40:80 output*.cap
  
 Where: Where:
 +  * -K invokes the FMS/Korek method
   * -b 00:14:6C:7E:40:80 selects the one access point we are interested in.  This is optional since when we originally captured the data, we applied a filter to only capture data for this one AP.   * -b 00:14:6C:7E:40:80 selects the one access point we are interested in.  This is optional since when we originally captured the data, we applied a filter to only capture data for this one AP.
   * output*.cap selects all files starting with "output" and ending in ".cap".   * output*.cap selects all files starting with "output" and ending in ".cap".
  
-You can run this while generating packets.  In a short time, the WEP key will be calculated and presented.   You will need approximately 250,000 IVs for 64 bit and 1,500,000 IVs for 128bit keys.   These are very approximate and there are many variables as to how many IVs you actually need to crack the WEP key.+If you are using 1.0-rc1, add the option "-K" for the FMS/KoreK attack. (1.0-rc1 defaults to PTW.) 
 + 
 +You can run this while generating packets.  In a short time, the WEP key will be calculated and presented.  You will need approximately 250,000 IVs for 64 bit and 1,500,000 IVs for 128 bit keys.  If you are using the PTW attack, then you will need about 20,000 packets for 64-bit and 40,000 to 85,000 packets for 128 bit. These are very approximate and there are many variables as to how many IVs you actually need to crack the WEP key.
  
 Here is what success looks like: Here is what success looks like:
Line 311: Line 324:
         Probability: 100%         Probability: 100%
  
-Notice that in this case it took far less then the estimated 250,000 IVs to crack the key.+Notice that in this case it took far less then the estimated 250,000 IVs to crack the key. (For this example, the FMS/KoreK attack was used.)
  
  
Line 318: Line 331:
   * Be sure to read all the documentation on the Wiki for the various commands used in this tutorial.   * Be sure to read all the documentation on the Wiki for the various commands used in this tutorial.
   * See [[i_am_injecting_but_the_ivs_don_t_increase|Tutorial: I am injecting but the IVs don't increase]]   * See [[i_am_injecting_but_the_ivs_don_t_increase|Tutorial: I am injecting but the IVs don't increase]]
 +
 +
 +===== Generating ARPs =====
 +
 +In order for this tutorial to work, you must receive at least one ARP packet.  On your home network, here is an easy way to generate an ARP packet.  On a wired or wireless PC, ping a non-existent IP on your home LAN.  A wired PC means a PC connected to your LAN via an ethernet cable.  Lets say your home LAN  address space is 192.168.1.1 through 192.168.1.254.  Pick an IP between 1 and 254 which is not assigned to a network device.  For example, if the IP 192.168.1.213 is not being used then "ping 192.168.1.213" This will cause an ARP to be broadcast via your wireless access point and in turn, this will kick off the reinjection of packets by aireplay-ng.
  
simple_wep_crack.1184267266.txt.gz · Last modified: 2007/07/12 21:07 by mister_x