Friday, August 28, 2026

Polymorphic Phishing Attack Generates Unique Credential-Stealing Page on Every Visit

A newly analyzed phishing operation is using server-side polymorphism to generate a distinct credential-harvesting page for virtually every request, undermining detection approaches built around file hashes, fixed HTML identifiers, and static JavaScript signatures.

The campaign came to light after a phishing message submitted to the SANS Internet Storm Center (ISC) pointed recipients to a URL structured as hxxps://addresses[.]performs[.]vu/communications.html?good=[recipient_address].

At first glance, the lure appeared routine. The target, however, served heavily obfuscated JavaScript that behaved differently across visits, eventually revealing a credential-stealing page whose underlying source code changed on every load.

The first visit did not render a phishing form at all. Instead, the browser stalled for roughly 30 seconds while a single CPU core reached 100% utilization, suggesting that the problem was client-side rather than caused by slow server response.

Analysis identified a logic error in the JavaScript decoder. Two functions relied on the same undeclared loop variable, k, making it global rather than local.

The outer routine was intended to iterate through values 0 to 63 as it built a decoding map. During each pass, it invoked a helper function that generated character strings for a Base64 alphabet.

A final helper call reset the global counter to 48. The outer loop then incremented it to 49, only for the inner routine to reset it again.

The decoder consequently became trapped in a repeating 48 → 49 sequence, preventing the browser from completing rendering while continuously consuming CPU resources.

Correcting the variable-scope collision allowed the payload to decode, exposing an otherwise conventional credential-stealing form.

The broken response initially looked like a simple coding mistake. Subsequent requests showed otherwise: the same URL later loaded normally, but each response carried a different implementation of the phishing page.

Across repeated loads, researchers observed randomized function and variable names, reordered functions, numerals represented through different arithmetic expressions, and altered encoded JavaScript blocks containing the final phishing payload.

The page title also rotated between innocuous terms including “Solution,” “Viewer,” “Credentials,” “Private,” and “Authenticate.”

Message notification (Source : SANS).
Message notification (Source : SANS).

A test involving 50 downloads of the same URL produced 50 samples with distinct SHA-256 hashes. The collection included 21 unique page titles.

Forty-nine samples deobfuscated successfully, while one reproduced the infinite-loop condition caused by another randomized variable-name collision.

Polymorphic Phishing Attack

SANS Researchers said that, polymorphism continued after JavaScript decoding. Each resulting phishing page used different form-field names, HTML element IDs, CSS class names, image-loading parameters, and zero-width-character placements.

Despite those source-level changes, the victim-facing form and credential-theft workflow remained substantially the same.

The technique is designed to degrade the value of conventional indicators.

Credential-stealing page (Source : SANS).
Credential-stealing page (Source : SANS).

A URL reputation system may still flag the infrastructure, but a detector relying on a single malicious hash, a particular input-field identifier, or a fixed JavaScript string can fail when each request produces a syntactically new sample.

Zscaler previously documented kits that create randomly named files and directories, along with random HTML attribute values, per visit to complicate analysis and signature-based detection.

However, this case demonstrates that aggressive mutation can introduce operational risk for attackers. Of approximately 56 collected samples, two were non-functional, indicating that the polymorphic generator occasionally produces pages unable to complete their own decoding routine.

That failure rate cannot establish the campaign’s overall reliability, but it shows that evasive code generation can degrade the attacker’s credential-harvesting success.

The campaign’s per-request generation raises an obvious question: whether an LLM was involved. There is no evidence proving that it was.

The systematic transformations and repeated variable-scope defects instead point more plausibly to a conventional polymorphic obfuscator that renames and reorders code without correctly accounting for JavaScript scope.

The possibility is nevertheless relevant. Unit 42 has demonstrated a proof of concept in which a webpage calls trusted LLM services to generate malicious JavaScript dynamically in the victim’s browser.

That model can create a syntactically distinct phishing payload per visit and reduce the effectiveness of static and network-only inspection.

For defenders, the practical lesson is to prioritize behavioral and runtime signals: suspicious form submission destinations, browser-side deobfuscation activity, excessive CPU consumption, dynamically generated DOM content, and credential capture attempts.

Polymorphism may frustrate static signatures, but it does not change the page’s ultimate behavior collecting and exfiltrating credentials.

★ Which Security Tools Should You Cut? Score Them on One Page – Download the Inherited Security Stack Guide

Mayura Kathir
Mayura Kathirhttps://gbhackers.com/
Mayura Kathir is a cybersecurity reporter at GBHackers News, covering daily incidents including data breaches, malware attacks, cybercrime, vulnerabilities, zero-day exploits, and more.

Hot this week

How To Access Dark Web Anonymously and know its Secretive and Mysterious Activities

What is Deep Web The deep web, invisible web, or...

How to Build and Run a Security Operations Center (SOC Guide) – 2023

Today’s Cyber security operations center (CSOC) should have everything...

Russian Hackers Bypass EDR to Deliver a Weaponized TeamViewer Component

TeamViewer's popularity and remote access capabilities make it an...

Web Server Penetration Testing Checklist – 2026

Web server pentesting is performed under three significant categories: identity,...

ATM Penetration Testing – Advanced Testing Methods to Find The Vulnerabilities

ATM Penetration testing, Hackers have found different approaches to...

Critical WordPress Plugin Flaw Allows Unauthenticated Administrator Account Takeover

A critical authentication bypass vulnerability has been identified in...

ServiceNow Patches Critical Flaws Enabling Unauthenticated RCE and SQL Injection

ServiceNow has issued security advisories for four vulnerabilities, including...

Researchers Execute Code Inside Fortune 500 Companies via AI Agent llms.txt Files

Security researchers have shown that AI coding agents can...

BlueDelta Targets Defense and Diplomatic Organizations With HOOKEDGE Malware

Russian state-linked threat actor BlueDelta has launched a renewed...

Unitree G1 Humanoid Robot Flaws Allow Unauthenticated Root RCE Over Bluetooth

Security researcher Boschko has revealed two vulnerabilities in Unitree’s...

TITAN RaaS Uses AI for Data Classification, Regulatory Analysis and Automated Ransom Calculation

A newly emerged ransomware-as-a-service operation named TITAN is advertising...

Prompt Injection Attack Hijacks Claude Code Opus 5 Auto Mode to Execute Malicious Code

A recent demonstration of prompt-injection research has revealed that...

Related Articles

Recent News