ID | Name |
---|---|
T1573.001 | Symmetric Cryptography |
T1573.002 | Asymmetric Cryptography |
Adversaries may employ a known asymmetric encryption algorithm to conceal command and control traffic rather than relying on any inherent protections provided by a communication protocol. Asymmetric cryptography, also known as public key cryptography, uses a keypair per party: one public that can be freely distributed, and one private. Due to how the keys are generated, the sender encrypts data with the receiver’s public key and the receiver decrypts the data with their private key. This ensures that only the intended recipient can read the encrypted data. Common public key encryption algorithms include RSA and ElGamal.
For efficiency, many protocols (including SSL/TLS) use symmetric cryptography once a connection is established, but use asymmetric cryptography to establish or transmit a key. As such, these protocols are classified as Asymmetric Cryptography.
ID | Name | Description |
---|---|---|
S0202 | adbupd |
adbupd contains a copy of the OpenSSL library to encrypt C2 traffic.[1] |
S0045 | ADVSTORESHELL |
A variant of ADVSTORESHELL encrypts some C2 with RSA.[2] |
S0438 | Attor | |
S0534 | Bazar | |
S0017 | BISCUIT | |
S0335 | Carbon | |
S0023 | CHOPSTICK | |
G0080 | Cobalt Group |
Cobalt Group has used the Plink utility to create SSH tunnels.[8] |
S0154 | Cobalt Strike |
Cobalt Strike can use RSA asymmetric encryption with PKCS1 padding to encrypt data sent to the C2 server.[9] |
S0126 | ComRAT |
ComRAT can use SSL/TLS encryption for its HTTP-based C2 channel. ComRAT has used public key cryptography with RSA and AES encrypted email attachments for its Gmail C2 channel.[10][11] |
S0600 | Doki |
Doki has used the embedTLS library for network communications.[12] |
S0384 | Dridex | |
S0367 | Emotet |
Emotet is known to use RSA keys for encrypting C2 traffic. [14] |
S0363 | Empire | |
G0037 | FIN6 |
FIN6 used the Plink command-line utility to create SSH tunnels to C2 servers.[16] |
G0061 | FIN8 |
FIN8 has used the Plink utility to tunnel RDP back to C2 infrastructure.[17] |
S0168 | Gazer | |
S0588 | GoldMax |
GoldMax has RSA-encrypted its communication with the C2 server.[20] |
S0531 | Grandoreiro |
Grandoreiro can use SSL in C2 communication.[21] |
S0342 | GreyEnergy |
GreyEnergy encrypts communications using RSA-2048.[22] |
S0632 | GrimAgent |
GrimAgent can use a hardcoded server public RSA key to encrypt the first request to C2.[23] |
S0087 | Hi-Zor | |
S0483 | IcedID |
IcedID has used SSL and TLS in communications with C2.[25][26] |
S0250 | Koadic | |
S0641 | Kobalos |
Kobalos's authentication and key exchange is performed using RSA-512.[28][29] |
S0409 | Machete | |
S0455 | Metamorfo |
Metamorfo's C2 communication has been encrypted using OpenSSL.[31] |
G0049 | OilRig |
OilRig used the Plink utility and other tools to create tunnels to C2 servers.[32] |
G0116 | Operation Wocao |
Operation Wocao's proxy implementation "Agent" can upgrade the socket in use to a TLS socket.[33] |
S0556 | Pay2Key | |
S0587 | Penquin |
Penquin can encrypt communications using the BlowFish algorithm and a symmetric key exchanged with Diffie Hellman.[35] |
S0428 | PoetRAT |
PoetRAT used TLS to encrypt command and control (C2) communications.[36] |
S0150 | POSHSPY | |
S0223 | POWERSTATS |
POWERSTATS has encrypted C2 traffic with RSA.[38] |
S0192 | Pupy |
Pupy's default encryption for its C2 communication channel is SSL, but it also has transport options for RSA and AES.[39] |
S0496 | REvil |
REvil has encrypted C2 communications with the ECIES algorithm.[40] |
S0382 | ServHelper |
ServHelper may set up a reverse SSH tunnel to give the attacker access to services running on the victim, such as RDP.[41] |
S0633 | Sliver |
Sliver can use mutual TLS and RSA cryptography to exchange a session key.[42][43][44] |
S0627 | SodaMaster |
SodaMaster can use a hardcoded RSA key to encrypt some of its C2 traffic.[45] |
S0615 | SombRAT | |
S0491 | StrongPity |
StrongPity has encrypted C2 traffic using SSL/TLS.[49] |
S0018 | Sykipot | |
S0183 | Tor |
Tor encapsulates traffic in multiple layers of encryption, using TLS by default.[51] |
S0094 | Trojan.Karagany |
Trojan.Karagany can secure C2 communications with SSL and TLS.[52] |
G0081 | Tropic Trooper |
Tropic Trooper has used SSL to connect to C2 servers.[53][54] |
S0180 | Volgmer |
Some Volgmer variants use SSL to encrypt C2 communications.[55] |
S0366 | WannaCry |
WannaCry uses Tor for command and control traffic and routes a custom cryptographic protocol over the Tor circuit.[56] |
S0515 | WellMail |
WellMail can use hard coded client and certificate authority certificates to communicate with C2 over mutual TLS.[57][58] |
S0514 | WellMess |
WellMess can communicate to C2 with mutual TLS where client and server mutually check certificates.[59][60][61][58] |
S0117 | XTunnel | |
S0251 | Zebrocy |
Zebrocy uses SSL and AES ECB for encrypting C2 communications.[63][64][65] |
ID | Mitigation | Description |
---|---|---|
M1031 | Network Intrusion Prevention |
Network intrusion detection and prevention systems that use network signatures to identify traffic for specific adversary malware can be used to mitigate activity at the network level. |
M1020 | SSL/TLS Inspection |
SSL/TLS inspection can be used to see the contents of encrypted sessions to look for network-based indicators of malware communication protocols. |
ID | Data Source | Data Component |
---|---|---|
DS0029 | Network Traffic | Network Traffic Content |
SSL/TLS inspection is one way of detecting command and control traffic within some encrypted communication channels.[66] SSL/TLS inspection does come with certain risks that should be considered before implementing to avoid potential security issues such as incomplete certificate validation.[67]
In general, analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used.[68]