Blog
/
Network
/
November 8, 2022

How Raccoon Stealer v2 Infects Systems

Learn about Raccoon Stealer v2's infection process and its implications for cybersecurity. Discover effective strategies to protect your systems.
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
08
Nov 2022

Raccoon Stealer Malware

Since the release of version 2 of Raccoon Stealer in May 2022, Darktrace has observed huge volumes of Raccoon Stealer v2 infections across its client base. The info-stealer, which seeks to obtain and then exfiltrate sensitive data saved on users’ devices, displays a predictable pattern of network activity once it is executed. In this blog post, we will provide details of this pattern of activity, with the goal of helping security teams to recognize network-based signs of Raccoon Stealer v2 infection within their own networks. 

What is Raccoon Stealer?

Raccoon Stealer is a classic example of information-stealing malware, which cybercriminals typically use to gain possession of sensitive data saved in users’ browsers and cryptocurrency wallets. In the case of browsers, targeted data typically includes cookies, saved login details, and saved credit card details. In the case of cryptocurrency wallets (henceforth, ‘crypto-wallets’), targeted data typically includes public keys, private keys, and seed phrases [1]. Once sensitive browser and crypto-wallet data is in the hands of cybercriminals, it will likely be used to conduct harmful activities, such as identity theft, cryptocurrency theft, and credit card fraud.

How do you obtain Raccoon Stealer?

Like most info-stealers, Raccoon Stealer is purchasable. The operators of Raccoon Stealer sell Raccoon Stealer samples to their customers (called ‘affiliates’), who then use the info-stealer to gain possession of sensitive data saved on users’ devices. Raccoon Stealer affiliates typically distribute their samples via SEO-promoted websites providing free or cracked software. 

Is Raccoon Stealer Still Active?

On the 25th of March 2022, the operators of Raccoon Stealer announced that they would be suspending their operations because one of their core developers had been killed during the Russia-Ukraine conflict [2]. The presence of the hardcoded RC4 key ‘edinayarossiya’ (Russian for ‘United Russia’) within observed Raccoon Stealer v2 samples [3] provides potential evidence of the Raccoon Stealer operators’ allegiances.

Recent details shared by the US Department of Justice [4]/[5] indicate that it was in fact the arrest, rather than the death, of an operator which led the Raccoon Stealer team to suspend their operations [6]. As a result of the FBI, along with law enforcement partners in Italy and the Netherlands, dismantling Raccoon Stealer infrastructure in March 2022 [4], the Raccoon Stealer team was forced to build a new version of the info-stealer.  

On the 17th May 2022, the completion of v2 of the info-stealer was announced on the Raccoon Stealer Telegram channel [7].  Since its release in May 2022, Raccoon Stealer v2 has become extremely popular amongst cybercriminals. The prevalence of Raccoon Stealer v2 in the wider landscape has been reflected in Darktrace’s client base, with hundreds of infections being observed within client networks on a monthly basis.   

Since Darktrace’s SOC first saw a Raccoon Stealer v2 infection on the 22nd May 2022, the info-stealer has undergone several subtle changes. However, the info-stealer’s general pattern of network activity has remained essentially unchanged.  

How Does Raccoon Stealer v2 Infection Work?

A Raccoon Stealer v2 infection typically starts with a user attempting to download cracked or free software from an SEO-promoted website. Attempting to download software from one of these cracked/free software websites redirects the user’s browser (typically via several .xyz or .cfd endpoints) to a page providing download instructions. In May, June, and July, many of the patterns of download behavior observed by Darktrace’s SOC matched the pattern of behavior observed in a cracked software campaign reported by Avast in June [8].   

webpage whose download instructions led to a Raccoon Stealer v2
Figure 1: Above is a webpage whose download instructions led to a Raccoon Stealer v2 sample hosted on Discord CDN
example of a webpage whose download instructions led to a Raccoon Stealer v2
Figure 2: Above is an example of a webpage whose download instructions led to a Raccoon Stealer v2 sample hosted on Bitbucket
example of a webpage whose download instructions led to a Raccoon Stealer v2
Figure 3: Above is an example of a webpage whose download instructions led to a Raccoon Stealer v2 sample hosted on MediaFire

Following the instructions on the download instruction page causes the user’s device to download a password-protected RAR file from a file storage service such as ‘cdn.discordapp[.]com’, ‘mediafire[.]com’, ‘mega[.]nz’, or ‘bitbucket[.]org’. Opening the downloaded file causes the user’s device to execute Raccoon Stealer v2. 

The Event Log for an infected device,
Figure 4: The Event Log for an infected device, taken from Darktrace’s Threat Visualiser interface, shows a device contacting two cracked software websites (‘crackedkey[.]org’ and ‘crackedpc[.]co’) before contacting a webpage (‘premiumdownload[.]org) providing instructions to download Raccoon Stealer v2 from Bitbucket

Once Raccoon Stealer v2 is running on a device, it will make an HTTP POST request with the target URI ‘/’ and an unusual user-agent string (such as ‘record’, ‘mozzzzzzzzzzz’, or ‘TakeMyPainBack’) to a C2 server. This POST request consists of three strings: a machine GUID, a username, and a 128-bit RC4 key [9]. The posted data has the following form:

machineId=X | Y & configId=Z (where X is a machine GUID, Y is a username and Z is a 128-bit RC4 key) 

PCAP showing a device making an HTTP POST request with the User Agent header ‘record’ 
Figure 5:PCAP showing a device making an HTTP POST request with the User Agent header ‘record’ 
PCAP showing a device making an HTTP POST request with the User Agent header ‘mozzzzzzzzzzz’
Figure 6: PCAP showing a device making an HTTP POST request with the User Agent header ‘mozzzzzzzzzzz’
PCAP showing a device making an HTTP POST request with the User Agent header ‘TakeMyPainBack’
Figure 7: PCAP showing a device making an HTTP POST request with the User Agent header ‘TakeMyPainBack’

The C2 server responds to the info-stealer’s HTTP POST request with custom-formatted configuration details. These configuration details consist of fields which tell the info-stealer what files to download, what data to steal, and what target URI to use in its subsequent exfiltration POST requests. Below is a list of the fields Darktrace has observed in the configuration details retrieved by Raccoon Stealer v2 samples:

  • a ‘libs_mozglue’ field, which specifies a download address for a Firefox library named ‘mozglue.dll’
  • a ‘libs_nss3’ field, which specifies a download address for a Network System Services (NSS) library named ‘nss3.dll’ 
  • a ‘libs_freebl3’ field, which specifies a download address for a Network System Services (NSS) library named ‘freebl3.dll’
  • a ‘libs_softokn3’ field, which specifies a download address for a Network System Services (NSS) library named ‘softokn3.dll’
  • a ‘libs_nssdbm3’ field, which specifies a download address for a Network System Services (NSS) library named ‘nssdbm3.dll’
  • a ‘libs_sqlite3’ field, which specifies a download address for a SQLite command-line program named ‘sqlite3.dll’
  • a ‘libs_ msvcp140’ field, which specifies a download address for a Visual C++ runtime library named ‘msvcp140.dll’
  • a ‘libs_vcruntime140’ field, which specifies a download address for a Visual C++ runtime library named ‘vcruntime140.dll’
  • a ‘ldr_1’ field, which specifies the download address for a follow-up payload for the sample to download 
  • ‘wlts_X’ fields (where X is the name of a crypto-wallet application), which specify data for the sample to obtain from the specified crypto-wallet application
  • ‘ews_X’ fields (where X is the name of a crypto-wallet browser extension), which specify data for the sample to obtain from the specified browser extension
  • ‘xtntns_X’ fields (where X is the name of a password manager browser extension), which specify data for the sample to obtain from the specified browser extension
  • a ‘tlgrm_Telegram’ field, which specifies data for the sample to obtain from the Telegram Desktop application 
  • a ‘grbr_Desktop’ field, which specifies data within a local ‘Desktop’ folder for the sample to obtain 
  • a ‘grbr_Documents’ field, which specifies data within a local ‘Documents’ folder for the sample to obtain
  • a ‘grbr_Recent’ field, which specifies data within a local ‘Recent’ folder for the sample to obtain
  • a ‘grbr_Downloads’ field, which specifies data within a local ‘Downloads’ folder for the sample to obtain
  • a ‘sstmnfo_System Info.txt’ field, which specifies whether the sample should gather and exfiltrate a profile of the infected host 
  • a ‘scrnsht_Screenshot.jpeg’ field, which specifies whether the sample should take and exfiltrate screenshots of the infected host
  • a ‘token’ field, which specifies a 32-length string of hexadecimal digits for the sample to use as the target URI of its HTTP POST requests containing stolen data 

After retrieving its configuration data, Raccoon Stealer v2 downloads the library files specified in the ‘libs_’ fields. Unusual user-agent strings (such as ‘record’, ‘qwrqrwrqwrqwr’, and ‘TakeMyPainBack’) are used in the HTTP GET requests for these library files. In all Raccoon Stealer v2 infections seen by Darktrace, the paths of the URLs specified in the ‘libs_’ fields have the following form:

/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/X (where X is the name of the targeted DLL file) 

Advanced Search logs for an infected host
Figure 8: Advanced Search logs for an infected host, found on Darktrace’s Advanced Search interface, show a device making an HTTP POST request to retrieve configuration details, and then making HTTP GET requests with the User Agent header ‘record’ for DLL files
Advanced Search logs for an infected host
Figure 9: Advanced Search logs for an infected host, found on Darktrace’s Advanced Search interface, show a device making an HTTP POST request to retrieve configuration details, and then making HTTP GET requests with the User Agent header ‘qwrqrwrqwrqwr’ for DLL files
Advanced Search logs for an infected host
Figure 10: Advanced Search logs for an infected host, found on Darktrace’s Advanced Search interface, show a device making an HTTP POST request to retrieve configuration details, and then making HTTP GET requests with the User Agent header ‘TakeMyPainBack’ for DLL files

Raccoon Stealer v2 uses the DLLs which it downloads to gain access to sensitive data (such as cookies, credit card details, and login details) saved in browsers running on the infected host.  

Depending on the data provided in the configuration details, Raccoon Stealer v2 will typically seek to obtain, in addition to sensitive data saved in browsers, the following information:

  • Information about the Operating System and applications installed on the infected host
  • Data from specified crypto-wallet software
  • Data from specified crypto-wallet browser extensions
  • Data from specified local folders
  • Data from Telegram Desktop
  • Data from specified password manager browser extensions
  • Screenshots of the infected host 

Raccoon Stealer v2 exfiltrates the data which it obtains to its C2 server by making HTTP POST requests with unusual user-agent strings (such as ‘record’, ‘rc2.0/client’, ‘rqwrwqrqwrqw’, and ‘TakeMyPainBack’) and target URIs matching the 32-length string of hexadecimal digits specified in the ‘token’ field of the configuration details. The stolen data exfiltrated by Raccoon Stealer typically includes files named ‘System Info.txt’, ‘---Screenshot.jpeg’, ‘\cookies.txt’, and ‘\passwords.txt’. 

Advanced Search logs for an infected host
Figure 11: Advanced Search logs for an infected host, found on Darktrace’s Advanced Search interface, show a device retrieving configuration details via a POST request, downloading several DLLs, and then exfiltrating files named ‘System Info.txt’ and ‘---Screenshot.jpeg’
Advanced Search logs for an infected host
Figure 12: Advanced Search logs for an infected host, found on Darktrace’s Advanced Search interface, show a device retrieving configuration details via a POST request, downloading several DLLs, and then exfiltrating a file named ‘System Info.txt’ 
Advanced Search logs for an infected host
Figure 13: Advanced Search logs for an infected host, found on Darktrace’s Advanced Search interface, show a device retrieving configuration details via a POST request, downloading several DLLs, and then exfiltrating files named ‘System Info.txt’, ‘\cookies.txt’ and ‘\passwords.txt’
Advanced Search logs for an infected host
Figure 14: Advanced Search logs for an infected host, found on Darktrace’s Advanced Search interface, show a device retrieving configuration details via a POST request, downloading several DLLs, and then exfiltrating a file named ‘System Info.txt’

If a ‘ldr_1’ field is present in the retrieved configuration details, then Raccoon Stealer will complete its operation by downloading the binary file specified in the ‘ldr_1’ field. In all observed cases, the paths of the URLs specified in the ‘ldr_1’ field end in a sequence of digits, followed by ‘.bin’. The follow-up payload seems to vary between infections, likely due to this additional-payload feature being customizable by Raccoon Stealer affiliates. In many cases, the info-stealer, CryptBot, was delivered as the follow-up payload. 

Darktrace Coverage of Raccoon Stealer

Once a user’s device becomes infected with Raccoon Stealer v2, it will immediately start to communicate over HTTP with a C2 server. The HTTP requests made by the info-stealer have an empty Host header (although Host headers were used by early v2 samples) and highly unusual User Agent headers. When Raccoon Stealer v2 was first observed in May 2022, the user-agent string ‘record’ was used in its HTTP requests. Since then, it appears that the operators of Raccoon Stealer have made several changes to the user-agent strings used by the info-stealer,  likely in an attempt to evade signature-based detections. Below is a timeline of the changes to the info-stealer’s user-agent strings, as observed by Darktrace’s SOC:

  • 22nd May 2022: Samples seen using the user-agent string ‘record’
  • 2nd July 2022: Samples seen using the user-agent string ‘mozzzzzzzzzzz’
  • 29th July 2022: Samples seen using the user-agent string ‘rc2.0/client’
  • 10th August 2022: Samples seen using the user-agent strings ‘qwrqrwrqwrqwr’ and ‘rqwrwqrqwrqw’
  • 16th Sep 2022: Samples seen using the user-agent string ‘TakeMyPainBack’

The presence of these highly unusual user-agent strings within infected devices’ HTTP requests causes the following Darktrace DETECT/Network models to breach:

  • Device / New User Agent
  • Device / New User Agent and New IP
  • Anomalous Connection / New User Agent to IP Without Hostname
  • Device / Three or More New User Agents

These DETECT models look for devices making HTTP requests with unusual user-agent strings, rather than specific user-agent strings which are known to be malicious. This method of detection enables the models to continually identify Raccoon Stealer v2 HTTP traffic, despite the changes made to the info-stealer’s user-agent strings.   

After retrieving configuration details from a C2 server, Raccoon Stealer v2 samples make HTTP GET requests for several DLL libraries. Since these GET requests are directed towards highly unusual IP addresses, the downloads of the DLLs cause the following DETECT models to breach:

  • Anomalous File / EXE from Rare External Location
  • Anomalous File / Script from Rare External Location
  • Anomalous File / Multiple EXE from Rare External Locations

Raccoon Stealer v2 samples send data to their C2 server via HTTP POST requests with an absent Host header. Since these POST requests lack a Host header and have a highly unusual destination IP, their occurrence causes the following DETECT model to breach:

  • Anomalous Connection / Posting HTTP to IP Without Hostname

Certain Raccoon Stealer v2 samples download (over HTTP) a follow-up payload once they have exfiltrated data. Since the target URIs of the HTTP GET requests made by v2 samples end in a sequence of digits followed by ‘.bin’, the samples’ downloads of follow-up payloads cause the following DETECT model to breach:

  • Anomalous File / Numeric File Download

If Darktrace RESPOND/Network is configured within a customer’s environment, then Raccoon Stealer v2 activity should cause the following inhibitive actions to be autonomously taken on infected systems: 

  • Enforce pattern of life — This action results in a device only being able to make connections which are normal for it to make
  • Enforce group pattern of life — This action results in a device only being able to make connections which are normal for it or any of its peers to make
  • Block matching connections — This action results in a device being unable to make connections to particular IP/Port pairs
  • Block all outgoing traffic — This action results in a device being unable to make any connections 
The Event Log for an infected device
Figure 15: The Event Log for an infected device, taken from Darktrace’s Threat Visualiser interface, shows Darktrace RESPOND taking inhibitive actions in response to the HTTP activities of a Raccoon Stealer v2 sample downloaded from MediaFire

Given that Raccoon Stealer v2 infections move extremely fast, with the time between initial infection and data exfiltration sometimes less than a minute, the availability of Autonomous Response technology such as Darktrace RESPOND is vital for the containment of Raccoon Stealer v2 infections.  

Timeline of Darktrace stopping raccoon stealer.
Figure 16: Figure displaying the steps of a Raccoon Stealer v2 infection, along with the corresponding Darktrace detections

Conclusion

Since the release of Raccoon Stealer v2 back in 2022, the info-stealer has relentlessly infected the devices of unsuspecting users. Once the info-stealer infects a user’s device, it retrieves and then exfiltrates sensitive information within a matter of minutes. The distinctive pattern of network behavior displayed by Raccoon Stealer v2 makes the info-stealer easy to spot. However, the changes which the Raccoon Stealer operators make to the User Agent headers of the info-stealer’s HTTP requests make anomaly-based methods key for the detection of the info-stealer’s HTTP traffic. The operators of Raccoon Stealer can easily change the superficial features of their malware’s C2 traffic, however, they cannot easily change the fact that their malware causes highly unusual network behavior. Spotting this behavior, and then autonomously responding to it, is likely the best bet which organizations have at stopping a Raccoon once it gets inside their networks.  

Thanks to the Threat Research Team for its contributions to this blog.

References

[1] https://www.microsoft.com/security/blog/2022/05/17/in-hot-pursuit-of-cryware-defending-hot-wallets-from-attacks/

[2] https://twitter.com/3xp0rtblog/status/1507312171914461188

[3] https://www.esentire.com/blog/esentire-threat-intelligence-malware-analysis-raccoon-stealer-v2-0

[4] https://www.justice.gov/usao-wdtx/pr/newly-unsealed-indictment-charges-ukrainian-national-international-cybercrime-operation

[5] https://www.youtube.com/watch?v=Fsz6acw-ZJ

[6] https://riskybiznews.substack.com/p/raccoon-stealer-dev-didnt-die-in

[7] https://medium.com/s2wblog/raccoon-stealer-is-back-with-a-new-version-5f436e04b20d

[8] https://blog.avast.com/fakecrack-campaign

[9] https://blog.sekoia.io/raccoon-stealer-v2-part-2-in-depth-analysis/

Appendices

MITRE ATT&CK Mapping

Resource Development

• T1588.001 — Obtain Capabilities: Malware

• T1608.001 — Stage Capabilities: Upload Malware

• T1608.005 — Stage Capabilities: Link Target

• T1608.006 — Stage Capabilities: SEO Poisoning

Execution

•  T1204.002 — User Execution: Malicious File

Credential Access

• T1555.003 — Credentials from Password Stores:  Credentials from Web Browsers

• T1555.005 — Credentials from Password Stores:  Password Managers

• T1552.001 — Unsecured Credentials: Credentials  In Files

Command and Control

•  T1071.001 — Application Layer Protocol: Web Protocols

•  T1105 — Ingress Tool Transfer

IOCS

Type

IOC

Description

User-Agent String

record

String used in User Agent header of  Raccoon Stealer v2’s HTTP requests

User-Agent  String

mozzzzzzzzzzz

String used inUser Agent header of Raccoon Stealer v2’s HTTP requests

User-Agent String

rc2.0/client

String used in User Agent header of  Raccoon Stealer v2’s HTTP requests

User-Agent  String

qwrqrwrqwrqwr

String used in  User Agent header of Raccoon Stealer v2’s HTTP requests

User-Agent String

rqwrwqrqwrqw

String used in User Agent header of  Raccoon Stealer v2’s HTTP requests

User-Agent  String

TakeMyPainBack

String used in  User Agent header of Raccoon Stealer v2’s HTTP requests

Domain Name

brain-lover[.]xyz  

Raccoon Stealer v2 C2 infrastructure

Domain  Name

polar-gift[.]xyz

Raccoon Stealer  v2 C2 infrastructure

Domain Name

cool-story[.]xyz

Raccoon Stealer v2 C2 infrastructure

Domain  Name

fall2sleep[.]xyz

Raccoon Stealer  v2 C2 infrastructure

Domain Name

broke-bridge[.]xyz

Raccoon Stealer v2 C2 infrastructure

Domain  Name

use-freedom[.]xyz

Raccoon Stealer  v2 C2 infrastructure

Domain Name

just-trust[.]xyz

Raccoon Stealer v2 C2 infrastructure

Domain  Name

soft-viper[.]site

Raccoon Stealer  v2 C2 infrastructure

Domain Name

tech-lover[.]xyz

Raccoon Stealer v2 C2 infrastructure

Domain  Name

heal-brain[.]xyz

Raccoon Stealer  v2 C2 infrastructure

Domain Name

love-light[.]xyz

Raccoon Stealer v2 C2 infrastructure

IP  Address

104.21.80[.]14

Raccoon Stealer  v2 C2 infrastructure

IP Address

107.152.46[.]84

Raccoon Stealer v2 C2 infrastructure

IP  Address

135.181.147[.]255

Raccoon Stealer  v2 C2 infrastructure

IP Address

135.181.168[.]157

Raccoon Stealer v2 C2 infrastructure

IP  Address

138.197.179[.]146

Raccoon Stealer  v2 C2 infrastructure

IP Address

141.98.169[.]33

Raccoon Stealer v2 C2 infrastructure

IP  Address

146.19.170[.]100

Raccoon Stealer  v2 C2 infrastructure

IP Address

146.19.170[.]175

Raccoon Stealer v2 C2 infrastructure

IP  Address

146.19.170[.]98

Raccoon Stealer  v2 C2 infrastructure

IP Address

146.19.173[.]33

Raccoon Stealer v2 C2 infrastructure

IP  Address

146.19.173[.]72

Raccoon Stealer  v2 C2 infrastructure

IP Address

146.19.247[.]175

Raccoon Stealer v2 C2 infrastructure

IP  Address

146.19.247[.]177

Raccoon Stealer  v2 C2 infrastructure

IP Address

146.70.125[.]95

Raccoon Stealer v2 C2 infrastructure

IP  Address

152.89.196[.]234

Raccoon Stealer  v2 C2 infrastructure

IP Address

165.225.120[.]25

Raccoon Stealer v2 C2 infrastructure

IP  Address

168.100.10[.]238

Raccoon Stealer  v2 C2 infrastructure

IP Address

168.100.11[.]23

Raccoon Stealer v2 C2 infrastructure

IP  Address

168.100.9[.]234

Raccoon Stealer  v2 C2 infrastructure

IP Address

170.75.168[.]118

Raccoon Stealer v2 C2 infrastructure

IP  Address

172.67.173[.]14

Raccoon Stealer  v2 C2 infrastructure

IP Address

172.86.75[.]189

Raccoon Stealer v2 C2 infrastructure

IP  Address

172.86.75[.]33

Raccoon Stealer  v2 C2 infrastructure

IP Address

174.138.15[.]216

Raccoon Stealer v2 C2 infrastructure

IP  Address

176.124.216[.]15

Raccoon Stealer  v2 C2 infrastructure

IP Address

185.106.92[.]14

Raccoon Stealer v2 C2 infrastructure

IP  Address

185.173.34[.]161

Raccoon Stealer  v2 C2 infrastructure

IP Address

185.173.34[.]161  

Raccoon Stealer v2 C2 infrastructure

IP  Address

185.225.17[.]198

Raccoon Stealer  v2 C2 infrastructure

IP Address

185.225.19[.]190

Raccoon Stealer v2 C2 infrastructure

IP  Address

185.225.19[.]229

Raccoon Stealer  v2 C2 infrastructure

IP Address

185.53.46[.]103

Raccoon Stealer v2 C2 infrastructure

IP  Address

185.53.46[.]76

Raccoon Stealer  v2 C2 infrastructure

IP Address

185.53.46[.]77

Raccoon Stealer v2 C2 infrastructure

IP  Address

188.119.112[.]230

Raccoon Stealer  v2 C2 infrastructure

IP Address

190.117.75[.]91

Raccoon Stealer v2 C2 infrastructure

IP  Address

193.106.191[.]182

Raccoon Stealer  v2 C2 infrastructure

IP Address

193.149.129[.]135

Raccoon Stealer v2 C2 infrastructure

IP  Address

193.149.129[.]144

Raccoon Stealer  v2 C2 infrastructure

IP Address

193.149.180[.]210

Raccoon Stealer v2 C2 infrastructure

IP  Address

193.149.185[.]192

Raccoon Stealer  v2 C2 infrastructure

IP Address

193.233.193[.]50

Raccoon Stealer v2 C2 infrastructure

IP  Address

193.43.146[.]138

Raccoon Stealer  v2 C2 infrastructure

IP Address

193.43.146[.]17

Raccoon Stealer v2 C2 infrastructure

IP  Address

193.43.146[.]192

Raccoon Stealer  v2 C2 infrastructure

IP Address

193.43.146[.]213

Raccoon Stealer v2 C2 infrastructure

IP  Address

193.43.146[.]214

Raccoon Stealer  v2 C2 infrastructure

IP Address

193.43.146[.]215

Raccoon Stealer v2 C2 infrastructure

IP  Address

193.43.146[.]26

Raccoon Stealer  v2 C2 infrastructure

IP Address

193.43.146[.]45

Raccoon Stealer v2 C2 infrastructure

IP  Address

193.56.146[.]177

Raccoon Stealer  v2 C2 infrastructure

IP Address

194.180.174[.]180

Raccoon Stealer v2 C2 infrastructure

IP  Address

195.201.148[.]250

Raccoon Stealer  v2 C2 infrastructure

IP Address

206.166.251[.]156

Raccoon Stealer v2 C2 infrastructure

IP  Address

206.188.196[.]200

Raccoon Stealer  v2 C2 infrastructure

IP Address

206.53.53[.]18

Raccoon Stealer v2 C2 infrastructure

IP  Address

207.154.195[.]173

Raccoon Stealer  v2 C2 infrastructure

IP Address

213.252.244[.]2

Raccoon Stealer v2 C2 infrastructure

IP  Address

38.135.122[.]210

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.10.20[.]248

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.11.19[.]99

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.133.216[.]110

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.133.216[.]145

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.133.216[.]148

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.133.216[.]249

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.133.216[.]71

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.140.146[.]169

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.140.147[.]245

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.142.212[.]100

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.142.213[.]24

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.142.215[.]91

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.142.215[.]91  

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.142.215[.]92

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.144.29[.]18

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.144.29[.]243

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.15.156[.]11

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.15.156[.]2

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.15.156[.]31

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.15.156[.]31

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.150.67[.]156

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.153.230[.]183

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.153.230[.]228

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.159.251[.]163

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.159.251[.]164

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.61.136[.]67

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.61.138[.]162

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.67.228[.]8

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.67.231[.]202

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.67.34[.]152

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.67.34[.]234

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.8.144[.]187

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.8.144[.]54

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.8.144[.]55

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.8.145[.]174

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.8.145[.]83

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.8.147[.]39

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.8.147[.]79

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.84.0.152

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.86.86[.]78

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.89.54[.]110

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.89.54[.]110

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.89.54[.]95

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.89.55[.]115

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.89.55[.]117

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.89.55[.]193

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.89.55[.]198

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.89.55[.]20

Raccoon Stealer  v2 C2 infrastructure

IP Address

45.89.55[.]84

Raccoon Stealer v2 C2 infrastructure

IP  Address

45.92.156[.]150

Raccoon Stealer  v2 C2 infrastructure

IP Address

5.182.36[.]154

Raccoon Stealer v2 C2 infrastructure

IP  Address

5.182.36[.]230

Raccoon Stealer  v2 C2 infrastructure

IP Address

5.182.36[.]231

Raccoon Stealer v2 C2 infrastructure

IP  Address

5.182.36[.]232

Raccoon Stealer  v2 C2 infrastructure

IP Address

5.182.36[.]233

Raccoon Stealer v2 C2 infrastructure

IP  Address

5.182.39[.]34

Raccoon Stealer  v2 C2 infrastructure

IP Address

5.182.39[.]74

Raccoon Stealer v2 C2 infrastructure

IP  Address

5.182.39[.]75

Raccoon Stealer  v2 C2 infrastructure

IP Address

5.182.39[.]77

Raccoon Stealer v2 C2 infrastructure

IP  Address

5.252.118[.]33

Raccoon Stealer  v2 C2 infrastructure

IP Address

5.252.176[.]62

Raccoon Stealer v2 C2 infrastructure

IP  Address

5.252.177[.]217

Raccoon Stealer  v2 C2 infrastructure

IP Address

5.252.177[.]234

Raccoon Stealer v2 C2 infrastructure

IP  Address

5.252.177[.]43

Raccoon Stealer  v2 C2 infrastructure

IP Address

5.252.177[.]47

Raccoon Stealer v2 C2 infrastructure

IP  Address

5.252.177[.]92

Raccoon Stealer  v2 C2 infrastructure

IP Address

5.252.177[.]98

Raccoon Stealer v2 C2 infrastructure

IP  Address

5.252.22[.]142

Raccoon Stealer  v2 C2 infrastructure

IP Address

5.252.23[.]100

Raccoon Stealer v2 C2 infrastructure

IP  Address

5.252.23[.]25

Raccoon Stealer  v2 C2 infrastructure

IP Address

5.252.23[.]76

Raccoon Stealer v2 C2 infrastructure

IP  Address

51.195.166[.]175

Raccoon Stealer  v2 C2 infrastructure

IP Address

51.195.166[.]176

Raccoon Stealer v2 C2 infrastructure

IP  Address

51.195.166[.]194

Raccoon Stealer  v2 C2 infrastructure

IP Address

51.81.143[.]169

Raccoon Stealer v2 C2 infrastructure

IP  Address

62.113.255[.]110

Raccoon Stealer  v2 C2 infrastructure

IP Address

65.109.3[.]107

Raccoon Stealer v2 C2 infrastructure

IP  Address

74.119.192[.]56

Raccoon Stealer  v2 C2 infrastructure

IP Address

74.119.192[.]73

Raccoon Stealer v2 C2 infrastructure

IP  Address

77.232.39[.]101

Raccoon Stealer  v2 C2 infrastructure

IP Address

77.73.133[.]0

Raccoon Stealer v2 C2 infrastructure

IP  Address

77.73.133[.]4

Raccoon Stealer  v2 C2 infrastructure

IP Address

77.73.134[.]45

Raccoon Stealer v2 C2 infrastructure

IP  Address

77.75.230[.]25

Raccoon Stealer  v2 C2 infrastructure

IP Address

77.75.230[.]39

Raccoon Stealer v2 C2 infrastructure

IP  Address

77.75.230[.]70

Raccoon Stealer  v2 C2 infrastructure

IP Address

77.75.230[.]93

Raccoon Stealer v2 C2 infrastructure

IP  Address

77.91.100[.]101

Raccoon Stealer  v2 C2 infrastructure

IP Address

77.91.102[.]12

Raccoon Stealer v2 C2 infrastructure

IP  Address

77.91.102[.]230

Raccoon Stealer  v2 C2 infrastructure

IP Address

77.91.102[.]44

Raccoon Stealer v2 C2 infrastructure

IP  Address

77.91.102[.]57

Raccoon Stealer  v2 C2 infrastructure

IP Address

77.91.102[.]84

Raccoon Stealer v2 C2 infrastructure

IP  Address

77.91.103[.]31

Raccoon Stealer  v2 C2 infrastructure

IP Address

77.91.73[.]154

Raccoon Stealer v2 C2 infrastructure

IP  Address

77.91.73[.]213

Raccoon Stealer  v2 C2 infrastructure

IP Address

77.91.73[.]32

Raccoon Stealer v2 C2 infrastructure

IP  Address

77.91.74[.]67

Raccoon Stealer  v2 C2 infrastructure

IP Address

78.159.103[.]195

Raccoon Stealer v2 C2 infrastructure

IP  Address

78.159.103[.]196

Raccoon Stealer  v2 C2 infrastructure

IP Address

80.66.87[.]23

Raccoon Stealer v2 C2 infrastructure

IP  Address

80.66.87[.]28

Raccoon Stealer  v2 C2 infrastructure

IP Address

80.71.157[.]112

Raccoon Stealer v2 C2 infrastructure

IP  Address

80.71.157[.]138

Raccoon Stealer  v2 C2 infrastructure

IP Address

80.92.204[.]202

Raccoon Stealer v2 C2 infrastructure

IP  Address

87.121.52[.]10

Raccoon Stealer  v2 C2 infrastructure

IP Address

88.119.175[.]187

Raccoon Stealer v2 C2 infrastructure

IP  Address

89.185.85[.]53

Raccoon Stealer  v2 C2 infrastructure

IP Address

89.208.107[.]42

Raccoon Stealer v2 C2 infrastructure

IP  Address

89.39.106[.]78

Raccoon Stealer  v2 C2 infrastructure

IP Address

91.234.254[.]126

Raccoon Stealer v2 C2 infrastructure

IP  Address

94.131.104[.]16

Raccoon Stealer  v2 C2 infrastructure

IP Address

94.131.104[.]17

Raccoon Stealer v2 C2 infrastructure

IP  Address

94.131.104[.]18

Raccoon Stealer  v2 C2 infrastructure

IP Address

94.131.106[.]116

Raccoon Stealer v2 C2 infrastructure

IP  Address

94.131.106[.]224

Raccoon Stealer  v2 C2 infrastructure

IP Address

94.131.107[.]132

Raccoon Stealer v2 C2 infrastructure

IP  Address

94.131.107[.]138

Raccoon Stealer  v2 C2 infrastructure

IP Address

94.131.96[.]109

Raccoon Stealer v2 C2 infrastructure

IP  Address

94.131.97[.]129

Raccoon Stealer  v2 C2 infrastructure

IP Address

94.131.97[.]53

Raccoon Stealer v2 C2 infrastructure

IP  Address

94.131.97[.]56

Raccoon Stealer  v2 C2 infrastructure

IP Address

94.131.97[.]57

Raccoon Stealer v2 C2 infrastructure

IP  Address

94.131.98[.]5

Raccoon Stealer  v2 C2 infrastructure

IP Address

94.158.244[.]114

Raccoon Stealer v2 C2 infrastructure

IP  Address

94.158.244[.]119

Raccoon Stealer  v2 C2 infrastructure

IP Address

94.158.244[.]21

Raccoon Stealer v2 C2 infrastructure

IP  Address

94.158.247[.]24

Raccoon Stealer  v2 C2 infrastructure

IP Address

94.158.247[.]26

Raccoon Stealer v2 C2 infrastructure

IP  Address

94.158.247[.]30

Raccoon Stealer  v2 C2 infrastructure

IP Address

94.158.247[.]44

Raccoon Stealer v2 C2 infrastructure

IP  Address

95.216.109[.]16

Raccoon Stealer  v2 C2 infrastructure

IP Address

95.217.124[.]179

Raccoon Stealer v2 C2 infrastructure

URI

/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/mozglue.dll

URI used in  download of library file

URI

/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/nss3.dll

URI used in download of library file

URI

/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/freebl3.dll

URI used in  download of library file

URI

/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/softokn3.dll

URI used in download of library file

URI

/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/nssdbm3.dll

URI used in  download of library file

URI

/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/sqlite3.dll

URI used in download of library file

URI

/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/msvcp140.dll

URI used in  download of library file

URI

/aN7jD0qO6kT5bK5bQ4eR8fE1xP7hL2vK/vcruntime140.dll

URI used in download of library file

URI

/C9S2G1K6I3G8T3X7/56296373798691245143.bin

URI used in  download of follow-up payload

URI

/O6K3E4G6N9S8S1/91787438215733789009.bin

URI used in download of follow-up  payload

URI

/Z2J8J3N2S2Z6X2V3S0B5/45637662345462341.bin

URI used in  download of follow-up payload

URI

/rgd4rgrtrje62iuty/19658963328526236.bin

URI used in download of follow-up  payload

URI

/sd325dt25ddgd523/81852849956384.bin

URI used in  download of follow-up payload

URI

/B0L1N2H4R1N5I5S6/40055385413647326168.bin

URI used in download of follow-up  payload

URI

/F5Q8W3O3O8I2A4A4B8S8/31427748106757922101.bin

URI used in  download of follow-up payload

URI

/36141266339446703039.bin

URI used in download of follow-up  payload

URI

/wH0nP0qH9eJ6aA9zH1mN/1.bin

URI used in  download of follow-up payload

URI

/K2X2R1K4C6Z3G8L0R1H0/68515718711529966786.bin

URI used in download of follow-up  payload

URI

/C3J7N6F6X3P8I0I0M/17819203282122080878.bin

URI used in  download of follow-up payload

URI

/W9H1B8P3F2J2H2K7U1Y7G5N4C0Z4B/18027641.bin

URI used in download of follow-up  payload

URI

/P2T9T1Q6P7Y5J3D2T0N0O8V/73239348388512240560937.bin

URI used in  download of follow-up payload

URI

/W5H6O5P0E4Y6P8O1B9D9G0P9Y9G4/671837571800893555497.bin

URI used in download of follow-up  payload

URI

/U8P2N0T5R0F7G2J0/898040207002934180145349.bin

URI used in  download of follow-up payload

URI

/AXEXNKPSBCKSLMPNOMNRLUEPR/3145102300913020.bin

URI used in download of follow-up  payload

URI

/wK6nO2iM9lE7pN7e/7788926473349244.bin

URI used in  download of follow-up payload

URI

/U4N9B5X5F5K2A0L4L4T5/84897964387342609301.bin

URI used in download of follow-up  payload

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

/

/

April 17, 2026

Why Behavioral AI Is the Answer to Mythos

mythos behavioral aiDefault blog imageDefault blog image

How AI is breaking the patch-and-prevent security model

The business world was upended last week by the news that Anthropic has developed a powerful new AI model, Claude Mythos, which poses unprecedented risk because of its ability to expose flaws in IT systems.  

Whether it’s Mythos or OpenAI’s GPT-5.4-Cyber, which was just announced on Tuesday, supercharged AI models in the hands of hackers will allow them to carry out attacks at machine speed, much faster than most businesses can stop them.  

This news underscores a stark reality for all leaders: Patching holes alone is not a sufficient control against modern cyberattacks. You must assume that your software is already vulnerable right now. And while LLMs are very good at spotting vulnerabilities, they’re pretty bad at reliably patching them.

Project Glasswing members say it could take months or years for patches to be applied. While that work is done, enterprises must be protected against Zero-Day attacks, or security holes that are still undiscovered.  

Most cybersecurity strategies today are built like a daily multivitamin: broad, preventative, and designed to keep the system generally healthy over time. Patch regularly. Update software. Reduce known vulnerabilities. It’s necessary, disciplined, and foundational. But it’s also built for a world where the risks are well known and defined, cycles are predictable, and exposure unfolds at a manageable pace.

What happens when that model no longer holds?

The AI cyber advantage: Behavioral AI

The vulnerabilities exposed by AI systems like Mythos aren’t the well-understood risks your “multivitamin” was designed to address. They are transient, fast-emerging entry points that exist just long enough to be exploited.

In that environment, prevention alone isn’t enough. You don’t need more vitamins—you need a painkiller. The future of cybersecurity won’t be defined by how well you maintain baseline health. It will be defined by how quickly you respond when something breaks and every second counts.

That’s why behavioral AI gives businesses a durable cyber advantage. Rather than trying to figure out what the attacker looks like, it learns what “normal” looks like across the digital ecosystem of each individual business.  

That’s exactly how behavioral AI works. It understands the self, or what's normal for the organization, and then it can spot deviations in from normal that are actually early-stage attacks.

The Darktrace approach to cybersecurity

At Darktrace, we’ve been defending our 10,000 customers using behavioral AI cybersecurity developed in our AI Research Centre in Cambridge, U.K.

Darktrace was built on the understanding that attacks do not arrive neatly labeled, and that the most damaging threats often emerge before signatures, indicators, or public disclosures can catch up.  

Our AI algorithms learn in real time from your personalized business data to learn what’s normal for every person and every asset, and the flows of data within your organization. By continuously understanding “normal” across your entire digital ecosystem, Darktrace identifies and contains threats emerging from unknown vulnerabilities and compromised supply chain dependencies, autonomously curtailing attacks at machine speed.  

Security for novel threats

Darktrace is built for a world where AI is not just accelerating attacks, but fundamentally reshaping how they originate. What makes our AI so unique is that it's proven time and again to identify cyber threats before public vulnerability disclosures, such as critical Ivanti vulnerabilities in 2025 and SAP NetWeaver exploitations tied to nation-state threat actors.  

As AI reshapes how vulnerabilities are found and exploited, cybersecurity must be anchored in something more durable than a list of known flaws. It requires a real-time understanding of the business itself: what belongs, what does not, and what must be stopped immediately.

What leaders should do right now

The leadership priority must shift accordingly.

First, stop treating unknown vulnerabilities as an edge case. AI‑driven discovery makes them the norm. Security programs built primarily around known flaws, signatures, and threat intelligence will always lag behind an attacker that is operating in real time.

Second, insist on an understanding of what is actually normal across the business. When threats are novel, labels are useless. The earliest and most reliable signal of danger is abnormal behavior—systems, users, or data flows that suddenly depart from what is expected. If you cannot see that deviation as it happens, you are effectively blind during the most critical window.

Finally, assume that the next serious incident will occur before remediation guidance is available. Ask what happens in those first minutes and hours. The organizations that maintain resilience are not the ones waiting for disclosure cycles to catch up—they are the ones that can autonomously identify and contain emerging threats as they unfold.

This is the reality of cybersecurity in an AI‑shaped world. Patching and prevention remain important foundations, but the advantage now belongs to those who can respond instantly when the unpredictable occurs.

Behavioral AI is security designed not just for known threats, but for the ones that AI will discover next.

[related-resource]

Continue reading
About the author
Ed Jennings
President and CEO

Blog

/

OT

/

April 17, 2026

Inside ZionSiphon: Darktrace’s Analysis of OT Malware Targeting Israeli Water Systems

zionsiphonDefault blog imageDefault blog image

What is ZionSiphon?

Darktrace recently analyzed a malware sample, which identifies itself as ZionSiphon. This sample combines several familiar host-based capabilities, including privilege escalation, persistence, and removable-media propagation, with targeting logic themed around water treatment and desalination environments.

This blog details Darktrace’s investigation of ZionSiphon, focusing on how the malware identifies targets, establishes persistence, attempts to tamper with local configuration files, and scans for Operational Technology (OT)-relevant services on the local subnet. The analysis also assesses what the code suggests about the threat actor’s intended objectives and highlights where the implementation appears incomplete.

Function “ZionSiphon()” used by the malware author.
Figure 1: Function “ZionSiphon()” used by the malware author.

Targets and motivations

Israel-Focused Targeting and Messaging

The clearest indicators of intent in this sample are its hardcoded Israel-focused targeting checks and the strong political messaging found in some strings in the malware’s binary.

In the class initializer, the malware defines a set of IPv4 ranges, including “2.52.0.0-2.55.255.255”, “79.176.0.0-79.191.255.255”, and “212.150.0.0-212.150.255.255”, indicating that the author intended to restrict execution to a narrow range of addresses. All of the specified IP blocks are geographically located within Israel.

The malware obfuscates the IP ranges by encoding them in Base64.
Figure 2: The malware obfuscates the IP ranges by encoding them in Base64.

The ideological motivations behind this malware are also seemingly evident in two Base64-encoded strings embedded in the binary. The first (shown in Figure 1) is:

Netanyahu = SW4gc3VwcG9ydCBvZiBvdXIgYnJvdGhlcnMgaW4gSXJhbiwgUGFsZXN0aW5lLCBhbmQgWWVtZW4gYWdhaW5zdCBaaW9uaXN0IGFnZ3Jlc3Npb24uIEkgYW0gIjB4SUNTIi4=“, which decodes to “In support of our brothers in Iran, Palestine, and Yemen against Zionist aggression. I am "0xICS".

The second string, “Dimona = UG9pc29uaW5nIHRoZSBwb3B1bGF0aW9uIG9mIFRlbCBBdml2IGFuZCBIYWlmYQo=“, decodes to “Poisoning the population of Tel Aviv and Haifa”.  These strings do not appear to be used by the malware for any operational purpose, but they do offer an indication of the attacker’s motivations. Dimona, referenced in the second string, is an Israeli city in the Negev desert, primarily known as the site of the Shimon Peres Negev Nuclear Research Center.

The Dimona string as it appears in the decompiled malware, with the Base64-decoded text.
Figure 3: The Dimona string as it appears in the decompiled malware, with the Base64-decoded text.

The hardcoded IP ranges and propaganda‑style text suggest politically motivated intent, with Israel appearing to be a likely target.

Water and desalination-themed targeting?

The malware also includes Israel-linked strings in its target list, including “Mekorot, “Sorek”, “Hadera”, “Ashdod”, “Palmachim”, and “Shafdan”. All of the strings correspond to components of Israel’s national water infrastructure: Mekorot is Israel’s national water company responsible for managing the country’s water system, including major desalination and wastewater projects. Sorek, Hadera, Ashdod, and Palmachim are four of Israel’s five major seawater desalination plants, each producing tens of millions of cubic meters of drinking water annually. Shafdan is the country’s central wastewater treatment and reclamation facility. Their inclusion in ZionSiphon’s targeting list suggests an interest in infrastructure linked to Israel’s water sector.

Strings in the target list, all related to Israel and water treatment.
Figure 4: Strings in the target list, all related to Israel and water treatment.

Beyond geographic targeting, the sample contains a second layer of environment-specific checks aimed at water treatment and desalination systems. In the function ”IsDamDesalinationPlant()”, the malware first inspects running process names for strings such as “DesalPLC”, “ROController”, “SchneiderRO”, “DamRO”, “ReverseOsmosis”, “WaterGenix”, “RO_Pump”, “ChlorineCtrl”, “WaterPLC”, “SeaWaterRO”, “BrineControl”, “OsmosisPLC”, “DesalMonitor”, “RO_Filter”, “ChlorineDose”, “RO_Membrane”, “DesalFlow”, “WaterTreat”, and “SalinityCtrl”. These strings are directly related to desalination, reverse osmosis, chlorine handling, and plant control components typically seen in the water treatment industry.

The filesystem checks reinforce this focus. The code looks for directories such as “C:\Program Files\Desalination”, “C:\Program Files\Schneider Electric\Desal”, “C:\Program Files\IDE Technologies”, “C:\Program Files\Water Treatment”, “C:\Program Files\RO Systems”, “C:\Program Files\DesalTech”, “C:\Program Files\Aqua Solutions”, and “C:\Program Files\Hydro Systems”, as well as files including “C:\DesalConfig.ini”, “C:\ROConfig.ini”, “C:\DesalSettings.conf”, “C:\Program Files\Desalination\system.cfg”, “C:\WaterTreatment.ini”, “C:\ChlorineControl.dat”, “C:\RO_PumpSettings.ini”, and “C:\SalinityControl.ini.”

Malware Analysis

Privilege Escalation

The “RunAsAdmin” function from the malware sample.
Figure 5: The “RunAsAdmin” function from the malware sample.


The malware’s first major action is to check whether it is running with administrative rights. The “RunAsAdmin()” function calls “IsElevated()”, which retrieves the current Windows identity and checks whether it belongs to the local Administrators group. If the process is already elevated, execution proceeds normally.

The “IsElevated” function as seen in the sample.
Figure 6: The “IsElevated” function as seen in the sample.


If not, the code waits on the named mutex and launches “powershell.exe” with the argument “Start-Process -FilePath <current executable> -Verb RunAs”, after which it waits for that process to finish and then exits.

Persistence and stealth installation

Registry key creation.
Figure 7: Registry key creation.

Persistence is handled by “s1()”. This routine opens “HKCU\Software\Microsoft\Windows\CurrentVersion\Run”, retrieves the current process path, and compares it to “stealthPath”. If the current file is not already running from that location, it copies itself to the stealth path and sets the copied file’s attributes to “hidden”.

The code then creates a “Run” value named “SystemHealthCheck” pointing to the stealth path. Because “stealthPath” is built from “LocalApplicationData” and the hardcoded filename “svchost.exe”, the result is a user-level persistence mechanism that disguises the payload under a familiar Windows process name. The combination of a hidden file and a plausible-sounding autorun value suggests an intent to blend into ordinary Windows artifacts rather than relying on more complex persistence methods.

Target determination

The malware’s targeting determination is divided between “IsTargetCountry()” and “IsDamDesalinationPlant()”. The “IsTargetCountry()” function retrieves the local IPv4 address, converts it to a numeric value, and compares it against each of the hardcoded ranges stored in “ipRanges”. Only if the address falls within one of these ranges does the code move on to next string-comparison step, which ultimately determines whether the country check succeeded.

The main target validation function.
Figure 8: The main target validation function.
 The “IsTargetCountry” function.
Figure 9 : The “IsTargetCountry” function.


IsDamDesalinationPlant()” then assesses whether the host resembles a relevant OT environment. It first scans running process names for the hardcoded strings previously mentioned, followed by checks for the presence of any of the hardcoded directories or files. The intended logic is clear: the payload activates only when both a geographic condition and an environment specific condition related to desalination or water treatment are met.

Figure. 10: An excerpt of the list of strings used in the “IsDamDesalinationPlant” function

Why this version appears dysfunctional

Although the file contains sabotage, scanning, and propagation functions, the current sample appears unable to satisfy its own target-country checking function even when the reported IP falls within the specified ranges. In the static constructor, every “ipRanges” entry is associated with the same decoded string, “Nqvbdk”, derived from “TnF2YmRr”. Later, “IsTargetCountry()” (shown in Figure 8) compares that stored value against “EncryptDecrypt("Israel", 5)”.

The “EncryptDecrypt” function
Figure 11: The “EncryptDecrypt” function

As implemented, “EncryptDecrypt("Israel", 5)” does not produce “Nqvbdk”, it produces a different string. This function seems to be a basic XOR encode/decode routine, XORing the string “Israel” with value of 5. Because the resulting output does not match “Nqvbdk” the comparison always fails, even when the host IP falls within one of the specified ranges. As a result, this build appears to consistently determine that the device is not a valid target. This behavior suggests that the version is either intentionally disabled, incorrectly configured, or left in an unfinished state. In fact, there is no XOR key that would transform “Israel” into “Nqvbdk” using this function.

Self-destruct function

The “SelfDestruct” function
Figure 12: The “SelfDestruct” function

If IsTargetCountry() returns false, the malware invokes “SelfDestruct()”. This routine removes the SystemHealthCheck value from “HKCU\Software\Microsoft\Windows\CurrentVersion\Run”, writes a log file to “%TEMP%\target_verify.log” containing the message “Target not matched. Operation restricted to IL ranges. Self-destruct initiated.” and creates the batch file “%TEMP%\delete.bat”. This file repeatedly attempts to delete the malware’s executable, before deleting itself.

Local configuration file tampering

If the malware determines that the system it is on is a valid target, its first action is local file tampering. “IncreaseChlorineLevel()” checks a hardcoded list of configuration files associated with desalination, reverse osmosis, chlorine control, and water treatment OT/Industrial Control Systems (ICS).  As soon as it finds any one of these file present, it appends a fixed block of text to it and returns immediately.

The block of text appended to relevant configuration files.
Figure 13: The block of text appended to relevant configuration files.

The appended block of text contains the following entries: “Chlorine_Dose=10”, “Chlorine_Pump=ON”, “Chlorine_Flow=MAX”, “Chlorine_Valve=OPEN”, and “RO_Pressure=80”. Only if none of the hardcoded files are found does the malware proceed to its network-based OT discovery logic.

OT discovery and protocol logic

This section of the code attempts to identify devices on the local subnet, assign each one a protocol label, and then attempt protocol-specific communication. While the overall structure is consistent across protocols, the implementation quality varies significantly.

Figure 14: The ICS scanning function.

The discovery routine, “UZJctUZJctUZJct()”, obtains the local IPv4 address, reduces it to a /24 prefix, and iterates across hosts 1 through 255. For each host, it probes ports 502 (Modbus), 20000 (DNP3), and 102 (S7comm), which the code labels as “Modbus”, “DNP3”, and “S7” respectively if a valid response is received on the relevant port.

The probing is performed in parallel. For every “ip:port” combination, the code creates a task and attempts a TCP connection. The “100 ms” value in the probe routine is a per-connection timeout on “WaitOne(100, ...)”, rather than a delay between hosts or protocols. In practice, this results in a burst of short-lived OT-focused connection attempts across the local subnet.

Protocol validation and device classification

When a connection succeeds, the malware does not stop at the open port. It records the endpoint as an “ICSDevice” with an IP address, port, and protocol label. It then performs a second-stage validation by writing a NULL byte to the remote stream and reading the response that comes back.

For Modbus, the malware checks whether the first byte of the reply is between 1 and 255, for DNP3, it checks whether the first two bytes are “05 64”, and for S7comm, it checks whether the first byte is “03”. These checks are not advanced parsers, but they do show that the author understood the protocols well enough to add lightweight confirmation before sending follow-on data.

 The Modbus read request along with unfinished code for additional protocols.
Figure 15: The Modbus read request along with unfinished code for additional protocols.  

The most developed OT-specific logic is the Modbus-oriented path. In the function “IncreaseChlorineLevel(string targetIP, int targetPort, string parameter)”, the malware connects to the target and sends “01 03 00 00 00 0A”. It then reads the response and parses register values in pairs. The code then uses some basic logic to select a register index: for “Chlorine_Dose”, it looks for values greater than 0 and less than 1000; for “Turbine_Speed”, it looks for values greater than 100.

The Modbus command observed in the sample (01 03 00 00 00 0A) is a Read Holding Registers request. The first byte (0x01) represents the unit identifier, which in traditional Modbus RTU specifies the addressed slave device; in Modbus TCP, however, this value is often ignored or used only for gateway routing because device addressing is handled at the IP/TCP layer.

The second byte (0x03) is the Modbus function code indicating a Read Holding Registers request. The following two bytes (0x00 0x00) specify the starting register address, indicating that the read begins at address zero. The final two bytes (0x00 0A) define the number of registers to read, in this case ten consecutive registers. Taken together, the command requests the contents of the first ten holding registers from the target device and represents a valid, commonly used Modbus operation.

If a plausible register is found, the malware builds a six-byte Modbus write using function code “6” (Write)” and sets the value to 100 for “Chlorine_Dose”, or 0 for any other parameter. If no plausible register is found, it falls back to using hardcoded write frames. In the main malware path, however, the code only calls this function with “Chlorine_Dose".

If none of the ten registers meets the expected criteria, the malware does not abandon the operation. Instead, it defaults to a set of hardcoded Modbus write frames that specify predetermined register addresses and values. This behavior suggests that the attacker had only partial knowledge of the target environment. The initial register-scanning logic appears to be an attempt at dynamic discovery, while the fallback logic ensures that a write operation is still attempted even if that discovery fails.

Incomplete DNP3 and S7comm Logic

The DNP3 and S7comm branches appear much less complete. In “GetCommand()”, the DNP3 path returns the fixed byte sequence “05 64 0A 0C 01 02”, while the S7comm path returns “03 00 00 13 0E 00”. Neither sequence resembles a fully formed command for the respective protocol.

In the case of the S7comm section, the five byte‑ sequence found in the malware sample (05 00 1C 22 1E) most closely matches the beginning of an S7comm parameter block, specifically the header of a “WriteVar (0x05)” request, which is the S7comm equivalent of a Modbus register write operation. In the S7comm protocol, the first byte of a parameter block identifies the function code,  but the remaining bytes in this case do not form a valid item definition. A vaild S7 WriteVar parameter requires at least one item and a full 11-byte variable-specification structure. By comparison this 5‑ byte array is far too short to be a complete or usable command.

The zero item count (0x00) and the trailing three bytes appear to be either uninitialized data or the beginning of an incomplete address field. Together, these details suggest that the attacker likely intended to implement S7 WriteVar functionality, like the Modbus function, but left this portion of the code unfinished.

The DNP3 branch of the malware also appears to be only partially implemented. The byte sequence returned by the DNP3 path (05 64 0A 0C 01 02) begins with the correct two‑byte DNP3 link‑layer sync header (0x05 0x64) and includes additional bytes that resemble the early portion of a link‑layer header. However, the sequence is far too short to constitute a valid DNP3 frame. It lacks the required destination and source address fields, the 16‑bit CRC blocks, and any application‑layer payload in which DNP3 function code would reside. As a result, this fragment does not represent a meaningful DNP3 command.

The incomplete S7 and DNP3 fragments suggest that these protocol branches were still in a developmental or experimental state when the malware was compiled. Both contain protocol‑accurate prefixes, indicating an intent to implement multi‑protocol OT capabilities, however for reasons unknow, these sections were not fully implemented or could not be completed prior to deployment.

USB Propagation

The malware also includes a removable-media propagation mechanism. The “sdfsdfsfsdfsdfqw()” function scans for drives, selects those identified as removable, and copies the hidden payload to each one as “svchost.exe” if it is not already present. The copied executable is marked with the “Hidden” and “System” attributes to reduce visibility.

The malware then calls “CreateUSBShortcut()”, which uses “WScript.Shell” to create .lnk files for each file in the removable drive root. Each shortcut’s TargetPath is set to the hidden malware copy, the icon is set to “shell32.dll, 4” (this is the windows genericfile icon), and the original file is hidden. Were a victim to click this “file,” they would unknowingly run the malware.

Figure 14:The creation of the shortcut on the USB device.

Key Insights

ZionSiphon represents a notable, though incomplete, attempt to build malware capable of malicious interaction with OT systems targeting water treatment and desalination environments.

While many of ZionSiphon’s individual capabilities align with patterns commonly found in commodity malware, the combination of politically motivated messaging, Israel‑specific IP targeting, and an explicit focus on desalination‑related processes distinguishes it from purely opportunistic threats. The inclusion of Modbus sabotage logic, filesystem tampering targeting chlorine and pressure control, and subnet‑wide ICS scanning demonstrates a clear intent to interact directly with industrial processes controllers and to cause significant damage and potential harm, rather than merely disrupt IT endpoints.

At the same time, numerous implementation flaws, most notably the dysfunctional country‑validation logic and the placeholder DNP3 and S7comm components, suggest that analyzed version is either a development build, a prematurely deployed sample, or intentionally defanged for testing purposes. Despite these limitations, the overall structure of the code likely indicates a threat actor experimenting with multi‑protocol OT manipulation, persistence within operational networks, and removable‑media propagation techniques reminiscent of earlier ICS‑targeting campaigns.

Even in its unfinished state, ZionSiphon underscores a growing trend in which threat actors are increasingly experimenting with OT‑oriented malware and applying it to the targeting of critical infrastructure. Continued monitoring, rapid anomaly detection, and cross‑visibility between IT and OT environments remain essential for identifying early‑stage threats like this before they evolve into operationally viable attacks.

Credit to Calum Hall (Cyber Analyst)
Edited by Ryan Traill (Content Manager)

References

1.        https://www.virustotal.com/gui/file/07c3bbe60d47240df7152f72beb98ea373d9600946860bad12f7bc617a5d6f5f/details

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