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
HiveV5_keystream_decryptor — coisas ruins feitas por caras maus | Kitploit
Ferramentas/GitHubGitHub/reecdeep/hivev5_keystream_decryptor
Ferramentas de Criptografia/DescriptografiaEngenharia ReversaRecuperação de DadosAnálise de MalwareForensia DigitalCriptografiaAnálise de Binários
GitHub

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
reecdeep/hivev5_keystream_decryptor

HiveV5_keystream_decryptor

coisas ruins feitas por caras maus

Ver Repositório
49916há 4 anosRevisado pelo Kitploit

PoC de descriptografador de keystream do HiveV5

Introdução

A amostra do Hive analisada e referenciada neste documento foi escolhida aleatoriamente a partir desta lista criada por @rivitna, a quem vão os meus mais sinceros agradecimentos. Os artefatos estão disponíveis na plataforma VirusTotal.

Neste documento, o arquivo a0h2uih3d2.exe foi tomado como referência

MD5: 15CF5E0DA094ACDD751A513402A8C941
SHA-1: 72E15AC4473903C814E65E3C06F54EB0399580AA
SHA-256: 335D2E4A743D059955760ECF2EC25EE86D36AA60B096C9180E860C64EF78EE55

Para ter uma ideia da complexidade deste ransomware, dê uma olhada nesta análise publicada pelo Microsoft Threat Intelligence Center (MSTIC).

Por favor, leia atentamente todo o documento antes de começar a brincar com o código!

Uma breve visão geral sobre o Hive v5

Nos últimos meses, canalizei a maior parte das minhas energias para o estudo e a engenharia reversa do algoritmo de criptografia do Hive v5. Tive o prazer de colaborar com um grande analista de malware e engenheiro reverso, @rivitna, que no passado analisou versões anteriores do Hive e publicou códigos e PoCs sobre seus mecanismos de criptografia. Ele contribuiu (e não pouco) para identificar os componentes envolvidos nas operações de criptografia do Hive v5, que por ser escrito em RUST se tornou mais difícil de analisar. Encontrei algo em comum com o Babuk, outro ransomware muito importante cujos códigos-fonte foram divulgados em junho de 2021:

  • algoritmo de troca de chaves;
  • lista de processos a serem encerrados antes de iniciar as 1256 threads de criptografia.

O ransomware Hive v5 em execução em um sistema da vítima gera duas chaves em texto claro, usando o algoritmo evidenciado abaixo, baseado nas APIs do Windows QueryPerformanceCounter e QueryPerformanceFrequency.

Dê uma olhada nesta página da Microsoft para obter mais informações sobre as APIs QueryPerformanceCounter e aqui para QueryPerformanceFrequency.

QueryPerformanceCounter é um contador de tempo muito preciso. Quando chamado, ele retorna o tempo decorrido desde a última vez que o PC foi ligado.

QueryPerformanceFrequency retorna o valor (frequência) do contador de desempenho. Ele tem um valor fixo de 0x989680. Isso significa que o valor de QueryPerformanceCounter é atualizado 0x989680 vezes por segundo, ou seja, 10.000.000 de vezes.

As duas chaves em texto claro têm um tamanho de 0xCFFF00 bytes e são geradas uma de cada vez, byte a byte. Abaixo está o trecho que permite a criação de um array de 0xA00000 bytes, que é a maior parte da chamada chave em texto claro com a qual o Hive criptografa os arquivos no PC da vítima.

snippetGenKeyCleartext

Cada byte da chave é obtido pegando o valor do registrador AL. O registrador EAX contém o resultado da função 0044ADE0 renomeada com o rótulo createByte, que implementa a diferença entre o instante de tempo atual e o valor da semente inicial, calculado na primeira chamada da função 0044A850 renomeada com o rótulo call_to_QueryPerformanceCounter.

Abaixo está o código escrito em C++ para gerar uma chave em texto claro:

c++GenKeyCleartext

O algoritmo é muito simples, mesmo que dentro da função 0044ADE0 tenham sido inseridas instruções que executam operações redundantes e vários saltos condicionais para tentar atrasar o tempo de execução do código durante a geração da chave em texto claro:

useless-conditions

Na pasta HiveRansomwareV5_custom_keygen_PoC você encontrará o código bruto obtido por engenharia reversa da amostra do Hive v5 analisada. Não é um código otimizado como o encontrado no malware, porque eu precisava não perder uma única linha de código da versão compilada.

Na pasta HiveRansomwareV5_custom_keygen_PoC-optimized você encontrará o código otimizado derivado do código bruto mencionado acima. Nesta versão, o código é muito mais fácil de ler do que o bruto, para que se possa entender a funcionalidade que ele implementa.

Ambas as versões precisam ser personalizadas com o seu usuário antes de executá-las, para salvar a chave em texto claro gerada no seu Desktop.

Ambas as chaves em texto claro são geradas usando o mesmo algoritmo.
Uma chave em texto claro é composta por 0xA00000 gerados aleatoriamente de forma segura bytes. Em seguida, os primeiros 0x2FFF00 bytes são copiados ao final, criando uma chave em texto claro final de 0xCFFF00 bytes.

memcpy2FFF00

Em seguida, o Hive usa as duas chaves geradas para criptografar arquivos, mas antes de tudo o ransomware Hive v5 criptografa as chaves geradas em uma estrutura personalizada (doravante chamada de keystreams) e as coloca na raiz de cada unidade que criptografa, usando a extensão .key. Por exemplo, se você tiver as unidades C e D instaladas no seu sistema, os keystreams criptografados estarão presentes na raiz de cada unidade.

keysAtRoot

O ransomware Hive v5 usa as chaves em texto claro geradas para criptografar arquivos usando a instrução XOR, portanto estamos diante de uma criptografia simétrica muito rápida em CPUs x86/x64 modernas.

Como o Hive v5 se protege, como uma chave em texto claro se torna um keystream

O ransomware Hive v5 precisa proteger a chave gerada em texto claro, criptografando-a duas vezes; daqui em diante chamaremos essas etapas de rounds. São necessários dois rounds de criptografia para obter o keystream final.

Para isso, as seguintes etapas são executadas em cada round:

  1. Geração de uma chave privada de 32 bytes, usando o mesmo algoritmo para criar cada byte da chave;
  2. Usando o algoritmo de curva elíptica Curve25519 para troca de chaves Diffie-Hellman, o Hive deriva uma chave pública da chave privada recém-gerada;
  3. Usando Curve25519 novamente, o Hive gera uma chave compartilhada a partir da chave privada recém-gerada e da chave pública do afiliado do Hive (muda em todos os artefatos do Hive v5);
  4. Geração de um nonce de 24 bytes, como uma espécie de IV, usando o mesmo algoritmo da chave privada e da chave em texto claro;
  5. Usando o algoritmo HChaCha20, a chave para criptografar a chave gerada em texto claro é derivada;
  6. Usando a chave criada na etapa 5 e o nonce criado na etapa 4, o Hive criptografa a chave em texto claro usando o algoritmo XChaCha20. Essa operação também produz um MAC (Message Authentication Code) de 16 bytes para garantir a integridade do processo de criptografia.

A etapa 3 garante a criação de um keystream que pode ser aberto por um par duplo de chaves privadas, aquelas geradas pelo Hive durante a criptografia e aquelas que o afiliado do Hive gerou quando compilou o ransomware para nós.

keystreamCreation

A ideia por trás da força bruta

Baixar ferramenta