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?

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 .


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.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.