Table of Contents
A message landed in a director-level mailbox at a mid-size forensic engineering and investigative consulting firm in late July 2026. The subject line was one word, "Notification". The body was a fabricated Microsoft Teams audio-message notification with a reference string, a purported internal caller, and a single button labeled Listen to Message.
The button is not the interesting part. Buried four layers deep inside that button's destination, past two rounds of encoding, was a leftover tracking parameter that named an employee address at a completely different company. Nobody was ever supposed to read it. It is the closest thing to a serial number a phishing kit leaves behind.
The parameter that did not belong
The button's destination was not a link to a login page. It was a container holding another container.
The outer hop was a secure-link redirector operated by an email-security vendor. Its query string carried a base64url-encoded object, and inside that object sat a second vendor's threat-scanning endpoint. That endpoint's own parameters carried a URL-encoded third hop, a link-shield redirect run by a third vendor. And that redirect's parameters held the final destination, encoded a second time: a payment-themed path on the apex domain of a Brazilian law firm that has held that registration since 2004.
Sitting immediately beside the final destination in that third hop was a recipient-tracking parameter of the form r=(local-part)@(organization)[.]com. It named an employee address at an organization with no relationship to the recipient, no relationship to the sending domain, no relationship to Microsoft, and no relationship to the landing domain. Parameters like that exist so a redirect service can report who clicked. This one had simply never been updated. It still identified whoever the template was aimed at the last time it ran.
Be precise about what that establishes. It does not mean the organization named in the parameter was breached, attacked, or involved. It means the redirect and tracking scaffolding in this message was assembled for a different target, then shipped again without being cleaned. That is kit reuse, evidenced from inside the message itself rather than inferred from a family resemblance across cases.
What the wrapper chain actually proves
Three separate email-security vendors appear in the decoded chain, and the instinct that follows is a trap. A recognized vendor hostname in a URL does not mean the URL was vetted by that vendor. It means the URL was formatted to transit that service.
Here the platform's link analysis reached the visible wrapper hops and returned two Clean verdicts and one Mixed Result. Nothing in the record independently scanned the final destination, several layers further down. So the honest statement is that the platform classified the message as credential theft on behavioral grounds, and that the landing page's actual behavior was never confirmed. Anyone claiming otherwise is filling in a gap the evidence does not close.
Read the chain as plumbing instead of as scrutiny and it becomes useful. Reused plumbing is stable. The nesting order, the encoding pattern, and the leftover identifiers carry forward between campaigns even when the domains rotate, which makes them a better hunting surface than any single hostname in the message. CISA phishing guidance makes the same structural argument: defenses that key on individual indicators lose to attackers who swap them cheaply.
Hidden junk inside the brand text
The lure carried a second, independent fingerprint. A single CSS class collapsed a span to zero width and zero maximum height, with hidden overflow, zero font size, transparent color, and Outlook-specific hiding applied on top. The kit then spliced that span inside the brand words themselves. Short hex-like fragments were injected into the middle of Microsoft and into audio message, and a literal zero-width space (U+200B) was dropped inside Teams.
A human reads clean brand names. A filter reading raw text sees the brand fractured across invisible junk, so literal keyword and template matching fails. That maps to Obfuscated Files or Information, and the class name itself is the durable artifact: it was authored once, and it travels with every copy of the kit.
See Your Risk: Calculate how many threats your SEG is missing
Authentication that passed on borrowed infrastructure
SPF passed. The sending IP was authorized in the envelope-from domain's SPF record. DKIM was absent, the message was unsigned, and DMARC returned a best-guess pass with no action. Composite authentication passed.
None of that describes attacker-owned infrastructure. The envelope-from domain belongs to a Japanese company that has been registered for roughly 25 years, and the delivery path ran through a Japanese shared hosting provider's outbound relay. The incident record does not settle whether a mailbox at that company was compromised or whether its published SPF record simply authorizes a shared relay that any tenant on that platform could send through, and it should not be asserted either way. What matters operationally is that the domain is a bystander in both readings, so blocking it penalizes a legitimate business and costs the attacker nothing. The same applies to the law firm whose site hosts the final path, and to the organization named in the stale tracking parameter.
The behavioral signals were the ones that held. This was a first-time sender with no prior correspondence in either direction, and the body was padded below the Teams lure with an entire unrelated legitimate business thread, years old and lifted from somewhere else, which is a volume trick rather than a credibility one. The 2026 Verizon Data Breach Investigations Report puts the human element in 62% of breaches, phishing as the initial access vector in 16%, and credentials somewhere in the kill chain in 39%, which is why credential harvesting remains the objective even when every technical check on the envelope comes back green. Authentication answers who was permitted to send. NIST defines the attack by its deception, not its transport.
What flagged it, and what happened next
Themis scored the message at 82% confidence and applied two labels, credential theft and VIP recipient, the second because the target was a director-level mailbox. It called out the Listen to Message link specifically as malicious, and the platform resolved the report as phishing automatically.
Then the campaign kept going. Over the following week, four more mailboxes at the same firm received the same template, and each was quarantined automatically within seconds of delivery. Reaching a decision on the pattern once, then applying it across the tenant without waiting for five separate analyst reviews, is the part that scales. That is what our Adaptive AI is for, and it is the same reason credential harvesting protection has to score sender behavior and message structure rather than trusting a hostname in a rewritten link.
Hunting reused kits instead of reused domains
Decode redirect chains all the way down, not to the first vendor hostname you recognize. Then read the leftovers. A tracking identifier that names an unrelated organization is not noise, it is a pivot, and it tells you the template predates this campaign and will outlive it. Hunt the hiding CSS class, the injected fragments, and the nesting order, because the attacker will change domains long before rewriting the kit. And when the sending domain and the landing domain both turn out to belong to real businesses, resist the block list. The infrastructure here was borrowed. The only thing the attacker actually owned was the template, and the template is what left a fingerprint.
Indicators of Compromise
| Type | Indicator | Context |
|---|---|---|
| Subject | Notification | single-word subject on the initial delivery |
| Sender alias | Messaging Center | display alias on a genericized bystander domain |
| Sender address | genericized (bystander) | SPF-passing mailbox at a long-established Japanese company |
| Relay path | genericized (bystander) | authenticated submission into a shared hosting provider's outbound relay |
| Template artifact | MSG-039528CA | fabricated Teams reference string in the lure |
| CSS class | __wfo47dh | zero-size, transparent, overflow-hidden span class concealing injected text |
| Hidden fragments | 3c6 , d3c , 6a7 | hex-like strings spliced inside brand and body words |
| Unicode | U+200B | zero-width space injected inside the brand word Teams |
| Chain shape | wrapper, then base64url key object, then scan endpoint, then link-shield redirect, then final path | four-layer nesting; wrapper hostnames genericized |
| Stale tracking parameter | r=(local-part)@(unrelated organization)[.]com | leftover token naming an unrelated third party; kit-reuse fingerprint |
| Redirect session token | 1784835316202-013-00025025 | sid value in the third redirect hop |
| Landing path | /pay on a genericized Brazilian law firm apex domain (registered 2004) | final destination; bystander domain, never independently scanned |
| Scan verdicts | Clean, Clean, Mixed Result | platform verdicts on the visible wrapper hops only |
| Authentication | spf=pass , dkim=none , dmarc=bestguesspass , compauth=pass | envelope-from aligned to the bystander domain |
| Body padding | unrelated legitimate business thread, several years old | appended below the lure as bulk |
MITRE ATT&CK mapping
| Technique | ID | Observed behavior |
|---|---|---|
| Phishing: Spearphishing Link | T1566.002 | Fabricated Teams voicemail notification with a single nested redirect CTA |
| User Execution: Malicious Link | T1204.001 | Attack requires the recipient to click Listen to Message |
| Obfuscated Files or Information | T1027 | Zero-width space and CSS-hidden hex fragments spliced inside brand text; double URL encoding and base64url nesting in the CTA |
Related attacks
| Attack | What happened |
|---|---|
| The Button Text Was the Weapon: Unicode RTL Obfuscation Inside a DocuSign Lure | Attackers embedded Unicode right-to-left marks directly inside a CTA button label to scatter the string for NLP scanners. |
| The DocuSign Lure That Used Google as a Trust Shield (And Encoded Your Email in the Link) | A DocuSign phishing email hid its harvest domain behind a google.com redirect and encoded the recipient's exact email address into the link as base64. |
| Attackers Now Build Phishing Pages With AI App Builders | A credential-harvesting page in this campaign was built with an AI app builder and hosted on a trusted, fast-growing platform apex. |
| Disney+ Billing Lure Rides Legitimate Tax-Service Infrastructure to a phpList Subscribe Page | A Disney+ payment-failure lure was delivered through a legitimate tax-document delivery service under a REJECT DMARC policy. |
| The FedEx Invoice Your Scanner Couldn't Read on Purpose | A customs notification arrived from a real FedEx address with SPF, DKIM, and DMARC all passing. |
Explore More Articles
Say goodbye to Phishing, BEC, and QR code attacks. Our Adaptive AI automatically learns and evolves to keep your employees safe from email attacks.