Blog
/
Network
/
January 26, 2024

Post-Exploitation Activities of Ivanti CS/PS Appliances

Darktrace’s teams have observed a surge in malicious activities targeting Ivanti Connect Secure (CS) and Ivanti Policy Secure (PS) appliances. Learn more!
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
Sam Lister
Specialist Security Researcher
Default blog imageDefault blog imageDefault blog imageDefault blog imageDefault blog imageDefault blog image
26
Jan 2024

Update:

Further investigation into the exploitation of Ivanti vulnerabilities CVE-2023-46805 and CVE-2024-21887 has uncovered an additional case within the Darktrace customer base, with the first signs of anomalous behavior on a device observed on December 21, 2023. The initial unusual activity involved SSL beaconing to a rare external IP address: 154.223.20[.]226. Open-source intelligence (OSINT) indicates that this IP was associated with the hostname api.d-n-s[.]name around January 2024 [10]. This hostname was also observed during Ivanti exploitation activities investigated by Mandiant [11]. A few days later, on December 28, 2023, the device began beaconing to a second rare IP address: 103.13.28[.]40, which has been directly linked to post-exploitation activity related to CVE-2023-46805 and CVE-2024-21887. Beaconing to these IPs continued until December 28 and December 29, respectively.

What are 'Unknown Unknowns'?

When critical vulnerabilities in Internet-facing assets are not yet publicly disclosed, they can provide unfettered access to organizations’ networks. Threat actors’ exploitation of these vulnerabilities are prime examples of “unknown unknowns” – behaviors which security teams are not even aware that they are not aware of.  

Therefore, it is not surprising that zero-day vulnerabilities in Internet-facing assets are so attractive to state-linked actors and cybercriminals. These criminals will abuse the access these vulnerabilities afford them to progress towards harmful or disruptive objectives. This trend in threat actor activity was particularly salient in January 2024, following the disclosure of two critical vulnerabilities in Ivanti Connect Secure (CS) and Ivanti Policy Secure (PS) appliances. The widespread exploitation of these vulnerabilities was mirrored across Darktrace’s customer base in mid-January 2024, with Darktrace’s Security Operations Center (SOC) and Threat Research teams observing a surge in malicious activities targeting customers’ CS/PS appliances.

Vulnerabilities in Ivanti CS/PS

On January 10, 2024, Ivanti published a Security Advisory [1] and a Knowledge Base article [2] relating to the following two vulnerabilities in Ivanti Connect Secure (CS) and Ivanti Policy Secure (PS):

  • CVE-2023-46805 (CVSS: 8.2; Type: Authentication bypass vulnerability)
  • CVE-2024-21887 (CVSS: 9.1; Type: Command injection vulnerability)

Conjoined exploitation of these vulnerabilities allows for unauthenticated, remote code execution (RCE) on vulnerable Ivanti systems. Volexity [3] and Mandiant [4] reported clusters of CS/PS compromises, tracked as UTA0178 and UNC5221 respectively. UTA0178 and UNC5221 compromises involve exploitation of CVE-2023-46805 and CVE-2024-21887 to deliver web shells and JavaScript credential harvesters to targeted CS/PS appliances. Both Volexity and Mandiant linked these compromises to a likely espionage-motivated, state-linked actor. GreyNoise [5] and Volexity [6] also reported likely cybercriminal activities targeting CS/PS appliances to deliver cryptominers.

The scale of this recent Ivanti CS/PS exploitation is illustrated by research findings recently shared by Censys [7]. According to these findings, as of January 22, around 1.5% of 26,000 Internet-exposed Ivanti CS appliances have been compromised, with the majority of compromised hosts falling within the United States. As cybercriminal interest in these Ivanti CS/PS vulnerabilities continues to grow, it is likely that so too will the number of attacks targeting them.

Observed Malicious Activities

Since January 15, 2024, Darktrace’s SOC and Threat Research team have observed a significant volume of malicious activities targeting customers’ Ivanti CS/PS appliances. Amongst the string of activities that were observed, the following threads were identified as salient:

  • Exploit validation activity
  • Exfiltration of system information
  • Delivery of C2 implant from AWS
  • Delivery of JavaScript credential stealer
  • SimpleHelp usage
  • Encrypted C2 on port 53
  • Delivery of cryptominer

Exploit Validation Activity

Malicious actors were observed using the out-of-band application security testing (OAST) services, Interactsh and Burp Collaborator, to validate exploits for CS/PS vulnerabilities. Malicious use of OAST services for exploit validation is common and has been seen in the early stages of previous campaigns targeting Ivanti systems [8]. In this case, the Interact[.]sh exploit tests were evidenced by CS/PS appliances making GET requests with a cURL User-Agent header to subdomains of 'oast[.]live', 'oast[.]site', 'oast[.]fun', 'oast[.]me', 'oast[.]online' and 'oast[.]pro'.  Burp Collaborator exploit tests were evidenced by CS/PS appliances making GET requests with a cURL User-Agent header to subdomains of ‘collab.urmcyber[.]xyz’ and ‘dnslog[.]store’.

Figure 1: Event Log showing a CS/PS appliance contacting an 'oast[.]pro' endpoint.
Figure 2: Event Log showing a CS/PS appliance contacting a 'collab.urmcyber[.]xyz' endpoint.
Figure 3: Packet capture (PCAP) of an Interactsh GET request.
Figure 4: PCAP of a Burp Collaborator GET request.

Exfiltration of System Information

The majority of compromised CS/PS appliances identified by Darktrace were seen using cURL to transfer hundreds of MBs of data to the external endpoint, 139.180.194[.]132. This activity appeared to be related to a threat actor attempting to exfiltrate system-related information from CS/PS appliances. These data transfers were carried out via HTTP on ports 443 and 80, with the Target URIs ‘/hello’ and ‘/helloq’ being seen in the relevant HTTP POST requests. The files sent over these data transfers were ‘.dat’ and ‘.sys’ files with what seems to be the public IP address of the targeted appliance appearing in each file’s name.

Figure 5: Event Log shows a CS/PS appliance making a POST request to 139.180.194[.]132 whilst simultaneously receiving connections from suspicious external endpoints.
Figure 6: PCAP of a POST request to 139.180.194[.]132.

Delivery of Command-and-Control (C2) implant from Amazon Web Services (AWS)

In many of the compromises observed by Darktrace, the malicious actor in question was observed delivering likely Rust-based ELF payloads to the CS/PS appliance from the AWS endpoints, archivevalley-media.s3.amazonaws[.]com, abode-dashboard-media.s3.ap-south-1.amazonaws[.]com, shapefiles.fews.net.s3.amazonaws[.]com, and blooming.s3.amazonaws[.]com. In one particular case, these downloads were immediately followed by the delivery of an 18 MB payload (likely a C2 implant) from the AWS endpoint, be-at-home.s3.ap-northeast-2.amazonaws[.]com, to the CS/PS appliance. Post-delivery, the implant seems to have initiated SSL beaconing connections to the external host, music.farstream[.]org. Around this time, Darktrace also observed the actor initiating port scanning and SMB enumeration activities from the CS/PS appliance, likely in preparation for moving laterally through the network.

Figure 7: Advanced Search logs showing a CS/PS appliance beaconing to music.farstream[.]org after downloading several payloads from AWS.

Delivery of JavaScript credential stealer

In a small number of observed cases, Darktrace observed malicious actors delivering what appeared to be a JavaScript credential harvester to targeted CS/PS appliances. The relevant JavaScript code contains instructions to send login credentials to likely compromised websites. In one case, the website, www.miltonhouse[.]nl, appeared in the code snippet, and in another, the website, cpanel.netbar[.]org, was observed. Following the delivery of this JavaScript code, HTTPS connections were observed to these websites.  This likely credential harvester appears to strongly resemble the credential stealer observed by Mandiant (dubbed ‘WARPWIRE’) in UNC5221 compromises and the credential stealer observed by Veloxity in UTA0178 compromises.

Figure 8: PCAP of ‘/3.js’ GET request for JavaScript credential harvester.
Figure 9: Snippet of response to '/3.js’ GET request.
Figure 10: PCAP of ‘/auth.js’ GET request for JavaScript credential harvester.
Figure 11: Snippet of response to '/auth.js’ GET request.
Figure 12: Advanced Search logs showing VPN-connected devices sending data to www.miltonhouse[.]nl after the Ivanti CS appliance received the JavaScript code.

The usage of this JavaScript credential harvester did not occur in isolation, but rather appears to have occurred as part of a chain of activity involving several further steps. The delivery of the ‘www.miltonhouse[.]nl’ JavaScript stealer seems to have occurred as a step in the following attack chain:  

1. Ivanti CS/PS appliance downloads a 8.38 MB ELF file over HTTP (with Target URI ‘/revsocks_linux_amd64’) from 188.116.20[.]38

2. Ivanti CS/PS appliance makes a long SSL connection (JA3 client fingerprint: 19e29534fd49dd27d09234e639c4057e) over port 8444 to 185.243.112[.]245, with several MBs of data being exchanged

3. Ivanti CS/PS appliance downloads a Perl script over HTTP (with Target URI ‘/login.txt’) from 188.116.20[.]38

4. Ivanti CS/PS appliance downloads a 1.53 ELF MB file over HTTP (with Target URI ‘/aparche2’) from 91.92.240[.]113

5. Ivanti CS/PS appliance downloads a 4.5 MB ELF file over HTTP (with Target URI ‘/agent’) from 91.92.240[.]113

6. Ivanti CS/PS appliance makes a long SSL connection (JA3 client fingerprint: 19e29534fd49dd27d09234e639c4057e) over port 11601 to 45.9.149[.]215, with several MBs of data being exchanged

7. Ivanti CS/PS appliance downloads Javascript credential harvester over HTTP (with Target URI ‘/auth.js’) from 91.92.240[.]113

8. Ivanti CS/PS appliance downloads a Perl script over HTTP (with Target URI ‘/login.cgi’) from 91.92.240[.]113

9. Ivanti CS/PS appliance makes a long SSL connection (JA3 client fingerprint: 19e29534fd49dd27d09234e639c4057e) over port 11601 to 91.92.240[.]71, with several MBs of data being exchanged

10. Ivanti CS/PS appliance makes a long SSL connection (JA3 client fingerprint: 19e29534fd49dd27d09234e639c4057e) over port 11601 to 45.9.149[.]215, with several MBs of data being exchanged

11. Ivanti CS/PS appliance makes a long SSL connection (JA3 client fingerprint: 19e29534fd49dd27d09234e639c4057e) over port 8080 to 91.92.240[.]113, with several MBs of data being exchanged

12. Ivanti CS/PS appliance makes a long SSL connection (JA3 client fingerprint: 19e29534fd49dd27d09234e639c4057e) over port 11601 to 45.9.149[.]112, with several MBs of data being exchanged  

These long SSL connections likely represent a malicious actor creating reverse shells from the targeted CS/PS appliance to their C2 infrastructure. Whilst it is not certain that these behaviors are part of the same attack chain, the similarities between them (such as the Target URIs, the JA3 client fingerprint and the use of port 11601) seem to suggest a link.  

Figure 13: Advanced Search logs showing a chain of malicious behaviours from a CS/PS appliance.
Figure 14: Advanced Search data showing the JA3 client fingerprint ‘19e29534fd49dd27d09234e639c4057e’ exclusively appearing in the aforementioned, long SSL connections from the targeted CS/PS appliance.
Figure 15: PCAP of ‘/login.txt’ GET request for a Perl script.
Figure 16: PCAP of ‘/login.cgi’ GET request for a Pearl script.

SimpleHelp Usage

After gaining a foothold on vulnerable CS/PS appliances, certain actors attempted to deepen their foothold within targeted networks. In several cases, actors were seen using valid account credentials to pivot over RDP from the vulnerable CS/PS appliance to other internal systems. Over these RDP connections, the actors appear to have installed the remote support tool, SimpleHelp, onto targeted internal systems, as evidenced by these systems’ subsequent HTTP requests. In one of the observed cases, a lateral movement target downloaded a 7.33 MB executable file over HTTP (Target URI: /ta.dat; User-Agent header: Microsoft BITS/7.8) from 45.9.149[.]215 just before showing signs of SimpleHelp usage. The apparent involvement of 45.9.149[.]215 in these SimpleHelp threads may indicate a connection between them and the credential harvesting thread outlined above.

Figure 17: Advanced Search logs showing an internal system making SimpleHelp-indicating HTTP requests immediately after receiving large volumes of data over RDP from an CS/PS appliance.
Figure 18: PCAP of a SimpleHelp-related GET request.

Encrypted C2 over port 53

In a handful of the recently observed CS/PS compromises, Darktrace identified malicious actors dropping a 16 MB payload which appears to use SSL-based C2 communication on port 53. C2 communication on port 53 is a commonly used attack method, with various malicious payloads, including Cobalt Strike DNS, being known to tunnel C2 communications via DNS requests on port 53. Encrypted C2 communication on port 53, however, is less common. In the cases observed by Darktrace, payloads were downloaded from 103.13.28[.]40 and subsequently reached back out to 103.13.28[.]40 over SSL on port 53.

Figure 19: PCAP of a ‘/linb64.png’ GET request.
Figure 20: Advanced Search logs showing a CS/PS appliance making SSL conns over port 53 to 103.13.28[.]40 immediately after downloading a 16 MB payload from 103.13.28[.]40.

Delivery of cryptominer

As is often the case, financially motivated actors also appeared to have sought to exploit the Ivanti appliances, with actors observed exploiting CS/PS appliances to deliver cryptomining malware. In one case, Darktrace observed an actor installing a Monero cryptominer onto a vulnerable CS/PS appliance, with the miner being downloaded via HTTP on port 8089 from 192.252.183[.]116.

Figure 21: PCAP of GET request for a Bash script which appeared to kill existing cryptominers.
Figure 22: PCAP of a GET request for a JSON config file – returned config file contains mining details such as ‘auto.3pool[.]org:19999’.
Figure 23: PCAP of a GET request for an ELF payload

Potential Pre-Ransomware Post-Compromise Activity

In one observed case, a compromise of a customer’s CS appliance was followed by an attacker using valid account credentials to connect to the customer’s CS VPN subnet. The attacker used these credentials to pivot to other parts of the customer’s network, with tools and services such as PsExec, Windows Management Instrumentation (WMI) service, and Service Control being abused to facilitate the lateral movement. Other Remote Monitoring and Management (RMM) tools, such as AnyDesk and ConnectWise Control (previously known as ScreenConnect), along with certain reconnaissance tools such as Netscan, Nmap, and PDQ, also appear to have been used. The attacker subsequently exfiltrated data (likely via Rclone) to the file storage service, put[.]io, potentially in preparation for a double extortion ransomware attack. However, at the time of writing, it was not clear what the relation was between this activity and the CS compromise which preceded it.

Darktrace Coverage

Darktrace has observed malicious actors carrying out a variety of post-exploitation activities on Internet-exposed CS/PS appliances, ranging from data exfiltration to the delivery of C2 implants and crypto-miners. These activities inevitably resulted in CS/PS appliances displaying patterns of network traffic greatly deviating from their typical “patterns of life”.

Darktrace DETECT™ identified these deviations and generated a variety of model breaches (i.e, alerts) highlighting the suspicious activity. Darktrace’s Cyber AI Analyst™ autonomously investigated the ongoing compromises and connected the individual model breaches, viewing them as related incidents rather than isolated events. When active and configured in autonomous response mode, Darktrace RESPOND™ containted attackers’ operations by autonomously blocking suspicious patterns of network traffic as soon as they were identified by Darktrace DETECT.

The exploit validation activities carried out by malicious actors resulted in CS/PS servers making HTTP connections with cURL User-Agent headers to endpoints associated with OAST services such as Interactsh and Burp Collaborator. Darktrace DETECT recognized that this HTTP activity was suspicious for affected devices, causing the following models to breach:

  • Compromise / Possible Tunnelling to Bin Services
  • Device / Suspicious Domain
  • Anomalous Server Activity / New User Agent from Internet Facing System
  • Device / New User Agent
Figure 24: Event Log showing a CS/PS appliance breaching models due to its Interactsh HTTP requests.
Figure 25: Cyber AI Analyst Incident Event highlighting a CS/PS appliance's Interactsh connections.

Malicious actors’ uploads of system information to 139.180.194[.]132 resulted in cURL POST requests being sent from the targeted CS/PS appliances. Darktrace DETECT judged these HTTP POST requests to be anomalous, resulting in combinations of the following model breaches:

  • Anomalous Connection / Posting HTTP to IP Without Hostname
  • Anomalous Server Activity / Outgoing from Server
  • Anomalous Server Activity / New User Agent from Internet Facing System
  • Unusual Activity / Unusual External Data Transfer
  • Unusual Activity / Unusual External Data to New Endpoint
  • Anomalous Connection / Data Sent to Rare Domain
Figure 26: Event Log showing the creation of a model breach due to a CS/PS appliance’s POST request to 139.180.194[.]132.
Figure 27: Cyber AI Analyst Incident Event highlighting POST requests from a CS/PS appliance to 139.180.194[.]132.

The installation of AWS-hosted C2 implants onto vulnerable CS/PS appliances resulted in beaconing connections which Darktrace DETECT recognized as anomalous, leading to the following model breaches:

  • Compromise / Beacon to Young Endpoint
  • Compromise / Beaconing Activity To External Rare
  • Compromise / High Volume of Connections with Beacon Score

When enabled in autonomous response mode, Darktrace RESPOND was able to follow up these detections by blocking affected devices from connecting externally over port 80, 443, 445 or 8081, effectively shutting down the attacker’s beaconing activity.

Figure 28: Event Log showing the creation of a model breach and the triggering of an autonomous RESPOND action due to a CS/PS appliance's beaconing connections.

The use of encrypted C2 on port 53 by malicious actors resulted in CS/PS appliances making SSL connections over port 53. Darktrace DETECT judged this port to be uncommon for SSL traffic and consequently generated the following model breach:

  • Anomalous Connection / Application Protocol on Uncommon Port
Figure 29: Cyber AI Analyst Incident Event highlighting a ‘/linb64.png’ GET request from a CS/PS appliance to 103.13.28[.]40.
Figure 30: Event Log showing the creation of a model breach due to CS/PS appliance’s external SSL connection on port 53.
Figure 31: Cyber AI Analyst Incident Event highlighting a CS/PS appliance’s SSL connections over port 53 to 103.13.28[.]40.

Malicious actors’ attempts to run cryptominers on vulnerable CS/PS appliances resulted in downloads of Bash scripts and JSON files from external endpoints rarely visited by the CS/PS appliances themselves or by neighboring systems. Darktrace DETECT identified these deviations in device behavior and generated the following model breaches:

  • Anomalous File / Script from Rare External Location
  • Anomalous File / Internet Facing System File Download

Darktrace RESPOND, when configured to respond autonomously, was subsequently able to carry out a number of actions to contain the attacker’s activity. This included blocking all outgoing traffic on offending devices and enforcing a “pattern of life” on devices ensuring they had to adhere to expected network behavior.

Figure 32: Event Log showing the creation of model breaches and the triggering of autonomous RESPOND actions in response to a CS/PS appliance’s cryptominer download.
Figure 33: Cyber AI Analyst Incident Event highlighting a CS/PS appliance’s cryptominer download.

The use of RDP to move laterally and spread SimpleHelp to other systems resulted in CS/PS appliances using privileged credentials to initiate RDP sessions. These RDP sessions, and the subsequent traffic resulting from usage of SimpleHelp, were recognized by Darktrace DETECT as being highly out of character, prompting the following model breaches:

  • Anomalous Connection / Unusual Admin RDP Session
  • Device / New User Agent
  • Anomalous Connection / New User Agent to IP Without Hostname
  • Compromise / Suspicious HTTP Beacons to Dotted Quad
  • Anomalous File / Anomalous Octet Stream (No User Agent)
  • Anomalous Server Activity / Rare External from Server
Figure 34: Event Log showing the creation of a model breach due to a CS/PS appliance’s usage of an admin credential to RDP to another internal system.
Figure 35: Event Log showing the creation of model breaches due to SimpleHelp-HTTP requests from a device targeted for lateral movement.
Figure 36: Cyber AI Analyst Incident Event highlighting the SimpleHelp-indicating HTTP requests made by an internal system.

Conclusion

The recent widespread exploitation of Ivanti CS/PS is a stark reminder of the threat posed by malicious actors armed with exploits for Internet-facing assets.

Based on the telemetry available to Darktrace, a wide range of malicious activities were carried out against CS/PS appliances, likely via exploitation of the recently disclosed CVE-2023-46805 and CVE-2024-21887 vulnerabilities.

These activities include the usage of OAST services for exploit validation, the exfiltration of system information to 139.180.194[.]132, the delivery of AWS-hosted C2 implants, the delivery of JavaScript credential stealers, the usage of SimpleHelp, the usage of SSL-based C2 on port 53, and the delivery of crypto-miners. These activities are far from exhaustive, and many more activities will undoubtedly be uncovered as the situation develops and our understanding grows.

While there were no patches available at the time of writing, Ivanti stated that they were expected to be released shortly, with the “first version targeted to be available to customers the week of 22 January 2023 and the final version targeted to be available the week of 19 February” [9].

Fortunately for vulnerable customers, in their absence of patches Darktrace DETECT was able to identify and alert for anomalous network activity that was carried out by malicious actors who had been able to successfully exploit the Ivanti CS and PS vulnerabilities. While the activity that followed these zero-day vulnerabilities may been able to have bypass traditional security tools reliant upon existing threat intelligence and indicators of compromise (IoCs), Darktrace’s anomaly-based approach allows it to identify such activity based on the subtle deviations in a devices behavior that typically emerge as threat actors begin to work towards their goals post-compromise.

In addition to Darktrace’s ability to identify this type of suspicious behavior, its autonomous response technology, Darktrace RESPOND is able to provide immediate follow-up with targeted mitigative actions to shut down malicious activity on affected customer environments as soon as it is detected.

Credit to: Nahisha Nobregas, SOC Analyst, Emma Foulger, Principle Cyber Analyst, and the Darktrace Threat Research Team

Appendices

List of IoCs Possible IoCs:

-       curl/7.19.7 (i686-redhat-linux-gnu) libcurl/7.63.0 OpenSSL/1.0.2n zlib/1.2.3

-       curl/7.19.7 (i686-redhat-linux-gnu) libcurl/7.63.0 OpenSSL/1.0.2n zlib/1.2.7

Mid-high confidence IoCs:

-       http://139.180.194[.]132:443/hello

-       http://139.180.194[.]132:443/helloq

-       http://blooming.s3.amazonaws[.]com/Ea7fbW98CyM5O (SHA256 hash: 816754f6eaf72d2e9c69fe09dcbe50576f7a052a1a450c2a19f01f57a6e13c17)

-       http://abode-dashboard-media.s3.ap-south-1.amazonaws[.]com/kaffMm40RNtkg (SHA256 hash: 47ff0ae9220a09bfad2a2fb1e2fa2c8ffe5e9cb0466646e2a940ac2e0cf55d04)

-       http://archivevalley-media.s3.amazonaws[.]com/bbU5Yn3yayTtV (SHA256 hash: c7ddd58dcb7d9e752157302d516de5492a70be30099c2f806cb15db49d466026)

-       http://shapefiles.fews.net.s3.amazonaws[.]com/g6cYGAxHt4JC1 (SHA256 hash: c26da19e17423ce4cb4c8c47ebc61d009e77fc1ac4e87ce548cf25b8e4f4dc28)

-       http://be-at-home.s3.ap-northeast-2.amazonaws[.]com/2ekjMjslSG9uI

-       music.farstream[.]org  • 104.21.86[.]153 / 172.67.221[.]78

-       http://197.243.22[.]27/3.js

-       http://91.92.240[.]113/auth.js

-       www.miltonhouse[.]nl • 88.240.53[.]22

-       cpanel.netbar[.]org • 146.19.212[.]12

-       http://188.116.20[.]38/revsocks_linux_amd64

-       185.243.112[.]245:8444

-        http://188.116.20[.]38/login.txt

-       http://91.92.240[.]113/aparche2 (SHA256 hash: 9d11c3cf10b20ff5b3e541147f9a965a4e66ed863803c54d93ba8a07c4aa7e50)

-       http://91.92.240[.]113/agent (SHA256 hash: 7967def86776f36ab6a663850120c5c70f397dd3834f11ba7a077205d37b117f)

-       45.9.149[.]215:11601

-       45.9.149[.]112:11601

-       http://91.92.240[.]113/login.cgi

-       91.92.240[.]71:11601

-       91.92.240[.]113:8080

-       http://45.9.149[.]215/ta.dat (SHA256 hash: 4bcf1333b3ad1252d067014c606fb3a5b6f675f85c59b69ca45669d45468e923)

-       91.92.241[.]18

-       94.156.64[.]252

-       http://144.172.76[.]76/lin86

-       144.172.122[.]14:443

-       http://185.243.115[.]58:37586/

-       http://103.13.28[.]40/linb64.png

-       103.13.28[.]40:53

-       159.89.82[.]235:8081

-       http://192.252.183[.]116:8089/u/123/100123/202401/d9a10f4568b649acae7bc2fe51fb5a98.sh

-       http://192.252.183[.]116:8089/u/123/100123/202401/sshd

-       http://192.252.183[.]116:8089/u/123/100123/202401/31a5f4ceae1e45e1a3cd30f5d7604d89.json

-       http://103.27.110[.]83/module/client_amd64

-       http://103.27.110[.]83/js/bootstrap.min.js?UUID=...

-       http://103.27.110[.]83/js/jquery.min.js

-       http://95.179.238[.]3/bak

-       http://91.92.244[.]59:8080/mbPHenSdr6Cf79XDAcKEVA

-       31.220.30[.]244

-       http://172.245.60[.]61:8443/SMUkbpX-0qNtLGsuCIuffAOLk9ZEBCG7bIcB2JT6GA/

-       http://172.245.60[.]61/ivanti

-       http://89.23.107[.]155:8080/l-5CzlHWjkp23gZiVLzvUg

-       http://185.156.72[.]51:8080/h7JpYIZZ1-rrk98v3YEy6w

-       http://185.156.72[.]51:8080/8uSQsOTwFyEAsXVwbAJ2mA

-       http://185.156.72[.]51:8080/vuln

-       185.156.72[.]51:4440

-       185.156.72[.]51:8080

-       185.156.72[.]51:4433

-       185.156.72[.]51:4446

-       185.156.72[.]51:4445

-       http://185.156.72[.]51/set.py

-       185.156.72[.]51:7777

-       45.9.151[.]107:7070

-       185.195.59[.]74:7070

-       185.195.59[.]74:20958

-       185.195.59[.]74:34436

-       185.195.59[.]74:37464

-       185.195.59[.]74:41468    

References

[1] https://forums.ivanti.com/s/article/CVE-2023-46805-Authentication-Bypass-CVE-2024-21887-Command-Injection-for-Ivanti-Connect-Secure-and-Ivanti-Policy-Secure-Gateways?language=en_US

[2] https://forums.ivanti.com/s/article/KB-CVE-2023-46805-Authentication-Bypass-CVE-2024-21887-Command-Injection-for-Ivanti-Connect-Secure-and-Ivanti-Policy-Secure-Gateways?language=en_US

[3] https://www.volexity.com/blog/2024/01/10/active-exploitation-of-two-zero-day-vulnerabilities-in-ivanti-connect-secure-vpn/

[4] https://www.mandiant.com/resources/blog/suspected-apt-targets-ivanti-zero-day

[5] https://www.greynoise.io/blog/ivanti-connect-secure-exploited-to-install-cryptominers

[6] https://www.volexity.com/blog/2024/01/18/ivanti-connect-secure-vpn-exploitation-new-observations/

[7] https://censys.com/the-mass-exploitation-of-ivanti-connect-secure/

[8] https://darktrace.com/blog/entry-via-sentry-analyzing-the-exploitation-of-a-critical-vulnerability-in-ivanti-sentry

[9] https://forums.ivanti.com/s/article/CVE-2023-46805-Authentication-Bypass-CVE-2024-21887-Command-Injection-for-Ivanti-Connect-Secure-and-Ivanti-Policy-Secure-Gateways?language=en_US  

[10] https://www.virustotal.com/gui/ip-address/154.223.20.226/relations

[11] https://cloud.google.com/blog/topics/threat-intelligence/investigating-ivanti-zero-day-exploitation/

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
Sam Lister
Specialist Security Researcher

More in this series

No items found.

Blog

/

Network

/

May 14, 2026

Chinese APT Campaign Targets Entities with Updated FDMTP Backdoor

Default blog imageDefault blog image

Darktrace have identified activity consistent with Chinese-nexus operations, a Twill Typhoon-linked campaign targeting customer environments, primarily within the Asia-Pacific & Japan (APJ) region

Beginning in late September 2025, multiple affected hosts were observed making requests to domains impersonating content delivery networks (CDNs), including infrastructure masquerading as Yahoo- and Apple-affiliated services. Across these cases, Darktrace identified a consistent behavioral execution pattern: the retrieval of legitimate binaries alongside malicious Dynamic Link Libraries (DLLs), enabling sideloading and execution of a modular .NET-based Remote Access Trojan (RAT) framework.

The activity aligns with patterns described in Darktrace’s previous Chinese-nexus operations report, Crimson Echo. In this case, observed modular intrusion chains built on legitimate software, and staged payload delivery. Threat actors retrieve legitimate binaries alongside configuration files and malicious DLLs to enable sideloading of a .NET-based RAT.

Observed Campaign

Across cases, the same ordered sequence appears: retrieval of a legitimate executable, (2) retrieval of a matching .config file, (3) retrieval of the malicious

DLL, (4) repeated DLL downloads over time, and (5) command-and-control (C2) communication. The .config file retrieves a malicious binary, while the legitimate binary provides a legitimate process to run it in.

Darktrace assesses with moderate confidence that this activity aligns with publicly reported Twill Typhoon tradecraft. The observed use of FDMTP, DLL sideloading, and overlapping infrastructure is consistent with previously observed operations, though not unique to a single actor. While initial access was not directly observed, previous Twill Typhoon campaigns have typically involved spear-phishing.

What Darktrace Observed

Since late September 2025, Darktrace has observed multiple customer environments making HTTP GET requests to infrastructure presenting as “CDN” endpoints for well-known platforms (including Yahoo and Apple lookalikes). Across cases, the affected hosts retrieved legitimate executables, then matching .config files (same base filename), then DLLs intended for sideloading. The sequencing of a legitimate binary + configuration + DLL  has been previously observed in campaigns linked to China-nexus threat actors.

In several cases, affected hosts also issued outbound requests to a /GetCluster endpoint, including the protocol=Dotnet-Tcpdmtp parameter. This activity was repeatedly followed by retrieval of DLL content that was subsequently used for search-order hijacking within legitimate processes.

In the September–October 2025 cases, Darktrace alerting commonly surfaced early-stage registration and C2 setup behaviors, followed by retrieval of a DLL (e.g., Client.dll) from the same external host, sometimes repeatedly over multiple days, consistent with establishing and maintaining the execution chain.

In April 2026, a finance-sector endpoint initiated a series of GET requests to yahoo-cdn[.]it[.]com, first fetching legitimate binaries (including vshost.exe and dfsvc.exe), then repeatedly retrieving associated configuration and DLL components (including dfsvc.exe.config and dnscfg.dll) over an 11-day window. The use of both Visual Studio hosting and OneClick (dfsvc.exe) paths are used to ensure the malware can run in the targeted environment.

Technical Analysis

Initial staging and execution

While the initial access method is unknown, Darktrace security researchers identified multiple archives containing the malware.

A representative example includes a ZIP archive (“test.zip”) containing:

  • A legitimate executable: biz_render.exe (Sogou Pinyin IME)
  • A malicious DLL: browser_host.dll

Contained within the zip archive named “test.zip” is the legitimate binary “biz_render.exe”, a popular Chinese Input Method Editor (IME) Sogou Pinyin.

Alongside the legitimate binary is a malicious DLL named “browser_host.dll”. As the legitimate binary loads a legitimate DLL named “browser_host.dll” via LoadLibraryExW, the malicious DLL has been named the same to sideload the malicious DLL into biz_render.exe. By supplying a malicious DLL with an identical name, the actor hijacks execution flow, enabling the payload to execute within a trusted process.

Figure 1: Biz_render.exe loading browser_host.dll.

The legitimate binary invokes the function GetBrowserManagerInstance from the sideloaded “browser_host.dll”, which then performs XOR-based decryption of embedded strings (key 0x90) to resolve and dynamically load mscoree.dll.

The DLL uses the Windows Common Language Runtime (CLR) to execute managed .NET code inside the process rather than relying solely on native binaries. During execution, the loader loads a payload directly into memory as .NET assemblies, enabling an in-memory execution.

C2 Registration

A GET request is made to:

GET /GetCluster?protocol=DotNet-TcpDmtp&tag={0}&uid={1}

with the custom header:

Verify_Token: Dmtp

This returns Base64-encoded and gzip-compressed IP addresses used for subsequent communication.

Figure 2: Decoded IPs.

Staged payload retrieval

Subsequent activity includes retrieval of multiple components from yahoo-cdn.it[.]com. The following GET requests are made:

/dfsvc.exe

/dnscfg.dll

/dfsvc.exe.config

/vhost.exe

/Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll

/config.etl

ClickOnce and AppDomain hijacking

Dfsvc.exe is the legitimate Windows ClickOnce Engine, part of the .NET framework used for updating ClickOnce Applications. Accompanying dfsvc.exe is a legitimate dfsvc.exe.config file that is used to store configuration data for the application. However, in this instance the malware has replaced the legitimate dfsvc.exe.config with the one retrieved from the server in: C:\Windows\Microsoft.NET\Framework64\v4.0.30319.

Additionally, vhost.exe the legitimate Visual Studio hosting process is retrieved from the server, along with “Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll” and “config.etl”. The DLL is used to decrypt the AES encrypted payload in config.etl and load it. The encrypted payload is dnscfg.dll, which can be loaded into vshost instead of dfsvc, and may be used if the environment does not support .NET.

Figure 3: ClickOnce configuration.

The malicious configuration disables logging, forces the application to load dnscfg.dll from the remote server, and uses a custom AppDomainManager to ensure the DLL is executed during initialization of dfsvc.exe. To ensure persistence, a scheduled task is added for %APPDATA%\Local\Microsoft\WindowsApps\dfsvc.exe.

Core payload

The DLL dnscfg.dll is a .NET binary named Client.TcpDmtp.dll. The payload is a heavily obfuscated backdoor that generates its logic at runtime and communicates with the command and control (C2) over custom TCP, DMTP (Duplex Message Transport Protocol) and appears to be an updated version of FDMTP to version 3.2.5.1

Figure 4: InitializeNewDomain.

The payload:

  • Uses cluster-based resolution (GetHostFromCluster)
  • Implements token validation
  • Enters a persistent execution loop (LoopMessage)
  • Supports structured remote tasking over DMTP

Once connected, the malware enters a persistent loop (LoopMessage), enabling it to receive commands from the remote server.

Figure 5: DMTP Connect function.

Rather than referencing values directly, they are retrieved through containers that are resolved at runtime. String values are stored in an encrypted byte array (_0) and decrypted by a custom XOR-based string decryption routine (dcsoft). The lower 16 bits of the provided key are XORed with 0xA61D (42525) to derive the initial XOR key, while subsequent bits define the string length and offset into the encrypted byte array. Each character is reconstructed from two encrypted bytes and XORed with the incrementing key value, producing the plaintext string used by the payload.

Figure 6: Decrypted strings.

Embedded in the resources section are multiple compressed binaries, the majority of which are library files. The only exceptions are client.core.dll and client.dmtpframe.dll.

Figure 7: Resources.

Modular framework and plugins

The payload embeds multiple compressed libraries, notably:

  • client.core.dll
  • client.dmtpframe.dll

Client.core.dll is a core library used for system profiling, C2 communication and plugin execution. The implant has the functionality to retrieve information including antivirus products, domain name, HWID, CLR version, administrator status, hardware details, network details, operating system, and user.

Figure 8: Client.Core.Info functions.

Additionally, the component is responsible for loading plugins, with support for both binary and JSON-based plugin execution. This allows plugins to receive commands and parameters in different formats depending on the task being performed.

The framework handles details such as plugin hashes, method names, task identifiers, caller tracking, and argument processing, allowing plugins to be executed consistently within the environment. In addition to execution management, the library also provides plugins with access to common runtime functionality such as logging, communication, and process handling.

Figure 9: Client.core functions.

client.dmtpframe.dll handles:

  • DMTP communication
  • Heartbeats and reconnection
  • Plugin persistence via registry:

HKCU\Software\Microsoft\IME\{id}

Client.dmtpframe.dll is built on the TouchSocket DMTP networking library and continues to manage the remote plugins. The DLL implements remote communication features including heartbeat maintenance, reconnection handling, RPC-style messaging, SSL support, and token-based verification. The DLL also has the ability to add plugins to the registry under HKCU/Software/Microsoft/IME/{id} for persistence.

Plugins observed

While the full set of plugins remains unknown, researchers were able to identify four plugins, including:

  • Persist.WpTask.dll - used to create, remove and trigger scheduled Windows tasks remotely.
  • Persist.registry.dll - used to manage registry persistence with the ability to create, and delete registry values, along with hidden persistence keys.
  • Persist.extra.dll - used to load and persist the main framework.
  • Assist.dll - used to remotely retrieve files or commands, as well as manipulate system processes.
Figure 10: Plugins stored in IME registry.
Figure 11: Obfuscated script in plugin resources.

Persist.extra.dll is a module that is used to load a script “setup.log” to load and persist the main framework. Stored within the resources section of the binary is an obfuscated script that creates a .NET COM object that is added to the registry key HKCU\Software\Classes\TypeLib\ {9E175B61-F52A-11D8-B9A5-505054503030} \1.0\1\Win64 for persistence. After deobfuscating this script, another DLL is revealed named “WindowsBase.dll”.

Figure 12: Registry entry for script.

The binary checks in with icloud-cdn[.]net every five minutes, retrieves a version string, downloads an encrypted payload named checksum.bin, saves it locally as C:\ProgramData\USOShared\Logs\checksum.etl, decrypts it with AES using the hardcoded key POt_L[Bsh0=+@0a., and loads the decrypted assembly directly from memory via Assembly.Load(byte[]). The version.txt file acts as an update marker so it only re-downloads when the remote version changes, while the mutex prevents duplicate instances.

Figure 13: USOShared/Logs.

Checksum.etl is decrypted with AES and loaded into memory, loading another .NET DLL named “Client.dll”. This binary is the same as “dnscfg.dll” mentioned at the start and allows the threat actors to update the main framework based on the version.

Conclusion

Across cases, Darktrace consistently observed the following sequence:

  • Retrieval of legitimate executables
  • Retrieval of DLLs for sideloading
  • C2 registration via /GetCluster

This approach is consistent with broader China-nexus tradecraft. As outlined in Darktrace’s Crimson Echo report, the stable feature of this activity is behavioral. Infrastructure rotates and payloads can change, but the execution model persists. For defenders, the implication is straightforward: detection anchored to individual indicators will degrade quickly. Detection anchored to a behavioral sequence offer a far more durable approach.

Credit to Tara Gould (Malware Research Lead), Adam Potter (Senior Cyber Analyst), Emma Foulger (Global Threat Research Operations Lead), Nathaniel Jones (VP, Security & AI Strategy)

Edited by Ryan Traill (Content Manager)


Appendices

A detailed list of detection models and triggered indicators is provided alongside IoCs.

Indicators of Compromise (IoCs)

Test.zip - fc3959ebd35286a82c662dc81ca658cb

Dnscfg.dll - b2c8f1402d336963478f4c5bc36c961a

Client.TcpDmtp.dll - c52b4a16d93a44376f0407f1c06e0b

Browser_host.dll - c17f39d25def01d5c87615388925f45a

Client.DmtpFrame.dll - 482cc72e01dfa54f30efe4fefde5422d

Persist.Extra - 162F69FE29EB7DE12B684E979A446131

Persist.Registry - 067FBAD4D6905D6E13FDC19964C1EA52

Assist - 2CD781AB63A00CE5302ED844CFBECC27

Persist.WpTask - DF3437C88866C060B00468055E6FA146

Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll - c650a624455c5222906b60aac7e57d48

www.icloud-cdn[.]net

www.yahoo-cdn.it[.]com

154.223.58[.]142[AP8] [EF9]

MITRE ATT&CK Techniques

T1106 – Native API

T1053.005 - Scheduled Task

T1546.16 - Component Object Model Hijacking

T1547.001 - Registry Run Keys

T1511.001 - Dynamic Link Library Injection

T1622 – Debugger Evasion

T1140 – Deobfuscate/Decode Files or Information

T1574.001 - Hijack Execution Flow: DLL

T1620 – Reflective Code Loading

T1082 – System Information Discovery

T1007 – System Service Discovery

T1030 – System Owner/User Discovery

T1071.001 - Web Protocols

T1027.007 - Dynamic API Resolution

T1095 – Non-Application Layer Protocol

Darktrace Model Alerts

·      Compromise / Beaconing Activity To External Rare

·      Compromise / HTTP Beaconing to Rare Destination

·      Anomalous File / Script from Rare External Location

·      Compromise / Sustained SSL or HTTP Increase

·      Compromise / Agent Beacon to New Endpoint

·      Anomalous File / EXE from Rare External Location

·      Anomalous File / Multiple EXE from Rare External Locations

·      Compromise / Quick and Regular Windows HTTP Beaconing

·      Compromise / High Volume of Connections with Beacon Score

·      Anomalous File / Anomalous Octet Stream (No User Agent)

·      Compromise / Repeating Connections Over 4 Days

·      Device / Large Number of Model Alerts

·      Anomalous Connection / Multiple Connections to New External TCP Port

·      Compromise / Large Number of Suspicious Failed Connections

·      Anomalous Connection / Multiple Failed Connections to Rare Endpoint

·      Device / Increased External Connectivity

Continue reading
About the author
Tara Gould
Malware Research Lead

Blog

/

AI

/

May 12, 2026

Resilience at the Speed of AI: Defending the Modern Campus with Darktrace

Default blog imageDefault blog image

Why higher education is a different cybersecurity battlefield

After four decades in IT, now serving as both CIO and CISO, I’ve learned one simple truth: cybersecurity is never “done.” It’s a constant game of cat and mouse. Criminals evolve. Technologies advance. Regulations expand. But in higher education, the challenge is uniquely complex.

Unlike a bank or a military installation, we can’t lock down networks to a narrow set of approved applications. Higher education environments are open by design. Students collaborate globally, faculty conduct cutting-edge research, and administrators manage critical operations, all of which require seamless access to the internet, global networks, cloud platforms, and connected systems.

Combine that openness with expanding regulatory mandates and tight budgets, and the balancing act becomes clear.

Threat actors don’t operate under the same constraints. Often well-funded and sponsored by nation-states with significant resources, they’re increasingly organized, strategic, and innovative.

That sophistication shows up in the tactics we face every day, from social engineering and ransomware to AI-driven impersonation attacks. We’re dealing with massive volumes of data, countless signals, and a very small window between detection and damage.

No human team, no matter how talented or how numerous, can manually sift through that noise at the speed required.

Discovering a force multiplier

Nothing in cybersecurity is 100% foolproof. I never “set it and forget it.” But for institutions balancing rising threats and finite resources, the Darktrace ActiveAI Security Platform™ offers something incredibly valuable: peace of mind through speed and scale.

It closes the gap between detection and response in a way humans can’t possibly match. At the speed of light, it can quarantine, investigate, and contain anomalous activity.

I’ve purchased and deployed Darktrace three separate times at three different institutions because I’ve seen firsthand what it can do and what it enables teams like mine to achieve.

I first encountered Darktrace while serving as CIO for a large multi-campus college system. What caught my attention was Darktrace's Self-Learning AI, and its ability to learn what "normal" looked like across our network. Instead of relying solely on static signatures or rigid rules, Darktrace built a behavioral baseline unique to our environment and alerted us in real time when something simply didn’t look right.

In higher education, where strict lockdowns aren’t realistic, that behavioral model made all the difference. We deployed it across five campuses, and the impact was immediate. Operating 24/7, Darktrace surfaced threats in ways our team couldn’t replicate manually.

Over time, the Darktrace platform evolved alongside the changing threat landscape, expanding into intrusion prevention, cloud visibility, and email security. At subsequent institutions, including Washington College, Darktrace was one of my first strategic investments.

Revealing the hidden threat other tools missed

One of the most surprising investigations of my career involved a data leak. Leadership suspected sensitive information from high-level meetings was being exposed, but our traditional tools couldn’t provide any answers.

Using Darktrace’s deep network visibility, down to packet-level data, we traced unusual connections to our CCTV camera system, which had been configured with a manufacturer’s default password. A small group of employees had hacked into the CCTV cameras, accessed audio-enabled recordings from boardroom meetings, and stored copies locally.

No other tool in our environment could have surfaced those connections the way Darktrace did. It was a clear example of why using AI to deeply understand how your organization, systems, and tools normally behave, matters: threats and risks don’t always look the way we expect.

Elevating a D-rating into a A-level security program

When I arrived at my last CISO role, the institution had recently experienced a significant ransomware attack. Attackers located  data  which informed their setting  ransom demands to an amount they knew would likely result in payment. It was a sobering example of how calculated and strategic modern cybercriminals have become.

Third-party cyber ratings reflected that reality, with a  D rating.

To raise the bar, we implemented a comprehensive security program and integrated layered defenses; -deploying state of the art tools and methods-  across the environment, with Darktrace at its core.

After a 90-day learning period to establish our behavioral baseline, we transitioned the platform into fully autonomous mode. In a single 30-day span, Darktrace conducted more than 2,500 investigations and autonomously resolved 92% of all false positives.

For a small team, that’s transformative. Instead of drowning in alerts, my staff focused on less than  200 meaningful cases that warranted human review.

Today, we maintain a perfect A rating from third-party assessors and have remained cybersafe.

Peace of mind isn’t about complacency

The effect of Darktrace as a force multiplier has a real human impact.

With the time reclaimed through automation, we expanded community education programs and implemented simulated phishing exercises. Through sustained training and awareness efforts, we reduced social engineering susceptibility from nearly 45% to under 5%.

On a personal level, Darktrace allows me to sleep better at night and take time off knowing we have intelligent systems monitoring and responding around the clock. For any CIO or CISO carrying institutional risk on their shoulders, that matters.

The next era: AI vs. AI

A new chapter in cybersecurity is unfolding as adversaries leverage AI to enhance scale, speed, and believability. Phishing campaigns are more personalized, impersonation attempts are more precise, and deepfake video technology, including live video, is disturbingly authentic. At the same time, organizations are rapidly adopting AI across their own environments —from GenAI assistants to embedded tools to autonomous agents. These systems don’t operate within fixed rules. They act across email, cloud, SaaS, and identity systems, often with broad permissions, and their behavior can evolve over time in ways that are difficult to predict or control.

That creates a new kind of security challenge. It’s not just about defending against AI-powered threats but understanding and governing how AI behaves within your environment, including what it can access, how it acts, and where risk begins to emerge.

From my perspective, this is a natural next step for Darktrace.

Darktrace brings a level of maturity and behavioral understanding uniquely suited to the complexity of AI environments. Self-Learning AI learns the normal patterns of each business to interpret context, uncover subtle intent, and detect meaningful deviations without relying on predefined rules or signatures. Extending into securing AI by bringing real-time visibility and control to GenAI assistants, AI agents, development environments and Shadow AI, feels like the logical evolution of what Darktrace already does so well.

Just as importantly, Darktrace is already built for dynamic, cross-domain environments where risk doesn’t sit in a single tool or control plane. In higher education, activity already spans multiple systems and, with AI, that interconnection only accelerates.

Having deployed Darktrace multiple times, I have confidence it’s uniquely positioned to lead in this space and help organizations adopt AI with greater visibility and control.

---

Since authoring this blog, Irving Bruckstein has transitioned to the role of Chief Executive Officer of the Cyberaigroup.

Continue reading
About the author
Irving Bruckstein
CEO CyberAIgroup
Your data. Our AI.
Elevate your network security with Darktrace AI