Ransomware Roundup – Cryptonite | FortiGuard Labs

FortiGuard Labs analyzes Cryptonite, an open-source, Python-based ransomware kit that encrypts Windows files and uses NGROK as a reverse proxy for C2. The report details how Cryptonite operates, its encryption method, IoCs, and Fortinet’s protective guidance and best practices for defense and response. #Cryptonite #NGROK

Keypoints

  • Cryptonite is a freely available ransomware kit, coded in Python and deployable after configuration, using PyInstaller to bundle dependencies.
  • It employs a server component and NGROK to forward victim data to the attacker and to hide the threat actor’s location.
  • The malware identifies targets and communicates the victim’s IP and location via ipinfo.io, then reports back through ngrok.
  • Encryption is performed with the Python Cryptography module using Fernet (AES-128) and by default renames files to a .cryptn8 extension (configurable).
  • A decoy “software update” screen is shown during encryption to mislead the user.
  • Fortinet provides detection indicators (AV signatures) and a set of IOCs, including file hashes and domains associated with Cryptonite.
  • Defensive recommendations emphasize up-to-date AV/IPS, phishing awareness training, robust backups, and security architectures like SASE, EDR, Zero Trust, and incident response services.

MITRE Techniques

  • [T1059.006] Python – The malware is coded in Python and packaged with PyInstaller to run on systems without relying on a pre-installed Python interpreter. ‘Coding in Python makes development very fast and easy. However, because it is an interpreted language, the Python interpreter must be installed on any machine attempting to run a script. Since this cannot be guaranteed, Cryptonite is packaged using PyInstaller, which contains all the necessary files to deploy Python code on a given system.’
  • [T1090] Proxy – It uses NGROK as a reverse proxy to disguise the attack infrastructure and pass victim data back to the attacker. ‘There is a field labeled “NGROK URL:”. This refers to the requirement for an attacker to set up and use NGrok, which is effectively a legitimate reverse proxy service that many companies use to test their development systems. It makes it appear that the local infrastructure is attached to a sub-domain of “ngrok.com” and not the attacker’s actual location and IP address.’
  • [T1016.001] IP Address Discovery – It determines the victim’s location by identifying their IP address via ipinfo.io. ‘This NGrok requirement is for the Cryptonite server component, which is simply a basic Python web server attached to an SQL Lite database. It listens for victim machines that are reporting in and captures things like a unique ID for victims along with their IP address and general location.’
  • [T1486] Data Encrypted for Impact – It encrypts files using Fernet (AES-128) and renames them (default .cryptn8). ‘The method Cryptonite uses to encrypt files is via the Python Cryptography module. It uses an implementation of Fernet (https://cryptography.io/en/latest/fernet/) to provide 128-bit AES against the whole of a targeted file.’
  • [T1564] Masquerading – It presents a fake software update window during encryption to mislead the user. ‘The victim will, however, receive the following error message.’ and ‘It begins encrypting… presents a screen indicating that it is attempting to download a software update, followed by a status bar showing the percentage of the installation. This, however, is just a decoy and does not represent what the software is doing.’
  • [T1041] Exfiltration Over C2 Channel – It exfiltrates victim details to the attacker via the ngrok channel. ‘Finally, a ransom window is created on the victim’s device… it connects to the aforementioned “ngrok.io” to pass the victim’s details back to the attacker.’

Indicators of Compromise

  • [Hash] – 3b68780719010fc195e6e4f8d1b912030259cb1cddde5a943e44da558222060f
  • [Hash] – 4e86d727ded7ba6c42109262bdf8cb72ae13303769d07995f99e20de3f2ce7ae
  • [Hash] – 7508e8b8054a2f773bb20082460a5e2fb224675c7c5c95a7a7006abf921eaf95
  • [Domain] – 81.59.117.34.bc.googleusercontent.com
  • [Domain] – ec2-3-125-223-134.eu-central-1.compute.amazonaws.com
  • [Domain] – e4c0660414bf.eu.ngrok.io

Read more: https://www.fortinet.com/blog/threat-research/Ransomware-Roundup-Cryptonite-Ransomware