Email Spoofing Explained: The 7 Canonical Forgery Techniques (Direct Domain, Envelope, Display-Name, Lookalike, IDN Homograph, Cousin Domain, Subdomain Takeover), How SPF/DKIM/DMARC Defend, and Detection via Authentication-Results Headers
The complete reference on email spoofing — the protocol-level forgery of one or more sender-identity fields in an email envelope or message header. This page documents what email spoofing actually IS (forging the apparent sender of an email, NOT the same thing as phishing or BEC — those are downstream uses of spoofing), why email is inherently spoofable (RFC 5321 SMTP from 1982 and RFC 5322 Internet Message Format from 2008 were never designed with sender authentication — every authentication mechanism is bolted on top decades later), the seven canonical spoofing techniques (direct domain From-header forgery, envelope MAIL FROM spoofing, display-name spoofing, lookalike-domain registration, IDN homograph attacks via Unicode confusables, cousin-domain registration, subdomain takeover via abandoned DNS), exactly how each of SPF / DKIM / DMARC defends against each spoofing class (and where each leaves gaps), what DMARC at p=reject does NOT prevent (lookalike domains, display-name spoofing in the From: rendering, BEC variants after a compromised legitimate account passes authentication, out-of-band channels), how to detect a spoofed email forensically using the Authentication-Results header per RFC 8601 plus visual indicators in the rendered message, real-world spoofing examples from publicly-documented incidents (IRS tax-refund scams, DHL parcel-delivery scams, DocuSign impersonation, Microsoft 365 credential-harvesting, executive impersonation for wire fraud), and defense-in-depth recommendations that go beyond the email-authentication stack. Designed for security engineers, IT administrators, threat modellers, blue-team analysts, and anyone trying to definitively answer "how do attackers fake the sender of my company email" — the foundational question that DMARC / SPF / DKIM exist to solve.
This reference is provided in English. Email spoofing terminology (envelope sender, From: header, RFC 5321 MAIL FROM, RFC 5322 From, lookalike domain, IDN homograph, punycode xn--, cousin domain, subdomain takeover, Authentication-Results, MITRE ATT&CK T1566 / T1583.001 / T1036) is canonical English vocabulary that does not translate. We keep the body in the source language so technical terms remain consistent with the IETF RFCs and the security-industry reference vocabulary.
TL;DR
- Email spoofing is the protocol-level forgery of one or more sender-identity fields in an email envelope or message header. It is the TECHNIQUE; phishing and Business Email Compromise (BEC) are downstream USES of the technique.
- Email is inherently spoofable because RFC 5321 (SMTP) and RFC 5322 (Internet Message Format) were designed in 1982 without sender authentication. SPF (RFC 7208), DKIM (RFC 6376), and DMARC (RFC 7489) are bolted-on countermeasures added decades later.
- The seven canonical spoofing techniques are: direct domain spoofing (RFC 5322 From: forgery), envelope MAIL FROM spoofing (RFC 5321), display-name spoofing, lookalike-domain registration, IDN homograph (Unicode confusables), cousin-domain registration, and subdomain takeover via abandoned DNS.
- DMARC at p=reject blocks exactly ONE technique — direct domain spoofing. It does NOT block lookalike domains, display-name spoofing, IDN homographs, cousin domains, subdomain takeover, or any variant that originates from a domain technically distinct from yours.
- SPF authenticates the envelope From (RFC 5321 MAIL FROM) via SPF DNS records. DKIM authenticates the signing domain (RFC 6376 d= tag) via a cryptographic signature. DMARC enforces alignment between the visible From: header (RFC 5322) and the SPF or DKIM authenticated domain.
- The visible From: header is the field DMARC defends. Mail clients render this field as the "From" line; everything else (envelope sender, Reply-To, Sender: header, X-* headers) is invisible by default and not anchored by DMARC.
- The Authentication-Results header (RFC 8601) is the canonical forensic artifact for detecting spoofed mail at the receiver. Inspect the dmarc=, spf=, and dkim= fields and confirm header.from matches the visible From: domain.
- IDN homograph attacks use Unicode-confusable characters like Cyrillic а (U+0430) substituted for Latin a (U+0061). The on-wire DNS form is Punycode (xn--) but mail clients render the Unicode glyph indistinguishable from Latin in most fonts. Documented in Unicode Technical Standard 39 (UTS #39).
- Spoofing maps to MITRE ATT&CK techniques T1566 (Phishing), T1583.001 (Acquire Infrastructure: Domains), and T1036 (Masquerading) depending on the variant and downstream use.
- Defense-in-depth beyond DMARC requires brand-monitoring lookalike detection, secure-email-gateway anti-impersonation rules, display-name policies, external-sender tagging, recipient training, and phishing-resistant MFA on the recipient end to limit damage when spoofing succeeds.
1. What email spoofing is
Email spoofing is the protocol-level forgery of one or more sender-identity fields in an email message — typically the RFC 5322 From: header (the field your mail client renders as the "From" line) or the RFC 5321 MAIL FROM envelope sender (the field used for bounce delivery). The attacker takes advantage of the fact that the original Simple Mail Transfer Protocol (SMTP) — first standardised as RFC 821 in August 1982, currently in force as RFC 5321 — never required the sending MTA to prove that it was authorised to send mail on behalf of the domain it claimed. Likewise the Internet Message Format (RFC 5322, descended from RFC 822 from August 1982) defines the From: header as a freely- settable text field with no protocol-level verification.
Email spoofing is NOT the same as phishing or Business Email Compromise. Spoofing is the TECHNIQUE; phishing and BEC are downstream USES of the technique:
- Spoofing forges the apparent sender. A spoofed message may carry no malicious payload at all — pen-test exercises, spam, joke emails, and some forms of social activism use spoofing without phishing.
- Phishing uses social engineering against the recipient to extract credentials, financial data, or trigger malicious action. Phishing often (not always) uses spoofing to make the sender appear trustworthy. See help_dmarc_attacker_bypass.php for the 22-technique attacker catalogue.
- BEC uses spoofing or compromised accounts to commit financial fraud. See help_business_email_compromise.php for the standalone BEC operational playbook.
In MITRE ATT&CK T1036 (Masquerading) taxonomy email spoofing is one Masquerading technique among many. In T1566 (Phishing) it is the canonical delivery mechanism. In T1583.001 (Acquire Infrastructure: Domains) the lookalike / cousin / IDN-homograph variants are explicitly enumerated.
2. Why email is inherently spoofable
Email is inherently spoofable because the original protocols were designed without sender authentication. Every authentication mechanism in use today is bolted onto the original specification decades after the fact:
- 1982 — RFC 821 SMTP defines the MAIL FROM command. There is no verification step; any MTA can claim any envelope sender it likes.
- 1982 — RFC 822 Internet Message Format defines the From: header as a freely-settable text field. No verification.
- 2002 — Sender ID / SPF introduces DNS-based envelope-sender verification (current revision RFC 7208). Adoption was gradual; SPF alone is insufficient because it does not protect the visible From: header.
- 2007 — DKIM adds cryptographic message signing (RFC 6376). DKIM proves a message was signed by the domain in the d= tag of the signature, but nothing in the protocol requires that domain to match the visible From: header.
- 2008 — RFC 5321 / RFC 5322 updated SMTP and IMF without changing the underlying lack of authentication.
- 2012 — Authentication-Results header (RFC 7001, current revision RFC 8601) standardises how the receiver records its SPF / DKIM verdict for downstream consumers (filters, users, forwarders). This is the canonical forensic artifact for spoofing detection — see section 8.
- 2015 — DMARC (RFC 7489) ties SPF and DKIM to the visible From: header by requiring alignment, finally giving domain owners a way to assert policy over the From: header rendering.
The cumulative result: any sending MTA can construct an SMTP transaction claiming an arbitrary From: header and an arbitrary envelope sender. The receiving MTA decides whether to accept the message based on SPF, DKIM, and DMARC verification AGAINST DNS records published by the claimed sender — but those records are voluntary; a domain owner who publishes no SPF / DKIM / DMARC records has no protocol-level defense against spoofing.
Publishing DMARC at p=reject with aligned SPF and DKIM is the foundational defense against direct domain spoofing. See help_dmarc_records_explained.php for the tag-by-tag DMARC record reference and help_dmarc_policy_rollout.php for the operational rollout playbook from p=none through p=quarantine to p=reject.
3. The seven canonical spoofing techniques
Email spoofing decomposes into seven canonical techniques. Each technique forges a different identity field or exploits a different DNS-level weakness. Defenses differ per technique — DMARC defeats only direct domain spoofing; the other six require additional controls.
3.1 Direct domain spoofing (RFC 5322 From: header forgery)
Technique: The attacker forges the RFC 5322 From: header to read an address at the victim's domain without controlling the victim's domain.
How it works: The attacker controls a sending MTA (e.g. an open relay, a compromised host, a self-hosted Postfix instance on a residential IP, or a bulletproof- hosted SMTP service). The attacker constructs an SMTP transaction that sets the From: header to ceo@victim.example. If the victim has not published SPF or DMARC, the receiving MTA has no protocol-level reason to reject the message — it lands in the recipient inbox as if sent from the victim domain.
What it forges: The RFC 5322 From: header (the visible "From" line in the mail client).
Defender countermeasure: DMARC at p=reject with aligned SPF or DKIM blocks this technique completely. The receiver looks up the victim domain's DMARC record (_dmarc.victim.example), confirms p=reject, then verifies that either SPF or DKIM authentication passes AND aligns with the victim domain. If both fail or neither aligns, the receiver rejects the message at the SMTP transaction (or quarantines it under p=quarantine). This is the ONE spoofing technique DMARC stops.
3.2 Envelope MAIL FROM spoofing (RFC 5321)
Technique: The attacker spoofs the RFC 5321 envelope sender (MAIL FROM) — the bounce-handling address used during SMTP.
How it works: The attacker issues an SMTP command MAIL FROM:<arbitrary@victim.example> before the DATA phase. The envelope sender is used for bounce delivery — if the message bounces, the bounce goes to that address. The envelope sender is invisible to the recipient (most mail clients show only the From: header from the DATA phase, not the envelope From).
What it forges: The RFC 5321 5321.MailFrom envelope sender.
Defender countermeasure: SPF authenticates the envelope From against the SPF DNS record published by the claimed envelope-From domain. If the sending IP is not authorised by the SPF record, the receiver may reject the message (per RFC 7208 Section 8 — the SPF record's -all / ~all / ?all qualifier dictates the receiver action). Note: SPF protects the envelope sender, not the visible From: header. An attacker can pass SPF with an envelope-From at attacker.example while setting the visible From: header to ceo@victim.example — DMARC's job is to require alignment between the two so that this divergence trips DMARC rejection.
3.3 Display-name spoofing
Technique: The attacker puts the impersonated person's name in the display-name portion of the From: header while using a free-webmail or attacker- controlled From: address.
How it works: The From: header has the syntax "Display Name"
<email@example.com>. The attacker constructs From: "CEO Name"
<ceoname.urgent2024@gmail.com>. Most mail clients render the display name
prominently and hide the full email address by default — particularly on mobile clients
where screen real-estate is limited. The recipient sees "CEO Name" in their inbox and
rarely expands to inspect the underlying address.
What it forges: The display-name portion of the From: header (a free- text field with no protocol-level verification).
Defender countermeasure: NOT blocked by SPF / DKIM / DMARC because the From: domain is technically attacker-controlled (gmail.com, in the example) and legitimately passes its own DMARC. Defense layers: secure-email-gateway display-name impersonation rules (alert when display name matches a VIP roster but sender address is external), executive-name watchlists, mandatory "External Sender" tagging on inbound mail, and recipient training to verify the full From: address before acting on a message. See section 10 for the defense-in-depth stack.
3.4 Lookalike-domain registration
Technique: The attacker registers a domain that LOOKS like the victim domain but is technically distinct (different characters, different TLD, or different word combination), then sends from that attacker-controlled domain.
How it works: The attacker registers victim-corp.example,
vvictim.example, v1ctim.example (numeric 1 substituted for
letter i), victim.com.fr, or similar typosquat / cousin variants. The
attacker publishes valid SPF, DKIM, and DMARC for the attacker-controlled domain so
the message passes authentication with green checkmarks. The visible From: address
looks legitimate at a glance because the rendered domain is visually similar to the
target.
What it forges: The visible From: address by EXPLOITING visual similarity rather than forging anything at the protocol level — the attacker domain is real, owned by the attacker, and properly authenticated.
Defender countermeasure: NOT blocked by victim-domain DMARC because the attacker controls a genuinely distinct domain. Defense layers: brand-monitoring services (Cybercrime Information Center, Spamhaus DBL, PhishTank, or commercial vendors like Recorded Future / DomainTools / RiskIQ), defensive registrations of high-risk variants (paypal.com owners typically register paypa1.com, paypl.com, and major TLD variants), secure-email-gateway anti-impersonation rules that flag inbound mail from domains within a configurable edit-distance of the victim's domain, and recipient training to read the From: domain character-by-character. MITRE ATT&CK technique T1583.001 (Acquire Infrastructure: Domains).
3.5 IDN homograph (Unicode confusables)
Technique: The attacker registers an Internationalised Domain Name (IDN) using Unicode characters from non-Latin scripts that are visually confusable with Latin characters.
How it works: The attacker registers vіctim.example
using Cyrillic і (U+0456) instead of Latin i (U+0069). At the DNS level the domain
serialises to Punycode form (xn--vctim-eog.example) but mail clients
render the Unicode form and the rendered glyphs are visually indistinguishable in
most sans-serif fonts. Canonical Unicode confusables documented in
Unicode Technical
Standard 39 (UTS #39: Unicode Security Mechanisms):
- Cyrillic а (U+0430) vs Latin a (U+0061)
- Cyrillic е (U+0435) vs Latin e (U+0065)
- Cyrillic о (U+043E) vs Latin o (U+006F)
- Cyrillic р (U+0440) vs Latin p (U+0070)
- Cyrillic с (U+0441) vs Latin c (U+0063)
- Cyrillic у (U+0443) vs Latin y (U+0079)
- Greek ο (omicron, U+03BF) vs Latin o (U+006F)
- Greek ν (nu, U+03BD) vs Latin v (U+0076)
What it forges: Visual similarity at the rendered-glyph layer, not the protocol layer. The IDN domain is real and properly registered.
Defender countermeasure: NOT blocked by victim-domain DMARC because the spoof domain is technically distinct. Defense layers: brand-monitoring services that specifically watch for IDN-confusable registrations against the victim's trademark, secure-email-gateway rules that flag inbound mail with non-ASCII characters in the From: domain or with Punycode (xn--) in the raw From: header, recipient training that includes the canonical confusables list, and (where feasible) defensive registration of the highest-risk IDN variants. Modern browsers implement Punycode- display rules that show xn-- in the address bar for suspected IDN spoofs; few mail clients implement the equivalent rule. The DMARC Analyzer Email Header Analyzer (header_analyzer.php) surfaces Punycode-form domain names in the raw header inspection.
3.6 Cousin-domain registration
Technique: The attacker registers a domain that combines the victim brand with an additional legitimate-sounding word or different TLD.
How it works: Common cousin-domain patterns:
paypal-security.com, paypal-support.com, paypal-
login.com, paypal-verify.com, microsoft-account.com,
amazon-prime.support, brand.online, brand.help.
The attacker chooses words operators and customers expect to see in the victim's
legitimate domain ecosystem (support, security, login, billing, account). The
attacker publishes valid SPF / DKIM / DMARC for the cousin domain so authentication
passes cleanly.
What it forges: Brand association at the semantic layer. The cousin domain is real, owned by the attacker, and properly authenticated.
Defender countermeasure: NOT blocked by victim-domain DMARC. Defense layers: same as lookalike-domain registration (3.4) PLUS specifically monitor for trademark-plus-word permutations across all TLDs. The search space is much wider than pure typosquat detection — a brand like "paypal" has dozens of plausible cousin combinations (paypal-X, paypalX, X-paypal, paypal.TLD) across thousands of TLDs. Commercial brand-monitoring vendors specialise in this scan.
3.7 Subdomain takeover via abandoned DNS
Technique: The attacker claims an orphaned subdomain CNAME pointing to a cloud-service hostname that the victim has abandoned, then sends mail from the now-attacker-controlled subdomain of the victim's real domain.
How it works: The victim creates marketing.victim.example
as a CNAME pointing to victim-prod.cloudservice.example.com. Later the
victim cancels the cloud-service subscription but does NOT remove the CNAME from DNS.
The cloud service eventually releases the hostname for reuse. An attacker re-registers
victim-prod.cloudservice.example.com at the same cloud service, gains
control of any content served at the hostname, AND now controls marketing.
victim.example for the purposes of inbound HTTP, outbound email (if the
abandoned CNAME pointed at a transactional-email service), and SSL/TLS certificate
issuance (because most ACME challenges resolve via HTTP).
What it forges: Nothing — the attacker legitimately controls a real subdomain of the victim's domain via DNS misconfiguration on the victim's side. The subdomain's mail passes ANY victim-domain DMARC (sp= or default inheritance) because it IS a real subdomain of the victim.
Defender countermeasure: NOT blocked by DMARC because the spoofed sender IS a real subdomain of the victim domain. Defense layers: DNS hygiene (automated audits of CNAMEs that resolve to dangling third-party hostnames), explicit DMARC sp=reject at the apex to deny p=none inheritance for subdomains, and the sp=reject DMARC tag for any orphaned subdomain. See help_dmarc_records_explained.php for the sp= tag definition and help_dmarc_attacker_bypass.php §5.6 for the canonical subdomain-takeover attack catalog entry.
4. How SPF defends against spoofing
Sender Policy Framework (SPF) defined by RFC 7208 authenticates the RFC 5321 envelope From (MAIL FROM) by publishing a list of authorised sending IPs in a DNS TXT record. The receiver looks up the SPF record of the envelope- From domain, walks its mechanisms (ip4, ip6, a, mx, include, exists, ptr), and authorises the sending IP if any mechanism matches.
What SPF defends: envelope MAIL FROM spoofing (technique 3.2). A sender connecting from an unauthorised IP and claiming MAIL FROM:<sender@spf-protected.example> is rejected by the receiver under -all / ~all qualifiers.
What SPF does NOT defend: Direct domain spoofing of the visible From: header (technique 3.1). SPF authenticates the ENVELOPE From, not the visible From: header — an attacker can pass SPF for an envelope-From at attacker.example while setting the visible From: header to ceo@victim.example. DMARC's alignment requirement closes this gap by demanding that the SPF-authenticated envelope-From domain match the visible From: header domain (under either strict or relaxed alignment per RFC 7489 §3.1).
SPF gotchas: the RFC 7208 §4.6.4 10-DNS-lookup limit
(permerror if exceeded) is the canonical operational pitfall — see
help_spf_lookup_limit.php for the deep dive on
flattening, SPF macro abuse, and the void-lookup limit. Forwarding breaks SPF because the
forwarder's IP is not in the original sender's SPF record; ARC (RFC 8617) is the
forwarding-survival workaround — see help_arc_explained.php.
For the full SPF deep dive see help_spf_explained.php.
5. How DKIM defends against spoofing
DomainKeys Identified Mail (DKIM) defined by
RFC 6376
cryptographically signs selected message headers and (optionally) the message body
using a private key held by the signing domain. The signing domain is identified by
the d= tag in the DKIM-Signature header. The receiver looks up the public key in DNS
at selector._domainkey.signing-domain.example and verifies the signature
over the canonicalised headers and body.
What DKIM defends: message integrity AND sender-domain attribution. DKIM proves the message was signed by an entity controlling the private key for the d= domain — an attacker cannot forge a valid DKIM signature without the private key (typically 2048-bit RSA per RFC 8301; deprecated 1024-bit keys are factorable per the canonical DUH attack). Properly-rotated DKIM keys defeat replay attacks on old signatures (see help_dkim_replay_attacks.php).
What DKIM does NOT defend: direct domain spoofing of the visible From: header. DKIM authenticates the d= signing domain, not the From: header — an attacker can sign with a key for attacker.example and set the From: header to ceo@victim.example. DMARC's alignment requirement closes this gap by demanding that the d= signing domain match the visible From: header domain.
DKIM gotchas: body-hash mismatches break DKIM when a forwarder or mailing-list adds a footer; the l= tag (length-limited body hash) creates an attacker window where the attacker can append content after the signed prefix. See help_dkim_explained.php for the canonical DKIM pillar and help_dkim_cryptography_basics.php for the cryptographic-primitives deep dive.
6. How DMARC defends against spoofing
Domain-based Message Authentication, Reporting, and Conformance (DMARC) defined by RFC 7489 ties SPF and DKIM to the visible From: header by requiring alignment: the domain of the visible From: header must match either the SPF-authenticated envelope-From domain (SPF alignment) or the DKIM-authenticated d= domain (DKIM alignment). DMARC defines two alignment modes (strict and relaxed) and a policy (none / quarantine / reject) that the receiver applies when both SPF and DKIM fail to align.
What DMARC defends: direct domain spoofing of the visible From: header (technique 3.1). With DMARC at p=reject and properly published SPF + DKIM, the receiver rejects any message whose visible From: header claims your domain but whose SPF and DKIM do not align. This is the protocol-level victory DMARC was designed to deliver.
What DMARC does NOT defend: any spoofing variant where the visible From: header is at a DIFFERENT domain than yours — lookalike, IDN homograph, cousin domain, display-name, subdomain takeover, BEC via compromised legitimate accounts, and any variant that originates from a properly-authenticated attacker-controlled domain. DMARC's scope is narrow by design: it asserts policy over your domain's From: header rendering, not over the universe of spoofable identity fields. The five-variant DMARC gap is documented in detail in section 7.
The DMARC alignment subtleties: strict vs relaxed alignment, the organizational-domain inheritance per RFC 7489 §3.2, the sp= tag for subdomains, and the pct= sampling for rollout — see help_dmarc_alignment.php and help_dmarc_records_explained.php.
For the operational rollout from p=none through p=quarantine to p=reject without breaking legitimate sending, see help_dmarc_policy_rollout.php.
7. What DMARC does NOT prevent
DMARC at p=reject — even with full SPF and DKIM alignment, perfect DNS hygiene, and 100% reporting coverage — does NOT prevent the following spoofing variants. Operators deploying DMARC must understand these gaps to size additional control layers appropriately.
- Lookalike-domain spoofing. Attacker registers victim-corp.example and sends with valid DMARC for the attacker domain. Defense: brand-monitoring + SEG anti-impersonation. See technique 3.4.
- Display-name spoofing. Attacker sends from ceoname.urgent@gmail.com with display name "CEO Name". DMARC passes for gmail.com. Defense: SEG display-name impersonation rules + executive-name watchlists. See technique 3.3.
- IDN homograph attacks. Attacker registers vіctim.example using Cyrillic і. Defense: brand-monitoring for IDN confusables + Punycode-form inspection. See technique 3.5.
- Cousin-domain spoofing. Attacker registers paypal-security.com. Defense: trademark-plus-word permutation monitoring + recipient training. See technique 3.6.
- Subdomain takeover via abandoned DNS. Attacker claims an orphaned CNAME pointing to an abandoned cloud-service hostname. The takeover happens via DNS misconfiguration on the victim's side; the attacker now controls a real subdomain of the victim. Defense: DNS hygiene audits + sp=reject at the apex. See technique 3.7.
- BEC via compromised legitimate accounts. Attacker steals credentials of a real employee and sends mail from inside the organisation; DMARC, SPF, and DKIM all pass cleanly. Defense: phishing-resistant MFA + anomalous-login detection + payment-process out-of-band verification. See help_business_email_compromise.php.
- Vendor Email Compromise (VEC). Attacker compromises a real mailbox at one of the victim's vendors; mail comes from the real vendor with valid authentication. Defense: bank-account-change out-of-band verification + supplier- master-data tight-change controls. See help_business_email_compromise.php §2.6.
- Out-of-band channels. The attacker bypasses email entirely — SMS, voice calls, Microsoft Teams chat, WhatsApp, LinkedIn DMs. DMARC has no role. Defense: same-channel verification policies + payment-process controls.
For the defender-perspective debunking of "DMARC stops phishing" and other common DMARC myths see help_dmarc_myths_and_misconceptions.php. For the attacker-perspective catalog of 22 concrete bypass techniques see help_dmarc_attacker_bypass.php.
8. Detecting a spoofed email
The forensic detection workflow uses the Authentication-Results header (RFC 8601) plus visual inspection of the rendered message. The Authentication-Results header is inserted by the receiving MTA recording its SPF / DKIM / DMARC verdict on the message; downstream filters and users consume the verdict without re-running the verification.
Step 1 — View raw headers
The mail client must reveal the raw message headers. Per-client steps:
- Outlook (desktop): Open the message in its own window (double-click). File > Properties > Internet headers.
- Outlook (web): Open the message. ... menu (top right) > View > View message source.
- Gmail: Open the message. ... menu (top right of the message) > Show original. The resulting tab shows headers and the raw message body.
- Apple Mail: Open the message. View > Message > Raw Source (Option+Cmd+U).
- Thunderbird: Open the message. View > Message Source (Ctrl+U).
Step 2 — Find the Authentication-Results header
The header looks like this (whitespace varies; the header may span multiple lines via RFC 5322 folding):
Authentication-Results: mx.google.com;
dkim=pass header.i=@example.com header.s=20240101 header.b=AbCdEfGh;
spf=pass (google.com: domain of bounce-handling@example.com designates 198.51.100.1 as permitted sender) smtp.mailfrom=bounce-handling@example.com;
dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=example.com
Read the three verdict fields and the header.from field:
- spf= records the SPF result:
pass / fail / softfail / neutral / none / temperror / permerrorper RFC 7208 Section 8. Thesmtp.mailfromfield shows the envelope sender that was checked. - dkim= records the DKIM result:
pass / fail / none. Theheader.dfield shows the signing domain. - dmarc= records the DMARC verdict combining SPF and DKIM with
alignment. The
header.fromfield shows the visible From: domain that the verdict applies to.
Step 3 — Cross-check header.from against visible From:
The header.from domain in the dmarc= field MUST match the visible From:
address you expected. Mismatch is the canonical spoofing signature. Examples:
- Visible From:
CEO <ceo@example.com>withheader.from= example.comanddmarc=pass→ legitimate (or successful spoof bypass via misconfigured DMARC). - Visible From:
CEO <ceo@example.com>withheader.from= example.comanddmarc=fail→ spoof detected at the receiver, message should have been quarantined or rejected; investigate why it landed in the inbox. - Visible From:
CEO <ceo@example.com>withheader.from= evil.example(note the mismatch) → likely a malformed rendering or a post-DMARC tampering attempt.
Step 4 — Visual inspection for IDN homographs
Inspect the raw From: header byte-by-byte for non-ASCII characters. IDN-form domains
appear as Punycode (xn--) in the raw header. Render the bytes in a hex
editor or use the DMARC Analyzer Email Header Analyzer
(header_analyzer.php) which surfaces IDN domains
explicitly.
Step 5 — Inspect the Received: chain
The Received: headers chain (RFC 5322 §3.6.7) records each relay hop the message passed through. Anomalies to flag: unexpected geographic origin (compare HELO/EHLO hostname and IP against the claimed sender's known infrastructure), missing Received: headers from inside the sender's domain (suggesting the message did not originate from the claimed sender's MTA), and chains of relays through bulletproof-hosted MTAs.
Step 6 — Inspect Reply-To and Return-Path
A common spoofing tell is a Reply-To: header pointing to an attacker-controlled mailbox while the From: header reads as the impersonated sender. Mail clients send replies to Reply-To if present, hiding the discrepancy from the user. Similarly the Return-Path (set by the receiving MTA from the envelope From) reveals the bounce destination — mismatches with the visible From: are not necessarily malicious (third-party senders legitimately use distinct bounce domains) but warrant scrutiny on suspicious messages.
The DMARC Analyzer header_analyzer.php automates steps 1-6 against a pasted raw-header dump and produces a per-step verdict.
9. Real-world spoofing examples
The following examples are drawn from publicly-documented incidents and the canonical threat-intelligence reporting. They are presented for educational purposes — to help operators recognise the patterns in the wild, not to enable replication. Each example maps onto one or more techniques from section 3 and one or more MITRE ATT&CK sub-techniques.
- IRS / HMRC / CRA tax-refund scams. Direct domain spoofing
(technique 3.1) of the visible From: header to
refunds@irs.gov,refunds@hmrc.gov.uk, orcra-arc.gc.ca. Volume peaks in the weeks preceding national tax-filing deadlines. Defense: the tax authorities publish DMARC at p=reject, blocking the direct-spoof variant — the residual attack volume is via lookalike domains (irs-refunds.online) and cousin-domain registrations (irs-payments.support). - DHL / FedEx / UPS / Royal Mail parcel-delivery scams. Mix of
direct domain spoofing (technique 3.1) where the parcel carrier has weak DMARC,
lookalike domains (
dhl-tracking.online,fedex-delivery.help,royal-mail.express), and IDN homographs against the carrier brand. Message body asks recipient to click a tracking-update link or pay a small customs fee to release the parcel — credential harvest or card fraud at the landing page. - DocuSign / Adobe Sign / HelloSign impersonation. Display-name
spoofing (technique 3.3) with From: address at a free-webmail provider or a
cousin domain (
docusign-secure.email). Message body asks recipient to click an "open document" link that leads to a credential-harvest page. Common target: anyone whose legitimate workflow involves signing contracts via DocuSign — finance, legal, M&A teams. - Microsoft 365 password-expiration / account-suspended scams.
Display-name spoofing of Microsoft, lookalike domains
(
microsoft-account.support), and direct domain spoofing ofmicrosoft.comagainst organisations whose Microsoft DMARC alignment is broken. Message body asks recipient to log in to "confirm your account" via an attacker-controlled link. - Executive impersonation / CEO fraud. Display-name spoofing (technique 3.3) of the CEO/CFO with From: at a free-webmail provider, OR lookalike-domain registration of the victim domain. Goal: wire transfer authorisation from a finance employee. See help_business_email_compromise.php §2.1 for the operational deep dive.
- Vendor wire-redirect / invoice fraud. Combination of compromised- account spoofing (the attacker has access to the real vendor mailbox) or lookalike-domain registration. Goal: redirect a legitimate vendor payment to attacker-controlled bank accounts. See help_business_email_compromise.php §2.2 and §2.6 (VEC).
- Recruitment / HR scams (W-2 phishing). CEO-impersonation display-name spoofing targeting HR or payroll asking for a copy of all employee W-2 forms. Volume peaks in February — March around U.S. tax-form-filing season.
- Government-agency takedown notices. Lookalike-domain spoofing of national CERTs, the FBI, NCSC, or BSI. Often combined with attached "subpoena" files containing malware. Target: senior counsel and IT teams who would recognise the agencies but might not verify the From: domain character-by-character.
For a more comprehensive threat-research catalogue see help_dmarc_attacker_bypass.php §4-§7.
10. Defense-in-depth recommendations
Email-authentication (SPF + DKIM + DMARC) is the foundational defense against direct domain spoofing, but it leaves five spoofing classes uncovered (section 7). The defense-in-depth stack adds six additional layers, each addressing a specific gap:
- Layer 1 — Email authentication (DMARC + SPF + DKIM). Publish DMARC at p=reject for your apex domain AND every active subdomain. Publish SPF with -all qualifier (not ~all). Publish DKIM for every legitimate sender. Audit alignment. See help_dmarc_deployment_checklist.php for the 24-item deployment checklist.
- Layer 2 — Secure Email Gateway (SEG) anti-impersonation rules. Deploy a SEG (Proofpoint, Mimecast, Microsoft Defender for Office 365, Google Workspace Advanced Email Security) and configure rules for: display-name impersonation (flag mail whose display name matches a VIP roster but sender domain is external), lookalike-domain detection (flag inbound mail from domains within an edit-distance threshold of your domain), IDN/Punycode detection (flag any non-ASCII characters in From: domains), and external-sender tagging (mandatory "External" prefix on inbound mail).
- Layer 3 — Brand monitoring. Enroll in a brand-monitoring service that watches for: typosquat registrations (single-character substitutions), cousin-domain registrations (trademark-plus-word permutations), IDN-confusable registrations (UTS #39 confusables against your trademark), and certificate- transparency logs (HTTPS certificates issued for variants of your domain). Commercial vendors include DomainTools, RiskIQ, Recorded Future, ZeroFOX. Free sources include the Cybercrime Information Center, PhishTank, and Spamhaus DBL.
- Layer 4 — Defensive registrations. Register your highest-risk typosquat variants (single-character substitutions, common-misspelling variants, major TLD variants .net / .org / .co / .info / .online / .support / .help). Park them on a parking page that redirects to your real domain. The defensive- registration cost is a one-time per-domain registration fee (~USD 10-15 per domain per year for most TLDs); the alternative is paying for an aftermarket domain after an attacker registers it.
- Layer 5 — DNS hygiene. Audit DNS records quarterly for: orphaned CNAMEs pointing to abandoned cloud services (subdomain-takeover risk), expired SPF includes pointing at decommissioned third-party senders, missing sp=reject at the DMARC apex (which leaves subdomains unprotected by default).
- Layer 6 — Recipient training and process controls. Train staff to: verify the full From: address before acting on a message (not just the display name), hover over links to inspect the destination URL, use out-of-band channels for any payment-process change request (call the requester on a known phone number, never the number in the email), and require dual-authorisation for any wire transfer above a threshold. See help_business_email_compromise.php §6.4 (Layer 4: Finance-team payment-process controls) and §6.6 (Layer 6: Continuous training and BEC simulation).
For the operational discipline of monitoring DMARC aggregate reports (RUA) to detect spoofing attempts against your domain in real-time, see help_dmarc_monitoring.php and help_dmarc_aggregate_reports.php.
11. FAQ
- What is email spoofing in simple terms?
- Email spoofing is the protocol-level forgery of one or more sender-identity fields in an email message — typically the RFC 5322 From: header (the field your mail client renders as the "From" line) or the RFC 5321 MAIL FROM envelope sender (the field used for bounce delivery). Because the original SMTP protocol (RFC 5321, descended from RFC 821 in 1982) and the Internet Message Format (RFC 5322, descended from RFC 822 in 1982) were never designed with sender authentication, every email-authentication mechanism in use today (SPF, DKIM, DMARC, ARC, BIMI) is bolted on top decades later. Email spoofing is NOT the same as phishing or BEC: spoofing is the TECHNIQUE that forges the apparent sender; phishing and BEC are downstream USES of spoofing to harvest credentials or commit fraud. A spoofed email may carry malicious content (phishing) or commercial fraud (BEC) or neither (some pen-test exercises spoof emails to test detection without payload).
- How does email spoofing work?
- Email spoofing works by exploiting the asymmetry between the email protocols (SMTP, IMF) and the visible sender shown to the recipient. There are seven canonical techniques: (1) Direct domain spoofing — the attacker forges the RFC 5322 From: header to read CEO@victim.example without controlling victim.example; defeated by DMARC at p=reject when SPF or DKIM are properly published. (2) Envelope MAIL FROM spoofing — the attacker uses an arbitrary envelope sender in the SMTP MAIL FROM command; defeated by SPF when the receiver enforces. (3) Display-name spoofing — the attacker puts "CEO Name" in the display name preceding a free-webmail From: address (CEO Name <attacker@gmail.com>); not defeated by SPF/DKIM/DMARC because the From: domain is legitimately attacker-controlled. (4) Lookalike-domain registration — the attacker registers victim-corp.example or victim.com.fr and sends from that valid attacker-controlled domain with proper DMARC; not defeated by victim-domain DMARC. (5) IDN homograph — the attacker registers vіctim.example using Cyrillic і (U+0456) instead of Latin i (U+0069); not defeated by victim-domain DMARC because the spoof domain is technically distinct. (6) Cousin-domain registration — similar but different TLD or word (victim.co instead of victim.com). (7) Subdomain takeover — the attacker claims an orphaned CNAME pointing to a cloud service abandoned by the victim, then sends from the now-attacker-controlled subdomain.
- Does DMARC stop email spoofing?
- DMARC at p=reject with full SPF and DKIM alignment stops DIRECT DOMAIN spoofing — the variant where the attacker forges the From: header to read your domain. DMARC does NOT stop the other six canonical spoofing techniques: lookalike-domain spoofing (the attacker registers victim-corp.example, a different valid domain), display-name spoofing (the attacker puts "CEO Name" in the display name with a free-webmail From: address), IDN homograph attacks (the attacker registers a Unicode- confusable domain), cousin-domain registration (different TLD or word), subdomain takeover (the attacker claims an abandoned CNAME), or envelope-only spoofing under specific configurations. DMARC is necessary but insufficient for spoofing prevention; the defense-in-depth stack pairs DMARC with brand-monitoring lookalike-domain detection, display-name policies, secure-email-gateway anti- impersonation rules, and recipient training. The "DMARC stops spoofing" simplification is the single most-common misconception about DMARC and the reason this page exists.
- What is the difference between email spoofing and phishing?
- Email spoofing is the TECHNIQUE that forges the apparent sender of an email message; phishing is one possible USE of spoofing in which the message attempts to extract credentials, financial data, or other sensitive information from the recipient. Phishing always involves social engineering against the recipient; spoofing may or may not. Not all phishing uses spoofing (some phishing comes from genuinely attacker-controlled lookalike domains with valid DMARC for the attacker domain), and not all spoofing is phishing (some spoofing is used for spam, jokes, pen-test exercises, or wire-fraud BEC). In MITRE ATT&CK taxonomy, spoofing is part of T1036 Masquerading and T1583.001 Acquire Infrastructure: Domains, while phishing is T1566 with three sub-techniques (T1566.001 Spearphishing Attachment, T1566.002 Spearphishing Link, T1566.003 Spearphishing via Service). The cleanest mental model: spoofing forges the sender, phishing exploits the message body and call-to-action.
- What is the difference between the RFC 5321 envelope From and the RFC 5322 From header?
- The RFC 5321 envelope From (also called MAIL FROM, Return-Path, or 5321.MailFrom) is the bounce address used during the SMTP transaction: when the sending MTA opens a connection to the receiving MTA, it issues the SMTP command MAIL FROM:<sender@example.com>. The envelope sender is used to deliver bounce messages back to the sender if the recipient is unreachable. It is NOT typically visible to the recipient. The RFC 5322 From header (also called 5322.From or RFC5322.From) is the message header line your mail client renders as the "From" line: From: "CEO Name" <ceo@example.com>. These two fields can — and often do — differ legitimately: a mail-merge service sends on behalf of brand@example.com but uses bounce-handling@brand.mail-merge-vendor.com as the envelope From. SPF authenticates the envelope From (5321.MailFrom). DKIM authenticates the signing domain (the d= tag in the DKIM signature). DMARC authenticates the From: header (5322.From) by requiring alignment — the 5322.From domain must match the SPF-authenticated 5321.MailFrom domain OR the DKIM-authenticated d= domain. This is the alignment concept central to DMARC.
- How do I detect a spoofed email forensically?
- The forensic detection workflow uses the Authentication-Results header (RFC 8601) and a visual inspection of the rendered message. Step 1: View the raw message headers (in Outlook: File > Properties > Internet headers; in Gmail: ... menu > Show original; in Apple Mail: View > Message > Raw Source). Step 2: Find the Authentication-Results header — it documents the receiver-side verdict for SPF, DKIM, and DMARC: Authentication-Results: mx.google.com; spf=pass / fail / softfail / neutral; dkim=pass / fail / none header.d=signing-domain.example; dmarc=pass / fail / quarantine / reject header.from=visible-from-domain.example. Step 3: Cross-check the header.from domain in the dmarc= field against the displayed From: address you expected. Mismatch is the canonical spoofing signature. Step 4: Visually inspect the From: address character-by-character for IDN homograph attacks (Cyrillic а vs Latin a, Greek ο vs Latin o) — Punycode-form IDN domains render as xn-- in the raw header. Step 5: Check the SPF Received-SPF header for the envelope From: domain mismatch with the visible From: domain. Step 6: Inspect the Received: headers chain for unexpected relay hops. The DMARC Analyzer Email Header Analyzer (header_analyzer.php) automates steps 1-6 against a pasted raw-header dump.
- What is an IDN homograph attack?
- An IDN homograph attack is a spoofing technique in which the attacker registers a domain name that LOOKS identical to a target domain but contains Unicode characters from non-Latin scripts that are visually confusable with Latin characters. Canonical example: a domain using Cyrillic а (U+0430) instead of Latin a (U+0061) — the rendered glyphs are visually indistinguishable in most fonts. The Unicode Consortium documents this attack class in UTS #39 (Unicode Technical Standard 39: Security Mechanisms). Common confusables: Cyrillic а vs Latin a, Cyrillic е vs Latin e, Cyrillic о vs Latin o, Cyrillic р vs Latin p, Cyrillic с vs Latin c, Greek ο (omicron, U+03BF) vs Latin o. IDN domains serialize to Punycode form starting with xn-- in DNS records and in the raw email headers, so technically- savvy users can detect them in the raw From: header — but the rendered From: line in the mail client shows the Unicode glyphs. Most modern browsers (Chrome, Firefox, Safari) implement Punycode-display rules that show xn-- in the address bar for suspected IDN homograph domains, but few mail clients implement the equivalent rule. Defense: enroll in a brand-monitoring service that watches for IDN- confusable registrations against your trademark; train users to hover over From: addresses; require external-mail tagging at the secure email gateway.
- What is a lookalike domain and how is it different from a cousin domain?
- A lookalike domain is any attacker-controlled domain registered specifically to resemble a legitimate target domain. The class subdivides into two main types: (1) Typosquats / pure-lookalikes that exploit visual similarity — single-character substitutions (paypa1.com for paypal.com), character omissions (paypl.com), character transpositions (papyal.com), homograph variants using Latin-script characters that look similar (gooogle.com with three Os). (2) Cousin domains that combine the target brand with an additional legitimate-sounding word or different TLD — paypal-security.com, paypal-support.com, paypal-login.com, paypal.co (instead of paypal.com), paypal.support, paypal.online. The distinction matters operationally because typosquats are caught by spell-check-style brand- monitoring services (the canonical regex-similarity scan), while cousin domains require monitoring for trademark- plus-word permutations across all TLDs (a much wider search space). The MITRE ATT&CK technique T1583.001 (Acquire Infrastructure: Domains) covers both classes. DMARC at p=reject for your real domain does NOT defend against either — the attacker controls a technically distinct domain. Defense: brand-monitoring services (e.g. via the Cybercrime Information Center, Spamhaus DBL, PhishTank, or commercial vendors), defensive registrations of high-risk variants in your name, and recipient training to verify the domain character-by-character.
13. Verify your spoofing protection now
The DMARC Analyzer platform automates spoofing detection and prevention across the
seven-technique surface area documented on this page. The
includes/DnsChecker.php module
audits your SPF, DKIM, DMARC, MTA-STS, TLS-RPT, BIMI, and CAA records; the
includes/DmarcParser.php module
ingests DMARC aggregate (RUA) reports and surfaces failing-authentication source IPs
so you can identify spoofing attempts against your domain in real time;
includes/EmailHeaderParser.php
and includes/ForensicReportParser.php
handle Authentication-Results parsing and forensic (RUF) report ingestion for
incident response.
Audit my domain spoofing protection Inspect a received Authentication-Results header Sign up — Free plan