No OS X 10.11 - eu abri o .plist
arquivo do meu usuário e procurei dentro do arquivo.
Eu fiz isso com o seguinte comando:
sudo defaults read /var/db/dslocal/nodes/Default/users/<username>.plist ShadowHashData|tr -dc 0-9a-f|xxd -r -p|plutil -convert xml1 - -o -
O arquivo dizia SALTED-SHA512
nele, então eu assumi que era um hash SHA512.
Mas fui a alguns sites de gerador de hash SHA512 e coloquei minha senha. Acabei recebendo um hash diferente do que estava no .plist
arquivo.
Então, como converto o que está no .plist
arquivo em um hash real ou exatamente que tipo de hash está armazenado no arquivo?
macos
el-capitan
password
Gato do alargamento
fonte
fonte
SALTED-SHA512-PBKDF2
(OS X 10.10)!/var/db/shadow/hash
?Respostas:
Quebra de senha (válida no OS 10.8 e mais recente)
Primeiro eu quero explicar o seu comando:
A primeira parte do comando lê a chave ShadowHashData no plist
Resultado (principalmente hexadecimal):
a segunda parte do comando
tr -dc 0-9a-f
remove qualquer coisa, exceto 0-9a-f.Resultado (hex):
a terceira parte o
xxd -r -p
reverte para um binário (mal formado):e a última parte
plutil -convert xml1 - -o -
cria um xml bem formado:Para obter um arquivo real, substitua
-o -
por-o ~/Desktop/tempuser.plist
A lista contém três partes principais : iterações , entropia e sal .
iterações é apenas um número inteiro, mas a entropia e o sal são codificados em base64. Para continuar trabalhando com eles, é necessário decodificar e xxd-los:
Para decodificar salt, remova todos os espaços e novas linhas da parte de dados e use
Com meus dados acima, isso é
com o resultado de sal (hex):
O mesmo para entropia:
com o resultado da entropia (hex):
Se você precisar de um arquivo de texto para o hashcat quebrar a senha, precisará combinar os dados do hash encontrados em uma única sequência:
Com o meu exemplo de dados de hash, é isso:
Salve isso em um arquivo chamado hash.txt e use-o no hashcat. O comando de força bruta adequado para encontrar a senha (= minha senha de teste simples que contém apenas 4 dígitos) é:
A senha resultante após 3 minutos de quebra (em uma VM) é 1111 .
Agora, o inverso: Criando ShadowHashData (válido no OS 10.8 e mais recente)
Isso explica por que você não pode usar um simples gerador de hash SHA512 para criar seus dados de "senha". O SHA512 ainda é importante. O plano de fundo é explicado aqui: PBKDF2-Key_derivation_process .
Você precisa:
criar DK = PBKDF2 (PRF, Senha, Salt, c, dkLen)
Para criar DK ~ a chave de entropia em SALTED-SHA512-PBKDF2 (a única parte da lista intermediária que depende de sua senha), use php hash_pbkdf2 :
No Terminal (é necessário o PHP 5.5), digite:
A string usada em $ salt é a apresentação hexadecimal com escape (\ x) do salt (hex):
0dba6246 ... -> \ x0d \ xba \ x62 \ x46 ...
Como você pode definir ou conhecer o algoritmo de hash (deve ser sha512 para Mac 10.8 e posterior), iterações (um número maior que zero e menor que 2 ^ 32-1), salt (comprimento 64 bytes hexadecimal, mas aleatório!) E comprimento (256 bytes), você pode criar um arquivo plist intermediário bem formado, revertendo todos os comandos acima.
Ao reverter seu comando (melhor: cada um dos subcomandos) desde o primeiro passo, você pode criar os dados da chave ShadowHashData na lista original usando a lista intermediária.
E para responder à sua pergunta finalmente: o algoritmo de hash usado para processar a senha do OS X (e outros dados como o salt) é o SHA512. Mas você não pode dizer que sua senha de usuário é armazenada como hash SHA512 .
Sua senha e o sal são grelhados por sha512 várias vezes, então o resultado é baseado em 64 'e invertido em xxd'. Juntamente com o sal e as iterações, ele é xxd'ed e base64'ed novamente.
Espero não ter esquecido nenhum passo.
fonte
Você precisaria do sal da sua conta de usuário nesse sistema. Essa é uma sequência aleatória de caracteres inventados para você quando você criou sua conta (ou talvez quando você mudou sua senha pela última vez). Você precisaria adicionar isso à sua senha, por exemplo:
[aquele grande número de números abaixo então ...] [sua senha]
Não tem certeza se isso foi adicionado à frente ou atrás: [yourPassword] [salt]? quem sabe.
Para o usuário,
USERNAME
você pode ver o hash aqui:Então sai:
É interessante notar que, embora eu tenha alterado alguns dos blocos de números aleatórios acima, para que o Stack não pegue meu sal (você pode notar alguns blocos aleatórios repetidos que eram meu trabalho de colar!), Mas não colei sobre os no final … Parece se dissolver em zeros no final, esses 512 hashes SHA são interessantes !!!
PS. Eles mudaram um pouco ... costumavam estar muito bem escondidos. Perdi-me e não consegui encontrar o meu (veja abaixo), está escondido em alguma estrutura de pastas maliciosa de 'Nam!
fonte