2013-03-18 93 views
2

有没有什么方法使用Windows API在“802.1x设置”菜单中复制“保存凭据”按钮的功能?或者以其他方式永久保存无线配置文件的PEAP凭据。我试过WlanSetProfileEapXmlUserData函数来设置MsChapV2:UsernameMsChapV2:Password。它缓存凭证,但不会永久保存它们。保存Windows无线配置文件凭证

UPD:管理找到存储在HKLM\SOFTWARE\Microsoft\Wlansvc\UserData\Profiles\{GUID}中的用户数据,但它被加密。我猜CryptProtectData是用来加密它的。如果我只知道使用什么样的盐。

+0

查看'netsh wlan'子命令。呃,再次想到,对不起。这是我会做的。即启动IDA,然后检查出我知道的东西,实现我想要查看它的功能。 – 0xC0000022L 2013-03-19 13:22:03

+1

简单介绍一下'netshell.dll'。从Wlanapi.dll中检查函数(W7中引入)。他们可能会让你开始。 – 0xC0000022L 2013-03-19 13:30:19

+0

感谢您的意见。似乎'CryptProtectData'不是直接从'Wlanapi.dll'调用的,而是通过RPC调用的其他函数调用的。我们需要更深入。 – pupkinsen 2013-03-20 08:55:29

回答

3

HKLM\SOFTWARE\Microsoft\Wlansvc\UserData\Profiles\{GUID}\MSMUserData包含与PEAP凭证有关的数据。 它用CryptProtectData加密。解密给了我们一个幸运地容易理解的二进制blob。它包含纯文本的用户名和可能的登录域。密码信息再次使用CryptProtectData函数进行加密,并放置在blob的末尾。

加密,而不LOCAL_MACHINE标志这样做只是本地系统用户可以生成新的凭证数据。将它放入注册表项后,Windows会认为您拥有一组已保存的凭据,即使身份验证失败,也不会再要求它们。

0

您可以在我的回答https://superuser.com/a/1259271/780533的“如何查找存储在Windows 7上的无线网络的受保护EAP凭据?”中找到有关MSMUserData的WPA2-企业凭证加密方案的更多信息。题。特别是,解密后的MSMUserData中的用户名后面的“不可读字符”(注意它们以01 00 00 00 d0 8c 9d df ...开头)是加密密码,因此需要使用CryptProtectData再次解密。