Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
HiveV5_keystream_decryptor — roba cattiva di persone cattive | Kitploit
Strumenti/GitHubGitHub/reecdeep/hivev5_keystream_decryptor
Strumenti di Crittografia/DecrittografiaReverse EngineeringRecupero DatiAnalisi MalwareDigital ForensicsCrittografiaAnalisi di Binari
GitHubreecdeep/hivev5_keystream_decryptor

HiveV5_keystream_decryptor

roba cattiva di persone cattive

Vedi Repository
499164 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

HiveV5 keystream decryptor PoC

Introduzione

Il campione di Hive analizzato e citato in questo documento è stato scelto casualmente da questo elenco creato da @rivitna a cui vanno i miei più sentiti ringraziamenti. Gli artefatti sono disponibili sulla piattaforma VirusTotal.

In questo documento, il file a0h2uih3d2.exe è stato preso come riferimento

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

Per avere un'idea della complessità di questo ransomware, dai un'occhiata a questa analisi pubblicata da Microsoft Threat Intelligence Center (MSTIC).

Leggi attentamente l'intero documento prima di iniziare a giocare con il codice!

Una breve panoramica su Hive v5

Negli ultimi mesi, ho concentrato gran parte delle mie energie nello studio e nel reverse engineering dell'algoritmo di crittografia di Hive v5. Ho avuto il piacere di collaborare con un grande analista di malware e reverse engineer @rivitna che in passato ha analizzato le versioni precedenti di Hive e ha pubblicato codice e PoC relativi ai loro meccanismi di crittografia. Ha contribuito (non poco) a identificare i componenti coinvolti nelle operazioni di crittografia di Hive v5, che essendo scritto in RUST è diventato più difficile da analizzare. Ho trovato qualcosa in comune con Babuk, un altro ransomware molto importante le cui fonti sono state divulgate nel giugno 2021:

  • algoritmo di scambio delle chiavi;
  • elenco dei processi da chiudere prima di avviare i 1256 thread di crittografia.

Il ransomware Hive v5 in esecuzione su un sistema vittima genera due chiavi in chiaro, usando l'algoritmo nella prova qui sotto, basato sulle API Windows QueryPerformanceCounter e QueryPerformanceFrequency.

Dai un'occhiata a questa pagina Microsoft per maggiori informazioni sulle API QueryPerformanceCounter, qui per QueryPerformanceFrequency.

QueryPerformanceCounter è un contatore di tempo molto accurato. Quando viene chiamato, restituisce il tempo trascorso dall'ultima accensione del PC.

QueryPerformanceFrequency restituisce il valore (frequenza) del contatore delle prestazioni. Ha un valore fisso di 0x989680. Ciò significa che il valore di QueryPerformanceCounter viene aggiornato 0x989680 volte al secondo, ovvero 10,000,000 volte.

Le due chiavi in chiaro hanno una dimensione di 0xCFFF00 byte e vengono generate una alla volta, byte per byte. Di seguito è riportato lo snippet che consente la creazione di un array di 0xA00000 byte, che è la parte più grande della cosiddetta chiave in chiaro con cui Hive crittografa i file sul PC della vittima.

snippetGenKeyCleartext

Ogni byte della chiave viene ottenuto prendendo il valore del registro AL. Il registro EAX contiene il risultato della funzione 0044ADE0 rinominata con l'etichetta createByte che implementa la differenza tra l'istante di tempo corrente e il valore seed iniziale, calcolato alla prima chiamata della funzione 0044A850 rinominata con l'etichetta call_to_QueryPerformanceCounter.

Di seguito è riportato il codice scritto in C++ per generare una chiave in chiaro:

c++GenKeyCleartext

L'algoritmo è molto semplice, anche se all'interno della funzione 0044ADE0 sono state inserite istruzioni che eseguono operazioni ridondanti e vari salti condizionali per cercare di ritardare il tempo di esecuzione del codice durante la generazione della chiave in chiaro:

useless-conditions

Nella cartella HiveRansomwareV5_custom_keygen_PoC troverai il codice raw ricavato dal reverse engineering del campione Hive v5 analizzato. Non è codice ottimizzato come quello trovato nel malware, perché non volevo perdere nemmeno una riga di codice della versione compilata.

Nella cartella HiveRansomwareV5_custom_keygen_PoC-optimized troverai il codice ottimizzato derivato dal codice raw sopracitato. In questa versione il codice è molto più facile da leggere rispetto a quello raw, per comprenderne la funzionalità implementata.

Entrambe le versioni devono essere personalizzate con il tuo utente prima di eseguirle, per salvare la chiave in chiaro generata sul tuo Desktop.

Entrambe le chiavi in chiaro vengono generate utilizzando lo stesso algoritmo.
Una chiave in chiaro è composta da 0xA00000 byte generati casualmente in modo sicuro byte. Quindi i primi 0x2FFF00 byte vengono copiati alla fine, creando una chiave in chiaro finale di 0xCFFF00 byte.

memcpy2FFF00

Poi Hive usa le due chiavi generate per crittografare i file, ma prima di tutto Hive ransomware v5 crittografa le chiavi generate in una struttura personalizzata (d'ora in poi chiamata keystream) e le posiziona nella radice di ogni unità che crittografa usando l'estensione .key. Ad esempio, se hai sia l'unità C che D installate sul tuo sistema, i keystream crittografati saranno presenti nella radice di ogni unità.

keysAtRoot

Hive ransomware v5 usa le chiavi in chiaro generate per crittografare i file usando l'istruzione XOR, quindi ci troviamo di fronte a una crittografia simmetrica molto veloce sulle moderne CPU x86/x64.

Come Hive v5 si protegge, come una chiave in chiaro diventa un keystream

Hive ransomware v5 deve proteggere la chiave in chiaro generata, crittografandola due volte; d'ora in poi chiameremo questi passaggi round. Sono necessari due round di crittografia per ottenere il keystream finale.

Per fare ciò, a ogni round vengono eseguiti i seguenti passaggi:

  1. Generazione di una chiave privata di 32 byte, utilizzando lo stesso algoritmo per creare ogni byte della chiave;
  2. Usando l'algoritmo della curva ellittica Curve25519 per lo scambio di chiavi Diffie-Hellman, Hive deriva una chiave pubblica dalla chiave privata appena generata;
  3. Usando di nuovo Curve25519, Hive genera una chiave condivisa dalla chiave privata appena generata e dalla chiave pubblica dell'affiliato Hive (cambia in ogni artefatto Hive v5);
  4. Generazione di un nonce di 24 byte, come una sorta di IV, usando lo stesso algoritmo per la chiave privata e la chiave in chiaro;
  5. Usando l'algoritmo HChaCha20, viene derivata la chiave per crittografare la chiave in chiaro generata;
  6. Usando la chiave creata al passaggio 5 e il nonce creato al passaggio 4, Hive crittografa la chiave in chiaro usando l'algoritmo XChaCha20. Questa operazione produce anche un MAC (Message Authentication Code) di 16 byte per garantire l'integrità del processo di crittografia.

Il passaggio 3 garantisce la creazione di un keystream che può essere aperto da una doppia coppia di chiavi private: quelle generate da Hive durante la crittografia e quelle che l'affiliato Hive ha generato quando ha compilato il ransomware per noi.

keystreamCreation

Scarica lo strumento