Respostas:
As senhas em um sistema Linux não são criptografadas, elas são hash, o que é uma enorme diferença.
Não é possível reverter uma função de hash por definição. Para mais informações, consulte a entrada Hash Wikipedia .
Qual função de hash é usada, depende da configuração do sistema. MD5 e blowfish são exemplos comuns de funções de hash usadas.
Portanto, a senha "real" de um usuário nunca é armazenada no sistema.
Se você fizer login, a string digitada como senha será hash e verificada no seu arquivo / etc / shadow. Se corresponder, você obviamente digitou a senha correta.
De qualquer forma, ainda existem alguns vetores de ataque contra os hashes de senha. Você pode manter um dicionário de senhas populares e experimentá-las automaticamente. Existem muitos dicionários disponíveis na internet. Outra abordagem seria apenas experimentar todas as combinações possíveis de caracteres que consumirão uma quantidade enorme de tempo. Isso é conhecido como ataque de força bruta.
As tabelas Rainbow são outro bom vetor de ataque contra hashes. A idéia por trás desse conceito é simplesmente pré-calcular todos os hashes possíveis e, em seguida, basta pesquisar um hash nas tabelas para encontrar a senha correspondente. Existem vários projetos de computação distribuída para criar essas tabelas , o tamanho varia de acordo com os caracteres usados e geralmente é de vários TB.
Para minimizar o risco dessas tabelas de pesquisa, é uma prática comum e o comportamento padrão no Unix / Linux adicionar um chamado " salt " ao hash da senha. Você hash sua senha, adicione um valor aleatório de sal ao hash e hash essa nova sequência novamente. Você precisa salvar o novo hash e o salt para poder verificar se um valor inserido é a senha correta. A grande vantagem desse método é que você precisaria criar novas tabelas de pesquisa para cada sal exclusivo.
Uma ferramenta popular para executar ataques de dicionário ou força bruta contra senhas de usuários de diferentes sistemas operacionais é John The Ripper (ou JTR). Veja a página inicial do projeto para mais detalhes:
John the Ripper é um cracker de senha rápido, atualmente disponível para muitos tipos de Unix, Windows, DOS, BeOS e OpenVMS. Seu principal objetivo é detectar senhas fracas do Unix.
É praticamente impossível descriptografar essas senhas, pois elas são criptografadas unidirecionalmente.
Como outros já disseram, você não pode realmente descriptografar o arquivo de sombra.
A única coisa que você pode tentar é adivinhar com força bruta a senha usando uma ferramenta como John, o Estripador . Isso pode ou não ser bem-sucedido e quase certamente levará muito tempo.
As senhas são criptografadas usando um algoritmo que usa uma senha e cria um hash exclusivo para essa senha. Esse hash é armazenado no arquivo / etc / shadow. Não é possível recuperar a senha do hash. O único método de recuperar uma senha é forçar com força todo o espaço de chaves inteiro ou usar algum tipo de ataque de dicionário . As primeiras funções de hash usavam o padrão DES. O aumento no poder da computação tornou possível forçar o espaço da chave DES em um tempo razoável. As funções modernas de hash usadas para criptografar senhas incluem MD5, SHA etc. Mais informações sobre a biblioteca crypt (3) podem ser encontradas aqui .