Case Library / ClickFix & SEO Poisoning / Gootloader Returns After a 7-Month Break: SEO Poisoning, a Homoglyph Masthead, Glyph-Swapped Fonts, and a Malformed ZIP That Only Windows Extracts (2025)
ClickFix & SEO Poisoning Documented incident

Gootloader Returns After a 7-Month Break: SEO Poisoning, a Homoglyph Masthead, Glyph-Swapped Fonts, and a Malformed ZIP That Only Windows Extracts (2025)

Gootloader went quiet in the spring of 2025, the tracking researcher telling BleepingComputer his abuse reports caused the operation to cease on March 31, and returned on November 5, 2025 with a lure page that redraws for visitors who pass its gates into an impersonation of a real institution built from Cyrillic lookalike letters, a glyph-swapping WOFF2 web font that keeps malicious filenames out of the page source, and a deliberately malformed ZIP that the built-in Windows extractor turns into a working JScript loader while 7-Zip, WinRAR, Python and VirusTotal either fail on it or produce a .txt of the same name, spread over 100 websites and thousands of keywords, feeding the Supper SOCKS5 backdoor and, via Storm-0494 and Vanilla Tempest, ransomware staging.

Share:

Social Engineering Examples·7 sources

What happened

Gootloader is a JavaScript-based initial-access malware loader active since 2020 that spreads via SEO-poisoned and compromised websites promising free legal/business document templates. A pseudonymous independent researcher who tracks and disrupts the operation (filing abuse reports against its hosting/ISP infrastructure) told BleepingComputer his efforts caused the operation to go quiet on March 31, 2025. On November 5, 2025, the researcher and Huntress Labs analyst Anna Pham reported Gootloader had returned; Huntress said it had already observed three infections since October 27, 2025, two of which escalated to hands-on-keyboard network intrusions. The relaunched campaign kept the legal-document theme but changed what the victim actually sees. The poisoned page now has two states. A visitor who fails the site's gates gets a harmless blog post on their search term, which the researcher describes as "often AI-generated, likely via ChatGPT or similar tools." A visitor who passes watches the page redraw into an impersonation of a real institution: the researcher's worked example is a masthead reading "Tһе Υаle Law Jοurnаl", where the second letter of "The" is not a Latin h but the Cyrillic small letter shha. The redrawn page then offers several resources (PDFs, DOCX files, videos and PNGs) fitted to the search term, and every download link delivers the same zipped JScript. Two pieces of new evasion tradecraft sit behind that page: a custom, Z85-encoded WOFF2 web font whose glyph vector paths are swapped, so malicious filenames render as ordinary document names in the browser while the page source holds only gibberish; and a deliberately malformed ZIP whose truncated End of Central Directory and mismatched Local File Header and Central Directory metadata make Windows' built-in unarchiver produce a working .js file while other tools do not. What those other tools produce is where our sources part company, and the case should not flatten it. BleepingComputer and the researcher report that VirusTotal, Python's zip utilities and 7-Zip unpack a harmless-looking .txt of nearly the same name (Review_Hearings_Manual_202.txt against the real Review_Hearings_Manual_2025.js). The DFIR Report observation that Huntress relays says the opposite about that file: opened with 7-Zip, the archive "drops the malicious JavaScript file disguised as a .txt file." Expel, the only researcher to take the November archives apart, found neither, reporting that specialized tools such as 7-Zip and WinRAR fail to parse the file at all, and that the archive it examined held one file, the JScript, repeated 803 times, with no benign second file anywhere in it. The researcher's blog reported the relaunch spanning 100 websites and thousands of unique keywords. Huntress attributes use of Gootloader to Storm-0494, which grants the access it gains to the ransomware affiliate Vanilla Tempest, with the Supper SOCKS5 backdoor serving as the post-exploitation tunneling tool observed in the access chain toward ransomware staging.

How it worked

Gootloader's chain begins with SEO poisoning (and, in an earlier 2025 wave predating the hiatus, some malicious search ads) that push compromised or attacker-built WordPress sites to the top of results for long-tail legal/business queries (Huntress's example: a user searching Bing for "missouri cover utility easement roadway" landed on the #1 result, a compromised site serving the payload). For a visitor who clears the gates, the page redraws into a convincing imitation of a real institution and presents documents, videos and images as free resources on the searched topic; Huntress's example site offered five payloads, each behind a Download button. Clicking one fires a POST request to WordPress's native comment endpoint (/wp-comments-post.php, parameter comment_post_ID={document_id}), abusing legitimate site functionality to serve the payload while showing the victim a fake download-progress popup. The response is an XOR-encrypted ZIP archive, decrypted client-side with a key hardcoded in the page and unique to each of the five offered document names. The ZIP itself is deliberately malformed: its End of Central Directory record is missing two mandatory bytes, its Local File Header and Central Directory entries mismatch on CRC32, compressed and uncompressed size, and filename, and non-critical fields such as disk number are randomized so that every download is a different file. The asymmetry all sources agree on is that Windows' built-in unarchiver, which most victims use by default, produces a working .js file and other tools do not. What the other tools produce is disputed: BleepingComputer and the researcher describe a harmless-looking .txt surfacing in VirusTotal, Python's zip utilities and 7-Zip; the DFIR Report observation relayed by Huntress describes that .txt as the malicious JavaScript under a changed extension; and Expel's teardown of the November archives found the specialized tools failing outright, on an archive of 500 to 1,000 concatenated copies in which the same Local File Header and End of Central Directory each appear 803 times and no second file exists. WinRAR belongs in the group that fails, not the group that yields a .txt. On top of that, the JavaScript on the lure page renders filenames using a custom, Z85-encoded WOFF2 web font whose glyph vector-paths are deliberately swapped (the glyph named 'O' actually draws an 'F', 'a' draws 'l', etc.) so the rendered filename looks like a normal document name in the browser while the raw HTML/source contains meaningless character strings, defeating keyword-based detection for terms like "invoice" or "contract." The gating layer that decides which version of the page a visitor sees is inferred rather than documented: the researcher lists the likely conditions as being in an English-speaking country, using Windows, arriving from a search engine, and browsing during work hours. Visitors who fail get the harmless blog post, which he describes as "often AI-generated, likely via ChatGPT or similar tools," rather than the malicious download flow. When the victim double-clicks the .js file inside the opened archive, Windows Script Host runs it from the temporary folder Explorer creates for the ZIP's contents, triggering an obfuscated JScript loader that spawns PowerShell and pulls further payloads (historically Cobalt Strike, GootBot, and various backdoors). Huntress ties current Gootloader activity to Storm-0494 (Microsoft/MSTIC's designation), the actor that uses Gootloader for initial access and then grants that access to Vanilla Tempest; part of that post-exploitation toolkit is the Supper SOCKS5 backdoor/proxy (heavily obfuscated with API hammering, runtime shellcode construction, API hashing, and custom 2-byte LZMA compression), used for remote access and tunneling ahead of ransomware staging (Rhysida, BlackCat, Zeppelin, Quantum Locker have all followed Gootloader intrusions historically). Persistence shifted from scheduled tasks to a two-step shortcut chain: a .lnk in the Startup folder points to a second .lnk under %AppData%, which runs a second JScript file from that same folder, and Expel records that second stage running under CScript rather than WScript. The shortcuts name their targets by Windows 8.3 short filename (MOLECU1.LNK for Molecular Ecology.lnk, EMCCON1.JS for EMC ControlCenter.js), and each carries an assigned hotkey, CTRL+ALT+M and CONTROL+ALT+G in the cases Huntress saw, which the malware presses itself during the first infection to trigger execution. Post-infection timelines were fast: Huntress observed reconnaissance beginning within 20 minutes and domain-controller compromise in as little as 17 hours (16h54m) in one case; separately, for this same November 2025 wave, The DFIR Report shared with Huntress an observation of lateral movement toward a domain controller within one hour of initial JavaScript execution in a distinct intrusion, a different, more recent data point than The DFIR Report's own separately cited 2024-published writeup of an older February 2023 intrusion, which documented a roughly nine-hour timeline to Cobalt Strike deployment.

The lure and the tell

Lure: a page that ranks #1 (via SEO poisoning, and per historical reporting also sometimes paid search ads) for a specific, often obscure legal or business query, which redraws for visitors who pass its gates into what looks like a real institution's site, in the researcher's example a law journal whose masthead spells its own name with a Cyrillic letter, and offers PDFs, DOCX files, videos and images on the searched topic behind Download links. It runs on the assumption that someone hunting a niche legal form wants it quickly and trusts a top-ranked, official-looking result. Tell: the resource arrives as a ZIP rather than the PDF or DOCX advertised; inside is a file with a .js extension carrying a document-like name (Missouri_Utility_Easement_Guide_2023.js, Domestic_Partnership_Agreement_Template.js, Review_Hearings_Manual_2025.js are documented names from this wave); the filename shown on the page cannot be usefully copied or searched, because the characters in the source are gibberish that only the attacker's font renders as words; the archive will not open in 7-Zip, WinRAR or Python, or opens to something other than what Explorer shows; and double-clicking the file launches Windows Script Host (wscript.exe) rather than a document viewer. A legal template that behaves this way is an executable script.

Outcome

No breach notification, named victim organization, or financial loss was publicly disclosed for this specific 2025 return; this is vendor/independent-researcher threat intelligence, not a disclosed breach. What is documented: Huntress recorded at least three Gootloader infections starting October 27, 2025, two of which escalated to hands-on-keyboard intrusions with domain-controller compromise (in as little as 17 hours in one case, and under one hour to lateral movement toward a DC in a separate intrusion during this same wave, per an observation The DFIR Report shared directly with Huntress, distinct from The DFIR Report's own separately cited 2024 writeup of an older, February 2023 intrusion). Researchers (the pseudonymous "Gootloader" tracker, Huntress's Anna Pham, and later Expel) published detailed technical breakdowns. The YARA rule for the malformed-ZIP pattern is Expel's alone: the researcher's blog publishes no rule, and the YARA Huntress published covers the Supper backdoor. In January 2026, Expel published a deep technical breakdown, covered the same day by BleepingComputer, showing the actor's ZIP archives were built from 500 to 1,000 concatenated copies of the same archive. Expel's rule (gootloader_zip_archive_2025_11_17, created 2025-11-17) is described as consistently identifying the archives from November 11 through publication, with the author's own caveat attached: the methodology for creating these archives may change once the report is public. The campaign remains an active, ongoing initial-access threat rather than a closed incident with a final tally.

Why it matters

This case shows that "check if the search result looks legitimate" is no longer sufficient defense: Gootloader's operators specifically poison long-tail, low-competition search queries so their fake sites rank #1, exploiting exactly the trust users place in top organic results. It also illustrates how file-format ambiguity itself becomes a social-engineering and evasion tool: one archive is readable to the victim's default Windows extractor and unreadable, or misleading, to the tools defenders would analyze it with, which is enough to keep it out of the sandboxing and threat-intel pipelines meant to warn people in time. The glyph-substitution font trick further shows that visual/rendered content and underlying source content can now be deliberately decoupled, a technique with clear generalization risk beyond this one loader. The reported use of likely-AI-generated decoy content in the cloaking layer is a smaller but notable data point that commodity generative tools are being folded into even the supporting infrastructure of established, non-AI-native malware operations. Finally, the case is a clean illustration of the initial-access-broker ecosystem: a single careless template download can cascade, within hours, into domain-controller compromise and ransomware staging by an entirely separate criminal group (Vanilla Tempest), and in this wave the observed endpoint was preparation for encryption rather than encryption itself, which is why user-level social engineering training and technical controls (disabling default JS execution) both matter even for "routine" downloads.

Defenses

Expel's report carries the preventive and first-stage detection guidance: (1) change the default Windows handler for .js and .jse files from WScript to Notepad via GPO so double-clicking a downloaded script cannot auto-execute it, and block wscript.exe and cscript.exe from executing downloaded content where JScript is not needed; (2) monitor for wscript.exe executing a .js file out of %AppData%LocalTemp; (3) monitor for .lnk files created in the Startup folder that point at scripts in non-standard directories, and flag cscript.exe executing a .js file by its NTFS short name; (4) alert on the process tree cscript.exe to powershell.exe, and on the PowerShell instance that spawns a second PowerShell carrying an obfuscated command, which is the documented shape of this loader rather than an encoded-command flag; (5) detect the malformed-ZIP structure itself, using Expel's YARA rule matching the repeated Local File Headers and End of Central Directory records; (6) treat any ZIP that other tools cannot open, or that extracts differently in Windows Explorer than in 7-Zip, WinRAR, Python's zipfile or VirusTotal, as a red flag rather than a benign quirk. Huntress's own guidance is behavioral and post-execution: monitor for AD enumeration (Kerberoasting, SPN scanning), domain-wide local admin scanning, WinRM lateral movement, privileged account creation, and Volume Shadow Copy enumeration, and hunt for Supper SOCKS5 backdoor indicators (heavy API hammering and hashing, runtime shellcode construction, 2-byte LZMA-compressed C2) once Gootloader execution is confirmed, since it signals the handoff toward Vanilla Tempest ransomware staging. Separately, user awareness that top-ranked results and ads for free legal or business document templates are a known poisoning target, especially on niche long-tail queries, is the only control that bites before the download.

Sources
  • Gootloader | Threat Detection Overview ("Gootloader Returns: What Goodies Did They Bring?"). Huntress (Anna Pham) (primary). Re-fetched and verified 2026-09-02; content matches. The page renders with an empty "By:" field, so the byline comes from BleepingComputer, which names her. Primary vendor research disclosing the WOFF2 glyph-substitution technique, WordPress comment-endpoint abuse, Storm-0494/Vanilla Tempest/Supper SOCKS5 attribution, infection timelines (confirmed exact figures: 20 minutes to recon, 16h54m and 17h to DC compromise, under 1 hour DFIR-shared data point), and the DFIR-Report-shared under-1-hour lateral movement data point for this same wave.
  • Gootloader Is Back (Back Again). Independent Gootloader-tracking researcher (primary). Re-fetched and verified 2026-09-02; content matches. First-party researcher blog covering the November 5, 2025 return, the 100-website and thousands-of-keywords scale, the gated page redraw and the Cyrillic-homoglyph masthead, the Startup to AppData shortcut chain and its self-pressed hotkey, and the decoy content described verbatim as 'often AI-generated, likely via ChatGPT or similar tools.' This post does not contain the March 31, 2025 cessation date, which appears only in BleepingComputer; it dates the disruption to "my April blog."
  • Gootloader malware is back with new tricks after 7-month break. BleepingComputer (Lawrence Abrams), 2025-11-05 (secondary). Re-fetched and verified 2026-09-02; content matches. Lead journalistic source synthesizing researcher and Huntress findings, the only source for the researcher's claim that his activities caused the operation to cease on March 31, 2025, and the source of the Anna Pham byline. Its "Get Document" and mutual_non_disclosure_agreement.js passages describe the pre-hiatus campaign, not the November 2025 return.
  • SEO Poisoning to Domain Control: The Gootloader Saga Continues. The DFIR Report (primary). Re-fetched and verified 2026-09-02; content matches. DFIR Report's own incident-response research on a separate, older February 2023 intrusion (~9-hour timeline to Cobalt Strike), confirmed used here only as historical-pattern context; not the source of the 'under one hour' figure for the November 2025 wave, which comes from a DFIR-Report observation shared directly with Huntress and quoted in Huntress's blog.
  • Planned failure: Gootloader's malformed ZIP actually works perfectly. Expel (Aaron Walton), 2026-01-15 (primary). Re-fetched and verified 2026-09-02; content matches. Tagged primary because it is Expel's own first-hand analysis of archives it collected, and it is the only teardown of the November 2025 ZIP structure the case relies on. Confirms the Local File Header against Central Directory metadata mismatch (CRC32, sizes, filename fields), the 500 to 1,000 concatenated archives, the single JScript repeated 803 times with no benign second file, and the GPO, temp-folder, NTFS-shortname and process-tree detections the case attributes to Expel. Its YARA rule is dated to cover November 11, 2025 through publication and carries the author's caveat that the build methodology may change once the report is public.
  • Gootloader Returns: Malware Hidden in Google Ads for Legal Documents. Independent Gootloader-tracking researcher, 2025-03-31 (primary). Fetched and verified 2026-09-02. Documents the pre-hiatus Google Ads wave through lawliner[.]com and the advertiser "MED MEDIA GROUP LIMITED", the "Get document" button and email-gated delivery of that wave, and the scheduled-task persistence Gootloader used before the November change. Cited here so the hedged malvertising channel entry and the pre-hiatus attribution of the "Get document" label are traceable.
  • Gootloader now uses 1,000-part ZIP archives for stealthy delivery. BleepingComputer (Bill Toulas), 2026-01-15 (secondary). Fetched and verified 2026-09-02. The same-day trade coverage of Expel's report that the Outcome section refers to.
Cite this case

Social Engineering Examples. “Gootloader Returns After a 7-Month Break: SEO Poisoning, a Homoglyph Masthead, Glyph-Swapped Fonts, and a Malformed ZIP That Only Windows Extracts (2025)”. Accessed 3 November 2026. https://socialengineeringexamples.com/gootloader-returns-2025

Attack Chain & Defense
1Reconnaissance and keyword targeting
What happened

Gootloader's operators are documented (per Huntress and the independent tracking researcher) as building campaigns around long-tail, low-competition legal and business search queries, such as state-specific easement agreements or NDA templates, likely using SEO/keyword-research tooling to find terms with weak existing competition where a new page can plausibly reach the #1 organic result.

The control that would have stopped it

Search-engine keyword competitiveness and niche legal terminology are outside any single target organization's control to police; the realistic control sits downstream, training users and setting technical policy to distrust "free template" download flows regardless of how highly a site ranks.

2Infrastructure and tooling staging
What happened

Ahead of any victim contact, the operation compromises existing WordPress sites and/or stands up attacker-controlled ones, and builds the cloaking/gating logic, the XOR-encrypted payload-delivery flow, and the custom Z85-encoded, glyph-swapped WOFF2 font used to disguise malicious filenames.

The control that would have stopped it

Compromised WordPress infrastructure is best addressed at the hosting/webmaster layer through patching and plugin hygiene, and abuse-report pressure on hosts and ISPs, the approach the independent researcher used, has previously been enough to force the operation into a multi-month hiatus.

3SEO poisoning and search-result manipulation
What happened

The prepared sites are optimized to rank for the targeted queries, and in earlier 2025 activity predating this specific wave were reportedly sometimes boosted with paid search ads, consistent with Huntress's documented example of a Bing search landing directly on the #1 poisoned result.

The control that would have stopped it

Organizations cannot remove poisoned pages from search results themselves, but security-awareness training can flag an unusually well-ranked, previously unknown site for a hyper-specific legal query as a known poisoning pattern.

4Victim search, gating, and page redraw
What happened

A user searching for a legal or business document template reaches the top-ranked poisoned page. A visitor who fails the site's filters sees only a harmless blog post on their search term, which the researcher describes as often AI-generated. A visitor who passes watches the page redraw into an impersonation of a real institution, the researcher's worked example being a law journal masthead in which the second letter of "The" is the Cyrillic small letter shha rather than a Latin h. The redrawn page presents several resources (PDFs, DOCX files, videos and PNGs) fitted to the search term, each behind a download link.

The control that would have stopped it

User awareness that legitimate legal-document providers are rarely the newest or top-ranked result for an obscure query, and that authentic templates are normally delivered as PDF/DOCX rather than a ZIP archive, undercuts the trust the click depends on.

5Cloaked and disguised payload delivery
What happened

Clicking any resource link posts to the site's WordPress comment endpoint and returns an XOR-encoded blob that the browser decodes and appends to itself until it reaches size, producing a deliberately malformed ZIP whose filename is legible on the page only through the glyph-swapped font. The gating conditions are the researcher's inference rather than documented fact: he lists them as likely being in an English-speaking country, using Windows, arriving from a search engine, and browsing during work hours.

The control that would have stopped it

Treat any ZIP download from a document-template site that other tools cannot open, or that yields different contents in Windows Explorer than in 7-Zip, WinRAR, Python's zipfile or VirusTotal, as a red flag rather than a benign quirk. That is Expel's detection argument, and it is more tractable than trying to catch the cloaking or the font trick itself.

6Execution
What happened

The victim opens the archive with Windows' built-in archive handler and double-clicks the .js file inside it, which Windows Script Host runs directly from a temp folder, launching an obfuscated JScript loader that spawns PowerShell.

The control that would have stopped it

Change the default Windows handler for .js and .jse files from WScript to Notepad via GPO so a downloaded script cannot auto-execute on double-click, and monitor for wscript.exe running a .js file out of the user's temporary folder under AppData. Both are Expel's recommendations.

7Persistence and initial reconnaissance
What happened

The loader drops a .lnk in the Startup folder that points to a second .lnk under the AppData directory, which runs a second JScript file from that same folder under CScript. The shortcuts reference their targets by Windows 8.3 short filenames (MOLECU1.LNK for Molecular Ecology.lnk, EMCCON1.JS for EMC ControlCenter.js) and carry assigned hotkey combinations, which the malware presses itself during the first infection to start execution. Per Huntress's telemetry, host and Active Directory reconnaissance (including Kerberoasting and SPN scanning) typically begins within about 20 minutes of execution.

The control that would have stopped it

EDR visibility into Startup-folder .lnk files pointing at scripts in non-standard directories, plus an alert on cscript.exe running a .js file by its 8.3 short filename, both of which Expel recommends, combined with detections tuned to the AD-enumeration commands Huntress documented (Kerberoasting, SPN scanning) within the first tens of minutes after a suspicious script runs, catches the intrusion before it spreads.

8Backdoor deployment and lateral movement
What happened

The Supper SOCKS5 backdoor is installed for tunneled remote access, and in documented cases the intrusion progressed to domain-controller compromise in timeframes ranging from under one hour to roughly 17 hours.

The control that would have stopped it

Hunt for Supper SOCKS5 backdoor indicators (heavy API hammering/hashing, runtime shellcode construction, 2-byte LZMA-compressed C2) and alert on anomalous WinRM-based lateral movement or new Domain Admin account creation, the consistent pattern across Huntress's observed cases.

9Handoff and ransomware staging (objective completion)
What happened

Storm-0494, the actor Huntress says uses Gootloader for initial access, grants that access to the ransomware affiliate Vanilla Tempest. In the cases Huntress observed, the intruder reached Domain Admin and enumerated Volume Shadow Copies, the step that normally precedes encryption. Vanilla Tempest has deployed Rhysida, BlackCat, Zeppelin, and Quantum Locker in other intrusions. No ransomware deployment was reported in this wave.

The control that would have stopped it

Segment and monitor domain controllers so a single compromised endpoint cannot reach domain-admin privileges within hours, and treat any confirmed Gootloader execution as a likely ransomware precursor requiring immediate incident-response escalation, not an isolated malware event.

Quick Facts
Victim
General search users seeking legal/business document templates
(e.g., NDAs, utility-easement agreements) whose machines become initial-access footholds into their employers' corporate networks
Location
Global / search-driven, not geographically targeted
; specific observed infections in Huntress's US-based enterprise telemetry
Date
Return publicly reported 2025-11-05, with Huntress telemetry showing infections from 2025-10-27.
The 2025-03-31 cessation date is a claim the tracking researcher made to BleepingComputer and appears in no other source; Huntress describes the same period only as a brief resurgence in March 2025 before the operation went quiet again
Impact
No dollar figures were disclosed for this 2025 return specifically: no named victim, ransom demand, or loss total was published by Huntress, the independent researcher, The DFIR Report, or BleepingComputer.
BasisunquantifiedNo named victim or loss total published for this wave
The downstream risk is real but unquantified in public reporting: Huntress says Storm-0494 uses Gootloader for initial access and grants that access to Vanilla Tempest, a ransomware affiliate that has historically deployed Rhysida, BlackCat/ALPHV, Zeppelin, and Quantum Locker, all ransomware families associated with large (often six-to-seven-figure) extortion demands in other incidents, but none of those historical figures are tied to a confirmed victim of this specific November 2025 wave.
Status
Documented incident
Case Type
Real-World Incident
Sector
Cross-Sector / Multiple Industries, Legal Services
Threat Actor
Organized Crime
Explore more

Related Cases

Browse by what this case has in common with others in the library.