A new Windows loader arrives through a fake Teams help desk; modules sent to Expel’s emulator phish passwords and tunnel into internal services.2026-08-26T11:34:35.740Z6 min2026endpointidentitythreats
6 min read
Read format

SynkLoader Uses Teams Lures for Password Phishing and Network Access

A new Windows loader arrives through a fake Teams help desk; modules sent to Expel’s emulator phish passwords and tunnel into internal services.

By Justin Howe
Hands pause over a laptop beneath a visibly offset translucent lock-screen layer

A new Windows loader reached one user through a Microsoft Teams message from a fake IT help desk. The live operator later sent Expel’s emulated victim a counterfeit lock screen that collects entered text and an outbound tunnel that can relay traffic to internal services.

Expel’s August 20 investigation began with one client-network alert on August 18. The managed detection and response vendor named the malware SynkLoader and promotes its own services on the report page. Expel does not quantify other infections, stolen credentials, or losses, and it reports no response from Microsoft. The evidence shows abuse of Teams, Azure Blob Storage, Windows, and Python rather than a vulnerability in those products.

The initial compromise still required the target to trust an unsolicited message, download an MSI, and run it. Expel observed scheduled-task persistence on the client. It obtained the fake lock screen, tunnel, reverse shell, and later modules after its researchers emulated a large corporate network and interacted with the live command server. Those later modules are demonstrated operator-delivered capabilities; the report does not establish that every infected endpoint received or executed them.

A Teams help-desk lure leads to a Python loader, which branches to persistence, a fake lock screen, and tunneled remote access.

Figure details

The observed delivery starts with an external Teams sender impersonating a help desk and offering an MSI. The installer starts hidden PowerShell and a bundled Python loader. Scheduled-task persistence is tied to the original client evidence. The diagram then branches to three modules Expel received after presenting an emulated high-value network: a fake lock screen that collects text entered into its password field, a traffic tunnel that reaches internal services through the infected host, and an interactive shell for operator commands.

Teams Help-Desk Chat Starts It

Recovered Teams metadata showed an account at another organization’s default onmicrosoft.com domain using the display name “IT Service Desk.” The researchers could not recover the full conversation, but the sender persuaded the user to install an Azure Blob-hosted file named 331.msi, presented as a PowerShell cleaner. Nulltap is withholding the published download path because repeating an active malware-acquisition route would make the sample easier to obtain.

The MSI extracted archive6.zip and cleaner.ps1 beneath %LocalAppData%\PowershellCleaner\script. The first-stage script opened hidden PowerShell, reconstructed code with -join [char[]], invoked iex, and created an in-memory script block through [System.Management.Automation.ScriptBlock]::Create. It ultimately started the bundled loader with a command shape matching pythonw.exe ...\fl\ang\ss.py.

This sequence gives responders a recognition pattern before any malware-family label is available: an external help-desk contact, an unsolicited installer from cloud storage, a PowershellCleaner directory, hidden PowerShell, and a self-contained Python tree under %AppData%\<random>\fl\ang. Microsoft’s Teams hardening guidance recommends restricting external communication to approved domains where the business can support that policy.

The lure looks routine.

Python Hides The Module Chain

The main ss.py loader bundled its own Python runtime. A fake msvcp150.dll exposed RunPowerShell and RunPowerShellW functions for in-memory PowerShell execution. Another file, msvcp160.dll, manually mapped later DLLs into memory. The resulting mix of Python, C#, and native C++ reduced the number of later components written to disk.

The persistence module used the Task Scheduler COM interface rather than schtasks.exe. It created a random 12-character task that launched ss.py at user logon and every day at 10 a.m. local time. That random name limits name-based detection, while the paired triggers, executable path, and bundled Python directory provide a stronger behavioral match. A leaked debug path ended in schdtaks_atlg_dll.pdb under the Windows user genry.

To see what the operator would send next, Expel changed the emulated profiler output to claim membership in an Active Directory environment with thousands of computers. The researchers wrote that “we were able to lure the threat actors into attempting a hands-on-keyboard attack.” After more than 12 hours of quiet replies, the server delivered a burst of additional modules.

Fake Lock Screen Phishes for Passwords

The PhishLocker module rendered a full-screen borderless window using the current username and the normal Windows lock-screen background. On Expel’s Windows 10 test system, the fake lacked the background blur of the real prompt. Alt+Tab exposed the application switcher, although the window kept pulling focus back. The module accepted any entered value because it never checked the password through Windows authentication.

The submitted value was still useful to the operator when it was real. A TrafficRedirector module opened an outbound connection to its controller, then relayed traffic to internal or internet services selected by the attacker. That route could place later sign-ins behind the victim organization’s public IP address or inside its LAN. A separate reverse-shell module received PowerShell commands, and Expel later emulated that channel to confirm interactive profiling. A VNC module could stream the visible desktop and accept mouse and keyboard input, but it failed in the researcher’s emulated environment.

Expel could not identify the operator or final objective. Its low-medium-confidence assessment points to a ransomware operator or an initial access broker because the profiler counted Active Directory computers and the toolkit combined credential theft, internal tunneling, and interactive control. That assessment is attribution. Expel did not observe a ransomware deployment.

Hunt From Teams To Task

Microsoft’s Teams security-operations guide identifies MessageEvents, MessageUrlInfo, and UrlClickEvents as the tables for tracing external senders, message URLs, and user clicks. Correlate any matching conversation with endpoint creation of 331.msi, cleaner.ps1, archive6.zip, ss.py, msvcp150.dll, or msvcp160.dll; the two scheduled-task triggers; hidden PowerShell; and the %LocalAppData%\PowershellCleaner\script and %AppData%\<random>\fl\ang paths.

Search file telemetry for every reusable SHA-256 value Expel published:

ArtifactSHA-256
331.msi151d2a7f52f047638ca8ad80c859c6bfe04d7510fb10933817fa0e3ba5d07a11
cleaner.ps180f08360ba768b152b71abb1cab557f552a13de18c83fe8e6396a197feec9185
archive6.zip209f69a6ca859f05c954096b30391a43fda33c9ed264dfdccf806697f04b06a8
ss.pyd150c70d2732df17aa77991b9ebf4c896f044445e900978581d9598dfa5dc98c
msvcp150.dll61f961cfebdf9967844526649b4b75bba5b1b83210b70aa1bffe3f64e6ac3112
msvcp160.dll8207d8d949530ea063ffd5d47ee81b74bf718ec0a4755e2349e6af9b91e92dc1
Profiler loaderc4acda412774c292f0db5d64467a2dd09282cdea43c41967e8bf90f6298accf3
Persistence loader63622c1ddb3e2a9f11cac192e13ac7494f558516b19d5d8f140f6d0d4d38ea84
Fake lock-screen loadera335e75b78b601ebc5c258975d95fd79aa21f836fc6b79d82e9a22c596133f07
Persistence DLL0428fbdefa8dda10ce8fc12b1b516641e83cd5088388168e3f1a0be1432b4077
Fake lock-screen DLLcb1c657f74b9e57f5e81126179128e8db949d1d4196be9dcb890341e222fd384

Search DNS and proxy records for the attacker-controlled domains neversoftmain[.]net, rootfarmapp[.]net, tripinupdate[.]net, dondermicapp[.]net, and aroclenetapp[.]net. Expel withheld hashes for some victim-specific modules because their embedded identifier changes per infection.

The verification test has two parts. First, the Teams-to-device timeline should return no unexplained external support contact followed by an installer, the listed paths or hashes, a paired logon-and-10-a.m. task, or traffic to the five domains. Second, every investigated endpoint should have no surviving task or loader files and every exposed account should have its sessions revoked and password reset from a known-clean system. Any remaining match means containment and credential recovery are incomplete.

SynkLoader turns a familiar support conversation into a bridge between identity and endpoint telemetry. The strongest defense is the joined timeline: who contacted the user, what they installed, what persisted, and which credentials could have crossed the fake screen. Treating each signal alone gives the operator room to hide inside legitimate collaboration and cloud services.

Primary sources

Continue reading

Article figurePinch or double-tap to zoom, then drag to pan.