2013-03-18 49 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再次解密。