Às vezes, encontraremos esse problema. Por exemplo, se a senha estiver no modo abcdabcd e não houver abcdabcd em nosso dicionário, se for gerado, ocupará um enorme espaço. Existe uma maneira de gerar abcdabcd através do abcd? No hashcat, é claro que é possível implementar.Nesta seção, vamos falar primeiro sobre esse modo, que é o modo de ataque de combinação de dicionário (o parâmetro é representado como-a 1).
Primeiro, descrevemos o significado de-a 1 através de um exemplo simples e, em seguida, levamos você passo a passo para a aplicação complexa deste padrão.
hashcat – a 1 – m 0 mima.txt – o outfile dic.txt dic.txt
o significado deste comando é usar dic.txt Este dicionário é combinado para decifrar mima.txt. Se dic.txt for composto pelo dicionário
mostrado na figura abaixo, então o novo par de mima.txt é formado após a combinação do comando. O dicionário para decifrar é:
Cada linha em dic.txt é combinada consigo mesma para formar um novo dicionário.
O que foi introduzido anteriormente é a combinação do mesmo dicionário. Se for um dicionário diferente, o hashcat também o suporta. O comando é o seguinte
significa que todas as linhas em dic1.txt são combinadas com todas as linhas em dic2.txt, e o dicionário formado resolve mima.txt.
Em que circunstâncias o modo combinado é usado? No modo combinado, geralmente, quando a senha do usuário é claramente dividida em duas etapas, como: abcd1234, asdfasdf, aaa19770101,..., etc., a senha aparece claramente no parágrafo anterior e no parágrafo posterior.
(1) No modo de combinação, o hashcat atualmente só pode suportar dois dicionários (ou o mesmo dicionário duas vezes) para combinação e não pode suportar vários dicionários (mais de 3 dicionários) ou mais de 3 ataques combinados no mesmo dicionário.
Ou seja, o seguinte comando está errado:
hashcat – a 1 – m 0 mima.txt – ooutfile dic.txt dic.txt
hashcat – a 1 – m 0 mima.txt – ooutfile dic1.txt dic2.txt dic3.txt
(2) No modo combinado, os diretórios também não são suportados (no artigo anterior, no modo-a 0, todo o diretório é suportado), ou seja, as duas situações a seguir também não são aceitas.
hashcat – a 1 – m 0 mima.txt – ooutfile/dic/
hashcat – a 1 – m 0 mima.txt – ooutfile/dic/*.txt
(3) Problema de pontualidade
Ao usar o modo de combinação, se o dicionário for muito grande, digamos que dois dicionários são 10.000.000, então o espaço combinado é 100.000.000.000.000, o que equivale a 10.000.000 de dicionários (cada dicionário tem 10.000.000 itens) ataque, então o espaço é muito grande e pode haver muita repetição. Embora a cobertura tenha aumentado, a pontualidade não é alta.
O quebra por força bruta, como o nome sugere, consiste em esgotar violentamente o espaço de texto claro especificado. É um método sem maneira (porque você não tem como reduzir o espaço de esgotamento).
Antes de falar formalmente sobre brute force cracking, vamos primeiro falar sobre o esgotamento do espaço. Tomando como exemplo letras minúsculas + números comuns, se o comprimento da senha for 4, seu espaço é 36**4=1679616, o que não parece grande e sairá em breve; Se o comprimento da senha for 8, seu espaço é 36**8=2821109907456. Se o tempo de resolução for 1.000.000.000 (1 bilhão de vezes/s), o tempo de resolução é de aproximadamente 2820 segundos, cerca de 47 minutos, o que parece ser suportável; Se o comprimento da senha for 10, seu espaço é 36**10= 3656158440062976. Se o tempo de resolução for 1000.000.000 (1 bilhão de vezes/s), então o tempo de resolução excede 1000 horas, então não há como aceitá-lo.
Existem muitos tipos diferentes de modos de hack de força bruta (parâmetros representados como-a 3) no hashcat. Abaixo, vamos descrevê-los um por um.
hashcat possui 8 conjuntos de caracteres padrão integrados, nomeadamente l (26 letras minúsculas), u (26 letras maiúsculas), d (10 números), H (caracteres hexadecimais minúsculos), H (caracteres hexadecimais maiúsculos), s (caracteres especiais 31), A (coleção de 95 caracteres completos de l, u, d, s) e b (binário
Exemplo
(1) Se esgotar o espaço de 6 bits de letras minúsculas, o comando é o seguinte:
(2) Se esgotar todo o caractere O comando para usar o espaço de 8 bits é o seguinte:
(3) Se esgotar todo o espaço numérico com uma faixa de 4 a 6 bits, o comando é o seguinte:
Aqui, um parâmetro é adicionado- -inrcement- -increment-min 4- -inrcement- -increment-max 6 representa os valores mínimo e máximo do comprimento de esgotamento.
O modo de combinação aqui é o modo organizacional no modo exaustivo, não o modo (-a 1).
Dê um exemplo direto para ilustrar:
(1) Uma senha esgota o intervalo. Supõe-se que o comprimento da senha seja 6. O primeiro dígito é o conjunto de caracteres completo, o segundo dígito é letras minúsculas e o terceiro dígito é letras maiúsculas, o quarto, quinto e sexto dígitos são o conjunto de caracteres completo, então o comando pode usar o seguinte modo:
(2) Vários modos de combinação são fornecidos abaixo,
Um: Se a faixa de uma senha for maiúscula + número e o comprimento for 6, o comando é o seguinte:
Use-1 aqui? Eu? Você? d significa letras maiúsculas e minúsculas + números.
2: Se a faixa exaustiva for de 6 dígitos, o primeiro e quarto dígitos são maiúsculas + números, o segundo dígito é maiúsculas, o terceiro e quinto dígitos são maiúsculas + números e o sexto dígito é um número, então o comando é o seguinte:
Claro, você também pode especificar o comprimento mínimo e o comprimento máximo, conforme mostrado na figura abaixo
Anteriormente, introduzimos que o hashcat possui 8 conjuntos de caracteres integrados, mas e se o usuário precisar de conjuntos de caracteres que não estejam dentro desses 8 tipos? O que fazer? Não importa, o hashcat também preparou um rico modo de ataque de força bruta personalizado para todos.
Usando o comando hashcat – h, você pode ver que o seguinte modo de uso é definido
Abaixo, explicamos através de exemplos:
(1) Se o comprimento da senha for de 8 bits e cada bit consiste em "0123456789aqwcfhj,. < > = -_ +", você pode usar o seguinte comando.
Você também pode escrever esses caracteres em um arquivo, como char.txt, usando o comando abaixo.
(2) Se o comprimento da senha for de 8 bits, o primeiro, terceiro e sexto bits estão em "43545yt", o segundo e quarto bits estão em "345dfv- = _ +", o quinto e o sétimo bits estão em "9vjnbbf-brg" e o oitavo bits estão em "345fkfggh", então você pode usar o seguinte comando.
Claro, você também pode escrever esses caracteres em arquivos diferentes, como char1.txt,......, usando o seguinte comando.
Nota: Alguns símbolos terão significados especiais na linha de comando, portanto, quando houver símbolos especiais no conjunto de caracteres, é melhor escrever esses símbolos em formato de arquivo.
(3) Com base em (2), adicione o comprimento mínimo e o comprimento máximo, como 4-8 bits. Você pode usar o seguinte comando.
No artigo anterior, apresentamos o uso de alguns parâmetros. Hoje, continuaremos a apresentar alguns parâmetros comumente usados. Hoje me concentrarei nos parâmetros de exibição da tela
o artigo anterior introduziu comandos relacionados à saída de arquivo (-o/ - -outfile-format). Através desses comandos, os resultados da decifração da senha hashcat podem ser usados em um determinado formato. para o arquivo. Mas enquanto o hashcat está em execução, não podemos ver quais senhas o hashcat decifrou. Se trabalharmos no hashcat, podemos imprimir diretamente a senha decifrada pelo hashcat na tela, o que será mais intuitivo e conveniente. Existem exatamente vários parâmetros no hashcat que podem gerar os resultados da execução do hashcat para a tela.
O comando show gerará o hash decifrado e a senha armazenados em cache no arquivo pot para a janela da tela.
O comando left enviará o valor hash que o hashcat não decifrou para a tela
O comando stdout não decifra senhas, mas imprime o conteúdo do dicionário usado para decifrar senhas.
Existem muitos comandos no Hashcat, e os diferentes parâmetros variam muito. Se você quiser dar pleno desempenho às funções e funções do Hashcat, é recomendável que você experimente mais diferentes comandos para se familiarizar com a combinação de diferentes comandos no Hashcat. Para a função dos parâmetros hashcat, você pode aprender com a ajuda on-line hashcat (-h).