Skip to main content
Meet us at Black Hat USA 2026— Las Vegas, August 1–6Book a Meeting
Mallory
MalwareRansomwareUsed by 2 actorsExploits 1 CVE

GuLoader

Also known asCloudEyE

GuLoader is a shellcode-based downloader/loader malware family active since at least 2019 and still under active development. It is commonly memory-resident and is used to deliver a wide range of commodity malware, including Agent Tesla, NetWire, FormBook, NanoCore, Parallax RAT, Remcos, XLoader, LokiBot, 404Keylogger, AsyncRAT, VenomRAT, XWorm, Lumma, Vidar, and VIPKeylogger. Reported delivery vectors include phishing attachments and lures, embedded macros in malicious Word documents, NSIS self-extracting installers, VBScript- and PowerShell-based chains, malicious LNK/URL/WebDAV workflows, compromised websites using fake CAPTCHA/ClickFix social engineering, and exploitation of WinRAR CVE-2023-38831 via crafted archives.

Across reporting, GuLoader is associated with financially motivated cybercrime activity and has also appeared in broader intrusion chains used by groups including Bluebottle/OPERA1ER and campaigns attributed to Storm-0249 infrastructure delivery. It has targeted businesses, including Italian and international firms, banks in Francophone African countries, and general Windows users reached through phishing or compromised websites.

Technically, GuLoader commonly uses encrypted shellcode and executes largely in memory. Variants include VB/VB6 wrappers, VBScript-based loaders, and NSIS-packaged samples. It dynamically resolves APIs, decrypts shellcode in multiple stages, and can inject shellcode into a donor process created in a suspended state; RegAsm.exe has been specifically observed as a donor process, and other legitimate processes such as ieinstal.exe, aspnet_regbrowsers.exe, and aspnet_compiler.exe have appeared in related delivery chains. Observed injection and hollowing-related APIs and techniques include CreateProcessInternalW, NtMapViewOfSection, NtWriteVirtualMemory, WriteProcessMemory, MapViewOfSection, and NtResumeThread. Later-stage shellcode has been observed using WinINet APIs such as InternetOpenUrlA to contact command-and-control infrastructure and download follow-on payloads.

GuLoader incorporates extensive anti-analysis and anti-debugging features. Reported behaviors include anti-VM and anti-sandbox checks using ZwQueryVirtualMemory, CPUID hypervisor checks, RDTSC timing checks, EnumWindows window-count checks, QEMU artifact checks, EnumDeviceDrivers, and installed-product enumeration via MsiEnumProductsA/MsiGetProductInfo. Anti-debugging includes patching DbgBreakPoint, modifying DbgUiRemoteBreakin behavior, calling NtSetInformationThread with ThreadHideFromDebugger, checking debug registers DR0-DR5 for hardware breakpoints, and scanning for software breakpoint bytes such as 0xCC. Newer variants also use vectored exception handler (VEH)-based control-flow obfuscation, deliberately raising access violations, single-step exceptions, and int3 breakpoints, then altering EIP at runtime to hinder disassembly and debugging.

Observed infrastructure and indicators directly mentioned in the content include autum-path[.]vo8xalon[.]in[.]net, UNC path \autum-path[.]vo8xalon[.]in[.]net\05fe317c-0981-4de2-bc8a-930d369db441\ck-3d, 188[.]114[.]96[.]7, 188[.]114[.]97[.]7, bsc-testnet[.]drpc[.]org, data-seed-prebsc-1-s1[.]bnbchain[.]org, hxxp://178.73.192[.]15/ca1.exe, Google Drive URLs used to host shellcode/payloads, holzbrenzii[.]com, corwineagles[.]com, onionmail[.]org SMTP infrastructure, and sample hashes including d55259bcf47af7e645ab7b003aa2cd4071cb36c6, 5fcfdf0e241a0347f9ff9caa897649e7fe8f25757b39c61afddbe288202696d5, and 350c7cdc9d10c12ae1c490890975e387421616170f710ebbf9fa6d29fbf4b7dc. The content also notes GuLoader campaigns exfiltrating stolen data through SMTP, Telegram, and FTP when paired with delivered stealers such as Agent Tesla and VIPKeylogger.

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.

EXPLOITED CVES

Vulnerabilities exploited

1 CVE Mallory has correlated with this family across public research and vendor advisories. Each row links to the full Mallory page for that vulnerability.

1 CVES
CVE-2023-38831Arbitrary Code Execution in WinRAR Archive File HandlingExploited in the wild

Cybercriminals exploited this vulnerability to deliver various malware families, including DarkMe and GuLoader, by crafting ZIP archives with spoofed extensions, which were then distributed on trading forums. | Group-IB Threat Intelligence unit discovered a zero-day vulnerability, CVE-2023-38831, in WinRAR, a popular compression tool. Cybercriminals exploited this vulnerability to deliver various malware families, including DarkMe and GuLoader, by crafting ZIP archives with spoofed extensions.

via splunk researchresearch.splunk.com
THREAT ACTORS

Groups observed using it

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

View more details
Storm-0249

Earlier this April, the Redmond-based company warned of several phishing campaigns leveraging tax-related themes to deploy malware such as Latrodectus, AHKBot, GuLoader, and BruteRatel C4 (BRc4). The phishing pages, it added, were delivered via RaccoonO365, with one such campaign attributed to an initial access broker called Storm-0249.

via the hacker newsthehackernews.com
RATicate

"...Visual Basic loaders —including the Guloader malware dropper discovered by Proofpoint on December 2019."

via sophos threat researchnews.sophos.com
MITRE ATT&CK

Techniques & procedures

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

Resource Development

1 technique
T1583.006Web ServicesEvidence1

Proofpoint is tracking a cluster of cybercriminal threat activity leveraging Cloudflare Tunnels to deliver malware. Specifically, the activity abuses the TryCloudflare feature that allows an attacker to create a one-time tunnel without creating an account.

Initial Access

4 techniques
T1189Drive-by CompromiseEvidence1

The attack targets users who arrive at a legitimate-looking website through a Google search, with no phishing email or suspicious link involved... Malicious code hidden in the site’s WordPress backend quietly waits to activate under the right conditions.

T1199Trusted RelationshipEvidence1

The campaign chains a compromised WordPress site... Every layer is built to appear legitimate, giving most traditional defenses no reason to intervene.

T1566PhishingEvidence2

In most campaigns, messages contain a URL or attachment leading to an internet shortcut (.URL) file.

T1566.001Spearphishing AttachmentEvidence2

It’s most likely these files were delivered to victims via a spear-phishing email... In that case, the malware arrived in the form of a ZIP file containing an executable SCR file.

Execution

8 techniques
T1059.001PowerShellEvidence1

The purpose of this code is to call the PowerShell interpreter and pass it the code of the script collected in the “pa0” variable as a parameter.

T1059.005Visual BasicEvidence1

When executed, it establishes a connection to an external file share, typically via WebDAV, to download an LNK or VBS file.

T1059.006PythonEvidence1

When executed, the LNK/VBS executes a BAT or CMD file that downloads a Python installer package and a series of Python scripts leading to malware installation.

T1059.007JavaScriptEvidence1

The content repeatedly mentions malicious macros in Word/Excel documents, such as "enable macros," "embedded macros," and "macro-enabled documents."

T1129Shared ModulesEvidence1

The command calls rundll32.exe... pointing it to a remote DLL hosted by the attacker over a UNC path. The DLL loads directly into memory with no file written to disk.

T1204User ExecutionEvidence2

The overlay tells the user to press Win+R, Ctrl+V, and Enter... the victim runs it willingly, believing it to be a routine check.

T1204.002Malicious FileEvidence5

In some cases, the malware was named to trick the user into thinking it was a PDF file, e.g.: fiche de poste.exe ... fiche de candidature.pdf.exe

T1574Hijack Execution FlowEvidence1

An attacker can edit that struct in order to manipulate execution on that address by setting the RIP (on x64) register, when resuming from that exception. | On Windows, as specified in MSDN documentation, it is possible to programmatically handle a specific exception by registering a VECTORED_EXCEPTION_HANDLER (VEH), which will manage the execution to handle that condition.

Persistence

2 techniques
T1112Modify RegistryEvidence1

Across the content, malware repeatedly 'adds Registry Run keys', 'creates Registry entries', 'modifies the Windows Registry', or 'overwrites registry keys' to maintain persistence.

T1547.001Registry Run Keys / Startup FolderEvidence3

The content repeatedly describes malware and threat actors establishing persistence by adding values under HKCU/HKLM\Software\Microsoft\Windows\CurrentVersion\Run or RunOnce, and by placing executables, scripts, or .lnk files in the Startup folder. | Examples include AppleSeed creating 'HKCU\Software\Microsoft/Windows\CurrentVersion\RunOnce', AvosLocker executed via the RunOnce Registry key, NanoCore creating a RunOnce key, and Raspberry Robin setting a RunOnce key.

Privilege Escalation

4 techniques
T1055Process InjectionEvidence3

The RegAsm process will be spawned in a suspend mode which indicates process hollowing injection... This instruction will write a second shellcode to the RegAsm process.

T1055.001Dynamic-link Library InjectionEvidence1

The DLL loads directly into memory with no file written to disk and no prompt shown.

T1055.012Process HollowingEvidence1

The RegAsm process will be spawned in a suspend mode which indicates process hollowing injection... the first shellcode creates the RegAsm process and injects a second shellcode into it with a unique variation of the Process Hollowing injection.

T1547.001Registry Run Keys / Startup FolderEvidence3

The content repeatedly describes malware and threat actors establishing persistence by adding values under HKCU/HKLM\Software\Microsoft\Windows\CurrentVersion\Run or RunOnce, and by placing executables, scripts, or .lnk files in the Startup folder. | Examples include AppleSeed creating 'HKCU\Software\Microsoft/Windows\CurrentVersion\RunOnce', AvosLocker executed via the RunOnce Registry key, NanoCore creating a RunOnce key, and Raspberry Robin setting a RunOnce key.

Stealth

12 techniques
T1027.007Dynamic API ResolutionEvidence1

Next, we see a function named 602F54 ... responsible for accessing the process environment block (PEB) and returning an API call.

T1055Process InjectionEvidence3

The RegAsm process will be spawned in a suspend mode which indicates process hollowing injection... This instruction will write a second shellcode to the RegAsm process.

T1055.001Dynamic-link Library InjectionEvidence1

The DLL loads directly into memory with no file written to disk and no prompt shown.

T1055.012Process HollowingEvidence1

The RegAsm process will be spawned in a suspend mode which indicates process hollowing injection... the first shellcode creates the RegAsm process and injects a second shellcode into it with a unique variation of the Process Hollowing injection.

T1070.004File DeletionEvidence3

The content repeatedly describes threat actors and malware deleting files, tools, scripts, logs, droppers, staged data, and artifacts from compromised systems to cover tracks, remove evidence, or self-delete.

T1218.011Rundll32Evidence1

The command calls rundll32.exe, a trusted signed Windows tool... Because rundll32.exe is a Microsoft-signed binary, it clears SmartScreen without any warning.

T1497Virtualization/Sandbox EvasionEvidence1

Malware also uses this technique for anti-analysis, an issue we explored in a previous blog post about an advanced anti-analysis techniques discovered in GuLoader.

T1497.001System ChecksEvidence2

Now, this register holds the API call EnumWindows ... After we step over the call to EnumWindows, we see the line: cmp eax,c. Using this line the shellcode determines if there are at least 12 ... windows in the machine. If not, the process will be terminated. | Next, we see the function 602038, if we step over it and we’ll see the string “ C:\Program Files\qqa\qqa.exe ”. This is because 602038 functionality is to search whether the Qemu gues agent is located on the machine. | Inside the function 601F28, there is another routine that consists of two anti-analysis mechanisms. Time cheks using RDTSC (Read Time-Stamp Counter), and anti-VM using CPUID. | The function will use the API call ZwQueryVirtualMemory ... scan the process’s memory... Each one of them will represent a string that is related to a Virtual Machine product ... If one of these strings will be found ... the process will create the previously mentioned message box.

T1497.003Time Based ChecksEvidence1

Inside the function 601F28, there is another routine that consists of two anti-analysis mechanisms. Time cheks using RDTSC (Read Time-Stamp Counter), and anti-VM using CPUID.

T1564.001Hidden Files and DirectoriesEvidence1

the script allocates 2 memory areas, downloads the data from the link to Google Drive, and saves it to a temporary file “%APPDATA%\Umig.For”.

T1574Hijack Execution FlowEvidence1

An attacker can edit that struct in order to manipulate execution on that address by setting the RIP (on x64) register, when resuming from that exception. | On Windows, as specified in MSDN documentation, it is possible to programmatically handle a specific exception by registering a VECTORED_EXCEPTION_HANDLER (VEH), which will manage the execution to handle that condition.

T1622Debugger EvasionEvidence1

In the next two calls, we see a call to 602F54 which resolves NtSetInformationThread... The second argument is ThreadHideFromDebugger (11), which in this case will cause the process to crash if it's working under a debugger. | In its first lines, the shellcode gets the function DbgBreakPoint ... writes the byte 90 into it... Then, the shellcode will do the same with DbgUiRemoteBreaking ... every time a breakpoint will be happening the process will be terminated. | In this technique, the shellcode will get the API call to be executed from the EAX register ... and will inspect if any software breakpoints assign to it. If it has any software breakpoint, it will have one of the breakpoint opcodes(for example, 0xCC which means INT 3). | The shellcode will compare any of these registers to the number 0, if one of them is not 0 that means there is a hardware breakpoint. In this case, the shellcode will jump ... and the process will be terminated.

Defense Impairment

1 technique
T1112Modify RegistryEvidence1

Across the content, malware repeatedly 'adds Registry Run keys', 'creates Registry entries', 'modifies the Windows Registry', or 'overwrites registry keys' to maintain persistence.

Discovery

5 techniques
T1497Virtualization/Sandbox EvasionEvidence1

Malware also uses this technique for anti-analysis, an issue we explored in a previous blog post about an advanced anti-analysis techniques discovered in GuLoader.

T1497.001System ChecksEvidence2

Now, this register holds the API call EnumWindows ... After we step over the call to EnumWindows, we see the line: cmp eax,c. Using this line the shellcode determines if there are at least 12 ... windows in the machine. If not, the process will be terminated. | Next, we see the function 602038, if we step over it and we’ll see the string “ C:\Program Files\qqa\qqa.exe ”. This is because 602038 functionality is to search whether the Qemu gues agent is located on the machine. | Inside the function 601F28, there is another routine that consists of two anti-analysis mechanisms. Time cheks using RDTSC (Read Time-Stamp Counter), and anti-VM using CPUID. | The function will use the API call ZwQueryVirtualMemory ... scan the process’s memory... Each one of them will represent a string that is related to a Virtual Machine product ... If one of these strings will be found ... the process will create the previously mentioned message box.

T1497.003Time Based ChecksEvidence1

Inside the function 601F28, there is another routine that consists of two anti-analysis mechanisms. Time cheks using RDTSC (Read Time-Stamp Counter), and anti-VM using CPUID.

T1518Software DiscoveryEvidence1

Using other pre-computed hashes, the shellcode searches for installed products with the API MsiEnumProducA and MsiGetProductInfo.

T1622Debugger EvasionEvidence1

In the next two calls, we see a call to 602F54 which resolves NtSetInformationThread... The second argument is ThreadHideFromDebugger (11), which in this case will cause the process to crash if it's working under a debugger. | In its first lines, the shellcode gets the function DbgBreakPoint ... writes the byte 90 into it... Then, the shellcode will do the same with DbgUiRemoteBreaking ... every time a breakpoint will be happening the process will be terminated. | In this technique, the shellcode will get the API call to be executed from the EAX register ... and will inspect if any software breakpoints assign to it. If it has any software breakpoint, it will have one of the breakpoint opcodes(for example, 0xCC which means INT 3). | The shellcode will compare any of these registers to the number 0, if one of them is not 0 that means there is a hardware breakpoint. In this case, the shellcode will jump ... and the process will be terminated.

Command and Control

2 techniques
T1071.001Web ProtocolsEvidence1

The content repeatedly describes threat actors, malware, and campaigns using HTTP and/or HTTPS for command and control, including examples such as BlackEnergy communicating with C2 over HTTP POST requests and many other families using HTTP/S for C2.

T1105Ingress Tool TransferEvidence6

First, we see a call to a location in the stack ... that will execute the function InternetOpenUrlA, we also see the C2 it will use... the second shellcode downloads further malware.

Exfiltration

1 technique
T1048Exfiltration Over Alternative ProtocolEvidence1

When executed, it establishes a connection to an external file share, typically via WebDAV, to download an LNK or VBS file.

Impact

1 technique
T1561Disk WipeEvidence1

the job-themed malware in July was observed in paths suggesting it had been mounted as CD-ROMs... it could also be that a malicious ISO file was delivered to victims and mounted.

INDICATORS OF COMPROMISE

IOCs tracked for this family

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

View more in app
Network
14 tracked

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

Hashes
38 tracked

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

Other
7 tracked

Other indicator types observed in public reporting.

TypeValueLatest sighting
domain●●●●●●●●●●●●View more in app2 days ago
ip.v4●●●●●●●●●●●●View more in app11 days ago
domain●●●●●●●●●●●●View more in app11 days ago
domain●●●●●●●●●●●●View more in app11 days ago
hash.md5●●●●●●●●●●●●View more in app11 days ago
hash.sha256●●●●●●●●●●●●View more in app11 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 matching59

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

Threat actor attribution2

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

Exploited vulnerabilities1

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 mapping31

Every documented technique, ranked by evidence weight.

Researcher chatter

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