Impersonating IT support: how threat actors turn a remote session into enterprise-wide access | Microsoft Security Blog
A human-operated intrusion campaign abuses Microsoft Teams external collaboration to impersonate IT support and socially engineer users into granting remote access. Once control is established, attackers use PowerShell to download and silently install a malicious MSI package that stages a portable Node.js runtime and an obfuscated JavaScript implant. The implant provides persistent C2, enabling host and Active Directory reconnaissance, screen capture, and lateral movement via WinRM toward high-value assets like domain controllers.
- domaindssdfvsdfvsdfvsdgbfbdvdzv[.]orgEarlier C2 URL stored briefly in the Ethereum contract
- domainsynctimes[.]australiaeast[.]cloudapp[.]azure[.]comHardcoded fallback C2 and latest URL stored in the associated Ethereum contract
- domainupdate1n5[.]blob[.]core[.]windows[.]netAzure Blob Storage endpoint hosting the malicious MSI loader
- domainupdate1n6[.]blob[.]core[.]windows[.]netAzure Blob Storage endpoint hosting the malicious MSI loader
- domainupdate1n7[.]blob[.]core[.]windows[.]netAzure Blob Storage endpoint hosting the malicious MSI loader
- domainupdate1n9[.]blob[.]core[.]windows[.]netAzure Blob Storage endpoint hosting the malicious MSI loader
- domainupdatetmp[.]blob[.]core[.]windows[.]netAzure Blob Storage endpoint hosting the malicious MSI loader
- domainwebwether[.]eastus[.]cloudapp[.]azure[.]comEarlier C2 URL stored in the Ethereum contract
- filename%LOCALAPPDATA%\<random>\node.exePortable Node.js runtime extracted to a randomly named directory under LocalAppData
- filename%LOCALAPPDATA%\<random>\<payload>.tmpEncrypted implant file with nonstandard extension executed by Node.js
- registry_keyHKCU\Software\Microsoft\Windows\CurrentVersion\Run\EdgeUpdatePer-user persistence via Run key launching Node.js loader from LocalAppData
- sha2560d2fc28af246f62f27e49207d1f64e236ad9ea029412b27877d1ae6c098e86e3Second-stage DLL loaded by rundll32 for follow-on payload execution
- sha2564cfdcae6dd1d6d98b870c8f0654d504f2bf10479a117dc297de789c249dc389dMalicious MSI loader package installed silently via msiexec
- sha25669e10e0cb7bb2137ebea12971adb02c662cf5543a4f8c9530812bcbf7b183a23Second-stage DLL loaded by rundll32 for follow-on payload execution
- sha256a135fe4df18c711097e69b4f27ea32a74a955160bf2fb12da841f21866d95d87Second-stage DLL loaded by rundll32 for follow-on payload execution
- sha256a4d145a6347e47d40b3ca48af5c6dba01bf019d0110e31a44bb70fc77d1d1676Malicious MSI loader package
- sha256cc6d0f3f47afeba018173604e34f527e8413d3a54ffb35caed529bff49055ec5Malicious MSI loader package
Detection / Hunteropenrouter
What Happened
Attackers are impersonating IT support staff through Microsoft Teams to trick employees into giving them remote access to their computers. Once connected, the attackers install malicious software that lets them control the device, take screenshots, explore the company network, and move toward critical systems like domain controllers. This matters because it can lead to widespread data theft or ransomware. Employees should be trained to verify any unsolicited IT support requests through known internal channels before granting remote access, and organizations should restrict external Teams access and monitor remote support tools.
Key Takeaways
- Threat actors abuse Microsoft Teams external collaboration to impersonate IT support and socially engineer users into granting remote access via tools like Quick Assist.
- Attackers use PowerShell to download and silently install a malicious MSI package, which stages a portable Node.js runtime and an obfuscated JavaScript implant for persistent C2.
- The implant performs extensive host and Active Directory reconnaissance, captures periodic screenshots, and uses WinRM for lateral movement toward high-value assets like domain controllers.
- The campaign relies heavily on legitimate tooling (Teams, RMM tools, Windows Installer, Node.js, WinRM) to blend into expected enterprise operations.
- Dormant blockchain-based C2 logic was found in the implant, capable of querying an Ethereum smart contract for an updated C2 URL.
Affected Systems
- Microsoft Teams
- Windows operating systems
- Active Directory environments
- Domain Controllers
- Certificate Authorities
Vulnerabilities (CVEs)
None identified.
Attack Chain
- Initial Access: Threat actor impersonates IT support via Microsoft Teams external chat, coaxing user into granting remote control via Quick Assist or Teams screen-share.
- Execution: Attacker uses PowerShell to download a malicious MSI from cloud storage and installs it silently with msiexec /qn.
- Staging: MSI retrieves a portable Node.js runtime from the official Node.js distribution and extracts it to a random directory under LocalAppData, along with an encrypted implant file.
- Persistence: MSI creates an HKCU Run value or Startup folder shortcut named EdgeUpdate to launch the Node.js loader at user logon.
- C2: The implant uses randomized HTTPS long-polling to receive JavaScript tasks from its C2 server, enabling host reconnaissance, screen capture, and follow-on payload execution.
- Discovery: Operator enumerates domain accounts, servers, and users through native tools and ADSI queries with jitter to avoid detection.
- Lateral Movement: Operator initiates WinRM connections over TCP port 5985 to domain-joined systems, including domain controllers and certificate authorities.
Detection Availability
- YARA Rules: No
- Sigma Rules: No
- Snort/Suricata Rules: No
- KQL Queries: Yes
- Splunk SPL Queries: No
- EQL Queries: No
- Other Detection Logic: No
- Platforms: Microsoft Defender XDR Advanced Hunting
The article provides multiple KQL queries for Microsoft Defender XDR advanced hunting covering external Teams activity, PowerShell writing MSI files, Node.js executing staged payloads, screen capture via PowerShell, and WinRM lateral movement.
Detection Engineering Assessment
| Dimension | Rating | Rationale |
|---|---|---|
| EDR Visibility | High | EDR solutions can detect process execution chains, file writes, and network connections. The article describes specific process trees like node.exe executing from LocalAppData with nonstandard file extensions, and PowerShell spawning cmd.exe for reconnaissance. |
| Network Visibility | Medium | Network visibility can detect WinRM connections on port 5985 and HTTPS C2 traffic to Azure cloud services. However, the use of legitimate cloud storage and Azure domains for C2 may blend with normal traffic. |
| Detection Difficulty | Moderate | The campaign uses legitimate tools and cloud infrastructure, making individual actions appear benign. Detection requires correlating multiple signals across stages, such as external Teams contact followed by remote session, MSI installation, and Node.js execution from user-writable paths. |
Required Log Sources
- Microsoft Teams chat logs (CloudAppEvents)
- DeviceProcessEvents
- DeviceFileEvents
- DeviceNetworkEvents
- Windows Event Logs (WinRM, PowerShell Script Block Logging)
- Active Directory enumeration logs
Hunting Hypotheses
| Hypothesis | Telemetry | ATT&CK Stage | FP Risk |
|---|---|---|---|
| Consider hunting for node.exe executing scripts from user-writable directories like LocalAppData with nonstandard file extensions such as .tmp, .ini, or .dat. | DeviceProcessEvents, EDR process execution logs with command line data | Execution | Low - legitimate Node.js usage typically involves standard .js files and project directories, not nonstandard extensions in LocalAppData |
| Consider hunting for external Microsoft Teams chats or calls immediately followed by remote assistance tool execution and subsequent PowerShell or cmd.exe activity on the same host. | CloudAppEvents for Teams, DeviceProcessEvents for remote assist tools and script interpreters | Initial Access | Medium - legitimate IT support may use Teams and remote tools, but external tenant combined with immediate script execution is suspicious |
| Consider hunting for WinRM connections initiated from user-context or non-administrative processes toward domain controllers or certificate authorities. | DeviceNetworkEvents, Windows Event Log 4648, WinRM operational logs | Lateral Movement | Low - WinRM from user context to DCs is atypical and warrants investigation |
| Consider hunting for PowerShell screen capture activity using System.Drawing and CopyFromScreen, writing Base64 output to temp files. | DeviceProcessEvents with command line logging, PowerShell Script Block Logging | Collection | Low - legitimate screen capture tools rarely use this specific PowerShell pattern |
| Consider hunting for ADSI-based Active Directory enumeration with sleep jitter, querying for Server operating systems and resolving hostnames. | PowerShell Script Block Logging, EDR process execution logs | Discovery | Medium - legitimate admin scripts may use ADSI, but the combination with random sleep jitter and server filtering is indicative of attacker reconnaissance |
Control Gaps
- Signature-based AV may miss the attack due to use of legitimate signed binaries like Node.js and msiexec
- External collaboration policies in Teams may allow initial contact if users override warnings
- Network-based blocking may not catch C2 traffic to legitimate Azure cloud services
- Per-user persistence in HKCU Run key or Startup folder may bypass admin-focused monitoring
Key Behavioral Indicators
- node.exe executing from LocalAppData with nonstandard file extensions
- External Teams chat followed by Quick Assist or remote support tool execution
- msiexec.exe /qn installing packages from Downloads or AppData directories
- rundll32.exe loading DLLs with exported function 'open' and a token argument
- PowerShell using CopyFromScreen and ToBase64String for screen capture
- WinRM connections on port 5985 initiated from non-administrative processes
- ADSI queries filtering for Server operating systems with random sleep jitter
- HKCU Run key or Startup folder shortcut named EdgeUpdate launching Node.js
False Positive Assessment
Medium - The campaign abuses legitimate tools and workflows common in enterprise environments, which could generate false positives if detection is based on individual indicators. Correlation across multiple stages is needed to reduce false positives.
Recommendations
Immediate Mitigation
- Verify against your organization's incident response runbook and team escalation paths before acting. Consider investigating any hosts with node.exe executing from LocalAppData with nonstandard file extensions.
- If your EDR supports host isolation, consider isolating affected endpoints to prevent lateral movement via WinRM.
- Consider rotating credentials for any accounts accessible from compromised hosts, prioritizing domain admin accounts if the host was domain-joined.
- Consider blocking the identified Azure Blob Storage endpoints and C2 domains at network perimeter and proxy layers.
Infrastructure Hardening
- Consider restricting Microsoft Teams external access to trusted domains only.
- Evaluate whether WinRM (TCP 5985) can be limited to authorized management workstations, and consider alerting on WinRM initiated from user-context processes.
- Consider enabling network protection and web protection in Microsoft Defender for Endpoint to block connections to threat actor infrastructure.
- Consider deploying ASR rules that block executable content from scripting interpreters and execution of downloaded content.
User Protection
- Consider establishing internal helpdesk authentication phrases so employees can verify IT support requests.
- Consider training employees to recognize external-tenant indicators in Microsoft Teams and to never grant remote access to unsolicited contacts.
- Consider limiting or monitoring remote monitoring and management (RMM) and interactive remote-support software in the environment.
- Consider enforcing phishing-resistant MFA and compliant device requirements through Conditional Access policies.
Security Awareness
- Consider rolling into existing awareness programs guidance on verifying unsolicited IT support contact through known internal channels.
- Consider training employees to recognize social engineering tactics in collaboration platforms, not just email.
- Consider educating staff on the risks of granting remote control during unsolicited support calls or chats.
MITRE ATT&CK Mapping
Initial Access
Execution
Discovery
Lateral Movement
Collection
Command and Control
Additional IOCs
- Domains:
updatetmp[.]blob[.]core[.]windows[.]net- Azure Blob Storage endpoint hosting the malicious MSI loadersynctimes[.]australiaeast[.]cloudapp[.]azure[.]com- Hardcoded fallback C2 and latest URL stored in the associated Ethereum contractwebwether[.]eastus[.]cloudapp[.]azure[.]com- Earlier C2 URL stored in the Ethereum contractdssdfvsdfvsdfvsdgbfbdvdzv[.]org- Earlier C2 URL stored briefly in the Ethereum contract
- Registry Keys:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\EdgeUpdate- Per-user persistence via Run key launching Node.js loader from LocalAppData
- File Paths:
%LOCALAPPDATA%\<random>\node.exe- Portable Node.js runtime extracted to a randomly named directory under LocalAppData%LOCALAPPDATA%\<random>\<payload>.tmp- Encrypted implant file with nonstandard extension executed by Node.js
- Command Lines:
- Purpose: Download malicious MSI from cloud storage | Tools:
powershell.exe| Stage: Execution |iwr -Uri <url> -OutFile <path> - Purpose: Silently install malicious MSI package | Tools:
msiexec.exe| Stage: Execution |msiexec.exe /i <path> /qn - Purpose: Download and extract portable Node.js runtime | Tools:
curl.exe,tar.exe| Stage: Execution |curl -sLo <path> <url> - Purpose: Launch Node.js with staged payload via WScript | Tools:
wscript.exe,node.exe| Stage: Execution |shell.Run("<path>\node.exe <path>\<payload>.tmp" - Purpose: System discovery and fingerprinting | Tools:
cmd.exe,powershell.exe,reg.exe| Stage: Discovery |cmd /c "net session" - Purpose: Automated screen capture and Base64 encoding | Tools:
powershell.exe| Stage: Collection - Purpose: Active Directory server enumeration via ADSI with jitter | Tools:
powershell.exe| Stage: Discovery |$q = [ADSISearcher]::new([ADSI]"LDAP://$d") - Purpose: Follow-on payload execution via rundll32 | Tools:
rundll32.exe| Stage: Execution |rundll32.exe <dll>,open <token> - Purpose: WinRM lateral movement from non-admin process | Tools:
powershell.exe| Stage: Lateral Movement |powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass
- Purpose: Download malicious MSI from cloud storage | Tools:
- Other:
Ethereum smart contract C2 resolver- Dormant logic in the implant capable of querying an Ethereum smart contract for an updated C2 URL