我试图在过去一周左右的时候在python中创建一个4向握手破解脚本(比如coWPatty或Aircrack)。
我有一个用于计算PMK(成对主密钥)的工作PBKDF2功能和用于计算PTK(成对瞬态密钥)的工作PRF512功能。我现在需要计算MIC并将其与我在WireShark中捕获的MIC进行比较,但我在网上找到的用于计算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必须是什么。
提前致谢!