Home/ Blog/ Security news/ Article
Blog · Security news

TerminalFix moves ClickFix into the terminal to slip past the defenses built for the Run box

Microsoft documented TerminalFix, a ClickFix variant that pastes PowerShell into Windows Terminal to plant a reverse-tunnel backdoor. Here is what to detect.

Terminal window with a cursor line tunneling into a lattice of server nodes

For two years the ClickFix playbook trained people to do one thing: open the Windows Run box, paste a command they did not write, and press Enter. Defenders answered the way you would expect. Awareness training called out the Run dialog by name, endpoint rules started watching for a browser handing a command to explorer.exe, and some shops disabled Win+R outright. TerminalFix is the counter-move. It keeps the fake human-verification trick and simply relocates the paste into Windows Terminal or PowerShell, where the old dialog-specific defenses do not look and where multi-line scripts actually run. The relocation is the story, not the campaign.

Microsoft researchers documented TerminalFix in late August 2026 as a ClickFix variant, and were candid that they had not watched hands-on activity end to end. That caveat matters: treat the chain below as a well-sourced reconstruction, not a confirmed intrusion timeline. What they described is a clean, patient operation built to look boring at every step.

What Microsoft documented

The lure is a fake Cloudflare CAPTCHA served from compromised websites. Instead of a checkbox, the page tells the visitor to complete verification by pasting a command that is already sitting in their clipboard. Because the instructions now point at Windows Terminal or PowerShell rather than the Run box, a long, obfuscated, multi-line script pastes and executes cleanly, which the single-line Run field never allowed.

The command pulls a ZIP that pairs a legitimate signed executable, LockScreenContentServer.exe, with a rogue dui70.dll. That is the same DLL sideloading with a signed binary we have written about before: the trusted process loads the attacker's library and decodes an obfuscated payload straight into memory. Later stages hide inside PNG images. The malware downloads image files from attacker domains, then reassembles executable fragments out of the pixel data on disk. Persistence is unremarkable on purpose: scheduled tasks, Registry Run keys set to fire hourly, and a PowerShell loop that watches a text file for new commands.

Then it goes hunting. Microsoft describes reconnaissance that probes for domain controllers, databases, and backup servers, enumerates Active Directory, and looks specifically for domain administrator accounts reachable from the infected host. The payload that ties it together is a custom Python reverse tunnel, client.py, that dials out to gitnow[.]dev on port 443 over an encrypted WebSocket. It offers SOCKS5-style TCP proxying, multiplexes many connections over that one channel, rotates realistic browser User-Agent strings, keeps the link alive, and accepts a remote shutdown command.

Every stage is built to look boring

Read that list again as a defender and the design intent is obvious. A signed Microsoft-style binary loading a DLL is normal. A process pulling down PNG files is normal. An outbound 443 connection to a domain that reads like a developer tool, gitnow, blends into a workday full of GitHub, npm, and package registries. None of these indicators is damning on its own, and the specific file names, hashes, and domains will rotate the day after they are published. A defense built on blocking today's indicators fails by construction, because the operator built the chain to survive exactly that.

This is the practitioner point the source reports do not spell out. TerminalFix is not really a new piece of malware to add to a blocklist. It is the ClickFix family adapting around the defenses that worked, and the durable lesson is the pattern, not the payload. We made the same argument when we mapped the shared ClickFix delivery pattern across campaigns: the delivery evolves faster than any single indicator.

The signal is the sequence, not the indicator

If no single stage is suspicious, the tell is the order they happen in. That is a correlation problem, which is what a Wazuh-based detection setup exists to solve and what an antivirus signature cannot. The chain worth alerting on looks like this:

  • A terminal born from a browser. WindowsTerminal.exe or powershell.exe spawned as a child of a browser process, within seconds of a page load, is the paste moment. On its own it is your highest-value early signal.

  • A LOLBin from the wrong place. A signed binary such as LockScreenContentServer.exe running from a user-writable path, or loading a DLL from a directory it never normally uses, is the sideload.

  • Persistence created minutes after. A new scheduled task or Run key registered shortly after a terminal session, especially one pointing at a script that watches a file, ties the intrusion together.

  • A long-lived encrypted tunnel. A sustained outbound 443 WebSocket to a young or low-reputation domain, with rotating User-Agents and keepalives, is the reverse tunnel earning its keep.

Any one of these fires on plenty of benign activity. Two or three in sequence, on one host, inside a few minutes, is TerminalFix or something close enough that you want to look. PowerShell script block logging is what makes the obfuscated command readable after the fact, so turn it on if it is not already.

A confirmed hit is a lateral-movement incident

The reverse tunnel changes what cleanup means. A SOCKS5 proxy plus deliberate hunting for domain controllers and domain admin accounts means one pasted command has become a foothold on your internal network. The attacker can now reach internal hosts, ports, and services that were never exposed to the internet, using the victim's machine as the pivot. So a confirmed TerminalFix hit is not a malware removal ticket. It is a lateral-movement incident, and it should be handled like one: assume internal reconnaissance already happened, rotate any credentials the host could reach including domain admin, and hunt for the tunnel and any sessions it carried before you call the box clean. The pasted command is the least interesting part of this whole chain.

What to do this week

None of this requires a new product. It requires watching the sequence.

  • Enable PowerShell script block logging and ship it to your log pipeline, so an obfuscated one-liner is recoverable instead of invisible.

  • Write a correlation that pages when a terminal or PowerShell is spawned by a browser and is quickly followed by persistence or an outbound connection to a new domain.

  • Weight egress detection toward destination age and reputation plus connection lifetime, not just an allowlist. A keepalive-heavy 443 WebSocket to a domain first seen last week is worth a look even when the port is allowed.

  • Tell people the one rule that ends this entire class of attack: no real verification, update, or CAPTCHA ever asks you to paste a command into a terminal. If a site does, it is an attack, full stop.

ClickFix keeps working because it borrows the user's own hands to run the first command. Moving that command into the terminal buys the attacker quieter execution and a longer script, but it does not change the fix. Watch the sequence, log the shell, and treat the tunnel as the emergency. The fake checkbox was never the point.

Topics

Frequently asked questions

What is TerminalFix?

TerminalFix is a ClickFix variant that Microsoft documented in late August 2026. A fake Cloudflare CAPTCHA on a compromised site instructs the visitor to paste a clipboard command into Windows Terminal or PowerShell, which downloads and runs a reverse-tunnel backdoor.

How is TerminalFix different from normal ClickFix?

Standard ClickFix sends victims to the Windows Run dialog, which only accepts a single line. TerminalFix directs them to Windows Terminal or PowerShell instead, so long, obfuscated, multi-line scripts run cleanly and dialog-specific defenses do not see the paste.

What does the TerminalFix backdoor do?

It installs a Python reverse tunnel that connects out to attacker infrastructure over an encrypted WebSocket on port 443. The tunnel proxies TCP traffic, letting the attacker pivot from the infected host to internal systems while enumerating Active Directory and domain admin accounts.

Can antivirus stop TerminalFix?

Signature-based tools struggle because each stage looks benign in isolation: a signed binary, PNG downloads, and an outbound 443 connection. The indicators rotate quickly. Reliable detection comes from correlating the sequence of events on a host, not from matching a single file or domain.

How do I detect TerminalFix?

Enable PowerShell script block logging and alert on the sequence: a terminal or PowerShell spawned by a browser, a signed binary loading a DLL from an unusual path, persistence created minutes later, and a sustained WebSocket to a young, low-reputation domain on 443.

Ready to meet the Guardians?

Deploys fast - agentless for monitoring and cloud, a lightweight agent for deep endpoint security. Just Suriq, standing watch.