Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pack — PACK (Kit de Análise e Quebra de Senhas) | Kitploit
Ferramentas/GitHubGitHub/iphelix/pack
Quebra de SenhasAtaques de SenhaAnálise de HashUtilitários e Frameworks
GitHubiphelix/pack

pack

PACK (Kit de Análise e Quebra de Senhas)

Ver RepositórioSite
89017431há 7 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Kit de Análise e Quebra de Senhas por Peter Kacherginsky (iphelix)

PACK (Password Analysis and Cracking Toolkit) é uma coleção de utilitários desenvolvidos para auxiliar na análise de listas de senhas, a fim de aprimorar a quebra de senhas por meio da detecção de padrões de máscaras, regras, conjuntos de caracteres e outras características de senhas. O kit gera arquivos de entrada válidos para a família de quebradores de senhas Hashcat.

OBSERVAÇÃO: O kit em si não é capaz de quebrar senhas, mas foi projetado para tornar a operação de quebradores de senhas mais eficiente.

Selecionando listas de senhas para análise

Antes de começarmos a usar o kit, devemos estabelecer um critério de seleção de listas de senhas. Como estamos procurando analisar a maneira como as pessoas criam suas senhas, devemos obter a maior amostra possível de senhas vazadas. Uma excelente lista é baseada na violação do RockYou.com. Esta lista fornece uma coleção grande e diversificada que oferece bons resultados para senhas comuns usadas em sites semelhantes (por exemplo, redes sociais). A análise obtida desta lista pode não funcionar para organizações com políticas de senhas específicas. Portanto, selecionar uma amostra de entrada deve ser o mais próximo possível do seu alvo. Além disso, tente evitar obter listas baseadas em senhas já quebradas, pois isso gerará viés estatístico em relação às regras e máscaras usadas pelo(s) indivíduo(s) que quebraram a lista, e não pelos usuários reais.

StatsGen

A análise mais básica que você pode realizar é simplesmente obter o comprimento, conjunto de caracteres e outras características mais comuns das senhas na lista fornecida. No exemplo abaixo, usaremos 'rockyou.txt' contendo aproximadamente 14 milhões de senhas. Execute statsgen.py com a seguinte linha de comando:

$ python statsgen.py rockyou.txt

Abaixo está a saída do comando acima:

                       _
     StatsGen #.#.#   | |
      _ __   __ _  ___| | _
     | '_ \ / _` |/ __| |/ /
     | |_) | (_| | (__|   < 
     | .__/ \__,_|\___|_|\_\
     | |                    
     |_| [email protected]


[*] Analisando senhas em [rockyou.txt]
[+] Analisando 100% (14344390/14344390) das senhas
    OBSERVAÇÃO: As estatísticas abaixo são relativas ao número de senhas analisadas, não ao número total de senhas

[*] Comprimento:
[+]                         8: 20% (2966037)
[+]                         7: 17% (2506271)
[+]                         9: 15% (2191039)
[+]                        10: 14% (2013695)
[+]                         6: 13% (1947798)
...

[*] Conjunto de caracteres:
[+]             loweralphanum: 42% (6074867)
[+]                loweralpha: 25% (3726129)
[+]                   numeric: 16% (2346744)
[+]      loweralphaspecialnum: 02% (426353)
[+]             upperalphanum: 02% (407431)
...

[*] Complexidade da senha:
[+]                     digit: min(0) max(255)
[+]                     lower: min(0) max(255)
[+]                     upper: min(0) max(187)
[+]                   special: min(0) max(255)

[*] Máscaras Simples:
[+]               stringdigit: 37% (5339556)
[+]                    string: 28% (4115314)
[+]                     digit: 16% (2346744)
[+]               digitstring: 04% (663951)
[+]                 othermask: 04% (576324)
...

[*] Máscaras Avançadas:
[+]          ?l?l?l?l?l?l?l?l: 04% (687991)
[+]              ?l?l?l?l?l?l: 04% (601152)
[+]            ?l?l?l?l?l?l?l: 04% (585013)
[+]        ?l?l?l?l?l?l?l?l?l: 03% (516830)
[+]            ?d?d?d?d?d?d?d: 03% (487429)
...

OBSERVAÇÃO: Você pode reduzir o número de outliers exibidos incluindo a flag --hiderare, que não mostrará nenhum item com ocorrência inferior a 1%.

Aqui está o que podemos aprender imediatamente com a lista acima:

  • A maioria das senhas tem comprimento de 6 a 10 caracteres.
  • A maioria das senhas possui conjunto de caracteres loweralphanumeric.
  • Não há complexidade mínima ou máxima óbvia de senha.
  • As senhas analisadas tendem a seguir uma máscara simples "string seguida por dígitos".

A última seção, "Máscaras Avançadas", contém as máscaras mais frequentes usando o formato Hashcat. Símbolos individuais podem ser interpretados da seguinte forma:

?l - um único caractere minúsculo
?u - um único caractere maiúsculo
?d - um único dígito
?s - um único caractere especial

Por exemplo, a primeira máscara, "?l?l?l?l?l?l?l?l", corresponderá a todas as senhas alfanuméricas minúsculas. Dado o tamanho da amostra, você conseguirá quebrar aproximadamente 4% das senhas. No entanto, após gerar a saída inicial, você pode estar interessado em usar filtros para restringir os dados de senha.

Usando filtros

Vamos ver como os usuários do RockYou tendem a selecionar suas senhas usando a máscara simples "stringdigit" (uma string seguida por números):

$ python statsgen.py ../PACK-0.0.3/archive/rockyou.txt --simplemask stringdigit -q --hiderare

[*] Analisando senhas em [rockyou.txt]
[+] Analisando 37% (5339556/14344390) das senhas
    OBSERVAÇÃO: As estatísticas abaixo são relativas ao número de senhas analisadas, não ao número total de senhas

[*] Comprimento:
[+]                         8: 23% (1267260)
[+]                         7: 18% (981432)
[+]                         9: 17% (939971)
[+]                        10: 14% (750938)
[+]                         6: 11% (618983)
[+]                        11: 05% (294869)
[+]                        12: 03% (175875)
[+]                        13: 01% (103047)
[+]                        14: 01% (65958)

[*] Conjunto de caracteres:
[+]             loweralphanum: 88% (4720184)
[+]             upperalphanum: 06% (325941)
[+]             mixedalphanum: 05% (293431)

[*] Complexidade da senha:
[+]                     digit: min(1) max(252)
[+]                     lower: min(0) max(46)
[+]                     upper: min(0) max(31)
[+]                   special: min(0) max(0)

[*] Máscaras Simples:
[+]               stringdigit: 100% (5339556)

[*] Máscaras Avançadas:
[+]          ?l?l?l?l?l?l?d?d: 07% (420318)
[+]            ?l?l?l?l?l?d?d: 05% (292306)
[+]        ?l?l?l?l?l?l?l?d?d: 05% (273624)
[+]          ?l?l?l?l?d?d?d?d: 04% (235360)
[+]              ?l?l?l?l?d?d: 04% (215074)
...

O topo da saída especifica a porcentagem do total de senhas analisadas. Neste caso, quebrando apenas senhas que correspondem à máscara "stringdigit", é possível recuperar apenas cerca de 37% do conjunto total, conforme exibido na saída original. Em seguida, parece que apenas 11% deste tipo de senha usam algo diferente de minúsculas. Portanto, seria inteligente concentrar-se apenas em strings minúsculas que correspondam a esta máscara. Por fim, na seção "Máscaras Avançadas", podemos ver que a maioria das senhas "stringdigit" consiste em uma string com dois ou quatro dígitos após ela. Com as informações obtidas da saída acima, podemos começar a criar uma imagem mental dos padrões de geração de senhas dos usuários alvo.

Existem alguns outros filtros disponíveis para comprimento da senha, máscara e conjuntos de caracteres:

Comprimento: --minlength e/ou --maxlength

Máscara Simples: --simplemask [numeric, loweralpha, upperalpha, mixedalpha, loweralphanum, etc.]

Conjuntos de caracteres: --charset [digit, string, stringdigit, digitstring, digitstringdigit, etc.]

OBSERVAÇÃO: Mais de um filtro da mesma classe pode ser especificado como uma lista separada por vírgulas:

--simplemask="stringdigit,digitstring"

Salvando máscaras avançadas

Baixar ferramenta