2010-10-12 299 views
1

我正在爲C中的linux編寫一個程序,以從Windows註冊表配置單元中提取wpa/wep密鑰。Windows註冊表解密(CryptUnprotectData)WPA密鑰

最初我希望使用Wine的CryptUnprotectData函數,但現在我意識到葡萄酒使用了不同的算法,只是模仿了窗口的版本。我也意識到只有加密數據的用戶才能解密它。

我使用aircrack-ng套件中的wzcook作爲指導。 http://tools.assembla.com/b6stFY7MOr2QtlaaeP0Qfc/browser/Windows/wzcook/wzcook.c

我已經從蜂巢提取數據沒有問題,但我有點卡在如何解密密鑰。

如果密鑰在註冊表中爲一個用戶加密,那麼另一個用戶如何解密該數據?我確定他們不必重新鍵入psk /密碼,如果它已經存儲了?

即使在離線狀態(從linux訪問配置單元)時,數據是否完全加密?

解決此問題的任何其他解決方案,而不是逆向工程微軟的算法? :D

任何幫助/建議你可以給予真的很感激,

謝謝。

+0

我可以想像它實際是加密的。 – 2010-10-12 13:05:31

+0

您可能對chntpw感興趣 - 另一個項目,它可以脫機讀取/寫入Windows註冊表(即從Linux)。他們的目標是更改用戶密碼,我不確定是否使用相同的加密/解密機制。 http://freshmeat.net/projects/chntpw/ – Piskvor 2010-10-12 13:08:05

+0

謝謝,我知道chntpw。據我所知,它只是改變或空白用戶的密碼,而不是解密它。我知道你可以對Windows密碼哈希進行字典攻擊,所以我猜測它不是一樣的加密。我對此不太瞭解。 感謝您的回覆。 – jcul 2010-10-12 17:41:04

回答

0

據我所知,DPAPI使用從用戶的實際密碼計算出來的散列,所以你需要一個開源的Crypt函數實現和一個來自用戶的明確密碼。

已經有上最近執行CryptUnprotectData一些工作:DPAPIck

+0

感謝您的鏈接!在想,我不得不放棄這一點,但也許有一種方法。 他們還沒有發佈他們的源代碼,但是我在http://ly.tl/t6a上找到了他們的論文。 它看起來很有趣,會通讀它。 至少我應該知道更多關於它是如何工作的以及是否可以實現。 感謝您的幫助。 – jcul 2010-10-12 17:47:09

+0

剛剛通讀了那篇論文。正是我所需要的。謝謝。 – jcul 2010-10-12 20:53:19

+0

太好了!我很高興,如果這是可行的,上次我看着這是一個死路一條。 – bobince 2010-10-12 21:20:54