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
XOR 암호로 암호화되어 저장됩니다.
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를 읽을 수도 있습니다 .read
GeneratedUID: 1A5EF9B7-4DB6-4C01-919A-xxxxx
Accounts.prefPane
System Preferences.app
다음의 파일 이름과 일치합니다./private/var/db/shadow/hash/
login
! 에서도 액세스됩니다 .
가장 좋은 방법은 파일의 이름을 바꾸거나 해당 GeneratedUID
이름으로 복사하거나 디렉터리 서비스에서 참조를 변경하는 것입니다.
당신이 내 단계를 되돌아보고 반박할 수 있도록 내 모든 "연구"를 포함했습니다.
내 사용자 계정을 삭제하고 복원할 시간이 없으므로 이제 귀하가 직접 처리하세요. 행운을 빌어요.
TLDR: 을 열고 Accounts.prefPane
확인하고 UUID
(목록에서 사용자를 마우스 오른쪽 버튼으로 클릭) 에서 해당 이름의 파일을 찾습니다 /private/var/db/shadow/hash/
. 작동하는지 모르겠어요조금도. 행운을 빌어요.