Você está na página 1de 7

Retirado de um Fórum! discord.

gg/cmx

User: RDBackups

Já fiz alguns tutoriais sobre quebra de senha, incluindo alguns para Linux e
Windows, WEP e WPA2, e até mesmo senhas online usando THC Hydra. Agora, pensei que
poderia valer a pena começar uma série sobre quebra de senhas em geral. A quebra de
senha é uma arte e uma ciência, e espero mostrar a você as muitas maneiras e
sutilezas envolvidas.

Começaremos com os princípios básicos de quebra de senhas que são essenciais para
TODAS as técnicas de quebra de senhas, seguidas de algumas das ferramentas e
tecnologias utilizadas. Então, um por um, mostrarei como usar esses princípios e
tecnologias de forma eficaz para quebrar ou capturar os vários tipos de senhas
existentes.
A importância e os métodos de quebra de senha

As senhas são a forma de autenticação mais usada em todo o mundo. Um nome de


usuário e senha são usados em sistemas de computador, contas bancárias, caixas
eletrônicos e muito mais. A capacidade de decifrar senhas é uma habilidade
essencial tanto para o hacker quanto para o investigador forense, este último
precisando hackear senhas para acessar o sistema do suspeito, disco rígido, conta
de e-mail, etc.

Embora algumas senhas sejam muito fáceis de decifrar, algumas são muito difíceis.
Nesses casos, o hacker ou investigador forense pode empregar maiores recursos de
computação (uma botnet, supercomputador, GPU, ASIC, etc.), ou pode procurar obter a
senha de outras maneiras.

Essas maneiras podem incluir armazenamento inseguro. Além disso, às vezes você não
precisa de uma senha para acessar recursos protegidos por senha. Por exemplo, se
você puder reproduzir um cookie, ID de sessão, um tíquete Kerberos, uma sessão
autenticada ou outro recurso que autentique o usuário após o processo de
autenticação por senha, poderá acessar o recurso protegido por senha sem saber a
senha.

Às vezes, esses ataques podem ser muito mais fáceis do que quebrar uma senha
complexa e longa. Farei um tutorial sobre vários ataques de repetição em um futuro
próximo (procure especificamente pelo meu próximo artigo sobre como roubar o cookie
do Facebook para acessar a conta do Facebook de alguém).

Agora, vamos começar com o básico.


Etapa 1: armazenamento de senha

Em geral, as senhas não são armazenadas em texto não criptografado. Como regra, as
senhas são armazenadas como hashes. Hashes são criptografias unidirecionais
exclusivas para uma determinada entrada. Esses sistemas costumam usar MD5 ou SHA1
para fazer o hash das senhas.

No sistema operacional Windows, as senhas do sistema local são armazenadas no


arquivo SAM, enquanto o Linux as armazena no arquivo /etc/shadow. Esses arquivos
são acessíveis apenas por alguém com privilégios root/sysadmin. Em ambos os casos,
você pode usar um serviço ou arquivo que tenha privilégios de root/sysadmin para
pegar o arquivo de senha (por exemplo, injeção de DLL com samdump.dll no Windows).

Etapa 2: tipos de ataques


Dicionário

Um ataque de dicionário é o ataque de quebra de senha mais simples e rápido. Para


simplificar, basta percorrer um dicionário de palavras tentando cada uma delas para
ver se funcionam. Embora tal abordagem pareça impraticável de ser feita
manualmente, os computadores podem fazer isso muito rápido e percorrer milhões de
palavras em poucas horas. Geralmente, essa deve ser sua primeira abordagem para
atacar qualquer senha e, em alguns casos, pode ser bem-sucedida em poucos minutos.

Mesa arco-íris

A maioria dos sistemas modernos agora armazena senhas em um hash. Isso significa
que, mesmo que você consiga acessar a área ou arquivo que armazena a senha, o que
você obtém é uma senha criptografada. Uma abordagem para quebrar essa criptografia
é pegar o arquivo de dicionário e fazer o hash de cada palavra e compará-lo com a
senha com hash. Isso consome muito tempo e CPU. Uma abordagem mais rápida é pegar
uma tabela com todas as palavras do dicionário já com hash e comparar o hash do
arquivo de senha com sua lista de hashes. Se houver uma correspondência, agora você
sabe a senha.

Força Bruta

A força bruta é a abordagem mais demorada para quebrar senhas. Deve ser sempre o
seu último recurso. A quebra de senha de força bruta tenta todas as possibilidades
de todas as letras, números, caracteres especiais que podem ser combinados para uma
senha e as tenta. Como você pode esperar, quanto mais potência de computação você
tiver, mais bem-sucedido será com essa abordagem.

Híbrido

Um ataque de senha híbrido é aquele que usa uma combinação de palavras de


dicionário com caracteres especiais, números, etc. Muitas vezes, esses ataques
híbridos usam uma combinação de palavras de dicionário com números anexando e
precedendo-os e substituindo letras por números e caracteres especiais. Por
exemplo, um ataque de dicionário procuraria a palavra "senha", mas um ataque
híbrido poderia procurar "p@$$w0rd123".

Etapa 3: senhas comumente usadas

Por mais que pensemos que cada um de nós é único, mostramos alguns padrões comuns
de comportamento dentro de nossa espécie. Um desses padrões são as palavras que
escolhemos para senhas. Há um número de listas de palavras que foram compiladas de
senhas comuns. Nos últimos anos, muitos sistemas foram invadidos e senhas
capturadas de milhões de usuários. Ao usar essas senhas já capturadas, é provável
que você encontre pelo menos algumas na rede que está tentando invadir.

Etapa 4: Estratégia de quebra de senha

Muitos novatos, quando começam a decifrar senhas, simplesmente escolhem uma


ferramenta e uma lista de palavras e depois as soltam. Muitas vezes ficam
desapontados com os resultados. Os crackers de senha experientes têm uma
estratégia. Eles não esperam poder quebrar todas as senhas, mas com uma estratégia
bem desenvolvida, eles podem quebrar a maioria das senhas em um período muito curto
de tempo.

A chave para desenvolver uma estratégia bem-sucedida de quebra de senha é usar


várias iterações, indo atrás das senhas mais fáceis com a primeira iteração até as
senhas mais difíceis usando técnicas diferentes para cada iteração.

Etapa 5: software de quebra de senha


John
John the Ripper é provavelmente a ferramenta de cracking de senhas mais conhecida
do mundo. É estritamente linha de comando e estritamente para Linux. A falta de uma
GUI torna um pouco mais difícil de usar, mas também é por isso que é um cracker de
senha tão rápido.

Uma das belezas desta ferramenta é sua estratégia de quebra de senha padrão
incorporada. Primeiro, tenta um ataque de dicionário e, se isso falhar, ele tenta
usar palavras de dicionário combinadas, depois tenta um ataque híbrido de palavras
de dicionário com caracteres e números especiais e somente se todos falharem, ele
recorrerá à força bruta.

Ophcrack

Ophcrack é uma ferramenta gratuita de quebra de senha baseada em tabela de arco-


íris para Windows. Está entre as ferramentas de quebra de senha do Windows mais
populares (Cain e Abel é provavelmente o mais popular; veja abaixo), mas também
pode ser usado em sistemas Linux e Mac.
Imagem por Ysangkok/Wikimedia Commons

Ele quebra hashes LM e NTLM (Windows). Para quebrar o Windows XP, Vista e Windows
7, você pode baixar tabelas arco-íris gratuitas. Você pode baixar o Ophcrack no
SourceForge e obter algumas tabelas de arco-íris gratuitas e premium para o
Ophcrack aqui.
L0phtCrack

L0phtCrack é uma alternativa ao Ophcrack e tenta quebrar senhas do Windows a partir


de hashes no arquivo SAM ou no Active Directory (AD). Ele também usa ataques de
dicionário e força bruta para gerar e adivinhar senhas.
Imagem via L0phtCrack

O L0phtCrack foi adquirido pela Symantec e eles o descontinuaram prontamente em


2006. Mais tarde, os desenvolvedores do L0phtCrack readquiriram esta excelente
ferramenta de quebra de senhas e a lançaram novamente em 2009. Você pode baixar a
ferramenta aqui.
Caim é Abel

Cain e Abel podem ser a ferramenta de cracking de senha mais conhecida do planeta.
Escrito estritamente para Windows, ele pode quebrar vários tipos de hash, incluindo
NTLM, NTLMv2, MD5, wireless, Oracle, MySQL, SQL Server, SHA1, SHA2, Cisco, VoIP e
muitos outros.

Cain e Abel podem quebrar senhas usando um ataque de dicionário, ataque de arco-
íris e força bruta. Um de seus melhores recursos é a capacidade de selecionar o
comprimento da senha e o conjunto de caracteres ao tentar um ataque de força bruta.
E além de ser uma excelente ferramenta de quebra de senhas, também é uma ótima
ferramenta de ARP Poisoning e MiTM.

THC-Hidra

O THC-Hydra é provavelmente a ferramenta de hacking online mais usada. Ele é capaz


de quebrar a autenticação de formulário da web e, quando usado em conjunto com
outras ferramentas, como Tamper Data, pode ser uma ferramenta poderosa e eficaz
para quebrar quase todos os tipos de mecanismo de autenticação de senha online.

Bruto

Brutus é uma ferramenta de cracking de senhas online que muitos consideram o


cracker de senhas online mais rápido. É gratuito e está disponível em Linux e
Windows, e suporta quebra de senha em HTTP (Autenticação Básica), HTTP (HTML
Form/CGI), POP3, FTP, SMB, Telnet e outros tipos como IMAP, NNTP, NetBus, etc.

O Brutus não é atualizado há algum tempo, mas ainda pode ser útil e, como é de
código aberto, você mesmo pode atualizá-lo. Brutus pode ser baixado aqui.

Aircrack-Ng

Na minha humilde opinião, o aircrack-ng é sem dúvida o melhor software de hacking


de Wi-Fi disponível. Ele é capaz de quebrar WEP e WPA2, e também é capaz de fazer o
seguinte, entre muitas outras coisas.

Criando um Soft AP
Criando um gêmeo do mal
Criando um AP desonesto
Conduzindo um ataque DOS contra um AP Wi-Fi

Está disponível apenas para Linux e requer um pouco de curva de aprendizado para
dominar, mas você será ricamente recompensado pelo tempo gasto aprendendo. Além
disso, para ser mais eficaz, você precisará usar um cartão sem fio compatível com
aircrack-ng, portanto, verifique sua extensa lista antes de comprar seu cartão.
Você pode encontrar mais informações sobre o aircrack-ng na minha série de hackers
Wi-Fi.

Etapa 6: Hardware de quebra de senha


Botnet

A quebra de senha é simplesmente uma função do poder de computação de força bruta.


O que uma máquina pode fazer em uma hora, duas máquinas podem fazer em meia hora.
Este mesmo princípio se aplica ao uso de máquinas de rede. Imagine o que você
poderia fazer se pudesse acessar uma rede de um milhão de máquinas!

Alguns dos botnets disponíveis em todo o mundo têm mais de um milhão de máquinas e
estão disponíveis para aluguel para quebrar senhas. Se você tiver uma senha que
pode levar um ano para ser quebrada com sua única CPU, um botnet de um milhão de
máquinas pode reduzir esse tempo para aproximadamente 1 milionésimo do tempo, ou 30
segundos!

GPU

GPUs, ou unidades de processamento gráfico, são muito mais poderosas e mais rápidas
que a CPU para renderizar gráficos em seu computador e para quebrar senhas. Temos
algumas ferramentas embutidas no Kali que são especialmente projetadas para usar
GPUs para quebrar senhas, como cudahashcat, oclhashcat e pyrit. Procure os próximos
tutoriais sobre como usar essas ferramentas e a GPU em sua placa de vídeo de última
geração para acelerar a quebra de senha.

ASIC

Nos últimos anos, alguns dispositivos foram desenvolvidos especificamente para


cracking de hardware. Esses dispositivos específicos de aplicativos podem quebrar
senhas mais rapidamente do que mais de 100 CPUs trabalhando simetricamente.

[1] Placas Bitfury da Black Arrow, [2] processador Butterfly Labs, [3] Inside the
Butterfly Labs Monarch
Black Arrow Software e Butterfly Labs, entre outros, agora estão vendendo esses
dispositivos por preços de até US$ 1.500 por

Muitas vezes, os hackers novos para quebrar senhas estão procurando uma única
ferramenta ou técnica para quebrar senhas, mas infelizmente isso não existe. Isso é
uma sorte para a segurança da rede, no entanto. Cada tipo de senha requer uma
estratégia única adaptada à situação. A situação pode ser o tipo de criptografia
(MD5, SHA1, NTLM, etc.), remoto versus offline, salgado ou não salgado, e assim por
diante. Sua estratégia de quebra de senha deve ser específica para a situação.

Muitos crackers de senha novatos simplesmente executam sua ferramenta de cracking


de senha e esperam um avanço. Eles executam enormes listas de palavras e esperam o
melhor. Se não quebrar a senha, eles serão perdidos. Aqui, quero desenvolver uma
estratégia de várias iterações para quebra de senhas que funcionará na grande
maioria das senhas, embora não em todas. Nenhuma estratégia funcionará em todas as
senhas, com exceção da CPU e do cracking de força bruta demorado.

Desenvolvendo uma estratégia de quebra de senha

Estou assumindo aqui que estamos atrás de mais de uma única senha. Geralmente, a
quebra de senha é um exercício de primeiro capturar os hashes. Em sistemas Windows,
eles estão no arquivo SAM em sistemas locais, LDAP em sistemas de diretório ativo e
/etc/shadow em sistemas Linux e UNIX. Esses hashes são criptografia unidirecional
que são exclusivas para cada entrada de senha (bem, quase todas as entradas de
senha, para ser preciso). Em cada caso, precisamos saber qual esquema de
criptografia está sendo usado para quebrar o hash.

Por exemplo, sistemas Linux e Unix usam MD5 e sistemas Windows modernos usam HMAC-
MD5. Outros sistemas podem usar SHA1, MD4, NTLM, etc. Certifique-se de saber qual
hash está sendo usado no sistema que você está tentando quebrar, caso contrário
você passará horas ou dias sem resultados satisfatórios.

Tudo o que foi dito, John the Ripper tem um detector automático de hash que está
correto cerca de 90% das vezes, mas quando está errado, não há como saber. Em Caim
e Abel, assim como no hashcat, devemos informar à ferramenta que tipo de hash
estamos tentando decifrar.

Aqui podemos ver uma captura de tela dos tipos de hashes que podemos quebrar usando
hashcat e seus valores numéricos.

Etapa 1: senhas curtas de força bruta


Embora possa parecer contrário ao senso comum, muitas vezes começo tentando forçar
senhas muito curtas. Embora a força bruta de senhas longas possa consumir muito
tempo (dias ou semanas), senhas muito curtas podem ser forçadas em questão de
minutos.
Começo tentando senhas de força bruta de seis caracteres ou menos. Dependendo do
meu hardware, isso geralmente pode ser feito em questão de minutos ou horas. Em
muitos ambientes, isso produzirá pelo menos algumas senhas.

Além disso, também tentarei forçar todas as senhas numéricas nesta fase. As senhas
numéricas são as mais fáceis de decifrar. Uma senha numérica de 8 caracteres requer
apenas que tentemos 100 milhões de possibilidades, e mesmo uma senha numérica de 12
caracteres requer apenas 1 trilhão de possibilidades. Com hardware poderoso,
podemos fazer isso sem suar a camisa.

Etapa 2: frutas de baixo custo


Uma vez que quebramos algumas senhas curtas por força bruta, provavelmente ainda
teremos um arquivo com muitos, muitos hashes nele. Se tentarmos comprometer uma
rede institucional ou corporativa, normalmente 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, há muitas maneiras de escalar privilégios para sysadmin ou root. Isso
significa que, se conseguirmos quebrar uma única senha em uma rede, provavelmente
podemos derrubar toda a rede.
Tudo o que foi dito acima, vamos em seguida ir atrás de qualquer fruta mais fácil.
Isso significa que vamos depois das senhas mais fáceis de decifrar. Por exemplo, se
agora a instituição tiver uma política de senhas de que todas as senhas devem ter 8
caracteres, muitas pessoas farão com que suas senhas sejam o mínimo absoluto.

Para tentar uma passagem rápida e suja nesses hashes, basta escolher uma lista de
palavras do dicionário com oito caracteres. Percorrer os milhões de palavras dessa
lista geralmente levará apenas algumas horas e provavelmente produzirá uma parte
significativa das senhas.

Etapa 3: tente senhas comuns


Os seres humanos, embora pensemos que somos únicos, tendem a pensar e agir de forma
semelhante. Assim como os animais de carga, seguimos o rebanho e agimos de forma
semelhante. O mesmo pode ser dito para senhas.
Os usuários desejam uma senha que atenda à política de senha mínima de sua
organização, mas que também seja fácil de lembrar. É por isso que você verá senhas,
como "P@ssw0rD" com tanta frequência. Apesar de sua óbvia simplicidade, 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, essa senha e suas variações são
usadas inúmeras vezes.

Sabendo que os humanos tendem a usar esses tipos de senhas, na minha próxima
iteração na lista de hash de senhas, tentarei 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 o maior
número possível de senhas.

Passo 4: Combine palavras com números


Percorrer a fruta mais fácil na Etapa 2 e as senhas comuns na Etapa 3 provavelmente
renderá pelo menos algumas senhas e o tempo que consome é mínimo. Agora queremos
atacar os hashes restantes e dar o próximo passo em complexidade.

Nesta iteração, executaremos os hashes restantes por meio de uma lista de palavras
que possui palavras de dicionário mais longas e palavras de dicionário com números.
Os usuários, por serem forçados a alterar as senhas periodicamente, geralmente
apenas adicionam números ao início ou ao final de suas senhas. Algumas de nossas
ferramentas de quebra de senha, como hashcat e John the Ripper, nos permitem usar
regras para aplicar à lista de palavras para combinar palavras, acrescentar e
preceder números, alterar maiúsculas e minúsculas, etc.

Etapa 5: ataque híbrido


Até agora, geralmente deciframos mais de 50% das senhas nas Etapas 1 a 4, mas temos
o trabalho mais difícil pela frente para decifrar as senhas mais intransigentes.
Essas senhas geralmente incluem caracteres especiais e palavras combinadas.

Isso inclui senhas como "socc3rmom" e "n3xtb1gth1ng". Essas são senhas


relativamente fortes, incluindo caracteres especiais e números, mas, como incluem
variações nas palavras do dicionário, geralmente são facilmente decifráveis.

Em seguida, precisamos de uma lista de senhas que combine palavras do dicionário


com números e caracteres especiais. Felizmente, isso é algo que John the Ripper faz
automaticamente, mas outros crackers de senha (Cain e Abel) não necessariamente.
Hashcat pode ser executado com um de seus muitos conjuntos de regras para combinar
palavras e caracteres especiais em sua lista de palavras.

Passo 6: Finalmente, se tudo mais falhar...


Se tudo mais falhar, você terá que forçar as senhas com força bruta. Isso pode
ficar muito lento com uma única CPU, mas pode acelerar 1000x ou mais com um botnet,
um ASIC de quebra de senha ou um cracker de senha de várias GPUs muito rápido
(estarei fazendo tutoriais sobre cada um deles em um futuro próximo). Entre os mais
rápidos, um cracker de senha de 25 GPUs é capaz de 348 bilhões de hashes por
segundo!

Mesmo quando somos deixados com um ataque de força bruta, podemos ser estratégicos
sobre isso. Por exemplo, se soubermos que a política de senha tem no mínimo 8
caracteres, tente forçar bruta com apenas oito caracteres. Isso economizará seu
tempo e provavelmente gerará algumas senhas.

Além disso, você pode escolher seu conjunto de caracteres. Mais uma vez, se
soubermos que a política de senha é maiúscula, minúscula e um número, escolha
apenas os conjuntos de caracteres para força bruta.

Finalmente, alguns crackers de senha como hashcat (procure meu próximo tutorial
sobre hashcat) têm "políticas" embutidas que você pode escolher para tentar a força
bruta. Elas são semelhantes às estratégias e ajudam a moldar seus ataques com base
no protocolo de construção de senhas seguido por uma empresa ou grupo.

Essas regras podem ser usadas em outras ferramentas de quebra de senha, como John
the Ripper.
É importante ter sucesso na quebra de senhas que você siga uma estratégia
sistemática, não importa qual ferramenta você esteja usando, que exija várias
iterações para quebrar a maioria das senhas. Essa estratégia geralmente funciona
desde as senhas mais fáceis de decifrar até as mais difíceis.

Você também pode gostar