Osxでローカルユーザーアカウントのパスワードの暗号化された値にアクセスするにはどうすればよいですか?それをチェックしたり、別のアカウントにコピーしたりすることは可能ですか?
ハッシュは10.6以前では_/var/db/shadow/hash/
_にありましたが、10.7と10.8では_/var/db/dslocal/nodes/Default/users/username.plist
_に格納されています。
DaveGrohl (_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 -
_
自動ログインが有効になっている場合、ログインキーチェーンのパスワードもXOR暗号で暗号化された_/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.include?(b); print [b ^ key[i % key.size]].pack("U*") }'
私はそれについてあまり知りませんが、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
のSystem Preferences.app
からこのUUIDを読み取ることもできます。
これは/private/var/db/shadow/hash/
のファイル名と一致しますlogin
からもアクセスされます!
最善の策は、GeneratedUID
名のファイルの名前を変更/コピーするか、ディレクトリサービスの参照を変更することだと思います。
あなたが私の歩みをたどり、反証可能性を可能にするために、私のすべての「研究」を含めました。
ユーザーアカウントをゴミ箱に移動して復元する時間がないので、あなたは今あなた自身でいます。幸運を。
[〜#〜] tldr [〜#〜]:Accounts.prefPane
を開き、UUID
を確認して(リストでユーザーを右クリック)、次の方法でファイルを探します。 /private/var/db/shadow/hash/
のその名前。それが機能するかどうかわからないまったく。幸運を。