# You Are the Exploit

Based on FBI/CISA Joint Advisory AA25-141B

Forget zero-days. LummaC2 doesn't need one. It asks you to press three keys -- and you launch it yourself. This is the anatomy of one of 2025's most active infostealers, seen through a defender's lens.

<table style="min-width: 611px;"><colgroup><col style="min-width: 25px;"><col style="width: 109px;"><col style="min-width: 25px;"><col style="width: 94px;"><col style="width: 56px;"><col style="width: 163px;"><col style="min-width: 25px;"><col style="width: 114px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p><strong>21,000+</strong></p></td><td colspan="1" rowspan="1" colwidth="109"><p>Marketplace log listings in Q2 2024 alone</p></td><td colspan="1" rowspan="1"><p><strong>71.7%</strong></p></td><td colspan="1" rowspan="1" colwidth="94"><p>Year-over-year growth in criminal forum listings</p></td><td colspan="1" rowspan="1" colwidth="56"><p><strong>2022</strong></p></td><td colspan="1" rowspan="1" colwidth="163"><p>First appeared on Russian-language cybercriminal forums</p></td><td colspan="1" rowspan="1"><p><strong>May 2025</strong></p></td><td colspan="1" rowspan="1" colwidth="114"><p>Latest confirmed activity (FBI/CISA advisory)</p></td></tr></tbody></table>

## **What even is LummaC2?**

LummaC2 is a Malware-as-a-Service (MaaS) infostealer -- meaning anyone with enough cryptocurrency and bad intent can rent it. Operators purchase access, configure what to steal, and deploy campaigns at scale without ever writing a line of malware code themselves.

Its power isn't technical sophistication. It's a ruthlessly modular design paired with a social engineering trick so simple it's almost embarrassing: it asks the victim to do all the work.

## **The ClickFix Attack: Three keystrokes to compromise**

The ClickFix technique is the infection vector that made Lumma dominant. Instead of silently exploiting a browser vulnerability, it exploits something much harder to patch: human trust.

<table style="min-width: 75px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p><strong>1</strong></p></td><td colspan="1" rowspan="1"><p><strong>User searches for software or a service</strong></p></td><td colspan="1" rowspan="1"><p>Attacker-controlled pages rank in search results, sometimes through malvertising or SEO poisoning.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>2</strong></p></td><td colspan="1" rowspan="1"><p><strong>User lands on a page with a fake CAPTCHA</strong></p></td><td colspan="1" rowspan="1"><p>Looks completely legitimate. Same reCAPTCHA styling. 'Verify you are human to continue.'</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>3</strong></p></td><td colspan="1" rowspan="1"><p><strong>Page silently writes a PowerShell command to the clipboard</strong></p></td><td colspan="1" rowspan="1"><p>JavaScript on the page sets the clipboard content invisibly. The user has no idea it's happened.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>4</strong></p></td><td colspan="1" rowspan="1"><p><strong>User is instructed: Win+R -&gt; Ctrl+V -&gt; Enter</strong></p></td><td colspan="1" rowspan="1"><p>Opens the Windows Run dialog, pastes the attacker's Base64-encoded command, and executes it. No exploit needed.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>5</strong></p></td><td colspan="1" rowspan="1"><p><strong>PowerShell fires, Lumma downloads and installs</strong></p></td><td colspan="1" rowspan="1"><p>A Base64-encoded PowerShell command fetches and launches the LummaC2 payload. The system is now compromised.</p></td></tr></tbody></table>

**DETECTION OPPORTUNITY**

Watch for powershell.exe spawning immediately after browser activity or Windows Run dialog usage. This behavior is unusual and can be caught with process-lineage monitoring -- even when the file hash is completely unknown.

From a detection engineering perspective, this is a textbook 'living off the land' technique. No suspicious binaries dropped at rest. No exploit shellcode. Just Windows doing exactly what it was designed to do -- at the attacker's direction.

## **Inside the malware: six execution stages**

Once active, Lumma doesn't spray and pray. It behaves like a well-engineered application, moving through distinct stages with a clean separation between delivery and instruction -- making it adaptable across campaigns.

<table style="min-width: 75px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p><strong>1</strong></p></td><td colspan="1" rowspan="1"><p><strong>Execute and load</strong></p></td><td colspan="1" rowspan="1"><p>Malware loads into memory. Initial checks and environment setup begin.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>2</strong></p></td><td colspan="1" rowspan="1"><p><strong>Decrypt internal strings</strong></p></td><td colspan="1" rowspan="1"><p>Encrypted strings -- domains, API names, paths -- are decrypted at runtime to evade static AV and EDR.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>3</strong></p></td><td colspan="1" rowspan="1"><p><strong>Discover active C2</strong></p></td><td colspan="1" rowspan="1"><p>Decrypts a list of C2 domains and sends POST requests until a live server responds. Stores the working domain.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>4</strong></p></td><td colspan="1" rowspan="1"><p><strong>Receive configuration</strong></p></td><td colspan="1" rowspan="1"><p>Downloads an encrypted JSON config from C2, parses opcodes, determines what to steal and how.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>5</strong></p></td><td colspan="1" rowspan="1"><p><strong>Collect data</strong></p></td><td colspan="1" rowspan="1"><p>Gathers browser data, cookies, passwords, crypto wallets, MFA details, screenshots -- per operator config.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>6</strong></p></td><td colspan="1" rowspan="1"><p><strong>Exfiltrate and exit</strong></p></td><td colspan="1" rowspan="1"><p>Compresses and encrypts stolen data, sends it via HTTP POST to C2. Can self-delete to erase evidence.</p></td></tr></tbody></table>

**ANALYST NOTE: THE DEVELOPER FAILSAFE**

Lumma checks the victim's username and computer name by hashing them and comparing against two hardcoded values. If they match -- likely the developer's own machine -- the malware terminates immediately. The algorithm is one-way, so analysts cannot reverse it to learn the attacker's own credentials. A deliberate, professional engineering choice.

## **Why session cookies are worth more than passwords**

Most people think credential theft means stealing passwords. Lumma knows better. The real prize in 2025 is the authenticated session cookie.

<table style="min-width: 75px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p><strong>1</strong></p></td><td colspan="1" rowspan="1"><p><strong>User logs into Microsoft 365</strong></p></td><td colspan="1" rowspan="1"><p>Standard login with valid credentials and MFA challenge completed.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>2</strong></p></td><td colspan="1" rowspan="1"><p><strong>Browser stores the session cookie</strong></p></td><td colspan="1" rowspan="1"><p>An authentication token is saved locally in the browser's credential store -- this is the target.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>3</strong></p></td><td colspan="1" rowspan="1"><p><strong>Lumma accesses browser storage and steals the cookie</strong></p></td><td colspan="1" rowspan="1"><p>Targets Chromium and Mozilla credential stores silently, without triggering any alert.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>4</strong></p></td><td colspan="1" rowspan="1"><p><strong>Attacker imports the stolen cookie into their own browser</strong></p></td><td colspan="1" rowspan="1"><p>No password needed. No MFA challenge triggered. The session is already authenticated.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>5</strong></p></td><td colspan="1" rowspan="1"><p><strong>Attacker is now inside the account</strong></p></td><td colspan="1" rowspan="1"><p>Email, files, contacts, calendar, integrations -- all exposed without a single login attempt.</p></td></tr></tbody></table>

This is why modern phishing-resistant MFA matters. Standard TOTP codes do not protect against session hijacking -- the attacker never needs to authenticate, because the session already is authenticated.

## **What else can it steal? The opcode menu**

Lumma's C2 sends JSON configurations with opcodes that tell it exactly what to do. Think of it as a task list the operator updates per campaign:

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p><strong>Opcode</strong></p></td><td colspan="1" rowspan="1"><p><strong>Behaviour</strong></p></td></tr><tr><td colspan="1" rowspan="1"><p>Opcode 0</p></td><td colspan="1" rowspan="1"><p>Generic file theft -- any path, extension, recursion depth, and file size the operator defines</p></td></tr><tr><td colspan="1" rowspan="1"><p>Opcode 1</p></td><td colspan="1" rowspan="1"><p>Chromium browser data -- history, cookies, passwords, autofill data, and extensions</p></td></tr><tr><td colspan="1" rowspan="1"><p>Opcode 2</p></td><td colspan="1" rowspan="1"><p>Mozilla browser data -- same as above, with a separate handler for Firefox profiles</p></td></tr><tr><td colspan="1" rowspan="1"><p>Opcode 3</p></td><td colspan="1" rowspan="1"><p>Download and execute a remote file -- via LoadLibraryW() or rundll32.exe</p></td></tr><tr><td colspan="1" rowspan="1"><p>"se": true</p></td><td colspan="1" rowspan="1"><p>Take a screenshot in BMP format and upload directly to C2</p></td></tr><tr><td colspan="1" rowspan="1"><p>"ad": true</p></td><td colspan="1" rowspan="1"><p>Self-delete -- wipe the executable and exit, leaving minimal forensic trace</p></td></tr></tbody></table>

**ANALYST NOTE: SERVER-SIDE FLEXIBILITY**

Because behavior is configured server-side, no two Lumma infections look the same. One campaign may only steal cookies. Another adds screenshot capability and drops a secondary payload. Traditional signature-based detection fails here entirely -- you need behavioral monitoring, not hash matching.

## **MITRE ATT&CK mapping**

Lumma maps cleanly to documented MITRE techniques -- useful for validating and stress-testing your existing detection coverage:

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p><strong>Technique</strong></p></td><td colspan="1" rowspan="1"><p><strong>Description</strong></p></td></tr><tr><td colspan="1" rowspan="1"><p>T1566</p></td><td colspan="1" rowspan="1"><p>Phishing -- initial delivery via spearphishing links and email attachments</p></td></tr><tr><td colspan="1" rowspan="1"><p>T1027</p></td><td colspan="1" rowspan="1"><p>Obfuscated files -- Base64 encoding of PowerShell commands to evade static analysis</p></td></tr><tr><td colspan="1" rowspan="1"><p>T1036</p></td><td colspan="1" rowspan="1"><p>Masquerading -- hidden inside spoofed or fake popular software packages</p></td></tr><tr><td colspan="1" rowspan="1"><p>T1140</p></td><td colspan="1" rowspan="1"><p>Deobfuscate/decode -- decrypts C2 domains at runtime, not embedded in the binary</p></td></tr><tr><td colspan="1" rowspan="1"><p>T1012</p></td><td colspan="1" rowspan="1"><p>Query registry -- hashes victim username and computer name via GetUserNameW/GetComputerNameW</p></td></tr><tr><td colspan="1" rowspan="1"><p>T1217</p></td><td colspan="1" rowspan="1"><p>Browser information discovery -- targeted collection of browser cookies, passwords, extensions</p></td></tr><tr><td colspan="1" rowspan="1"><p>T1071.001</p></td><td colspan="1" rowspan="1"><p>C2 over web protocols -- HTTP POST requests to dynamically resolved callback servers</p></td></tr><tr><td colspan="1" rowspan="1"><p>T1119</p></td><td colspan="1" rowspan="1"><p>Automated collection -- sweeps crypto wallets, credentials, screenshots, MFA tokens</p></td></tr><tr><td colspan="1" rowspan="1"><p>T1105</p></td><td colspan="1" rowspan="1"><p>Ingress tool transfer -- downloads additional payloads to compromised systems</p></td></tr><tr><td colspan="1" rowspan="1"><p>TA0010</p></td><td colspan="1" rowspan="1"><p>Exfiltration -- compressed, encrypted data sent to attacker-controlled infrastructure</p></td></tr></tbody></table>

## **How to actually defend against this**

IOCs -- domains, hashes -- are burned the moment they're published. Lumma rotates them constantly. The only durable defense is behavioral. Here's what the FBI and CISA recommend, and why each one works:

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p><strong>Control</strong></p></td><td colspan="1" rowspan="1"><p><strong>Why it works</strong></p></td></tr><tr><td colspan="1" rowspan="1"><p>Application allowlisting</p></td><td colspan="1" rowspan="1"><p>Blocks execution of anything not on an approved list. Catches portable executables that bypass AV -- even heavily obfuscated ones.</p></td></tr><tr><td colspan="1" rowspan="1"><p>Phishing-resistant MFA</p></td><td colspan="1" rowspan="1"><p>Move beyond TOTP. FIDO2/hardware keys cannot be bypassed by a stolen session cookie in the same way SMS or app codes can.</p></td></tr><tr><td colspan="1" rowspan="1"><p>Least privilege + account separation</p></td><td colspan="1" rowspan="1"><p>Standard users shouldn't have registry access or the ability to run arbitrary command-line processes.</p></td></tr><tr><td colspan="1" rowspan="1"><p>Log auditing</p></td><td colspan="1" rowspan="1"><p>Regularly review registry changes and access logs. Lumma leaves footprints -- catch it before exfiltration completes.</p></td></tr><tr><td colspan="1" rowspan="1"><p>Behavioral monitoring</p></td><td colspan="1" rowspan="1"><p>Alert on: powershell.exe spawned by a browser, mshta.exe in unusual chains, processes accessing credential stores then making outbound POST requests.</p></td></tr><tr><td colspan="1" rowspan="1"><p>Network segmentation</p></td><td colspan="1" rowspan="1"><p>DMZ or VPC isolation limits blast radius. Even if Lumma runs, it shouldn't reach sensitive systems without hitting a detection point.</p></td></tr></tbody></table>

**THE DEFENDER'S MINDSET SHIFT**

Stop chasing what Lumma looks like. Start watching how it behaves. Domains rotate. Hashes change. But 'a process accessed browser credential storage and immediately initiated external network communication' is a behavioral pattern that persists across every variant -- and that's where your detections need to live.

## **The bottom line**

LummaC2 isn't remarkable because of what it does technically. It's remarkable because it combined social engineering, a modular MaaS architecture, and session cookie theft into a scalable platform that thousands of low-sophistication threat actors can deploy effectively. The ClickFix technique bypasses every perimeter control by simply asking the user to be the exploit. Your EDR can't flag a user pressing Win+R. Your firewall can't block PowerShell that the user themselves launched. The detection surface has shifted -- and defenders still matching IOCs are already behind.

Sources: FBI & CISA Joint Cybersecurity Advisory AA25-141B (May 21, 2025) · Microsoft Threat Intelligence -- Lumma disruption and ecosystem analysis (May 2025) · MITRE ATT&CK Enterprise Framework v17 · ReliaQuest contribution acknowledged in advisory
