Malicious ISO Uses IronPython to Deliver StealC and NetSupport

· Original article ↗

Summary

An analysis traces an ISO-based infection chain that uses bundled IronPython and in-memory stages to deliver StealC v2 and NetSupport. Researchers explain the techniques, sandbox results, limitations, and defensive checks.

Key points

  • The 88 MB ISO contains a shortcut that runs a disguised Python script with a bundled IronPython interpreter; much of the image is filler.
  • The script downloads successive stages, uses obfuscation and shellcode, and loads a Windows program directly into memory.
  • A loader bot delivers StealC v2, which targets browser credentials, cookies, payment data, crypto wallets, messaging tokens, email profiles, and other information.
  • The bot also installs a NetSupport client under %LOCALAPPDATA%\Nets\Netsupport\ and creates a scheduled task for persistence.
  • Researchers say the loader resembles CastleLoader/CastleBot, but treat that family identification as unconfirmed.
  • Only one of three public sandbox runs executed the shortcut and observed the full chain; the others did not click it, illustrating the need to verify that sandbox tests run ISO contents.
  • The article recommends avoiding unexpected ISO installers and checking for the NetSupport path and scheduled task; it also provides indicators including jumalputty[.]com and nizariuserp[.]com.

Article Details

Attack Vectors
  • A software-installer lure distributed as an ISO contains a setup.lnk shortcut that starts bundled IronPython and executes a Python script disguised as docs\submergibility.txt.
  • The script disables HTTPS certificate checks, downloads further stages, and uses base64 encoding with Cyrillic look-alike substitutions to obscure the payload.
  • Downloaded shellcode is XOR-decrypted, copied into executable memory, and run; later stages use RC4 decryption and a reflective loader to load a Windows program directly in memory.
  • The loader bot downloads and executes StealC v2 and a NetSupport Manager client; StealC is injected into a suspended IronPython process using process hollowing.
  • The NetSupport client is installed under %LOCALAPPDATA%\Nets\Netsupport\ and configured to persist through a scheduled task named client32.exe.
Defensive Notes
  • Treat unexpected .iso, .img, or .vhd installers—especially those containing shortcuts—as suspicious.
  • For sandbox analysis of disk images and archives, verify that the shortcut or other entry point was actually executed before trusting a clean verdict.
  • Alert when ipyw32.exe or ipy.exe starts from a mounted ISO or removable drive, or is given a .txt argument; also alert on a child ipyw32.exe with no arguments.
  • Check for %LOCALAPPDATA%\Nets\Netsupport\ and a scheduled task named client32.exe; the article advises assuming remote access if these are present.
  • If infection is suspected, change passwords from a clean device, revoke active sessions, and move cryptocurrency funds to a new wallet.
  • The article recommends blocking the listed network indicators. It reports that StealC v2 uses plain-HTTP POST / with JSON and no User-Agent.

Indicators of compromise

TypeIndicatorContext
DOMAINcrataga[.]siteContacted by a Python process during the infection; its role is unknown.
DOMAINjumalputty[.]comReported attacker-controlled domain serving stages and used for loader C2.
DOMAINnizariuserp[.]comReported attacker-used domain serving the NetSupport package.
IPV485[.]239[.]149[.]151StealC v2 C2 address receiving the stealer's uploads.
SHA2560d65239438fb18bdd4a80e1a2b071eed3215ac0615d4f62854aeeefde98e69baSHA-256 of the loader bot, which the article says exists only in memory.
SHA25636805ebcc0c295751c9b858fc9bbe75ba46362c672f860eafb73ec67f7ce8a4bSHA-256 of the malicious setup.iso lure.
SHA25661dac869de65880377d4f398175b6c17d703a29b01483bd52fc3954e5876f9e3SHA-256 of doc8, the downloaded second-stage payload.
SHA25663e5e40ea1abc1a4df7d5881a86332705f19f51510b9d09e5d6f725fc653dfccSHA-256 of v8, a downloaded third-stage payload.
SHA2567114bf57f09c0bb24e6d7e895afc33721187b06969c3454db749c1c0e11cfb10SHA-256 of the StealC v2 payload.
SHA2569666964ef36a9a4a5585d10d3337cfa07472b002083df885639812f2178b5676SHA-256 of the StealC App-Bound helper.
URLhxxps[:]//jumalputty[.]com/473070fa-6f82-5c2a-9dee-3db4be57110f/Reported malicious stage-download URL for doc8, v8, and viewer99.
URLhxxps[:]//jumalputty[.]com/70cadffb-604e-5ebd-845d-79a123ed1f74Loader bot C2 URL.

MITRE ATT&CK

Malware

Products

Bravesaved passwords, cookies, autofill and credit cards from Chrome, Edge, Brave and Firefox (with a small helper for Chrome’s newer "App-Bound" protection)DiscordPayloads: StealC v2 (passwords, cookies, cards, crypto wallets, Steam/Discord tokens, Outlook, WinSCP, screenshots) and a NetSupport RAT client with a scheduled task.Edgesaved passwords, cookies, autofill and credit cards from Chrome, Edge, Brave and Firefox (with a small helper for Chrome’s newer "App-Bound" protection)FoxmailSteam login files, Discord tokens, Outlook and Foxmail profiles, WinSCP saved sessionsGoogle Chromesaved passwords, cookies, autofill and credit cards from Chrome, Edge, Brave and Firefox (with a small helper for Chrome’s newer "App-Bound" protection)IronPythonDouble-clicking the shortcut inside starts a genuine copy of IronPython, a .NET version of Python that the attackers ship with the image, and has it run a "text file" that is really a Python script.Mozilla Firefoxsaved passwords, cookies, autofill and credit cards from Chrome, Edge, Brave and Firefox (with a small helper for Chrome’s newer "App-Bound" protection)NetSupport ManagerThe last of them is a loader bot that installs StealC v2, an information stealer, and the NetSupport Manager remote-control client.OutlookPayloads: StealC v2 (passwords, cookies, cards, crypto wallets, Steam/Discord tokens, Outlook, WinSCP, screenshots) and a NetSupport RAT client with a scheduled task.SteamPayloads: StealC v2 (passwords, cookies, cards, crypto wallets, Steam/Discord tokens, Outlook, WinSCP, screenshots) and a NetSupport RAT client with a scheduled task.WinSCPPayloads: StealC v2 (passwords, cookies, cards, crypto wallets, Steam/Discord tokens, Outlook, WinSCP, screenshots) and a NetSupport RAT client with a scheduled task.

Tools

7-ZipTools used: Malcat, speakeasy, capa, Binary Refinery, 7-Zip, tshark, Python, VirusTotal (file store, sandbox report and PCAP), ANY.RUN and Triage.ANY.RUNTools used: Malcat, speakeasy, capa, Binary Refinery, 7-Zip, tshark, Python, VirusTotal (file store, sandbox report and PCAP), ANY.RUN and Triage.Binary RefineryTools used: Malcat, speakeasy, capa, Binary Refinery, 7-Zip, tshark, Python, VirusTotal (file store, sandbox report and PCAP), ANY.RUN and Triage.capaTools used: Malcat, speakeasy, capa, Binary Refinery, 7-Zip, tshark, Python, VirusTotal (file store, sandbox report and PCAP), ANY.RUN and Triage.MalcatTools used: Malcat, speakeasy, capa, Binary Refinery, 7-Zip, tshark, Python, VirusTotal (file store, sandbox report and PCAP), ANY.RUN and Triage.PythonTools used: Malcat, speakeasy, capa, Binary Refinery, 7-Zip, tshark, Python, VirusTotal (file store, sandbox report and PCAP), ANY.RUN and Triage.REMnuxThis analysis and write-up were produced by Claude (Opus 5.5), working as an agent in Claude Code on a REMnux analysis VM.speakeasyTools used: Malcat, speakeasy, capa, Binary Refinery, 7-Zip, tshark, Python, VirusTotal (file store, sandbox report and PCAP), ANY.RUN and Triage.TriageTools used: Malcat, speakeasy, capa, Binary Refinery, 7-Zip, tshark, Python, VirusTotal (file store, sandbox report and PCAP), ANY.RUN and Triage.tsharkTools used: Malcat, speakeasy, capa, Binary Refinery, 7-Zip, tshark, Python, VirusTotal (file store, sandbox report and PCAP), ANY.RUN and Triage.VirusTotalTools used: Malcat, speakeasy, capa, Binary Refinery, 7-Zip, tshark, Python, VirusTotal (file store, sandbox report and PCAP), ANY.RUN and Triage.

Related Articles