Mac 사용자 계정 비밀번호는 어디에 저장됩니까?

Mac 사용자 계정 비밀번호는 어디에 저장됩니까?

osx에서 로컬 사용자 계정 비밀번호의 암호화된 값에 어떻게 액세스할 수 있나요? 이를 확인하거나 다른 계정에 복사할 수도 있나요?

답변1

해시는 /var/db/shadow/hash/10.6 이전 버전에 있었지만 /var/db/dslocal/nodes/Default/users/username.plist10.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/kcpasswordXOR 암호로 암호화되어 저장됩니다.

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, 디렉토리 서비스 명령줄 유틸리티는 일반적인 Unixy 계정 관련 내용을 보여주고 다음을 추가로 제공합니다. cd Local/Default/Users/yourusername( 의미를 모르기 때문에 약간 검열했습니다.) -- in을 통해 이 UUID를 읽을 수도 있습니다 .readGeneratedUID: 1A5EF9B7-4DB6-4C01-919A-xxxxxAccounts.prefPaneSystem Preferences.app

다음의 파일 이름과 일치합니다./private/var/db/shadow/hash/login! 에서도 액세스됩니다 .

가장 좋은 방법은 파일의 이름을 바꾸거나 해당 GeneratedUID이름으로 복사하거나 디렉터리 서비스에서 참조를 변경하는 것입니다.

당신이 내 단계를 되돌아보고 반박할 수 있도록 내 모든 "연구"를 포함했습니다.

내 사용자 계정을 삭제하고 복원할 시간이 없으므로 이제 귀하가 직접 처리하세요. 행운을 빌어요.

TLDR: 을 열고 Accounts.prefPane확인하고 UUID(목록에서 사용자를 마우스 오른쪽 버튼으로 클릭) 에서 해당 이름의 파일을 찾습니다 /private/var/db/shadow/hash/. 작동하는지 모르겠어요조금도. 행운을 빌어요.

관련 정보