OS X 10.9: onde estão armazenados os hashes de senha

15

Eu acho que nas versões anteriores do OS X, a senha foi armazenada no arquivo / etc / shadow.

No entanto, esse arquivo não parece existir nas versões posteriores do sistema operacional - especificamente o OS X 10.9, que é o primeiro dos lançamentos de sistemas operacionais não cat denominados.

Alguém sabe onde os hashes de senha estão armazenados no OS X Mavericks?

user4493605
fonte

Respostas:

19

Começando com o Lion, o OS X introduziu um arquivo de sombra por usuário, um dicionário básico que contém hashes de senha e outros GID / UID / kerberos e chaves de tipo de diretório aberto.

Os arquivos de sombra são armazenados no sistema de arquivos em /var/db/dslocal/nodes/Default/users. Eles estão no formato plist, portanto, você precisará usar o comando plutil para visualizá-los ou usar o comando padrão para extrair / gravar chaves específicas, se desejar. Somente o rootusuário tem acesso aos arquivos.

Para visualizar o conteúdo de um arquivo shadow para um usuário:

sudo plutil -p /var/db/dslocal/nodes/Default/users/<username>.plist

Para obter o hash:

sudo defaults read /var/db/dslocal/nodes/Default/users/<username>.plist ShadowHashData|tr -dc 0-9a-f|xxd -r -p|plutil -convert xml1 - -o -

Onde <username>nos exemplos acima está o usuário que você está procurando pelo hash. Você deseja a <data>seção que corresponde à <key>entropy</key>chave na saída plist.

Para continuar tentando quebrar a senha, consulte este tutorial .

Ian C.
fonte
3
Isto não está funcionando para mim: ele diz que ShadowHashData não é uma propriedade válida em <username> .plist ...
thepiercingarrow
@ MarkWright qual versão do OS X? Funciona muito bem para mim no 10.11.3. Você está usando LDAP para as contas ou é uma conta local?
Ian C.
Estou usando o 10.9 no modo de usuário único.
thepiercingarrow
O que sudo defaults read /var/db/dslocal/nodes/Default/users/${USER}.plistmostra para você?
Ian C.
@MarkWright mesmo aconteceu comigo OSX: 10.10.5 Usando esse comando retorna "não Domínio /var/db/dslocal/nodes/Default/users/${USER}.plist não existe"
o.uinn
1

Quero adicionar à resposta aceita, caso alguém tente obter os hashes de senha armazenados em um OS X Server no Open Directory. Para usuários de rede (OD), é necessário

sudo mkpassdb -dump

que fornece a você uma lista de usuários e seus respectivos IDs de slot. Copie todo o ID do slot começando com 0x e emitir

sudo mkpassdb -dump slot_id_that_you_retrieved

Você verá várias entradas de resumo, entre as quais * cmusaslsecretSMBNT é o hash da senha NTLM e * cmusaslsecretDIGEST-MD5 é o hash MD5 comum. Faça com o que você deseja, mas achei mais fácil enviá-lo para https://hashkiller.co.uk/ntlm-decrypter.aspx, que é um serviço online gratuito de cracking de hash. Ele aceita seu hash e, se ainda não estiver no banco de dados, começará a trabalhar nele. Volte uma semana depois e deve estar rachado. Isso foi testado no OS X El Capitan e no Mac OS Sierra. Você pode não ver resumos se alguns métodos de autenticação foram explicitamente desabilitados no servidor, mas devem estar lá por padrão.

Joeахар Joe
fonte