uma nota breve – este artigo é sobre a teoria de como quebrar senhas. Compreender como os criminosos cibernéticos executam ataques é extremamente importante para entender como proteger os sistemas contra esses tipos de ataques.

tentar hackear um sistema que você não possui é provavelmente ilegal em sua jurisdição (além de hackear seus próprios sistemas pode violar qualquer garantia para esse produto).

vamos começar com o básico. O que é um ataque de Força bruta?,

este tipo de ataque envolve repetidamente tentar login como um usuário, tentando cada letra, número e combinação de caracteres possíveis (usando ferramentas automatizadas).

isto pode ser feito online (por isso, em tempo real, tentando continuamente diferentes combinações de utilizador/senha em contas como redes sociais ou sites bancários) ou offline (por exemplo, se tiver obtido um conjunto de senhas escondidas e estiver a tentar decifrá-las offline).

Offline nem sempre é possível (pode ser difícil obter um conjunto de senhas hashed), mas é muito menos barulhento., Isto é porque uma equipa de segurança provavelmente vai notar muitas, muitas contas de login falhadas da mesma conta, mas se você pode quebrar a senha offline, você não terá um registro de tentativas de login falhadas.

isto é relativamente fácil com uma senha curta. Torna-se exponencialmente mais difícil com uma senha mais longa devido ao grande número de possibilidades.,

Por exemplo, se você sabe que alguém está usando uma senha de 5 caracteres, composta apenas de letras minúsculas, o número total de senhas possíveis é 26^5 (26 letras possíveis para escolher para a primeira letra, 26 opções possíveis para a segunda letra, etc.), ou 11.881.376 combinações possíveis.

mas se alguém está usando uma senha de 11 caracteres, apenas de letras minúsculas, o número total de senhas possíveis é 26 ^11, ou 3,670,344,486,987,776 senhas possíveis.,

Quando você adiciona em letras maiúsculas, caracteres especiais e números, isso fica ainda mais difícil e demorado para quebrar. Quanto mais senhas possíveis existem, mais difícil é para alguém fazer login com sucesso com um ataque de Força bruta.

como se proteger

Este tipo de ataque pode ser defendido de várias maneiras diferentes. Primeiro, você pode usar senhas suficientemente longas e complexas (pelo menos 15 caracteres). Você também pode usar senhas únicas para cada conta (use um gerenciador de senhas!) para reduzir o perigo de violações de dados.,

uma equipa de segurança pode bloquear uma conta após um certo número de tentativas de login falhadas. Eles também podem forçar um método secundário de verificação como , ou usar 2 fator de autenticação (2FA) que requer um segundo código (SMS ou E-Mail, app-based, ou hardware key baseado).

Aqui está um artigo sobre como executar um ataque de Força bruta.como é que consegues decifrar as senhas mais depressa?

um ataque de dicionário envolve tentar login repetidamente, tentando um número de combinações incluídas em um ‘dicionário’ pré-compilado, ou lista de combinações.,

isto é geralmente mais rápido do que um ataque de Força bruta porque as combinações de letras e números já foram computadas, poupando-lhe tempo e poder computacional.

mas se a senha for suficientemente complexa (por exemplo 1098324ukjbfnsdfsnej) e não aparecer no ‘dicionário’ (a lista pré-compilada de combinações de que está a trabalhar), o ataque não irá funcionar.

é frequentemente bem sucedido porque, muitas vezes, quando as pessoas escolhem senhas, elas escolhem palavras comuns ou variações nessas palavras (por exemplo, ‘senha’ ou ‘p@SSword’).,

um hacker também pode usar este tipo de ataque quando sabe ou adivinha uma parte da senha (por exemplo, o nome de um cão, aniversários de crianças, ou um aniversário – informações que um hacker pode encontrar nas páginas de redes sociais ou outros recursos de código aberto). medidas de proteção similares às descritas acima contra ataques de Força bruta podem impedir que esses tipos de ataques sejam bem sucedidos.

e se já tiver uma lista de senhas tracejadas?,

as Senhas são armazenadas no arquivo /etc/shadow para Linux e C:\Windows\System32\config arquivo para Windows (que não estão disponíveis enquanto o sistema operacional é inicializado).

Se conseguiu obter este ficheiro, ou se obteve um hash de senhas de uma forma diferente, como cheirar o tráfego na rede, pode tentar descodificar a senha ‘offline’.

Considerando que os ataques acima requerem tentar login repetidamente, se você tiver uma lista de senhas tracejadas, você pode tentar decifrá-las na sua máquina, sem desligar os alertas gerados por tentativas de login falhadas repetidas., Em seguida, você só tentar login uma vez, depois de ter decifrado com sucesso a senha (e, portanto, não há nenhuma tentativa de login falhada).

Você pode usar ataques de Força bruta ou ataques de dicionário contra os arquivos de hash, e pode ser bem sucedido, dependendo de quão forte o hash é.espera um minuto-o que é hashing?

35D4FFEF6EF231D998C6046764B935D

reconhece esta mensagem? Diz “Oi meu nome é megan”

7DBDA24A2D10DAF98F23B95CFAF1D3AB

Este é o primeiro parágrafo deste artigo. Sim, parece um disparate, mas na verdade é um “haxixe”.,

uma função hash permite que um computador insira uma cadeia de caracteres (alguma combinação de letras, números e símbolos), pegue essa cadeia de caracteres, misture-a e output uma cadeia de comprimento fixo. É por isso que ambas as cordas acima são do mesmo comprimento, mesmo que as entradas das cordas eram de comprimentos muito diferentes.

Hashes podem ser criados a partir de quase qualquer conteúdo digital. Basicamente, todo o conteúdo digital pode ser reduzido a binário, ou uma série de 0s e 1s. Portanto, todo o conteúdo digital (imagens, documentos, etc.) pode ser hashed.,

Existem muitas funções de hashing diferentes, algumas das quais são mais seguras do que outras. Os traços acima foram gerados com MD5 (MD significa “Message Digest”). Diferentes funções também diferem no comprimento do hash que produzem.

o mesmo conteúdo na mesma função hash sempre produzirá o mesmo hash. No entanto, mesmo uma pequena mudança irá alterar completamente o hash. Por exemplo,

2FF5E24F6735B7564CAE7020B41C80F1

é o hash para ‘Hi meu nome é Megan’ apenas capitalizando o M em Megan mudou completamente o hash de cima.,

as erupções cutâneas também são funções unidireccionais (o que significa que não podem ser revertidas). Isto significa que os traços (únicos e unidirecionais) podem ser usados como um tipo de impressão digital para conteúdo.

Qual é um exemplo de como as erupções cutâneas são usadas?

hashs pode ser usado como verificação de que uma mensagem não foi alterada.

Quando você envia um e-mail, por exemplo, você pode esmagar o e-mail inteiro e enviar o hash também. Em seguida, o destinatário pode executar a mensagem recebida através da mesma função de hash para verificar se a mensagem foi adulterada em trânsito., Se os dois traços coincidirem, a mensagem não foi alterada. Se não coincidirem, a mensagem foi alterada.

também, as senhas são geralmente hashed quando são armazenadas. Quando um usuário entra em sua senha, o computador calcula o valor de hash e compara-o com o valor de hash armazenado. Desta forma, o computador não armazena senhas em texto simples (então algum hacker intrometido não pode roubá-las!).

Se alguém é capaz de roubar o arquivo de senha, os dados são inúteis porque a função não pode ser revertida (embora haja maneiras, como tabelas rainbow, para descobrir que texto simples cria o hash conhecido).,

Qual é o problema com as erupções cutâneas?

Se um hash pode ter dados de qualquer comprimento ou conteúdo, há possibilidades ilimitadas para dados que podem ser hashed.

Uma vez que um hash converte este texto em um conteúdo de comprimento fixo (por exemplo, 32 caracteres), há um número finito de combinações para um hash. É um número muito grande de possibilidades, mas não infinito.

eventualmente dois conjuntos diferentes de dados irão produzir o mesmo valor de hash. Isto chama-se colisão.,

Se tiver um hash e estiver a tentar passar por todos os valores de texto simples possíveis para encontrar o texto simples que corresponde ao seu hash, será um processo muito longo e muito difícil.

no entanto, e se você não se importar com quais duas erupções cutâneas colidem?

isto é chamado de ‘problema de aniversário’ em matemática. Em uma classe de 23 alunos, a probabilidade de alguém ter um aniversário em um dia específico é de cerca de 7%, mas a probabilidade de duas pessoas compartilharem o mesmo aniversário é de cerca de 50%.,

o mesmo tipo de análise pode ser aplicado às funções de hash, a fim de encontrar quaisquer dois hash que coincidam (em vez de um hash específico que corresponde ao outro).

para evitar isso, você pode usar funções de hash mais longas, como SHA3, onde a possibilidade de colisões é menor.

pode tentar gerar as suas próprias funções de hash para o SHA3 aqui e MD5 aqui.

Você pode tentar usar hashes de Força bruta, mas isso leva muito tempo. A maneira mais rápida de fazer isso, é usar tabelas arco-íris pré-computadas (que são semelhantes aos ataques de dicionário).

parece muito fácil ser hackeado., Devo preocupar-me?

a coisa mais importante a lembrar sobre hacking é que ninguém quer fazer mais trabalho do que eles têm que fazer. Por exemplo, golpes de força brutas podem ser extremamente demorados e difíceis. Se há uma maneira mais fácil de obter a sua senha, é provavelmente o que um actor nefasto vai tentar primeiro. isso significa que ativar as melhores práticas básicas de segurança cibernética é provavelmente a maneira mais fácil de evitar ser hackeado. Na verdade, a Microsoft recentemente relatou que apenas ativando o 2FA vai acabar bloqueando 99,9% dos ataques automatizados.,

Additional Reading:

Popular password cracking tools