Como Quebrar Senhas – Parte 2 (Estrategia de Cracking)


O objetivo desta série de posts é ajuda-lo a aprimorar suas habilidades em quebrar senhas desde as mais simples, como  quebrar senha do excel, á ações mais complexas como descobrir senha de wifi e remover a senha do windows 8, além,  é claro, de ajuda-lo a expandir seus conhecimentos para algumas outras  áreas ainda inexploradas. Se esta é sua primeira vez aqui recomendo que leia também a parte 1 sobre: Princípios e tecnologias para quebra de senhas.

É muito comum pessoas ou hackers iniciantes procurarem por uma unica técnica ou ferramenta capaz de quebrar qualquer tipo de senha que venha a necessitar, mas, infelizmente, isso não existe. Entretanto, essa indisponibilidade de uma ferramenta ou técnica ‘universal’ para quebrar senhas torna-se uma grande vantagem para a segurança da rede. Cada tipo de senha requer uma unica estratégia que deve ser adaptada a cada situação. A situação pode variar desde o tipo de criptografia (MD5, SHA1, NTLM, etc), o ambiente de ataque (remoto / offline), as limitações de acesso, e por ai vai.. Sua estratégia para quebra de senhas deve ser adaptada especificamente para cada situação.

Neste tutorial focaremos a discussão na estratégia para quebra de senhas. Muitos iniciantes simplesmente executam uma ferramenta de quebra de senha e espera pelo progresso, geralmente associam a enormes listas de palavras chave e esperam pelo resultado. Se não funcionar estão perdidos. Aqui desenvolveremos uma estratégia de multi-iterações para quebra de senha que funcionará na grande maioria das vezes, embora não em todas. Nenhuma estratégia funcionará em todas as senhas, com exceção da CPU e da quebra por força bruta (brute force) com  bastante uso do tempo.

Desenvolvendo uma Estratégia para Quebra de Senha

Vamos assumir aqui que estamos atrás de mais que uma unica senha. Geralmente a quebra de senhas começa primeiramente pela captura dos hashes. No Windows eles ficam no arquivo SAM em sistemas locais, LDAP em active directory systems, e em /etc/shadow nos sistemas Linux e Unix. Esses hashes são uma criptografia unidirecional que são únicas para cada entrada de senha. Em cada caso, precisamos saber qual o esquema de criptografia que está sendo usado para que possamos quebrar o hash.

Por exemplo, os sistemas Linux e Unix usam MD5 e os sistemas Windows recentes usam o moderno HMAC-MD5. Outros sistemas podem usar SHA1, MD4, NTLM, etc. Certifique-se de saber que  hash está sendo usado no sistema que você está tentando crackear, caso contrário você passará horas ou dias sem obter resultados.

Com tudo o que precisava ser dito, o John the Ripper tem um detector automático de hash que acerta em cerca de 90% das vezes, mas quando erra, não tem como saber. No Caim e Abel , assim como no hashcat, devemos especificar à ferramenta qual o tipo de hash que estamos tentando quebrar.

tipos de hash hashcat
captura de tela dos tipos de hashes que podemos quebrar usando hashcat e seus valores numéricos. via: Null-byte

Passo 1: Brute Force de Senhas Curtas

Isso pode parecer estranho e fora do senso comum, mas,  muitas vezes vale a pena começar tentando descobrir senhas muito curtas através de um brute force. Apesar do brute force de senhas longas poder demorar muito tempo (dias ou semanas), senhas muito curtas podem ser quebradas em questão de minutos.

Recomendo começar por tentar a quebra por força bruta com senhas de seis caracteres ou menos. Dependendo do seu hardware, isso geralmente poderá ser realizado em questão de minutos ou poucas horas. Muitas das vezes isso produzirá pelo menos algumas senhas.

Além disso, também tente forçar todas as senhas numéricas nesta fase. As senhas numéricas são as mais fáceis de quebrar. Uma senha numérica de 8 caracteres requer apenas 100 milhões de tentativas, e até uma senha numérica de 12 caracteres permite apenas 1 trilhão de possibilidades. Com um hardware poderoso podemos fazer isso tranquilamente.

Passo 2: Low-Hanging Fruit

Uma vez que tenhamos quebrado algumas senhas pequenas por Brute Force, ainda podemos  ter um arquivo que contém muito mais hashes nele. Se tentarmos comprometer uma rede institucional ou corporativa, geralmente só precisamos quebrar uma única senha para iniciar o comprometimento da rede.

Embora o usuário cuja senha foi quebrada possa ter direitos e privilégios limitados, existem várias maneiras de escalar privilégios para sysadmin ou root. Isso significa que, se pudermos quebrar uma única senha em uma rede, provavelmente podemos comprometer toda a rede.

Tudo dito, vamos seguir com Low-Hanging Fruit. Isso significa que não vamos avançar alem das senhas mais fáceis de quebrar. Por exemplo, se a instituição tiver uma política de senhas em que todas as senhas devem ter no minimo 8 caracteres, muitas pessoas faram suas senhas com o  mínimo absoluto.

Para tentar uma brecha rápida  desses hashes, simplesmente escolha um lista de palavras chave que são de oito caracteres. Executar os milhões de palavras dessa tal lista, geralmente, leva apenas algumas horas e é provável que encontre uma parcela significativa das senhas.

Passo 3: Experimente senhas Comuns

Nós seres humanos, por mais que julguemos ser únicos,  tendemos a pensar e agir de forma semelhante. Assim como os animais de bando, seguimos o rebanho e agimos de forma semelhante. O mesmo pode ser dito para quando definimos nossas senhas.

Os usuários querem uma senha capaz de atender a uma politica minima estipulada em suas organizações, mas que também seja fácil de lembrar. Por isso que vemos senhas como “[email protected]” com tanta frequência. Apesar de sua simplicidade óbvia, ele cumpre uma política de senha de no mínimo 8 caracteres, letras maiúsculas e minúsculas, um caractere especial e um número. Acredite ou não, esta senha e suas variações são usadas várias vezes.

Sabendo que as pessoas tendem a usar esses tipos de senhas, na nossa próxima iteração na lista de hash de senha, vamos tentar uma lista de senhas comumente encontradas. Numerosos sites na web incluem listas de palavras de senhas quebradas ou capturadas. Além disso, você pode tentar raspar a web para capturar tantas senhas quanto possível.

Passo 4: Combine Palavras com números

Através da Low-Hanging Fruit na Etapa 2 e das senhas comuns na Etapa 3 provavelmente renderão pelo menos algumas senhas e o tempo consumido para isso é mínimo. Agora queremos atacar os hashes restantes e dar o próximo passo na complexidade.

Nesta iteração, vamos executar os hashes restantes através de uma lista de palavras que possui palavras de dicionário mais longas e palavras de dicionário com números. Os usuários, muitas vezes apenas adicionarão números ao começo ou ao final de suas senhas,porque eles são obrigados a mudar as senhas periodicamente. Algumas de nossas ferramentas de cracking de senha, como hashcat e John the Ripper, nos permite usar regras para auto inscrever na lista de palavras para combinar palavras, acrescentar e substituir números, mudar case, etc.

Passo 5: Ataque Híbrido

Até agora, geralmente agravamos mais de 50% das senhas nos Passos 1 ao 4, mas temos um trabalho mais difícil á frente para quebrar as senhas mais intransigentes. Essas senhas geralmente incluem caracteres especiais e palavras combinadas.

Estes incluem palavras-passe como “socc3rmom” e “n3xtb1gth1ng”. Estas são senhas relativamente fortes, incluindo caracteres e números especiais, mas porque incluem variações em palavras de dicionário, elas são facilmente quebráveis.

Em seguida, precisamos de uma lista de senhas que combina palavras de dicionário com números e caracteres especiais. Felizmente, isso é algo que o John the Ripper faz automaticamente, mas outros crackers de senhas (Cain e Abel) não necessariamente. O Hashcat pode ser executado com um dos seus vários conjuntos de regras para combinar palavras e caracteres especiais com sua lista de palavras.

Passo 6: Se tudo falhar …

Se tudo mais falhar, você fica obrigado a atacar as senhas. Isso pode ser muito lento com uma única CPU, mas pode ser acelerada em 1000x ou mais com uma botnet, uma senha de cracking ASIC ou um cracker de senha GPU múltiplo muito rápido Entre os mais rápidos destes, um cracker de senha de 25 GPUs é capaz de testar 348 bilhões de hashes por segundo!

Mesmo quando  temos que executar um ataque de força bruta, ainda podemos ser estratégicos sobre isso. Por exemplo, se sabemos que a política de senha é de um mínimo de 8 caracteres, experimente um brute force com apenas oito caracteres. Isso economizará tempo e provavelmente renderá algumas senhas.

Além disso, você pode escolher o seu conjunto de caracteres. Mais uma vez, se sabemos que a política de senha é maiúscula, minúscula e um número, escolha apenas esses conjuntos de caracteres para o brute force.

Finalmente, alguns crackers de senha como hashcat têm “políticas” internas que você pode escolher ao tentar um Brute force. Estes são semelhantes às estratégias e à ajuda ao moldar seus ataques com base no protocolo de construção de senha estipulado por uma empresa ou grupo.

Comentários

Tão vazio aqui... deixe um comentário!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Barra lateral