2

在过去一周左右的时间里,我正在尝试在 python(如 coWPatty 或 Aircrack)中创建一个 4 次握手破解脚本。

我有一个用于计算 PMK(成对主密钥)的工作 PBKDF2 函数和一个用于计算 PTK(成对瞬态密钥)的工作 PRF512 函数。我现在需要计算 MIC 并将其与我在 WireShark 中捕获的那个进行比较,但是我在网上找到的用于计算 MIC 的所有功能都只适用于 TKIP,而我需要 CCMP(我的路由器使用 WPA2 和 CCMP)。后来我发现 CCMP MIC 是使用称为 CCM(带有 CBC-MAC 的计数器模式)的东西计算的。我发现一个名为 PyCrypto 的模块具有 CCM,但我不知道如何使用它。这是我到目前为止所拥有的:

def get_mic(key, iv, data):
    k = AES.new(key, AES.MODE_CBC, iv)
    return k.encrypt(data)

据我所知,密钥必须是 PTK 的前 16 个字节,数据必须是捕获的数据包数据,MIC 参数替换为 16*"\x00"。我也不知道iv必须是什么。

提前致谢!

4

0 回答 0