Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
CovenantDecryptor — Decifra le comunicazioni Covenant C2 estraendo le chiavi private RSA dai minidump, recuperando le chiavi di sessione AES e convertendo le catture di rete in testo in chiaro. | Kitploit
Strumenti/GitHubGitHub/naacbin/covenantdecryptor
Strumenti di Crittografia/DecrittografiaMemory ForensicsNetwork ForensicsAnalisi MalwareDigital ForensicsCrittografiaCommand and Control
GitHubnaacbin/covenantdecryptor

CovenantDecryptor

Decifra le comunicazioni Covenant C2 estraendo le chiavi private RSA dai minidump, recuperando le chiavi di sessione AES e convertendo le catture di rete in testo in chiaro.

Vedi Repository
37452 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

CovenantDecryptor

CovenantDecryptor è progettato per decrittare i dati di comunicazione del traffico Covenant.

L'estrazione della chiave privata dalla memoria è applicabile ad altri C2, come Empire, dato il suo utilizzo di RSACryptoServiceProvider per creare la chiave.

Come funziona la comunicazione di Covenant ?

L'inizializzazione della comunicazione Covenant consiste in 3 fasi :

  • Stage0 :
    1. L'agente infetto avvia una sessione RSA trasmettendo una chiave pubblica crittografata utilizzando la SetupAESKey, che è incorporata in un eseguibile dannoso. Prima dell'invio, formatta il testo come descritto in GruntHTTPStager con il tipo impostato a 0.
    2. Il C2 trasferisce una SessionKey, crittografata con la chiave pubblica RSA, per le comunicazioni successive.
  • Stage1 :
    1. L'agente infetto utilizza la SetupAESKey per decrittare il messaggio e poi sfrutta la chiave privata RSA per decrittare la SessionKey. Successivamente, crittografa 4 byte generati casualmente con la SessionKey e li trasmette. Prima dell'invio, formatta il testo come descritto in GruntHTTPStager con il tipo impostato a 1.
    2. Il C2 decritta i 4 byte utilizzando la SessionKey, aggiunge 4 byte aggiuntivi generati casualmente e trasferisce gli 8 byte risultanti all'agente infetto.
  • Stage2 :
    1. L'agente infetto decritta gli 8 byte con la SessionKey. Successivamente, verifica se i primi 4 byte corrispondono ai dati precedentemente trasmessi e procede a trasferire gli ultimi 4 byte al C2. Prima dell'invio, formatta il testo come descritto in GruntHTTPStager con il tipo impostato a 2.
    2. Il C2 decritta i 4 byte e verifica se corrispondono a quelli trasmessi in precedenza.

Una volta completata la verifica, i dati possono essere scambiati.

Come funziona ?

CovenantDecryptor è composto da due utilità. Lo script extract_privatekey recupera i primi p e q da un file minidump per costruire una chiave privata RSA utilizzando il modulo pubblico. Lo script decrypt_covenant_traffic è composto da 3 comandi: modulus, key e decrypt. Il primo comando estrae il modulo dalla comunicazione Covenant, mentre il secondo recupera la chiave AES utilizzata per crittografare il traffico dati. Infine, il terzo comando decritta il traffico.

Di cosa hai bisogno ?

  • Il traffico dati di Covenant viene estratto da una cattura di rete e salvato in un file separato.
  • La chiave AES, incorporata nel binario dello stage 0, utilizzata all'inizio della comunicazione.
  • Un file minidump di un processo infetto.

Utilizzo

Estrai il modulo dalla richiesta dello stage 0 di un host infetto :

root@kitploit:~
$ python3 decrypt_covenant_traffic.py modulus -i traffic.txt -k "EQCZiHdmVUQzIhEAmYh3ZlVEMyIRAJmId2ZVRDMiEQA=" -t base64
[+] Modulus: 
19574201286059123715221634877085223155972629451020572575626246458715199192950082143183900970133840359007922584516900405154928253156404028820410452946729670930374022025730036806358075325420793866358986719444785030579682635785758091517397518826225327945861556948820837789390500920096562699893770094581497500786817915616026940285194220703907757879335069896978124429681515117633335502362832425521219599726902327020044791308869970455616185847823063474157292399830070541968662959133724209945293515201291844650765335146840662879479678554559446535460674863857818111377905454946004143554616401168150446865964806314366426743287
[+] Exponent: 65537

Recupera la chiave privata RSA da un file minidump di un processo Covenant infetto :

root@kitploit:~
$ python3 extract_privatekey.py -i memory.dmp -m 19574201286059123715221634877085223155972629451020572575626246458715199192950082143183900970133840359007922584516900405154928253156404028820410452946729670930374022025730036806358075325420793866358986719444785030579682635785758091517397518826225327945861556948820837789390500920096562699893770094581497500786817915616026940285194220703907757879335069896978124429681515117633335502362832425521219599726902327020044791308869970455616185847823063474157292399830070541968662959133724209945293515201291844650765335146840662879479678554559446535460674863857818111377905454946004143554616401168150446865964806314366426743287 -o ./keys/
[+] Saved private key /home/user/privkey1.pem

Lo script proverà a ottenere p e q come little e big endian.

Recupera la SessionKey dalla risposta dello stage 0 del C2 Covenant, utilizzata per crittografare il traffico di rete :

root@kitploit:~
$ python3 decrypt_covenant_traffic.py key -i traffic.txt --key "EQCZiHdmVUQzIhEAmYh3ZlVEMyIRAJmId2ZVRDMiEQA=" -t base64 -r mykey.pem -s 1
[+] New AES key : 0011223344556677889900112233445566778899001122334455667788990011

Decritta la comunicazione Covenant :

root@kitploit:~
$ python3 decrypt_covenant_traffic.py decrypt -i traffic.txt -k "0011223344556677889900112233445566778899001122334455667788990011" -t hex -s 2
[...]
[*] Response message 10 : {"status":"2","output":"Hello.\r\n"}
[...]

TODO

  • extract_privatekey - Analizza il file raw.
  • extract_privatekey - Cerca chiavi private in base all'header (senza il modulo).

Come menzionato su StackOverflow, la decrittazione dei dati è ottenibile anche utilizzando la chiave privata RSA Microsoft raw.

Scarica lo strumento