TOLLBOOTH - What's Yours, IIS Mine - Elastic Security Labs
TOLLBOOTH - What's Yours, IIS Mine - Elastic Security Labs
21 OCTOBER 2025
DANIEL STEPANIC • JIA YU CHAN • SALIM BITAM • SETH GOODWIN • ANDREW PEASE •
BRAXTON WILLIAMS
Introduction
module, whichSearch
elastic.co we areLabscalling TOLLBOOTH.
Observability Labs During this time, we observed a Godzilla-
forked webshell framework, the use of the Remote Monitoring and Management (RMM)
tool GotoHTTP, along with a malicious driver used to conceal their activity. The threat
actor exploited a misconfigured IIS web server that used ASP.NET machine keys found in
public resources, such as Microsoft’s documentation or StackOverflow support pages.
A similar chain of events was first reported by Microsoft in February, earlier this year. Our
team believes this is the continuation of the same threat activity that AhnLab also detailed
in April, based on similar malware and behaviors. During this event, we were able to
leverage our partnership with Texas A&M System Cybersecurity to collect insights around
the activity. Additionally, through collaboration with Validin, leveraging their global
scanning infrastructure, we’ve determined that organizations worldwide have been
impacted by this campaign. The following report will detail the events and tooling used in
this activity cluster, known as REF3927. Our hope is to raise more awareness of this
activity among defenders and organizations, as it is actively being abused at a global
scale.
Key takeaways
Threat actors are abusing misconfigured IIS servers using publicly exposed machine
keys
Post-compromise behaviors include using a malicious driver, remote monitoring
tooling, credential dumping, webshell deployment, and IIS malware
Threat actors adapted the open source “Hidden” rootkit project to hide their
presence
The main objective appears to be to install an IIS backdoor, called TOLLBOOTH, that
includes SEO cloaking and webshell capabilities
This campaign included large-scale exploitation across geographies and industry
verticals
Campaign Overview
Attack vector
Last month, Elastic Security Labs and Texas A&M System Cybersecurity investigated an
intrusion involving a misconfigured Windows IIS server. This was directly related to a
server configured with ASP.NET machine keys that were previously published on the
https://www.elastic.co/security-labs/tollbooth 2/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Internet. Machine
elastic.co Searchkeys
Labsused in ASP.NET
Observability Labsapplications refer to cryptographic keys used to
encrypt and validate data. These keys are composed of two parts, ValidationKey and
DecryptionKey , which are used to secure ASP.NET features such as ViewState and
authentication cookies.
https://www.elastic.co/security-labs/tollbooth 3/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Post-compromise activity
Upon initial access through ViewState injection, REF3927 was observed deploying
webshells, including a Godzilla shell framework, to facilitate persistent access. They then
enumerated privileges and attempted (unsuccessfully) to create their own user accounts.
When account creation attempts failed, the actor then uploaded and executed the
GotoHTTP Remote Monitoring and Management (RMM) tool. The threat actor created an
Administrator account and attempted to dump credentials using Mimikatz, but this was
prevented by Elastic Defend.
https://www.elastic.co/security-labs/tollbooth 4/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
ElasticLabs
elastic.co Search DefendObservability
alerting showing
Labs hands-on post-compromise activity
With attempts to further expand the scope of the intrusion blocked, the threat actor
deployed their traffic hijacking IIS Module, TOLLBOOTH, as a means to monetize their
access. The actor also attempted to deploy a modified version of the open-source Hidden
rootkit to obfuscate their malware. In the observed intrusion, Elastic Defend prevented
both TOLLBOOTH and the rootkit from being executed.
One of the main tools used by this group is a Godzilla-forked framework called Z-
Godzilla_ekp written by ekkoo-z. This tool piggybacks off the previous Godzilla project
by adding new features such as an AMSI bypass plugin and masquerading its network
traffic to appear more legitimate. This toolkit allows operators to generate ASP.NET, Java,
C#, and PHP payloads, connect to targets, and provides different encryption options to
hide network traffic. This framework uses a plugin system driven by a GUI with many
features, including:
Discovery/enumeration capabilities
Privilege escalation techniques
Command execution/file execution
Shellcode loader, meterpreter, in-memory PE execution
File management, zipping utility
https://www.elastic.co/security-labs/tollbooth 5/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Cred stealing
elastic.co Searchplugin
Labs ( Observability
lemon ) - Retrieves
Labs FileZilla, Navicat, WinSCP, and Xmanager
credentials
Browser password scraping
Port scanning, HTTP proxy configuration, note-taking
Below is a network traffic example showing the operator traffic to the webshell
( error.aspx ) using Z-Godzilla_ekp . The webshell will take the Base64-encoded AES-
encrypted data from the HTTP POST request, then execute the .NET assembly in-
memory. These requests are disguised by embedding the encrypted data in HTTP POST
parameters in order to blend in as normal network traffic.
https://www.elastic.co/security-labs/tollbooth 6/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Rootkit analysis
The attacker hid their presence on the infected machine by deploying a kernel rootkit.
This rootkit works in conjunction with a userland application named HijackDriverManager,
whose interface strings are written in Chinese, to interact with the driver. For this analysis,
we examined both the malicious rootkit and the code from the original “Hidden” open-
source project from which it was derived. Internally, we are calling the rootkit
HIDDENDRIVER and the userland application HIDDENCLI .
This malicious software is a modified version of the open source rootkit Hidden, which
has been available on GitHub for years. The malware author made minor modifications
before compilation. For example, the rootkit uses Direct Kernel Object Manipulation
(DKOM) to hide its presence and maintain persistence on the compromised system. The
compiled driver still has “hidden” within the compilation path string, indicating that they
used the “Hidden” rootkit project.
https://www.elastic.co/security-labs/tollbooth 7/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
InitializeKernelAnalyzer
InitializePsMonitor
InitializeFSMiniFilter
InitializeRegistryFilter
InitializeDevice
InitializeStealthMode
To prepare its internal components before populating its driver object and associated
fields, such as major functions.
The following sections will elaborate on each of these seven critical initialization functions,
detailing their purpose.
InitializeConfigs
The rootkit's initial action is to run the InitializeConfigs function. This function's sole
purpose is to read the rootkit's configuration from the driver's service key in the Windows
registry, which is populated by the userland application. These values are extracted and
put in global configuration variables that will be later used by the rootkit.
https://www.elastic.co/security-labs/tollbooth 8/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
The elastic.co
following Search
table summarizes the configuration
Labs Observability Labs parameters that the rootkit extracts
from the registry:
InitializeKernelAnalyzer
https://www.elastic.co/security-labs/tollbooth 9/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Its purpose
elastic.co is Search
to dynamically scan theLabs
Labs Observability kernel memory to find the addresses of the
PspCidTable and ActiveProcessLinks that are needed.
The PspCidTable is the kernel's structure that serves as a table for process and thread
IDs, while ActiveProcessLinks under the _EPROCESS structure serves as a doubly-
linked list connecting all currently running processes. It allows the system to track and
traverse all active processes. By removing entries from this list, it is possible to hide
processes from enumeration tools like Process Explorer.
LookForPspCidTable
It searches for the address by disassembling the function
PspCidTable
PsLookupProcessByProcessId with the library Zydis and parsing it.
https://www.elastic.co/security-labs/tollbooth 10/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
It firstelastic.co
initializesSearch
threeLabsAVLObservability
tree structures
Labs to hold information (rules) for excluding,
protecting, and hiding processes. It uses RtlInitializeGenericTableAvl for high-speed
lookups and populates them with data from the configuration. It then sets up different
kernel callbacks to monitor the system using the set of rules.
Registering object manager callback with (ObRegisterCallbacks)
This hook registers the ProcessPreCallback and ThreadPreCallback functions. The
kernel's Object Manager executes this code before it completes any request to create or
duplicate a handle to a process or thread.
When a process tries to get a handle on another process, the callback function
ProcessPreCallback is called. It will first check if the destination process is a protected
process (in the list). If it is the case, instead of not granting access, it will simply
downgrade its rights over the protected process with the access set to SYNCHRONIZE |
PROCESS_QUERY_LIMITED_INFORMATION .
This will ensure that processes cannot interact with/inspect, or kill the protected process.
The same mechanism applies to threads.
Process Creation Callback(PsSetCreateProcessNotifyRoutineEx)
The rootkit registers a callback with the PsSetCreateProcessNotifyRoutineEx API on
process creation. When a new process is launched, this callback runs a function
CheckProcessFlags that checks the process’s image against the configured list of image
paths. It then creates an entry for this new process in its internal tracking table, setting its
excluded , protected , and hidden flags accordingly.
When the image is loaded, the callback checks the postponeHiding flag; if set, it calls
UnlinkProcessFromCidTable to remove it from the master process ID table
( PspCidTable ).
InitializeFSMiniFilter
The function defines its capabilities in the FilterRegistration
structure(FLT_REGISTRATION) . This structure tells the operating system which functions
to call for which types of file system operations. It registers callbacks for the following
requests:
IRP_MJ_CREATE : Intercepts any attempt to open or create a file or directory.
will change
elastic.co theSearch
operation
Labs result of theLabsIRP request to STATUS_NO_SUCH_FILE , indicating to
Observability
the requesting process that the file does not exist, except if the process is included in the
excluded list.
FltDirCtrlPostOperation(IRP_MJ_DIRECTORY_CONTROL)
This is a post-operation callback; the implemented hook essentially intercepts the
directory listening generated by the system and modifies it by removing any files listed as
hidden.
InitializeRegistryFilter
After concealing its processes and files, the rootkit's next step is to erase entries from the
Windows Registry. The InitializeRegistryFilter function accomplishes this by
installing a registry filtering callback to intercept and modify registry operations.
It registers a callback using the CmRegisterCallbackEx API, using the same principle as
with files. If the registry key or value is in the hidden registry list, the callback function will
return the status STATUS_NOT_FOUND .
InitializeDevice
The InitializeDevice function does the driver initialization needed, and it sets up an
IOCTL communication so that the userland application can communicate with it directly
The following is a table describing each IOCTL command handled by the driver.
https://www.elastic.co/security-labs/tollbooth 13/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
IOCTLelastic.co
commandSearch Labs Observability Labs Description
HID_IOCTL_REMOVE_ALL_HIDDEN_OBJECTS Remove all hidden objects for a specific object
type(registry keys/values, files, directories).
HID_IOCTL_ADD_OBJECT Adds a new rule to automatically hide, protect, or
exclude a process based on its image path.
HID_IOCTL_GET_OBJECT_STATE Queries the current state (hidden, protected, or
excluded) of a specific running process by its
PID.
HID_IOCTL_SET_OBJECT_STATE This command modifies the state (hidden,
protected, or excluded) of a specific running
process, identified by its PID.
HID_IOCTL_REMOVE_OBJECT Removes a single process rule (hide, protect, or
exclude) by its unique ID.
HID_IOCTL_REMOVE_ALL_OBJECTS This command clears all process states and
image rules of a specific type.
InitializeStealthMode
After successfully setting up its configuration, process callbacks, and file system filters,
the rootkit executes its final initialization routine: InitializeStealthMode . If the
configuration flag Kbj_YinshenMode is enabled, it will hide every artifact associated with
the rootkit, including registry keys, the .sys file, and other related components, using
the same techniques described above.
Code Variations
While the malware is heavily based on the HIDDENDRIVER source code, our analysis
identified several minor alterations. The following section breaks down the notable code
differences we observed.
The original code in the IsProcessExcluded function consistently excludes the system
process (PID 4) from the rootkit's operations. However, the malicious rootkit has an
exclusion list for additional process names, as illustrated in the provided screenshot.
https://www.elastic.co/security-labs/tollbooth 14/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
The original code's callback for filtering system information (including files, directories,
and registries) used the IsDriverEnabled function to verify if the driver functionalities
were enabled. However, the observed rootkit introduced an additional, automatic whitelist
check for processes with the image name hijack, which corresponds to the userland
application.
https://www.elastic.co/security-labs/tollbooth 15/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
RMM usage
RMMs continue to increase in popularity for use at multiple points of the cyber kill chain
and by various threat actors. Most anti-malware vendors do not consider them malicious
in isolation and therefore do not block them outright. RMM C2 also only flows to legitimate
RMM provider websites, and therefore has the same dynamics for network-based
protections and monitoring.
https://www.elastic.co/security-labs/tollbooth 16/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
The threat actor was observed deploying both 32-bit and 64-bit versions of TOLLBOOTH,
a malicious IIS module. TOLLBOOTH has been previously discussed by Ahnlab and the
security researcher, @Azaka. Some of the malware’s key capabilities include SEO
cloaking, a management channel, and a publicly accessible webshell. We discovered both
native and .NET managed versions being deployed in the wild.
Malware Config Structure
TOLLBOOTH retrieves its configuration dynamically from
hxxps://c[.]cseo99[.]com/config/<victim_HTTP_host_value>.json, and the creation
of each victim’s JSON config file is handled by the threat actor’s infrastructure. However,
hxxps://c[.]cseo99[.]com/config/127.0.0.1.json responded, showing a lack of anti-
analysis checks - allowing us to retrieve a copy of a config file for analysis. It can be
viewed in this GitHub Gist, and we will reference how some of the fields are used as
appropriate.
For native modules, the config and other temporary cache files are Gzip-compressed and
stored locally at a hardcoded path C:\\Windows\\Temp\\_FAB234CD3-09434-8898D-BFFC-
4E23123DF2C\\ . For the managed module, these are AES-encrypted with key
YourSecretKey123 and IV 0123456789ABCDEF , Gzip-compressed, and stored at
C:\\Windows\\Temp\\AcpLogs\\ .
Webshell
TOLLBOOTH exposes a webshell at the /mywebdll path, requiring a password of
hack123456! for file uploads and execution of commands. Form submission sends a
POST request to the /scjg endpoint.
https://www.elastic.co/security-labs/tollbooth 17/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Webshell interface
The password is hardcoded in the binary, and this webshell feature is present in both
v1.6.0 and v1.6.1 of the native version of TOLLBOOTH.
The file upload functionality contains a bug that stems from its sequential, order-
dependent parsing of multipart/form-data fields. The standard HTML form is
structured such that the file input field appears before the directory input fields. The
server processing the request parts attempts to handle the file data before the destination
directory, creating a dependency conflict that causes standard uploads to fail. By
manually reordering the multipart/form-data parts, a successful file upload can still be
triggered.
https://www.elastic.co/security-labs/tollbooth 18/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Management Channel
TOLLBOOTH exposes a few additional endpoints for C2 operators’ management/debug
purposes. They are only accessible by setting the User Agent to one of the following
(though it is configurable):
Hijackbot
gooqlebot
Googlebot/2.;
Googlébot
Googlêbot
Googlebót;
Googlebôt;
Googlebõt;
Googlèbot;
Googlëbot;
Binqbot
bingbot/2.;
Bíngbot
Bìngbot
Bîngbot
Bïngbot
Bingbót;
Bingbôt;
Bingbõt;
The /health endpoint provides a quick way to assess the module’s health, returning the
file name to access the config stored at c[.]cseo99[.]com , disk space information, the
module's installation path, and the version of TOLLBOOTH.
https://www.elastic.co/security-labs/tollbooth 19/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
The /debug endpoint provides more details, including a summary of the configuration,
cache directory, HTTP request information, etc.
/debug content
https://www.elastic.co/security-labs/tollbooth 20/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
The elastic.co
parsed configuration
Search Labs isObservability
accessibleLabsat /conf .
/conf content
The /clean endpoint allows the operator to clear the current configuration by deleting
the config files stored locally ( clean?type=conf ) in order to update them on the victim
server, clear any other temporary caches the malware uses ( clean?type=conf ), or clear
both - everything in the C:\\Windows\\Temp\\_FAB234CD3-09434-8898D-BFFC-
4E23123DF2C\\ path ( clean?type=all ).
SEO Cloaking
The main goal of TOLLBOOTH is SEO cloaking, a process that involves presenting
keyword-optimized content to search engine crawlers, while concealing it from casual
user browsing, to achieve higher search rankings for the page. Once a human visitor clicks
the link from the boosted search results, the malware redirects them to a malicious or
fraudulent page. This tactic is an effective way to increase traffic to malicious pages
compared to alternatives like direct phishing, because users trust search engine results
they request more than unsolicited emails.
TOLLBOOTH differentiates between bots and visitors by checking the User Agent and the
Referer headers for values defined in the config.
Both the native and the managed modules are implemented almost identically. The only
difference is that native modules v1.6.0 and v1.6.1 check both the User Agent and
Referer against the seoGroupRefererMatchRules list, and the .NET module v1.6.1
checks the User Agent against the seoGroupUaMatchRules list and Referer against the
seoGroupRefererMatchRules list.
wouldelastic.co
have a Referer matchObservability
Search Labs but not aLabs
User Agent match. Looking at the fallback list
containing both bing and yahoo suggests that those search engines were targeted in
the past as well.
Functions and fallback lists for User Agent and Referer checks
The code snippet below is responsible for building a page filled with keyword-stuffed links
that search engine crawlers will see.
The module constructs a link farm in two phases. First, to build internal link density, it
retrieves a list of random keywords from resource URIs defined in the
affLinkMainWordSeoResArr configuration field. For each keyword, it generates a "local
link" pointing to another SEO page on the same compromised website. Next, it builds the
external network by retrieving "affiliate link resources" from the affLinkSeoResArr field.
https://www.elastic.co/security-labs/tollbooth 22/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Theseelastic.co
resources areLabs
Search a list Observability
of URIs pointing
Labs to SEO pages on other external domains that
are also infected with TOLLBOOTH. The URIs look like
hxxps://f[.]fseo99[.]com/<date>/<md5_file_hash><.txt/.html> in the configuration.
The module then creates hyperlinks from the current site to these other victims. This
technique, known as link farming, is designed to artificially inflate search engine rankings
across the entire network of compromised sites.
Below is an example of what a crawler bot would see when visiting the landing page of a
web server infected with TOLLBOOTH.
URL path prefixes to the SEO pages contain words or phrases from the
seoGroupUrlMatchRules config field. This is also referenced in the site redirection logic
targeting visitors. These are currently:
stock
invest
summary
datamining
market-outlook
bullish-on
news-overview
news-volatility
video/
app/
https://www.elastic.co/security-labs/tollbooth 23/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
elastic.co
blank/ Search Labs Observability Labs
Templates and content for SEO pages are also externally retrieved from URIs that look like
hxxps://f[.]fseo99[.]com/<date>/<md5_file_hash><.txt/.html> in the config. Here is
an example of what one of the SEO pages looks like:
If the communication fails for any reason, TOLLBOOTH falls back to constructing a new
URL pointing to the same C2 endpoint but instead encodes the visitor’s information
directly into the URL as GET parameters. Finally, the chosen URL - either from the
successful C2 response or the fallback - is embedded into a JavaScript snippet
( window.location.href ) and sent to the victim’s browser, forcing an immediate
redirection.
Page Hijacker
For the native modules, if the URI path contains xlb , TOLLBOOTH responds with a
custom loader page containing a script tag. This script's src attribute points to a
dynamically generated URL, mlxya[.]oss-
accelerate[.]aliyuncs[.]com/<12_random_alphanumeric_characters> , which is used to
retrieve an obfuscated next-stage JavaScript payload.
https://www.elastic.co/security-labs/tollbooth 25/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
https://www.elastic.co/security-labs/tollbooth 26/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Campaign targeting
While conducting the analysis of TOLLBOOTH and its associated webshell, we identified
multiple mechanisms to identify additional victims through active and semi-passive
collection methods.
We then partnered with @SreekarMad at Validin to leverage his expertise and their
scanning infrastructure in an effort to develop a more comprehensive list of victims.
At the time of publication, 571 IIS server victims were identified with active TOLLBOOTH
infections.
https://www.elastic.co/security-labs/tollbooth 27/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
These servers are globally distributed (with one major exception, described below), and
do not fit into any neat industry vertical buckets. For these reasons, along with the sheer
scale of the operation, we are led to believe that victim selection is untargeted and
leverages automated scanning to identify IIS servers reusing publicly listed machine keys.
The collaboration with Validin and Texas A&M System Cybersecurity yielded a robust
amount of metadata about the additional TOLLBOOTH-infected victims.
https://www.elastic.co/security-labs/tollbooth 28/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Automated exploitation may also be employed, but TAMUS Cybersecurity noted that the
post-exploitation activity appeared to be interactive.
Validin discovered other potentially infected domains linked through the SEO farming link
configs, but when checked for the webshell interface, found it inaccessible on some. After
conducting a deeper manual investigation into these servers, we determined that they had
been, in fact, TOLLBOOTH-infected, but either the owners remediated the issue or the
attackers backed themselves out.
https://www.elastic.co/security-labs/tollbooth 29/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Subsequent
elastic.co scanning
Search Labsrevealed that many
Observability Labs of the same servers were reinfected. We have
taken this to indicate that remediation was incomplete. One plausible explanation is that
merely removing the threat does not close the vulnerability left open by the machine key
reuse. So, victims who omit this final step are likely to be reinfected through the same
mechanism. See the “Remediating REF3927” section below for additional details.
Geography
The geographic distribution of victims notably excludes any servers within China’s
borders. One server was identified in Hong Kong, but it was hosting a .co.uk domain.
This probable geofencing aligns with behavioral patterns from other criminal threats,
where they implement mechanisms to ensure they do not target systems in their home
countries. This mitigates their risk of prosecution as the governments of these countries
tend to turn a blind eye toward, if not outright endorse, criminal activity targeting
foreigners.
Diamond model
Elastic Security Labs utilizes the Diamond Model to describe high-level relationships
between adversaries, capabilities, infrastructure, and victims of intrusions. While the
Diamond Model is most commonly used with single intrusions and leverages Activity
Threading (section 8) to create relationships between incidents, an adversary-centered
(section 7.1.4) approach allows for a single diamond.
elastic.co SearchREF3927
Remediating Labs Observability Labs
Remediation of the infection itself can be completed through industry best practices, such
as reverting to a clean state and addressing malware and persistence mechanisms.
However, in the face of potential automated scanning and exploitation, the vulnerability of
the reused machine key remains for whichever bad actor wants to take over the server.
Therefore, remediation must include rotation of machine keys to a new, properly
generated key.
Conclusion
The REF3927 campaign highlights how a simple configuration error, such as using a
publicly exposed machine key, can lead to significant compromise. In this event, Texas
A&M University System Cybersecurity and the affected customer took swift action to
remediate the server, but based on our research, there continue to be other victims
targeted using the same techniques.
The threat actor’s integration of open-source tooling, RMM software, and a malicious
driver is an effective combination of techniques that have proven successful in their
operations. Administrators of publicly exposed IIS environments should audit their
machine key configurations, ensure robust security logging, and leverage endpoint
detection solutions such as Elastic Defend during potential incidents.
Detection logic
Detection rules
Web Shell Detection: Script Process Child of Common Web Processes
Prevention rules
Suspicious Execution via Windows Services
Potential Shellcode Injection via a WebShell
Execution from Suspicious Directory
YARA signatures
https://www.elastic.co/security-labs/tollbooth 31/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Elastic SecuritySearch
elastic.co has Labs
createdObservability
the following
Labs YARA rules to prevent the malware observed in
REF3927:
Windows.Trojan.Tollbooth
Windows.Trojan.HiddenCli
Windows.Trojan.HiddenDriver
Elastic uses the MITRE ATT&CK framework to document common tactics, techniques,
and procedures that threats use against enterprise networks.
Tactics
Tactics represent the why of a technique or sub-technique. It is the adversary’s tactical
goal: the reason for performing an action.
Initial Access
Execution
Defense Evasion
Credential Access
Collection
Exfiltration
Techniques
Techniques represent how an adversary achieves a tactical goal by performing an action.
Exploit Public-Facing Application
Server Software Component: IIS Components
OS Credential Dumping
Hide Artifacts: Hidden Files and Directories
Data from Local System
Rootkit
https://www.elastic.co/security-labs/tollbooth 32/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Valid Accounts
elastic.co Search Labs Observability Labs
Observations
https://www.elastic.co/security-labs/tollbooth 33/35
29/10/2025, 17:38 TOLLBOOTH: What's yours, IIS mine — Elastic Security Labs
Observable
elastic.co Search LabsType
Observability Labs Name Reference
c[.]cseo99[.]com domain-name TOLLBOOTH config
server
f[.]fseo99[.]com domain-name TOLLBOOTH SEO
farming config server
api[.]aseo99[.]com domain-name TOLLBOOTH crawler
reporting & page
redirector API
mlxya[.]oss- domain-name TOLLBOOTH page
accelerate.aliyuncs[. hijacker payload
]com hosting server
asf-sikkeiyjga[.]cn- domain-name TOLLBOOTH page
shenzhen[.]fcapp.run hijacker content-
fetching server
ask-bdtj- domain-name TOLLBOOTH page
selohjszlw[.]cn- hijacker content-
shenzhen[.]fcapp[.]ru fetching server
n
Observable
elastic.co Search LabsType
Observability Labs Name Reference
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/121.0.0.0
Safari/537.36
References
Addendum
HarfangLab posted their draft research on this threat the same day this post was
released. In it, there are additional complementary insights:
https://x.com/securechicken/status/1980715257791193420
https://harfanglab.io/insidethelab/rudepanda-owns-iis-servers-like-2003/
https://www.elastic.co/security-labs/tollbooth 35/35