Obtenga su ejemplar de Security Service Edge (SSE) para Dummies. Obtenga el eBook

Blog Threat Labs Khonsari: New Ransomware Delivered Through Log4Shell
Dec 16 2021

Khonsari: New Ransomware Delivered Through Log4Shell

Summary

While many organizations are patching the two recent Apache Log4j vulnerabilities (CVE-2021-44228 and CVE-2021-45046), attackers have been racing to exploit them to deliver malware, such as botnets, backdoors, and cryptominers.

Among the threats delivered using Log4Shell exploits, a new ransomware family was found by Bitdefender: Khonsari. For now, only a Windows version of the malware was found, first spotted on December 11th, where attackers were using the CVE-2021-44228 vulnerability to deliver the executable. Microsoft has also spotted a few cases where Khonsari was being launched from compromised Minecraft clients.

At this point, Khonsari appears to be an individual effort, not working in the popular Ransomware-as-a-Service (RaaS) model, used by REvil, LockBit, BlackMatter, and Hive

Log4Shell

The first file involved in the attack was named “Main.class”, which is a Java downloader being delivered through Log4Shell.

Screenshot of Log4Shell pattern that could be used to deliver Khonsari
Log4Shell pattern that could be used to deliver Khonsari

The Java file is a simple downloader, and two days after Khonsari was first spotted, December 13th, the attackers changed the “Main.class” file to deliver another malware known as Orcus RAT.

Screenshot of Java file delivered through Log4Shell, downloading Orcus RAT.
Java file delivered through Log4Shell, downloading Orcus RAT.

Khonsari Ransomware

The ransomware was developed in .NET, where the attacker has manipulated the compiled time date stamp to 46 years in the future.

Screenshot of Khonsari binary details.
Khonsari binary details.

The malware developer has used minor obfuscation to hide some classes, functions, and variable names.

Screenshot of Decompiled Khonsari.
Decompiled Khonsari.

All the strings used by the ransomware are encrypted, using a quite simple rolling XOR algorithm, which can be represented by the following Python code:

Screenshot of decrypting Khonsari strings.
Decrypting Khonsari strings.

As soon as it runs, Khonsari sends a network request to an external server.

Screenshot of the first action in Khonsari’s main function.
The first action in Khonsari’s main function.

This is probably just for metrics, as no data is sent or received in this process. Also, we noticed that the process crashes if the URL doesn’t respond, meaning that this URL can be added to blocklists to prevent the ransomware execution.

Screenshot of network request sent by Khonsari.
Network request sent by Khonsari.

After the network request, Khonsari enumerates all available drives that are different from “C:\”. Then, it creates a list containing the directories that will be encrypted, such as Downloads, Desktop, Videos, Pictures, etc.

Screenshot of Khonsari building a list of directories.
Khonsari building a list of directories.

With all the directories enumerated, Khonsari starts the encryption process (each step listed is highlighted in the figure below):

  1. Iterating over the files in each directory;
  2. Reading and encrypting the file contents;
  3. Renaming the file to add the “khonsari” extension;
  4. Once the loop is done, it creates the ransom note, opening it automatically.
Screenshot of Khonsari encryption routine.
Khonsari encryption routine.

Throughout this process, Khonsari also checks the file extension before encrypting it. In the binary we analyzed, it skips the encryption if the file ends with “.khonsari”, “.ini”, and “ink”.

Screenshot showing that Khonsari skips the encryption according to the file’s extension.
Khonsari skips the encryption according to the file’s extension.

The last one seems to be a typo, as the developer probably wanted to skip “.lnk” files. However, this one encrypts links anyway, as the string checked by the code is “ink”.

Screenshot of Khonsari encrypting “.lnk” files
Khonsari encrypting “.lnk” files

For encryption, Khonsari uses AES 128 to encrypt the files, and RSA to encrypt the keys. This is how the flow works:

  1. The AES key and IV is generated once Khonsari runs;
  2. AES is then used to encrypt all the files, using both the key and IV previously generated;
  3. Khonsari encrypts both AES key and IV using a public RSA key hardcoded in the binary;
  4. The encrypted key and IV are then encoded with base64 and stored within the ransom note.
Screenshot of Khonsari AES + RSA encryption.
Khonsari AES + RSA encryption.

Once done, Khonsari creates the ransom note with the instructions along with the information to recover the files (encrypted/encoded AES key + IV).

Screenshot of ransomware creating the ransom note.
Ransomware creating the ransom note.

Khonsari opens the ransom note automatically to display the message to its victims.

Screenshot of Khonsari ransom note.
Khonsari ransom note.

If the user accidentally deletes the ransom note, the decryption of the files is impossible, since the key is stored along with the recovery message.

Conclusion

The vulnerabilities discovered in Apache Log4j are a nightmare for people and organizations around the world. It was just a matter of time before we start seeing Log4Shell being used to deliver threats, like Khonsari. We should be on the lookout for more threats that are abusing this vulnerability, as well as patch all systems using Log4j as soon as possible to mitigate the risks. Furthermore, Khonsari related URLs should be blocked, as the threat doesn’t work when the network request fails.

Protection

Netskope Threat Labs is actively monitoring this campaign and has ensured coverage for all known threat indicators and payloads. 

  • Netskope Threat Protection
    • ByteCode-MSIL.Ransomware.Khonsari
  • Netskope Advanced Threat Protection provides proactive coverage against this threat.
    • Gen.Malware.Detect.By.StHeur indicates a sample that was detected using static analysis
    • Gen.Malware.Detect.By.Sandbox indicates a sample that was detected by our cloud sandbox

IOCs

A full list of IOCs and a Yara rule are all available in our Git repo.

author image
About the author
Gustavo Palazolo is an expert in malware analysis, reverse engineering and security research, working many years in projects related to electronic fraud protection. He is currently working on the Netskope Research Team, discovering and analyzing new malware threats.
Gustavo Palazolo is an expert in malware analysis, reverse engineering and security research, working many years in projects related to electronic fraud protection. He is currently working on the Netskope Research Team, discovering and analyzing new malware threats.