Full research report
TerminalFix Uses Fake Cloudflare CAPTCHAs to Deploy Reverse-Tunnel Backdoor
Executive assessment
TerminalFix represents a deliberate tactical refinement of the ClickFix social engineering template: by directing victims to Windows Terminal rather than the Run dialog, the attacker reliably executes multi-line, complex PowerShell scripts that the single-command Run box would truncate or fail to process. The seven-stage chain is architecturally significant because the reverse tunnel grants a persistent, authenticated SOCKS5-capable network pivot entirely independent of perimeter egress controls, making the compromised host a launchpad for internal targeting without requiring additional C2 tooling. The Active Directory reconnaissance phase specifically enumerates backup systems, databases, mail servers and domain controllers, a fingerprint consistent with pre-ransomware staging. No threat actor has been publicly attributed and the disclosed C2 infrastructure has not been linked to a known cluster, leaving campaign origin an open question. Defenders should treat any Trojan:Win32/TermFix.* or Trojan:Python/Indigo.SA detection as a potential full-chain compromise and prioritise host isolation, credential rotation and internal network traffic review.
What happened
On 28 August 2026, Microsoft Threat Intelligence published an analysis of TerminalFix, a ClickFix variant that directs victims to paste malicious PowerShell commands into Windows Terminal rather than the traditional Run dialog, increasing the fidelity of multi-line script execution. The campaign uses compromised websites overlaid with fake Cloudflare CAPTCHA pages to initiate a seven-stage intrusion chain combining DLL sideloading, steganographic payload delivery, Active Directory reconnaissance, and a custom Python-based reverse-tunnel implant. No specific threat actor has been attributed and no CVEs are associated with the campaign.
Affected scope
Organisations across multiple industries running standard Windows endpoints accessible via compromised websites; no specific sectors, geographies or named organisations have been disclosed. Any user with access to Windows Terminal or PowerShell and exposed to a compromised web property is in scope.
Technical assessment
A legitimate Microsoft-signed binary (LockScreenContentServer.exe) is hijacked via DLL sideloading of a rogue dui70.dll placed in the same directory. The sideloaded DLL fetches additional payloads concealed within PNG image pixel (RGBA channel) data, evading content-based inspection. Dual persistence is established through Registry Run keys and 60-minute scheduled tasks. The final-stage Python 3.14.5 implant (client.py, run via embedded pythonw.exe) creates a SOCKS5-style TCP tunnel over TLS WebSocket to gitnow[.]dev:443, giving the operator a persistent network pivot into the victim's internal environment. Active Directory enumeration specifically targets domain trusts, administrators, domain controllers, backup systems, gateways, mail servers and databases, indicating pre-ransomware or pre-exfiltration staging intent.
Recommended defensive actions
- Block or alert on the confirmed C2 and payload-delivery domains at DNS and proxy controls: gitnow[.]dev, bestsocialmedianewspapper[.]com, offlineupdater[.]com.
- Block the confirmed file hashes at endpoint controls: SHA-256 18c2090e8a0ae0568af9b87e59eaf8270f23d2909600ed9db91a9444fd8b278f (initial ZIP), ba77feed86bcda49308746421bdc684a432dd5d68c363975b2a3c6831bda3f07 (malicious DLL), b8d107800403b9197e5b7609ceacd8e4cac1b0f9a1d156e6dacd6c3f7794b36a (tunnel implant).
- Restrict PowerShell and Windows Terminal execution for standard users via AppLocker, Windows Defender Application Control or Group Policy; implement Constrained Language Mode where feasible.
- Enable PowerShell script block logging and configure detection alerts for LockScreenContentServer.exe executing from any path outside C:\Windows\SystemApps.
- Hunt across the estate for Defender detections Trojan:Win32/TermFix.*, Trojan:Win32/ClickFix.*, Trojan:Win32/Posilod.*, and Trojan:Python/Indigo.SA; treat any hit as a potential full-chain compromise requiring immediate host isolation and credential rotation.
- Train users to recognise fake CAPTCHA social engineering and emphasise that no legitimate website instructs users to paste commands into a terminal or PowerShell window.
Uncertainties and evidence gaps
- No threat actor has been attributed; it is unknown whether TerminalFix represents a single group or a shared technique adopted by multiple operators.
- The full extent of victim organisations, affected sectors and geographic spread has not been disclosed.
- It is unclear whether the campaign remains active following publication of the Microsoft advisory and whether the disclosed infrastructure is still operational.
- No independent confirmation of post-exploitation outcomes such as data exfiltration or ransomware deployment has been published.
Vulnerability flow
Defender-oriented path reconstructed only from sourced report findings. Unknown stages are omitted.
Microsoft confirmed active in-the-wild deployment of TerminalFix against organisations across multiple industries; no CISA KEV listing exists and no specific threat actor has been attributed.
The investigation began with a single untrusted article from The Hacker News attributing the disclosure to Microsoft researchers. The Microsoft Security Blog post published two days earlier was confirmed as the authoritative primary source, providing a complete technical chain, IOC table with SHA-256 hashes, Defender detection names and MITRE ATT&CK mappings. GBHackers independently corroborated the campaign with additional detail, including the embedded Python 3.14.5 runtime version and enumeration of specific AD object types targeted during reconnaissance. A search for public proof-of-concept code returned only generic ClickFix technique repositories unrelated to this campaign. No threat actor attribution or CVE assignment was identified across any source consulted.
- Does the primary source article exist and what technical detail does it contain?Fetched The Hacker News article at the supplied URLthehackernews.com โ
Confirmed campaign exists; attributed disclosure to Microsoft researchers Sagar Patil, Suriyaraj Natarajan and Parasharan Raghavan; described full attack chain, C2 domains (gitnow[.]dev, bestsocialmedianewspapper[.]com, offlineupdater[.]com) and malware components; no CVEs mentioned.
why Established the event's factual basis and identified the Microsoft Security Blog as the primary source requiring direct verification.
- What does Microsoft's own advisory contain, and does it extend the Hacker News reporting?Fetched Microsoft Security Blog post identified in search resultsmicrosoft.com โ
Full IOC table including three SHA-256 file hashes, four C2/payload domains, Defender detection signatures (Trojan:Win32/TermFix.*, Trojan:Python/Indigo.SA), MITRE ATT&CK technique IDs (T1574.002, T1027.003, T1572), Advanced Hunting queries, and a seven-stage attack chain. Published 28 August 2026.
why Authoritative primary source; its IOCs and detection guidance are the most actionable intelligence in the report and confirm the Hacker News summary was accurate.
- Are there public searches linking the known C2 domains to a broader known threat actor cluster?Searched for TerminalFix C2 domains in open-source threat intelligence
No third-party infrastructure attribution or actor-cluster linkage for gitnow[.]dev, bestsocialmedianewspapper[.]com or offlineupdater[.]com was found; all results traced to Microsoft's disclosure.
why Confirms that threat actor attribution remains an open question and no independent pivot into known actor infrastructure exists in public sources.
- Is public proof-of-concept or exploit code specific to TerminalFix available?Searched GitHub and open sources for TerminalFix proof-of-concept code
Only generic ClickFix technique repositories were returned; none are specific to the TerminalFix campaign, its custom DLL, or the Python tunnel implant.
why Supports the finding that no public TerminalFix-specific exploit code exists; poc_refs are correctly empty.
- Does GBHackers provide independent corroboration or additional technical detail?Fetched GBHackers article on TerminalFixgbhackers.com โ
Independently corroborated the full attack chain; added that the embedded Python runtime is version 3.14.5 and that AD reconnaissance specifically enumerates backup systems, gateways, mail servers and databases. No new attribution or CVEs.
why A second independent verified domain satisfies the corroboration requirement and adds reconnaissance-scope detail relevant to defenders assessing blast radius.
- Is there meaningful OSINT community chatter or analyst commentary beyond the vendor disclosure?Fetched KSEC community forum thread; attempted Substack security newsletter
KSEC forum contained only a link to the THN article with no community analysis. Substack returned HTTP 403 and could not be read.
why No meaningful OSINT chatter beyond the vendor disclosure was identified; osint_chatter is correctly empty.
Research coverage
All 73 registered source leaves were evaluated for this run: 65 completed, 0 were unavailable, 1 failed and 7 were disabled. For this story, 2 registered sources supplied useful evidence (2 primary, 0 corroborating, 0 contextual and 0 PoC/exploit references). 63 completed sources contained no matched information for this story.
Complete source-by-source audit 73 sources
| Source | Run result | Value | Why it was useful โ or not |
|---|---|---|---|
| Microsoft Securitynews | ok empty0 records | Primary evidence1 matched items | Supplied a vendor or government advisory opened and verified during focused research. |
| The Hacker Newsnews | ok1 records | Primary evidence1 matched items | Published the source report used to frame and date the event. |
| AlienVault OTXdark_web | failed0 records | Failed | The current collection attempt failed; this source cannot support the report. |
| BleepingComputernews | ok3 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| CERT-EU Threat Intelligencenews | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| CIRCL CVEcve | ok30 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| CISA Alertsnews | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| CISA KEVkev | ok1685 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Cisco PSIRTvendor_advisory | ok5333 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Cisco Talosnews | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| deepdarkCTI CVE most exploiteddeepdarkcti | ok94 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI Discorddeepdarkcti | ok7 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI exploitsdeepdarkcti | ok24 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI forumsdeepdarkcti | ok264 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI malware as a servicedeepdarkcti | ok7 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI malware samplesdeepdarkcti | ok3 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI marketsdeepdarkcti | ok127 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI phishingdeepdarkcti | ok19 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI ransomware gangsdeepdarkcti | ok688 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI RATsdeepdarkcti | ok1 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI Telegram infostealerdeepdarkcti | ok130 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI Telegram threat actorsdeepdarkcti | ok1013 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI Twitter threat actorsdeepdarkcti | ok39 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Exploit-DBexploit_reference | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| FIRST EPSSepss | ok8074 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Fortinet PSIRTvendor_advisory | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| GitHub topic: cveresearch | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| GitHub topic: exploitresearch | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| GitHub topic: penetration-testingresearch | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| GitHub topic: pocresearch | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| GitHub topic: vulnerabilityresearch | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| GreyNoiseexploit_reference | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| KrebsOnSecuritynews | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| LinkedIn RSS proxy feeds (disabled)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| MalwareBazaardark_web | ok3 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Mastodon #cveresearch | ok20 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Mastodon #cybersecurityresearch | ok17 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Mastodon #exploitresearch | ok12 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Mastodon #infosecresearch | ok19 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Mastodon #malwareresearch | ok19 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Mastodon #ransomwareresearch | ok14 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Mastodon #threatintelresearch | ok18 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Mastodon #vulnerabilityresearch | ok19 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Metasploit module metadataexploit_reference | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| Microsoft MSRCvendor_advisory | ok1591 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| MISP Galaxyresearch | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| MISP threat actor galaxyactor | ok0 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| NVDcve | ok900 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Palo Alto Networks PSIRTvendor_advisory | ok25 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| ProjectDiscovery nuclei templatesexploit_reference | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| Rapid7news | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| Reddit r/AskNetsec (pending API approval)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| Reddit r/cybersecurity (pending API approval)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| Reddit r/malware (pending API approval)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| Reddit r/netsec (pending API approval)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| Reddit r/ReverseEngineering (pending API approval)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| SANS ISCnews | ok1 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| SentinelLabsnews | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| Shadowserver public aggregate honeypot observationsexploit_reference | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| Shodanresearch | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| Sigma Rulesresearch | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| Sophos IOCsresearch | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| Sophos X-Opsnews | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| The DFIR Reportnews | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| ThreatFoxthreat_intelligence | ok100 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| UK NCSCnews | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| Unit 42news | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| Unit42 IOCsresearch | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
| URLhausdark_web | ok10 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| VirusTotal Community IOC enrichmentresearch | ok4 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| VulnCheck KEVkev | ok500 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| Vulnerability Lookupcve | ok30 records | Checked โ no match | The source completed, but none of its retained records matched this story. |
| WeLiveSecuritynews | ok empty0 records | Checked โ no match | The source completed but returned no records in the collection scope. |
Additional verified pages 4 opened outside the registered collection
Vendor & gov advisories1
Primary vendor advisory with full IOC table, SHA-256 hashes, Defender detection signatures, MITRE ATT&CK mappings and Advanced Hunting queries
Analysis & research2
Independent editorial summary corroborating Microsoft's disclosure; includes mitigation recommendations
Independent technical breakdown adding Python 3.14.5 runtime detail and enumerating specific AD object types targeted during reconnaissance