Plugins 2500/2501 and 16800/16801 are deprecated - Printable Version +- hashcat Forum (https://hashcat.net/forum) +-- Forum: Support (https://hashcat.net/forum/forum-3.html) +--- Forum: hashcat (https://hashcat.net/forum/forum-45.html) +--- Thread: Plugins 2500/2501 and 16800/16801 are deprecated (/thread-10253.html) |
Plugins 2500/2501 and 16800/16801 are deprecated - atom - 08-10-2021 Since version 6.0.0, hashcat has been offering the new hash mode 22000, which we have not discussed in detail so far: Code: 22000 | WPA-PBKDF2-PMKID+EAPOL Our goal is to replace the existing hash modes 2500 and 16800 (the .hccap and .hccapx file formats) with the new hash mode 22000: Quote: 2500 | WPA-EAPOL-PBKDF2 Quote: 16800 | WPA-PMKID-PBKDF2 With this thread we want to explain the reasons for the update and explain the details of the new format. We should have added this announcement at the same time as the release of the new hash mode to get the community's attention. We're seeing some movement towards the new 22000 mode, but we're also seeing a lot of people referring to outdated techniques when it comes to WPA cracking in general, and most of the time they involve hash mode 2500, 16800, or even older tools. We want to set up a reference that you can link to people who are still using old tools formats and techniques. This will probably never end as there are so many (now outdated) videos, documents, tutorials, training courses in the wild. But we have to get started somewhere. If you see people talking about using -m 2500 or -m 16800, link them to this thread. Note: this is not a new attack like PMKID was. So what are the benefits of hash mode 22000?
In order to be able to use the hash mode 22000 to the full extent, you need the following tools:
Optionally there is hcxlabtool, which you can use as an experienced user or in headless operation instead of hcxdumptool: https://github.com/ZerBea/wifi_laboratory For users who don't want to struggle with compiling hcxtools from sources there is an online converter: https://hashcat.net/cap2hashcat/ If you choose the online converter, you may need to remove some data from your dump file if the file size is too large. Most of the time, this happens when data traffic is also being recorded. You can reduce the size by tshark: Code: tshark -r dumpfile.cap/pcap -R "(wlan.fc.type_subtype == 0x00 || wlan.fc.type_subtype == 0x02 || wlan.fc.type_subtype == 0x04 || wlan.fc.type_subtype == 0x05 || wlan.fc.type_subtype == 0x08 || eapol)" -2 -F pcapng -w stripped.pcapng ATTENTION!!! Please read carefully and respect: Do not clean up the cap / pcap file (e.g. with wpaclean), as this will remove useful and important frames from the dump file. Do not use filtering options while collecting WiFi traffic. The hcxdumptool / hcxlabtool offers several attack modes that other tools do not. This includes the PMKID attack, which is described here: https://hashcat.net/forum/thread-7717.html It also includes AP-less client attacks and a lot more. The traffic is saved in pcapng format. This format is used by Wireshark / tshark as the standard format. Additional information (NONCE, REPLAYCOUNT, MAC, hash values calculated during the session) are stored in pcapng option fields. The hcxpcapngtool uses these option fields to calculate the best hash values in order to avoid unbreakable hashes at best. In addition, Hashcat is told how to handle the hash via the message pair field. When hcxdumptool is connected to a GPS device, it also saves the GPS coordinates of the frames. Examples of the target and how traffic is captured: 1.Stop all services that are accessing the WLAN device (e.g .: NetworManager and wpa_supplicant.service) Code: $ sudo systemctl stop NetworkManager.service 2. Start the attack and wait for you to receive PMKIDs and / or EAPOL message pairs, then exit hcxdumptool Code: $ hcxdumptool -i interface -o dumpfile.pcapng --active_beacon --enable_status=15 3. Restart stopped services to reactivate your network connection Code: $ sudo systemctl start wpa_supplicant.service 4. Convert the traffic to hash format 22000 Code: $ hcxpcapngtool -o hash.hc22000 -E wordlist dumpfile.pcapng 5. Run Hashcat on the list of words obtained from WPA traffic Code: $ hashcat -m 22000 hash.hc22000 wordlist.txt For more options, see the tools help menu (-h or --help) or this thread: https://hashcat.net/forum/thread-6661-post-52103.html#pid52103 Get more examples from here: https://github.com/evilsocket/pwnagotchi/issues/835#issuecomment-598597214 Run Hashcat on an excellent WPA word list or check out their free online service: Code: $ wget https://wpa-sec.stanev.org/dict/cracked.txt.gz Get more examples from here: https://github.com/hashcat/hashcat/issues/2923 Examples to work on hc22000 hash files: Filter hash file by PMKID Code: $ grep 'WPA\*01' hash.hc22000 > pmkid.hc22000 Filter hash file by EAPOL Code: $ grep 'WPA\*02' hash.hc22000 > eapol.hc22000 Filter by MAC: Code: $ grep 'WPA\*02' hash.hc22000 For developers The new hash format 22000 in detail: Code: PROTOCOL*TYPE*PMKID/MIC*MACAP*MACCLIENT*ESSID*ANONCE*EAPOL*MESSAGEPAIR PROTOCOL = Fixed string "WPA" TYPE = 01 for PMKID, 02 for EAPOL PMKID/MIC = PMKID if TYPE=01, MIC if TYPE=02 MACAP = MAC of AP MACCLIENT = MAC of CLIENT ESSID = network name (ESSID) in HEX ANONCE = ANONCE EAPOL = EAPOL (SNONCE is in here) MESSAGEPAIR = Bitmask:
The pot file format in detail (resultat of PBKDF2 calculation): Code: PMK*ESSID:PSK PMK = Plain Master Key ESSID = network name (ESSID) in HEX PSK = Pre Shared Key The out file format in detail: Code: PMKID/MIC:MACAP:MACCLIENT:ESSID:PSK PMKID/MIC = PMKID or MIC depending on hash type MACAP = MAC of AP MACCLIENT = MAC of CLIENT ESSID = network name (ESSID) in plain PSK = Pre Shared Key All the discussion about finding the details of this new format is here: https://github.com/hashcat/hashcat/issues/1816 One last note: the plugins 2500/2501 and 16800/16801 receive a deprecated flag in the hashcat module that blocks the use of the plugin. There may be a parameter you can set to work around this if you really have to, but keep it to yourself :) - atom RE: Plugins 2500/2501 and 16800/16801 are deprecated - ZerBea - 08-12-2021 It is a good decision to retire 250x (especially the binary hccapx format) and 1680x hash modes. Thanks for your efforts and your excellent work. RE: Plugins 2500/2501 and 16800/16801 are deprecated - CUwindows00 - 09-16-2021 Hi.. Need to verify valid hash Convert cap to hc22000 hash format, I also did a lot of tests, you guys did a great job However, I still feel that there are two issues that need improvement. 1. Mark the PMKID hash in front 2. The hash of the handshake is best to mark whether those hashes are valid, so that everyone can recover the password faster and save time E.g.. Code: PMKID*WPA*01*7f216085c9b501d2b8c72f95ce1096ad*fc7c023a4397*54bad65693c6*40504849434f4d4d5f3935*** RE: Plugins 2500/2501 and 16800/16801 are deprecated - ZerBea - 09-16-2021 Your request will produce significant redundant overhead which is not necessary. It is not the purpose of the hash line to be human readable. Instead it should be readable in a fast way by the the tools on the cracking machine (hashcat or bash tools or other tools like hcxhashtool - but definitely not by a human). BTW1: 1. Mark the PMKID hash in front The PMKID is marked in front as WPA*01 You can do filtering in a very easy way by bash tools: get PMKIDs only: Code: $ cat hashfile.hc22000 | grep "WPA.01" get authenticated handshakes only: Code: $ cat hashfile.hc22000 | grep "WPA.02" | grep "2$" BTW2: 2. The hash of the handshake is best to mark whether those hashes are valid, so that everyone can recover the password faster and save time. Every converted hash should be a valid hash (depending on the quality of the dump tool handling possible packet loss and the conversion tool regarding EAPOL TIME OUT, detecting NC, evaluation RC). The PSK from this hash is recoverable, but it may not belong to your target network if it is converted from M1M2. Overview of valid MESSAGE PAIRs belonging to the same AUTHENTICATION SEQUENCE: M1M2 = challenge and RC on M1 and M2 is the same M2M3 = authenticated (by AP) and RC of M3 = RC M2 +1 M3M4 = authenticated (by CLIENT) and RC on M3 and M4 are the same M1M4 = authenticated (by CLIENT) and RC of M1 = RC M4 +1 Example of invalid MESSAGE PAIRs (NC not possible = PSK not recoverable): M1RC1M2RC9 M2RC3M3RC14 Example of invalid MESSAGE PAIRs that can be converted to valid MESSAGE PAIRS (NC possible = PSK recoverable) by hashcat default NC option (8): M1RC1M2RC3 M2RC3M3RC5 It is not mandatory that they belong to the same AUTHENTICATION sequence, as long as NC is possible. State of the art attack tools should detect a packet loss and request the packet again. Also they shouldn't run excessive deauthentications/disassociations which cause an AP to reset its EAPOL timers, counters and ANONCE or to start a new AUTHENTICATION sequence. State of the art conversion tools should detect if NC is possible or not. BTW3 (experienced users): The most important MESSAGE PAIR is M1M2ROGUE coming from hcxdumptool/hcxlabtool attack against a weak CLIENT: Code: hcxdumptool option: BTW4: Please do not post real hashes, because it is against the forum rules. Legend: RC = replaycount NC = nonce error correction on BE and LE routers BE = big endian LE = low endian M1 = EAPOL message 1 (AP) of 4way handshake M2 = EAPOL message 2 (CLIENT) of 4way handshake M3 = EAPOL message 3 (AP) of 4way handshake M4 = EAPOL message 4 (CLIENT) of 4way handshake (useless if SNONCE is zeroed) ROGUE = coming from hcxdumptool/hcxlabtool attack PSK = pre-shared key (password of the NETWORK) Notice: hcxhashtool provide various filtering options, especially on big hash files (e.g. > 100 hashes): Code: $ hcxhashtool -h RE: Plugins 2500/2501 and 16800/16801 are deprecated - CUwindows00 - 09-16-2021 Hello, ZerBea Let me give you an example The following cap contains 2 different passwords, one of which is valid password: 123456789 Valid password: 19901013ld If we convert the hc22000 format, mark which WPA column is valid, so that we can use this WPA data recovery more accurately Code: WPA*02*1709ba709b92c3eb7b662036b02e843c*6c5940096fb6*64cc2edaeb52*6c686c64*ca37bb6be93179b0ce86e0f4e393d742fca6854ace6791f29a7d0c0ec1534086*0103007502010a00000000000000000001f09960e32863aa57ba250769b6e12d959a5a1f1cc8939d6bed4401a16092fa72000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac040100000fac040100000fac020000*00 RE: Plugins 2500/2501 and 16800/16801 are deprecated - ZerBea - 09-16-2021 The last field of the hash line (...*xx) contain a bitmask with detailed information about the MESSAGEPAIR (machine readable and much more information than a simple yes or no): Code: bitmask of message pair field: In your case on the first hash: Code: ...*00 = bitmask 00000000 = M1+M2, EAPOL from M2 (challenge) Code: ...*02 = bitmask 00000010 = M2+M3, EAPOL from M2 (authorized) Now you can run bash tools to get all MESSAGEPAIRs you want: Code: 001 = M1+M4, EAPOL from M4 if not zeroed (authorized) or, if you don't want NC to be in use: Code: 001 = M1+M4, EAPOL from M4 if not zeroed (authorized) Some more examples: Code: Get all PMKIDs, sort by MAC_AP: BTW: I took a look at the attached cap file: The capture file appears to have been cut short in the middle of a packet (packet 16063). It looks like your capturing tool doesn't handle timestamps correctly. You injected too many deauthentications. Some of them are injected directly into the authentication sequence between an EAPOL M1 and an EAPOL M2 message (packet 1187 - 1197). This mostly happens if you use stupid deauthentication tools which doesn't evaluate incoming frames. Directed PROBEREQUEST frames are not stored or filtered out. From this frames we possible can get PSKs in the clear. The radiotap header was removed. Ancient cap file format is used to store packets. Code: $ hcxpcapngtool -o test.22000 123456789_19901013ld.cap RE: Plugins 2500/2501 and 16800/16801 are deprecated - CUwindows00 - 09-17-2021 Hello. ZerBea Thanks Bring us very good tools RE: Plugins 2500/2501 and 16800/16801 are deprecated - ZerBea - 09-17-2021 With a little help of bash tools, you should be able to get exactly the hash that you want to feed hashcat with. The format identifier (WPA*01* or WPA*02 for type and the messag epair field for kind). Please notice that there will be more identifier in future times. Therefor I asked Atom to block WPA*01* up to WPA*FF* for this purpose (WiFi related hash algorithms). Regarding this and the machine read ability it is really not a good idea to add a YES or NO here. The same applies to the message pair field, because this bit mask contain all information about the kind of the hash. RE: Plugins 2500/2501 and 16800/16801 are deprecated - Snoopy - 09-17-2021 can we make this thread sticky or can someone add a link to this thread in the wiki for the wpa cracking page? https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 RE: Plugins 2500/2501 and 16800/16801 are deprecated - ZerBea - 09-17-2021 I fully agree. This wiki entry is outdated. Additional it referenced rockyou.txt, which is very old word list. The same applies to the old cap format. As of Wireshark 1.2.0, pcapng files can be read and written, and live captures can be done in pcapng format. Wireshark uses the pcapng file format as the default format to save captured packets, as well as hcxdumptool/hcxlabtool. https://www.wireshark.org/docs/wsug_html_chunked/AppFiles.html I sent a PM to Atom regarding this wiki entry. |