Como H4ckers QUEBRAM SENHAS 🤫

Fala pessoal, tranquilos?

Vocês sabem como os hackers quebram as senhas encontradas em vazamentos de sites?

Esse assunto é interessante pois caso não saiba as senhas não são armazenas em texto plano, ou seja, o valor que você digita no formulário de login não é igual ao que está no banco de dados, ele é previamente tratado antes de ser armazenado.

Essa modificação ocorre pois é muito inseguro guardar as senhas desse modo, imagine que um black hat tenha acesso ao banco de dados, ele poderia facilmente descobrir a senha de todos os usuários e testá-las, inclusive, em outras plataformas.

Um modo de se proteger contra isso é utilizar funções hash, elas foram criadas para mapear arquivos de tamanhos variáveis para dados de tamanho fixo, e também tem a característica de funcionar apenas na “ida”, não havendo modo de converter de volta um hash para seu valor real.

Outra característica muito importante é que existe apenas uma hash para cada entrada.

Desta forma, o banco de dados armazena sua senha em hash e quando você tenta realizar login transforma a senha digitada e compara com a armazenada, se der match, você pode acessar a plataforma, se não, é bloqueado.

Md5

Mesmo já tendo sido comprovada falhas de segurança um dos algoritmos hash mais usados atualmente é o md5, com ele é possível transformar qualquer entrada, seja ela de 1 byte ou de 100G em 32 caracteres.

Vamos dar uma olhada em seu funcionamento

No linux podemos utilizar o comando md5sum para transformar uma entrada em sua respectiva hash md5, ele é usado da seguinte forma:

echo -n "a" | md5sum

O echo serve para printar o valor a na tela sua flag -n é usada para indicar que não se deve pular uma linha após o valor printado, já o sinal que parece uma barra é chamado de pipeline e pega a saída do comando echo e usa como entrada para md5sum

O resultado para esse caso é

0cc175b9c0f1b6a831c399e269772661

Vamos realizar mais um teste

echo -n "aa" | md5sum

O resultado dessa vez

4124bc0a9335c27f086f24ba207a4912

Ok, agora percebam uma mais uma característica dessas funções:

Mesmo a modificação de apenas um byte na entrada gerou uma saída totalmente diferente, o que é totalmente entendível pois, caso contrário, bastaria ficar ajustando a entrada até que ela seja equivalente a saída e, neste caso, o objetivo de proteger o valor original não seria eficiente.

Como quebrar senhas

Agora que temos todo um embasamento teórico já podemos entrar de fato no assunto do artigo, como essas hashs são quebradas se não podemos reverter o processo de transformação?

A explicação é imples. Aplicamos a função hash a uma lista de palavras e comparamos o resultado ao valor vazado

Confuso? relaxa que eu vou explicar melhor.

Primeiro vamos entender o que são Wordlists elas podem ser definidas como sequencias de palavras que possivelmente podem ser a senha, você pode baixá-las em diversos lugares e, quanto maior ela for, maior será a chance da senha do usuário estar contida nela, entretanto, isso também faz com que, teoricamente, o tempo para o término do processo seja mais demorado.

Com essa wordlist em mão, passamos cada valor dela pelo algoritmo hash usado e, após, comparamos o resultado com o valor vazado.

Agora você deve estar pensando que é muito simples quebrar a senha né?

Então, vou quebrar o clima e dizer que muitas vezes não é tão simples não, por que isso depende de diversos fatores, dentre eles, o principal é o tipo de algoritmo usado.

Por exemplo, esse é o bentchmark, ou seja, a eficiência de algumas funções hash usadas atualmente.

Pegando o md5 de exemplo, é possível transformar até 300.000 valores POR SEGUNDO, esse valor é muito alto, isso se dá pois o algoritmo não acompanhou o avanço tecnológico, o que ocasionou uma maior facilidade no processo de transformação.

Obviamente isso facilita muito a quebra de uma senha.

Entretanto, se pegarmos o benchmark de um algoritmo mais atual como o bcrypt, encontramos um valor de 267 transformações POR SEGUNDO.

É dispensável comentar que com esse número quebrar uma senha se torna muito mais complexo.

Para finalizar vamos fazer um overview dos problemas que podem ser encontrados ao tentar quebrar uma senha.

O primeiro, é o tamanho da wordlist, caso não criemos uma específica para nosso alvo, algumas podem chegar a ter 10 milhões de linhas, o que dificulta muito o trabalho.

A segunda, é o tipo de algoritmo usado, como vimos acima caso estejamos lidando com um md5, quebrar a senha pode ser relativamente fácil, mas caso estejamos contra um Bcrypt, as coisas podem se tornar muito complexas.

0 Compart.
Twittar
Compartilhar
Compartilhar
Pin