如何在 osx 中存取本機使用者帳戶密碼的加密值?是否可以對其進行檢查,甚至將其複製到另一個帳戶?
答案1
雜湊值存在於/var/db/shadow/hash/
10.6 及更早版本中,但它們儲存/var/db/dslocal/nodes/Default/users/username.plist
在 10.7 和 10.8 中。
您可以使用以下命令列印哈希數據戴夫·格羅爾( sudo dave -s $USER
) 或類似的內容:
sudo defaults read /var/db/dslocal/nodes/Default/users/$USER.plist ShadowHashData | tr -dc '0-9a-f ' | xxd -p -r | plutil -convert xml1 - -o -
如果啟用自動登錄,登入鑰匙圈的密碼也會以/etc/kcpassword
異或密碼加密儲存。
sudo ruby -e 'key = [125, 137, 82, 35, 210, 188, 221, 234, 163, 185, 31]; IO.read("/etc/kcpassword").bytes.each_with_index { |b, i| break if key[i % key.size]==(b); print [b ^ key[i % key.size]].pack("U*") }'
答案2
我對此了解不多,但從我可以使用以下方式收集到的信息opensnoop
:
login
存取本機目錄服務(可能與一些 Kerberos 內容相關——也許這是本機目錄的底層實現,它讀取/Library/Preferences/edu.mit.Kerberos
、/etc/krb5.conf
等/usr/etc/krb5.conf
)。
dscl
,目錄服務命令列實用程序,然後cd Local/Default/Users/yourusername
,read
顯示通常的unixy帳戶相關的內容,加上:(GeneratedUID: 1A5EF9B7-4DB6-4C01-919A-xxxxx
不知道含義,所以我進行了一些審查)--您也可以透過Accounts.prefPane
in讀取此UUID System Preferences.app
。
與中的檔案名稱匹配/private/var/db/shadow/hash/
也可透過login
!
我想你最好的選擇是重命名/複製具有該名稱的文件GeneratedUID
,或更改目錄服務中的引用。
包括我所有的“研究”,以便您可以追溯我的步驟並允許反駁。
我沒有時間刪除和恢復我的用戶帳戶,所以你現在只能靠自己了。祝你好運。
總長DR:打開Accounts.prefPane
,檢查您的UUID
(在列表中右鍵單擊您的用戶)並在/private/var/db/shadow/hash/
.不知道是否有效根本不。祝你好運。