Teams Helpdesk Impersonation: MSI Loader and Node.js Implant Turn a Remote Session Into Enterprise-Wide Access
Source report →Microsoft Threat Intelligence investigated a human-operated intrusion campaign in which threat actors impersonated IT support personnel over Microsoft Teams and convinced users to grant remote access to their devices. The operators approached targets with lures involving security updates, spam-filter changes, account verification, or pending account deactivation, and in some cases moved the conversation to a voice call to avoid leaving instructions or links in Teams chat logs. Targets were then persuaded to bypass external-contact warnings, start a remote support session, and approve elevation requests. The activity was not attributed to a known threat actor.
After gaining interactive control, the operator used PowerShell within the remote session to download an installer from attacker-controlled cloud storage and execute it silently under update-themed package names consistent with the IT support pretext. The installer staged a script-based loader and a separately encrypted implant in the user profile, and downloaded a portable Node.js runtime from the official distribution when one was not already present. Hidden bootstrap code launched through trusted Windows script hosts then started Node.js and passed the decrypted implant to it through standard input or a temporary script file. The loader and payload used file extensions not normally associated with scripts, while the Node.js runtime was sometimes renamed even though its file metadata still identified it correctly. Persistence was established through an update-themed per-user autostart entry, using either a registry Run value or a shortcut in the Startup folder.
The implant communicated with its command-and-control server over HTTPS at randomized intervals and executed JavaScript tasking returned by the server. The tasking could access Node.js modules, launch processes, read environment variables, and interact with the file system. Recovered builds also contained dormant logic for retrieving an updated command-and-control address from an Ethereum smart contract, although the observed configuration relied on a hardcoded fallback address. Early tasking focused on host reconnaissance, including hardware and locale information, disk inventory, display adapter details, and installed antivirus products, with the latter two also used to identify analysis environments. The implant also captured the desktop repeatedly, resizing and encoding screenshots before writing them to temporary files for transfer.
Reconnaissance then expanded into Active Directory, where the operators used native commands and directory queries to enumerate domain accounts, identify domain-joined servers, resolve their addresses, test administrative reachability, and collect user description fields that could expose privileged account context. The activity was performed at low volume, with randomized delays and management-instrumentation reachability checks used to limit noise. Additional operator-supplied payloads were executed through `rundll32` using named exports and per-execution tokens. The operators then used Windows Remote Management to move laterally across dozens of domain-joined systems, including file, database, and application servers, as well as domain controllers and certificate authorities.
IOCs (14)
Scan your environment for IOCs →SHA256 FILE HASH 6
4cfdcae6dd1d6d98b870c8f0654d504f2bf10479a117dc297de789c249dc389da4d145a6347e47d40b3ca48af5c6dba01bf019d0110e31a44bb70fc77d1d1676cc6d0f3f47afeba018173604e34f527e8413d3a54ffb35caed529bff49055ec50d2fc28af246f62f27e49207d1f64e236ad9ea029412b27877d1ae6c098e86e369e10e0cb7bb2137ebea12971adb02c662cf5543a4f8c9530812bcbf7b183a23a135fe4df18c711097e69b4f27ea32a74a955160bf2fb12da841f21866d95d87DOMAIN 8
update1n5.blob.core.windows[.]netupdate1n6.blob.core.windows[.]netupdate1n7.blob.core.windows[.]netupdate1n9.blob.core.windows[.]netupdatetmp.blob.core.windows[.]netsynctimes.australiaeast.cloudapp.azure[.]comwebwether.eastus.cloudapp.azure[.]comdssdfvsdfvsdfvsdgbfbdvdzv[.]orgDetections (10)
Enable detections →Connect your environment for suggestions and queries personalized to your security telemetry.
- Microsoft Teams External Initiator Impersonating IT Helpdesk or Support
- Quick Assist Execution Followed by Command Interpreter Activity
- Silent MSI Install From User Writable Path via Script Host or Shell
- PowerShell Reconnaissance Spawned by Node.js
- PowerShell Screen Capture Encoded To Base64 And Written To File
- Run Key Value Launching Node Runtime
- Node Runtime Connecting To Azure Cloud Service Domain
- Node Runtime Executing Loader File With Nonstandard Script Extension
- Node Runtime Initiating WinRM Connections To Multiple Internal Hosts