Páginas

quarta-feira, 3 de novembro de 2010

Como fazer os HASH do shadow usando python




As senhas no linux ficam em um arquivo "/etc/shadonw" só que elas são mascaradas por uma função de hash, ex:

bispo:$6$7rmDOxic$53xiWN/VjGLnSLE25EfSPWixgCKr5GwXoO5HOrhZMpvNL3JiSvOmtYu3cTdcRof9p9rpCw5G3/LXE1aRoubS9/:14916:0:99999:7:::

para gerar um hash desse ou mesmo checar se a senha é válida podemos usar um modulo em python chamado crypt

o crypt tem dois valores a serem entrados: senha em texto puro e o passo
>>> import crypt
>>> crypt.crypt(senha,passo)


Minha senha é fedora_linux, como podemos chegar ao valor do hash "$6$7rmDOx...aRoubS9/" para validar esse senha:

O passo do shadow é a parte inicial do hash $6$7rmDOxic$ (12 primeiros caracteristicas).

para gerar o hast é só colocar

>>> crypt.crypt('fedora_linux','$6$7rmDOxic$')
'$6$7rmDOxic$53xiWN/VjGLnSLE25EfSPWixgCKr5GwXoO5HOrhZMpvNL3JiSvOmtYu3cTdcRof9p9rpCw5G3/LXE1aRoubS9/'


pronto, temos o hash completo gerado, com isso já podemos fazer o teste de validação da senha

para criar uma senha nova o procedimento é:
1) Gerar um passo novo, ex: $6$9aaz9XCD$
2) Escolhe uma nova senha, ex: nova_senha
>>> crypt.crypt('nova_senha','$6$9aaz9XCD$')
'$6$9aaz9XCD$Se77F6VrRJAGHZx6pIatONUYiSg7j4phpUDG8VFcgVyLn9eDPnTajBKgn1XSfS/5huIquHiZrcXwONsMlYIMP.'


Se sobrescrever o hash antigo por esse novo, a senha do usário estará trocada para "nova_senha".

Fica ai essa dica para quem quiser fazer um aplicativo mais integrado ao linux e usando o banco de senhas do linux para fazer o login da aplicação.

Cartão de Credito LINUX


Parece até brincadeira, mas é verdade.

Como uma forma arecadar fundos, a LINUX FOUNDATION está lançando o cartão de crédito LINUX.

Na primeira compra usando esse cartão a LINUX FUNDATION receberá $50,00 doado pelo banco UMB.

fonte: http://info.abril.com.br/noticias/ti/fundacao-linux-lanca-cartao-de-credito-02112010-2.shl