TL;DR A shared inbox at a regional CPA and accounting firm received a fake Microsoft Teams notification claiming unread messages were waiting. Authentication passed cleanly from a Spanish business domain registered nearly two decades earlier. Decoding the one call to action, layer by layer, recovered six separate legitimate email-security products' rewrites nested inside each other, two of them generated for other organizations entirely. Every one of the six had inspected the link and forwarded it onward. At the bottom sat a credential harvester on a hijacked website.
Severity: High Credential-Harvesting Brand-Impersonation Malicious-Url Link-Rewriting-Abuse Compromised-Sender MITRE: T1566.002 MITRE: T1656 MITRE: T1584.001 MITRE: T1204.001

A shared team inbox at a regional CPA and accounting firm received a notification telling it that unread Microsoft Teams messages were waiting. The subject came out of a merge field, reading as a quick update on the firm's own tasks with the firm name spliced in and a date stamp bolted on the end. Authentication was clean in every direction: SPF pass, DKIM pass on two separate signatures, DMARC pass, composite authentication at the maximum, all of it from a Spanish business domain registered nearly two decades earlier.

The entire message existed to deliver one link. Decoding that link took six passes.

Six Layers, Recovered One Decode at a Time

The visible link text read "View Teams Messages", once per MIME alternative. Behind it was a URL that had to be peeled rather than read, because every layer hid the next one differently.

The outermost wrapper, the one rendered in the email, was a Libraesva urlsand sandbox link on urlsand[.]esvalabs[.]com, whose u parameter held a complete second URL rather than a destination. That URL was an Egress Defend interstitial on links[.]uk[.]defend[.]egress[.]com/Warning, carrying a base64 target, a campaign reference id, a threat value, and a Domain parameter. Decoding its target took base64 with the URL-safe alphabet followed by a zlib decompress, and out came a full Cisco Secure Web rewrite on secure-web[.]cisco[.]com, which the Egress URL also named openly in an @OriginalLink parameter.

Inside the Cisco rewrite sat a Sophos Central Email safelink on us-west-2[.]protection[.]sophos[.]com. Base64-decoding its u parameter produced an EdgePilot link on link[.]edgepilot[.]com, and base64-decoding EdgePilot's u parameter produced a Barracuda Link Protect URL on linkprotect[.]cudasvc[.]com. Barracuda's a parameter, double URL-decoded, finally gave up something that was not a security product: an administrative path on a hijacked website, serving the credential-harvesting page the message was built to reach.

Six protective services, nested six deep, and every one of them looked at the link, declined to stop it, and handed it onward intact.

Two of the Rewrites Were Generated for Somebody Else

The reflexive reading is deliberate attacker camouflage. The parameters say something more interesting.

The Egress rewrite's Domain parameter named emap[.]com, and the Sophos safelink's d parameter named edgepilot[.]com. Those fields identify the tenant a rewrite was generated for, and neither is the accounting firm. At least two of these layers were minted while the URL sat in some other organization's protected mailbox.

So these wrappers were not built, they accumulated, picked up as the link crossed one protected mail environment after another and got faithfully re-wrapped at each boundary. An attacker who obtains a link in that state does not need to construct cover. The cover is already welded on, donated by six vendors that never intended to help.

A Rewrite That Forwards a Link Lends It Your Reputation

Link rewriting is a genuinely good control. It moves inspection from delivery time to click time, the only moment that reliably reflects what a URL serves, and it works because users trust the wrapper.

Which is the whole problem. A service that rewrites a URL, inspects it, declines to block, and forwards the visitor has attached its own name to whatever sits at the end. It has laundered that destination's reputation, honestly and by design. Do it six times and the readable surface of the link is nothing but security-vendor hostnames, while the thing worth evaluating is buried under compression, base64, and two rounds of URL encoding that no hover preview will expand.

The consequences all point one way. A recipient who does the responsible thing and inspects the link sees a security product and stops. A scanner that unwraps one layer lands on another vendor's high-reputation domain and scores it clean, because at that layer it genuinely is clean. The 2024 Verizon Data Breach Investigations Report puts the median time to click a phishing link at 21 seconds, and nobody runs a six-stage decode in 21 seconds. Malicious URL and payload inspection has to keep unwrapping until it reaches something that is not a rewriting service.

See Your Risk: Calculate how many threats your SEG is missing

The Landing Page Was Somebody Else's Website

The final destination was a WordPress admin path on hmchealth[.]net, a domain created a few years before the send and now registered to an unrelated company on another continent. That mismatch, plus a phishing page parked under the site's own admin directory, is the profile of a hijacked WordPress site rather than attacker-built infrastructure.

Which fits the rest of the case. Nothing here was newly registered and nothing needed to be. The sending domain was borrowed, the wrappers were borrowed, the landing host was borrowed, and blocklists are built to catch what is new. That reuse of trusted, previously benign platforms runs through the Microsoft Digital Defense Report 2024.

Aged, Authenticated, and Not the Attacker's Domain

The From address was info@interioresproyecta[.]com, with a run-together sender alias presenting the message as an automated no-reply notification. The domain was created nearly two decades earlier through a Spanish hosting provider, registrant redacted for privacy. Throwaway domains are days or weeks old. This one predates most of the tooling used to score it.

Delivery ran through a commercial transactional email relay in an EU region, envelope sender in the service's own domain, sending host at 54[.]240[.]4[.]14. Two DKIM signatures validated, one for the business domain and one for the relay. DMARC passed with an action of none, so the published policy asked for no enforcement even had it failed.

Authentication verified the mail was sent in a way the business domain permitted. It never verified that the business intended to send it, and an aged legitimate domain relaying through a mainstream service is the signature of compromised infrastructure rather than acquired infrastructure. As both NIST and CISA phishing guidance frame it, header results open a content review instead of replacing one.

A Role Address, and How the Case Closed

The one affected mailbox was a generic shared alias rather than a person, which is a deliberate choice: nobody personally recognizes that a message does not belong to them, and busy queues get triaged for speed. The rest of the body linked out to the genuine Microsoft Teams listings on Google Play and the Apple App Store, so counting distinct destination domains would have made this message look healthier than a real one.

The case closed on structure and behavior rather than reputation, because every reputation lookup here returns a good answer. Themis, the IRONSCALES Adaptive AI analyst, scored it at 88 percent, weighing a first-time sender against a notification pretext whose only action was a deeply buried redirect, and the incident resolved automatically as phishing. What the message cannot survive is being read as a whole, which is where credential harvesting protection has to operate.

What To Take From This Case

Add one question to URL triage: how many rewriting services appear in this link, and do any of them belong to us. A legitimate inbound URL picks up at most one rewrite, and it is yours. Several that are not yours means the link was assembled in other people's mail systems and shipped to you pre-wrapped.

Then treat rewrite domains as neutral rather than reputable. A vendor hostname tells you a control looked at the link. Six of them tell you six controls looked at the link. Not one tells you a control liked what it saw.

Indicators of Compromise

TypeIndicatorContext
Emailinfo@interioresproyecta[.]comFrom address, sender alias presented as an automated no-reply notification
Domaininterioresproyecta[.]comSPF, DKIM, and DMARC aligned sending domain, created nearly two decades earlier through a Spanish provider with the registrant redacted, consistent with a compromised business account
Domainamazonses[.]comCommercial relay carrying the message, second validated DKIM signature alongside the sending domain
IP54[.]240[.]4[.]14Sending host in the relay's EU region, envelope sender in the relay's own domain
URLhxxps://urlsand[.]esvalabs[.]com/?e=db21ba2b&f=y&h=af082c3b&p=y&u=[nested URL]Layer 1, outermost wrapper as rendered in the email, a Libraesva urlsand sandbox link whose u parameter held the next full URL
Domainlinks[.]uk[.]defend[.]egress[.]comLayer 2, Egress Defend interstitial rewrite, Domain parameter set to emap[.]com, meaning it was generated for another organization's mailbox
Domainsecure-web[.]cisco[.]comLayer 3, Cisco Secure Web rewrite, named in the Egress @OriginalLink parameter and recovered in full by base64 plus zlib decoding the Egress Base64Url value
Domainus-west-2[.]protection[.]sophos[.]comLayer 4, Sophos Central Email safelink found inside the decoded Cisco URL, d parameter set to edgepilot[.]com
Domainlink[.]edgepilot[.]comLayer 5, EdgePilot link rewrite, recovered by base64-decoding the Sophos u parameter
Domainlinkprotect[.]cudasvc[.]comLayer 6, innermost protective wrapper, Barracuda Link Protect, recovered by base64-decoding the EdgePilot u parameter
URLhxxps://hmchealth[.]net//wp-admin/clFinal decoded destination, recovered by double URL-decoding the Barracuda a parameter, credential-harvesting page on a hijacked WordPress site
Domainhmchealth[.]netCompromised WordPress host serving the landing page, domain created a few years before the send and now registered to an unrelated company on another continent
ArtifactcrId=691f1165[truncated]Campaign reference id preserved inside the nested rewrite
Link Text"View Teams Messages"Single call to action, duplicated once per MIME alternative of the body
URLhxxps://play[.]google[.]com/store/apps/details?id=com[.]microsoft[.]teamsGenuine Teams app listing used as pretext-reinforcing filler
URLhxxps://apps[.]apple[.]com/app/microsoft-teams/id1113153706Genuine Teams app listing used as pretext-reinforcing filler
Subject"Quick Update on Your [firm] Tasks" plus a trailing date stampMerge-field subject built around the recipient organization name

MITRE ATT&CK Mapping

TechniqueIDApplication
Phishing: Spearphishing LinkT1566.002Fake collaboration-platform notification delivering one call to action to a shared team inbox
ImpersonationT1656Message styled as automated Microsoft Teams notification traffic, reinforced with genuine app store links
Compromise Infrastructure: DomainsT1584.001Aged legitimate business domain used for sending, and a hijacked third-party website hosting the credential harvester
User Execution: Malicious LinkT1204.001Destination concealed six layers deep behind protective rewrites from six separate security vendors

See You Next Time

The wrapper is never the verdict. Unwrap until you reach something that is not a security product, then start judging. Back tomorrow with the next teardown.

Email Attack of the Day is a daily series from IRONSCALES spotlighting real phishing attacks caught by Adaptive AI and our community of 35,000+ security professionals. Each post breaks down a real attack. What it looked like, why it worked, and what to do about it.

Related attacks

Attack What happened
Every Link Is Amazon: How Legitimate Infrastructure Becomes the Phishing PayloadA phishing email passed SPF, DKIM, and DMARC with a perfect compauth score of 100.
Closing Settlement for Ironscales: A Trello Template Weaponized with Stolen Brand IdentityA Trello notification template carrying Atlassian branding, a Brazilian sending domain with full SPF/DKIM/DMARC authentication.
A Voicemail That Never Rang: How Attackers Chained Three ESPs to Launder Email AuthenticationAttackers chained SendGrid, Mailchimp, and ActiveCampaign Pages to deliver a voicemail-themed credential harvester that passed SPF and DKIM while...
The Fireflies Meeting Recap That Never Happened: Dual-Brand Impersonation via Amazon SESA phishing campaign combined Fireflies.ai meeting recap templates with Microsoft Teams branding to target a financial controller.
The Law Firm Name That Used Invisible Characters to Pass AuthenticationA phishing email impersonating Alston & Bird LLP used homoglyph characters in the display name and rode Google Drive sharing infrastructure to pass SPF.

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.