Alpha Cyber

Inside Luca Stealer: A Technical Decomposition of the Rust-Based Malware

Beyond the Binary: How Luca Stealer Uses the Rust Runtime to Slip Past Detection A 4.6 MB Rust PE scored 100/100 with heavy anti-analysis and a Telegram exfiltration channel, behaviour that lines up with Luca Stealer, the leaked Rust infostealer.

Alpha Cyber Research5 min readupdated 17 Jul 2026
  • Malware
Luca Stealer Cover Photo New

Bottom line. This sample is an information stealer, not ransomware and not a cryptominer despite the heuristic labels. It is a large, statically-linked Rust PE with aggressive VM, sandbox, debugger and timing evasion, and it exfiltrates over a Telegram bot, all consistent with Luca Stealer, whose Rust source code leaked publicly in 2022 and spawned dozens of variants. Just as important: of the 419 auto-extracted indicators, most are junk, certificate authorities (Entrust, GoDaddy), library boilerplate (openssl.org, example.com), a placeholder hash and malformed IPs baked into the Rust build. The real IOCs are a handful of file hashes plus the Telegram and IP-geolocation endpoints. Reset credentials and wallets on any hit; do not blanket-block the legitimate services.

Background

Luca Stealer is a Rust-based infostealer whose source code was leaked for free on a cybercrime forum on 3 July 2022, apparently so a newcomer could build reputation. Within weeks, 25-plus samples appeared in the wild. It targets Chromium browsers, chat apps, gaming clients and, notably, 17 password-manager browser add-ons and 10 cold crypto wallets, and it exfiltrates the loot over a Telegram bot (default, with a 50 MB cap) or a Discord webhook. It is a smash-and-grab credential and wallet stealer, not ransomware.

The analysed file is a ~4.6 MB Windows PE, entropy 6.73, that triage scored 100/100 MALICIOUS with 258 signature hits, most of them anti-analysis. It reaches out to a Telegram bot endpoint and to IP-geolocation services, and it fingerprints its environment aggressively. Those traits match the Luca lineage, though the engine returned no confident family match, unsurprising given the leaked code has forked into many near-identical variants.

Two corrections before the technical section. First, the automated pass tagged this ransomware, RAT and cryptominer at once; the behaviour, browser/wallet/password-manager theft plus Telegram exfil, is infostealer, and those extra labels are generic heuristics. Second, the 419 indicator count is badly inflated. Rust binaries statically link their dependencies, so the extractor scraped certificate-authority hostnames (Entrust.net, GoDaddy.com), OpenSSL and example boilerplate emails, a placeholder MD5 (all zeros/hex) and malformed IPs (for example 045.3.0.1) straight out of the embedded libraries. Publishing those as blockable IOCs would sinkhole legitimate infrastructure. We keep only what actually ties to the malware.

What we observed

What is real in this sample, and what is noise:

  • Rust runtime as camouflage: the payload is a big, statically-linked Rust executable. That same static linking bloats the binary with third-party library strings, which is why the automated IOC pass surfaced certificate authorities and OpenSSL addresses, and it gives signature and ML engines unfamiliar compiler idioms to chew on (ML landed at 65 percent).
  • Telegram exfiltration: the strongest real network indicator is an api.telegram.org bot endpoint, the classic Luca Stealer data-exfil channel. This is a legitimate service abused for C2, so monitor and alert on it rather than blanket-blocking Telegram.
  • Victim geolocation: the sample calls IP-geolocation lookups (ip-api.com, ipwhois.app, myip.ch), a common stealer step to tag victims by country before or during exfiltration.
  • Heavy anti-analysis: VM detection (including VM-detecting CPU instructions and WMI model/manufacturer checks), sandbox fingerprinting, debugger detection (IsDebuggerPresent, SEH tricks, OutputDebugString) and timing/sleep-based sandbox evasion, this is the detection-evasion story, and it is the bulk of the 258 signature hits.
  • Stealer behaviour, not ransomware: system and file/directory discovery consistent with hunting browser data, wallets and password-manager vaults. No credible encryption or miner behaviour was evidenced; treat the ransomware/miner tags as false positives.
  • IOC hygiene matters: 419 extracted indicators collapse to a handful once certificate authorities, static-library boilerplate, a placeholder hash and malformed IPs are removed. The real set is the file hashes plus the Telegram and geo endpoints.

Luca Stealer smash-and-grab flow

ExecuteRust PEEvadeanti-VM checksGeolocatevictim IP lookupHarvestwallets / vaultsExfiltrateTelegram bot

A stealer’s whole life is seconds long: run, check it is not being watched, grab credentials and wallets, ship them to Telegram. Detection has to catch the evasion and the exfil, because there is no long dwell time.

Attribution

Luca Stealer is commodity crimeware: its Rust source leaked publicly in 2022, so anyone can compile a variant, and there is no single operator to attribute. Confidence that this sample is a malicious Rust infostealer is high (100/100, 258 signatures, Telegram exfil, wallet/credential discovery). Confidence that it is specifically Luca is medium: the Telegram-bot exfil, Rust build and behaviour are consistent, but the engine found no exact family match and the leaked code has many look-alike forks. The ATT&CK entries below are drawn from evidenced behaviour on the sample.

Confidence: 78%.

419 extracted indicators, but most are certificate authorities and library boilerplate. The real signal is a handful of hashes and a Telegram bot.

Tactics, techniques & procedures (MITRE ATT&CK)

Techniques below are drawn directly from the analysed samples/reporting – no technique is asserted without evidence:

TacticTechniqueIDEvidence
Defense EvasionVirtualization/Sandbox Evasion: System ChecksT1497.001VM-detecting CPU instructions, WMI model/manufacturer checks and VirtualBox artifact detection.
Defense EvasionVirtualization/Sandbox Evasion: Time Based EvasionT1497.003Extended sleep and system-uptime checks to evade sandbox time limits (high severity).
Defense EvasionDebugger EvasionT1622IsDebuggerPresent, SEH-chain manipulation and OutputDebugString anti-debug checks.
Defense EvasionObfuscated Files or InformationT1027High-confidence obfuscation finding; large statically-linked Rust binary, entropy 6.73.
DiscoverySystem Information DiscoveryT1082High-confidence system information discovery on the sample.
DiscoverySystem Location DiscoveryT1614Calls IP-geolocation services (ip-api.com, ipwhois.app, myip.ch) to tag the victim by country.
Credential AccessCredentials from Password StoresT1555Luca-class behaviour: targets browser password stores and password-manager add-ons; file/directory discovery consistent with vault hunting.
ExfiltrationExfiltration Over Web ServiceT1567Exfiltrates over a Telegram bot API endpoint (Luca Stealer’s default channel).

Indicators of compromise

Defenders can block or hunt the following:

IndicatorTypeNote
72687cd9277d3e851fda2cd2788fba6c8df65caff553599b3ed50e01be005067sha256Analysed Luca-class Rust stealer PE
918075cfb0ee239a1e76f304e7c79f76md5Same sample (MD5)
hxxps://api[.]telegram[.]org/boturlExfil channel (legitimate service abused, monitor, do not blanket-block)
hxxp://ip-api[.]com/json/urlVictim IP-geolocation lookup (legitimate service abused)

Detection

Copy-ready hunting query:

# Luca-class Rust stealer hunt (behaviour + exfil, not the junk IOCs)
# 1) Unexpected process talking to the Telegram bot API (strong exfil signal)
index=proxy OR index=dns (url="*api.telegram.org/bot*" OR domain="api.telegram.org") NOT process_name IN ("Telegram.exe","chrome.exe","msedge.exe","firefox.exe")
# 2) IP-geolocation lookups from a non-browser process (victim tagging)
index=proxy (url="*ip-api.com/json*" OR url="*ipwhois.app/json*" OR url="*myip.ch*") NOT process_name IN ("chrome.exe","msedge.exe","firefox.exe")
# 3) Access to browser credential stores + password-manager / wallet paths
index=edr file_read (file_path="*\\User Data\\*\\Login Data" OR file_path="*\\Local Extension Settings\\*" OR file_path="*wallet*" OR file_path="*\\Local\\*\\Local State")
# 4) Anti-analysis behaviour cluster (VM/sandbox/debugger/timing)
index=edr (api_call IN ("IsDebuggerPresent","OutputDebugString") OR wmi_query="*Win32_ComputerSystem*Model*" OR behavior="long_sleep_before_activity")
# 5) Known hashes for THIS sample
index=edr (sha256="72687cd9277d3e851fda2cd2788fba6c8df65caff553599b3ed50e01be005067" OR md5="918075cfb0ee239a1e76f304e7c79f76")
#
# Do NOT block Entrust.net, GoDaddy.com, openssl.org, example.com or IPs like 045.3.0.1 --
# those were scraped from the statically-linked Rust libraries, not the C2.

Recommendations

  • Triage as a stealer, act fast: if this ran, assume browser passwords, session cookies, password-manager vaults and crypto wallets were taken. Reset those credentials, invalidate sessions and move wallet funds; a stealer’s damage is done in seconds.
  • Watch the real exfil path: alert on non-browser processes reaching api.telegram.org/bot and on IP-geolocation lookups, and monitor (do not blanket-block) Telegram in enterprise egress.
  • Clean up the IOCs before you deploy them: drop the certificate authorities (Entrust, GoDaddy), library boilerplate (openssl.org, example.com), the placeholder hash and malformed IPs, they are Rust static-linking artifacts, not infrastructure. Ship the file hashes and the abused endpoints only.
  • Detect behaviour over signatures: this Rust binary fired 258 evasion signatures but scored 65 percent on ML and matched no family, so lean on the credential-store-access, geo-lookup and Telegram-exfil behaviours, which survive recompilation.
  • Harden the targets: enforce hardware-backed MFA so stolen browser passwords are not enough, restrict script and untrusted-binary execution, and protect crypto-wallet and password-manager data with device encryption and vault timeouts.

Keep reading

Related research

Vect 2.0 Ransomware Bugs & Betrayal
Threat ReportsTLP:AMBER

Bugs & Betrayal: VECT Ransomware by Design, Wiper by Accident

Threat AdvisoryTLP:AMBER RansomwareMalware Bugs & Betrayal: VECT Ransomware by Design, Wiper by Accident Analysis of the VECT ransomware family suggests implementation flaws can undermine the operator’s own monetization objectives.

2 min readRansomware · Malware
RegPhantom Rootkit
Threat ReportsTLP:AMBER

RegPhantom Rootkit: Persistence Mechanisms and Mitigation

RegPhantom Watch: A Suspicious Hash With Agreement SHA-256 703dfb12…e7c4 draws consensus from two trusted reputation feeds and possible RegPhantom rootkit ties, but no behavioural detonation confirms intent.

2 min readMalware

Contact

Talk to someone who has seen this before.

You speak directly to the people doing the work, wherever in the world you operate.

Or email [email protected]