Skip to content

Response, New York. Noah Park: Check Point Patches Actively Exploited Management Server Path Traversal. Detection, Dallas. Ava Okello: Report Finds Nearly Half of Deployed Detections Need Attention Before SOCs Can Trust Them.

SOCtember

Always First. Fast SOC News.

Unit 42 seven-step flowchart from SEO-poisoned PuTTY search through trojanized MSI, Node.js loader, hidden execution, EtherHiding C2 lookup on Ethereum, and operator recon, exfiltration and screen streaming.
Graphic: Unit 42, attack flow of the fake PuTTY MSI and Node.js EtherHiding loader, from the @Unit42_Intel post of Oct 13, 2026 (fair use).

Detection

Unit 42 Says Fake PuTTY Installer From Poisoned Google Results Plants a Node.js Loader That Finds Its C2 on the Ethereum Blockchain

A trojanized Putty-x86_64.msi served from puty.ink runs a signed PuTTY 0.85 decoy while a bring-your-own-interpreter Node.js loader resolves its C2 through an Ethereum smart contract, polls every 500 ms, and takes operator-pushed recon, cookie theft, and live screen streaming.

Ava Okello, DetectionLondon6 min read

LONDON - Palo Alto Networks' Unit 42 said on Oct. 13, 2026 that a search-poisoning campaign aimed at technical users is serving a trojanized PuTTY installer that pairs a working, legitimately signed copy of the SSH client with a Node.js loader whose command-and-control address lives in an Ethereum smart contract. In a threat note dated Oct. 12 and written by researcher Ofek Lahiani, Unit 42 says Google results for terms such as "putty" or "putty download" lead to puty.ink, a look-alike page whose HTML title copies the real PuTTY site's title word for word, and that the page serves Putty-x86_64.msi from a Backblaze B2 storage bucket. The note says Windows SmartScreen approved the file, and that in observed cases users clicked the fake result even after briefly visiting the legitimate PuTTY site. Once installed, the MSI launches an unmodified, Sectigo-signed PuTTY 0.85 as a decoy, and Unit 42 says victims went on to use it for serial-console and SSH sessions within minutes, unaware that a loader was running in the background. For SOC teams, the design choice that matters most is the absence of a malicious executable: the loader downloads the official Node.js 18.20.5 runtime from nodejs.org and runs its payload with that legitimate node.exe, a pattern Unit 42 calls Bring-Your-Own-Interpreter.

GitHub page for the PaloAltoNetworks Unit42-timely-threat-intel repository showing the fake PuTTY MSI threat note title, author Ofek Lahiani and references.
Screenshot: Unit 42, threat note 2026-10-12 SEO-Poisoned Fake PuTTY MSI Delivers Node.js Loader, Unit42-timely-threat-intel on GitHub, by Ofek Lahiani (fair use).Ofek Lahiani's Oct. 12 note is posted in Unit 42's public threat-intel repository.

Unit 42 traces the chain in seven stages. Msiexec.exe, spawned from explorer.exe, shows an installer window titled KS2FyWDqck and drops four files into C:\Users\<user>\AppData\Local\idejDHjFnNXb\: the batch loader 44JYYsqg.cmd, a 123-byte JScript trampoline named BdbEinqaL7.js, an obfuscated 12.5 KB JavaScript payload disguised as k3TjneJGcwI7.ini, and the decoy putty.exe. The batch file relaunches itself minimized, checks for Node.js with "where node," pulls node-v18.20.5-win-x64.zip with curl, unpacks it with tar, and renames the folder vXA8Jj. The trampoline then uses a Shell.Application COM object with a hidden window style to start node.exe, which detaches it from the console tree and leaves it under explorer.exe in the process ancestry. The payload resolves its live server through EtherHiding: it sends eth_call requests to a reader contract at 0x89F5664d6fD8d990FA04F53253Be4855ed481A74 across seven public Ethereum RPC endpoints, takes the most common answer, refreshes it every five minutes, and falls back to a hardcoded URL if the lookup fails. It then polls every 500 milliseconds with requests dressed up as image and stylesheet fetches, and hands any response longer than 10 bytes to new Function() with access to require, process, and Buffer, so the operator can push new JavaScript capabilities without reinfecting the host.

Unit 42 text listing seven attack stages from Google search delivery and Backblaze B2 download to the Node.js loader, EtherHiding C2 handshake and hands-on-keyboard activity.
Screenshot: Unit 42, Attack Flow section of the fake PuTTY MSI threat note, Oct 12, 2026 (fair use).The note walks seven stages from the poisoned search result to operator screen capture.

The capabilities Unit 42 saw operators push were hands-on and fast. A first payload ran hidden PowerShell to collect locale, GPU details used as an anti-sandbox check, the installed antivirus product, domain membership, SMB sessions, MachineGuid, and the Windows product name. Later payloads exfiltrated browser profiles and session cookies amounting to hundreds of megabytes over HTTPS, ran "npm install -g ws" to add WebSocket support, and started a PowerShell loop that captured the primary screen about five times per second, writing base64-encoded JPEGs to %TEMP%\stream_<GUID>_<timestamp>.txt during sessions that lasted hours. The loader also derives a per-victim secondary install path under %LOCALAPPDATA% from an MD5 hash of the computer and user names, and tags every poll with the campaign build ID 1835187f-121a-4103-832f-24649a461cac.

Unit 42 detection guidance covering node.exe in LocalAppData, curl downloading Node.js 18.20.5, idejDHjFnNXb file creation, a recon burst and non-browser Ethereum RPC traffic.
Screenshot: Unit 42, Detection Opportunities section of the fake PuTTY MSI threat note, Oct 12, 2026 (fair use).Detection anchors include a LocalAppData node.exe, a Node.js zip download, and non-browser Ethereum RPC traffic.

Unit 42's detection guidance gives defenders anchors that survive both the signed decoy and the rotating blockchain address. The note recommends alerting on node.exe running from paths that match %LOCALAPPDATA%\*\*\node.exe or \vXA8Jj\node.exe with a configuration argument ending in .ini; curl.exe fetching node-v18.20.5-win-x64.zip from nodejs.org when the parent is a cmd.exe launched by msiexec from a .cmd script in %LOCALAPPDATA%; file creation for the idejDHjFnNXb directory and the three loader filenames; node.exe spawning cmd.exe and then PowerShell to run all eight recon commands within 30 seconds; and outbound HTTPS from any non-browser process to the seven public Ethereum JSON-RPC endpoints, including rpc.flashbots[.]net, rpc.mevblocker[.]io, and eth.drpc[.]org. Published indicators include puty[.]ink, registered Sept. 28, the fallback C2 presanis[.]com, registered Sept. 15, the redirect hop putredirhelps[.]online, the Backblaze bucket mnb61ak51, and SHA-256 hashes for the MSI and all three loader files. Unit 42 describes the five-minute contract refresh as takedown-resistant rotation for the operator, which is why the durable signals sit on the endpoint and in the RPC traffic rather than in any single domain.

Unit 42 indicator list with puty.ink, presanis.com and putredirhelps.online domains, Backblaze bucket, Ethereum contract address, build ID and SHA-256 hashes.
Screenshot: Unit 42, Indicators section of the fake PuTTY MSI threat note, Oct 12, 2026 (fair use).Published indicators cover the delivery domains, the Ethereum reader contract, and the loader hashes.

Sources:


Ava Okello covers detection engineering and SOC operations for SOCtember from London.

Related stories

Detection desk