Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
bkcrack — Quebre a criptografia legada de zip com o ataque de texto claro conhecido de Biham e Kocher. | Kitploit
Ferramentas/GitHubGitHub/kimci86/bkcrack
Quebra de SenhasFerramentas de Criptografia/DescriptografiaAnálise de VulnerabilidadesCriptografia
GitHubkimci86/bkcrack

bkcrack

Quebre a criptografia legada de zip com o ataque de texto claro conhecido de Biham e Kocher.

Ver Repositório
2.2k1885há 2 mesesRevisado 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

bkcrack

CI badge coverage badge release badge license badge GitHub Sponsors badge

Quebre a criptografia legada de zip com o ataque de texto claro conhecido de Biham e Kocher.

Visão geral

Um arquivo ZIP pode conter muitas entradas cujo conteúdo pode ser comprimido e/ou criptografado. Em particular, as entradas podem ser criptografadas com um algoritmo de criptografia simétrica baseado em senha, conhecido como criptografia tradicional PKWARE, criptografia legada ou ZipCrypto. Este algoritmo gera um fluxo pseudoaleatório de bytes (keystream) que é aplicado XOR ao conteúdo da entrada (texto claro) para produzir dados criptografados (texto cifrado). O estado do gerador, composto por três inteiros de 32 bits, é inicializado usando a senha e depois continuamente atualizado com o texto claro à medida que a criptografia avança. Este algoritmo de criptografia é vulnerável a ataques de texto claro conhecido, conforme demonstrado por Eli Biham e Paul C. Kocher no artigo de pesquisa A known plaintext attack on the PKZIP stream cipher. Dado o texto cifrado e 12 ou mais bytes do texto claro correspondente, o estado interno do gerador de keystream pode ser recuperado. Este estado interno é suficiente para decifrar completamente o texto cifrado, bem como outras entradas que foram criptografadas com a mesma senha. Também pode ser usado para forçar a senha com complexidade nl-6, onde n é o tamanho do conjunto de caracteres e l é o comprimento da senha.

bkcrack é uma ferramenta de linha de comando que implementa este ataque de texto claro conhecido. As principais funcionalidades são:

  • Recuperar estado interno a partir de texto cifrado e texto claro.
  • Remover ou alterar a senha de um arquivo ZIP usando o estado interno.
  • Recuperar a senha original a partir do estado interno.

Instalação

Pacotes pré-compilados

Você pode obter o lançamento oficial mais recente no GitHub.

Pacotes pré-compilados para Ubuntu, MacOS e Windows estão disponíveis para download. Extraia o arquivo baixado no local desejado.

No Windows, as bibliotecas de tempo de execução da Microsoft são necessárias para o bkcrack funcionar. Se elas não estiverem instaladas no seu sistema, baixe e instale o pacote Microsoft Visual C++ Redistributable mais recente.

Compilar a partir do código fonte

Alternativamente, você pode compilar o projeto com CMake.

Primeiro, baixe os arquivos fonte ou clone o repositório git. Em seguida, execute os seguintes comandos na árvore de origem para criar uma instalação na pasta install.

root@kitploit:~
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=install
cmake --build build --config Release
cmake --build build --config Release --target install

Pacotes de terceiros

bkcrack está disponível nos repositórios de pacotes listados abaixo. Esses pacotes são fornecidos por mantenedores externos.

Packaging status

Uso

Listar entradas

Você pode ver uma lista de nomes de entradas e metadados em um arquivo chamado archive.zip da seguinte forma:

root@kitploit:~
bkcrack -L archive.zip

As entradas que usam criptografia ZipCrypto são vulneráveis a um ataque de texto claro conhecido.

Recuperar chaves internas

O ataque requer pelo menos 12 bytes de texto claro conhecido. Pelo menos 8 deles devem ser contíguos. Quanto maior o texto claro contíguo conhecido, mais rápido o ataque.

Carregar dados de arquivos zip

Tendo um arquivo zip encrypted.zip com a entrada cipher sendo o texto cifrado e plain.zip com a entrada plain como o texto claro conhecido, o bkcrack pode ser executado assim:

root@kitploit:~
bkcrack -C encrypted.zip -c cipher -P plain.zip -p plain

Carregar dados de arquivos

Tendo um arquivo cipherfile com o texto cifrado (começando com os 12 bytes correspondentes ao cabeçalho de criptografia) e plainfile com o texto claro conhecido, o bkcrack pode ser executado assim:

root@kitploit:~
bkcrack -c cipherfile -p plainfile

Deslocamento (offset)

Se o texto claro corresponder a uma parte diferente do início do texto cifrado, você pode especificar um deslocamento. Ele pode ser negativo se o texto claro incluir uma parte do cabeçalho de criptografia.

root@kitploit:~
bkcrack -c cipherfile -p plainfile -o offset

Texto claro esparso

Se você conhece pouco texto claro contíguo (entre 8 e 11 bytes), mas conhece alguns bytes em alguns outros deslocamentos conhecidos, você pode fornecer essas informações para atingir o requisito de um total de 12 bytes conhecidos. Para isso, use a flag -x seguida por um deslocamento e bytes em hexadecimal.

root@kitploit:~
bkcrack -c cipherfile -p plainfile -x 25 4b4f -x 30 21

Decifrar

Se o ataque for bem-sucedido, os dados decifrados associados ao texto cifrado usado no ataque podem ser salvos:

root@kitploit:~
bkcrack -c cipherfile -p plainfile -d decipheredfile

Se as chaves forem conhecidas de um ataque anterior, é possível usar o bkcrack para decifrar dados:

root@kitploit:~
bkcrack -c cipherfile -k 12345678 23456789 34567890 -d decipheredfile

Descomprimir

Os dados decifrados podem estar comprimidos, dependendo se a compressão foi usada ou não quando o arquivo zip foi criado. Se a compressão deflate foi usada, um script Python 3 fornecido na pasta tools pode ser usado para descomprimir os dados.

root@kitploit:~
python3 tools/inflate.py < decipheredfile > decompressedfile

Remover senha

Para obter acesso a todas as entradas do arquivo criptografado em uma única etapa, você pode gerar um novo arquivo com o mesmo conteúdo, mas sem criptografia. Isso assume que todas as entradas foram originalmente criptografadas com a mesma senha.

root@kitploit:~
bkcrack -C encrypted.zip -k 12345678 23456789 34567890 -D decrypted.zip

Alterar senha

Também é possível gerar um novo arquivo criptografado com a senha de sua escolha:

root@kitploit:~
bkcrack -C encrypted.zip -k 12345678 23456789 34567890 -U unlocked.zip new_password

Você também pode definir a nova senha por sua representação interna correspondente.

root@kitploit:~
bkcrack -C encrypted.zip -k 12345678 23456789 34567890 --change-keys unlocked.zip 581da44e 8e40167f 50c009a0

Esses dois comandos podem ser usados juntos para alterar o conteúdo de um arquivo criptografado sem conhecer a senha, mas conhecendo apenas as chaves internas: você pode fazer uma cópia criptografada com a senha de sua escolha, depois editar a cópia com um gerenciador de arquivos inserindo a senha escolhida quando solicitado, e finalmente fazer uma cópia do arquivo modificado de volta com as chaves de criptografia originais.

Recuperar senha

Dadas as chaves internas, o bkcrack pode tentar encontrar a senha original.

Recuperação de senha por força bruta

Você pode procurar uma senha usando caracteres em um determinado conjunto de caracteres:

root@kitploit:~
bkcrack -k 1ded830c 24454157 7213b8c5 -b ?p

Você pode restringir a busca a senhas de um determinado comprimento ou a uma faixa de comprimentos:

root@kitploit:~
bkcrack -k 1ded830c 24454157 7213b8c5 -b ?p -l 9
bkcrack -k 1ded830c 24454157 7213b8c5 -b ?p -l 8..10

A opção -r <length> <charset> é um atalho para -l 0..<length> -b <charset>:

root@kitploit:~
bkcrack -k 1ded830c 24454157 7213b8c5 -r 10 ?p

Recuperação de senha baseada em máscara

Se você tem algum conhecimento sobre como a senha é formada, pode especificar uma máscara para restringir o espaço de busca e tornar a recuperação muito mais rápida. Isso é relevante para senhas longas (como aquelas com 12 ou mais caracteres) para as quais a força bruta se torna muito demorada.

Por exemplo, supondo que você se lembre vagamente que sua senha é composta por 8 letras minúsculas, um hífen e 6 dígitos decimais, você pode usar este comando:

root@kitploit:~
bkcrack -k 1940e266 d3fd3d89 71ce9871 -m ?l?l?l?l?l?l?l?l-?d?d?d?d?d?d

Isso é executado em milissegundos, enquanto a alternativa de força bruta leva horas.

Conjuntos de caracteres

O espaço de busca tanto para força bruta quanto para recuperação baseada em máscara é definido com conjuntos de caracteres (charsets). Um charset é uma sequência de caracteres ou atalhos para charsets existentes. Os charsets predefinidos estão listados abaixo.

Além dos charsets predefinidos, você pode definir charsets personalizados com a opção -s. Os charsets personalizados podem referenciar charsets predefinidos ou outros charsets personalizados. Eles são especialmente úteis para a especificação precisa do espaço de busca na recuperação baseada em máscara.

Por exemplo, se você sabe que sua senha é composta por 10 letras (maiúsculas ou minúsculas) e 5 dígitos binários, pode usar este comando:

root@kitploit:~
bkcrack -k b8c377a6 f603160f 1832a78b -m ?x?x?x?x?x?x?x?x?x?x?y?y?y?y?y -s x ?u?l -s y 01

Aprenda

Um tutorial é fornecido na pasta example.

Para mais informações, consulte a documentação e leia o código fonte.

Contribua

Não hesite em sugerir melhorias ou enviar pull requests no GitHub.

Se você gostaria de mostrar seu apoio ao projeto, sinta-se à vontade para fazer uma doação ou patrocinar o projeto através do GitHub Sponsors.

Licença

Este projeto é fornecido sob os termos da licença zlib/png.

Baixar ferramenta
AtalhoDescriçãoValor
?lletras minúsculasabcdefghijklmnopqrstuvwxyz
?uletras maiúsculasABCDEFGHIJKLMNOPQRSTUVWXYZ
?ddígitos decimais0123456789
?scaracteres especiais !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
?acaracteres alfanuméricosigual a ?l?u?d
?pcaracteres ASCII imprimíveisigual a ?l?u?d?s
?btodos os bytes0x00 .. 0xff