Analyzing a Phishing Email from Headers and Domain Information
Phishing emails often imitate well-known companies and services closely enough that the message body alone may not reveal where the email actually came from.
When I received several suspicious emails, I began looking beyond the visible sender name and message content.
The analysis focused on information that could be preserved and reviewed without interacting with suspicious links.
The process included:
- preserving the original email as an
.emlfile - calculating a SHA-256 hash
- examining email headers
- reviewing SPF, DKIM, and DMARC results
- extracting URLs and hostnames
- identifying registered domains
- checking domain registration information
- comparing multiple suspicious emails
- organizing the findings into a reusable report
The objective was not simply to decide whether an email looked suspicious.
It was to understand what evidence could be extracted from the message itself and how that evidence could be structured for later review.
Start by Preserving the Original Email
Before analyzing a suspicious message, I preserve the original email whenever possible.
Saving the message as an .eml file retains information that may not be visible in the normal mail interface, including detailed headers and message routing information.
I also calculate a SHA-256 hash of the original file.
The hash does not determine whether the email is malicious. Its purpose is different: it provides a way to confirm that the preserved file has not changed during later analysis.
A simplified workflow is:
Original email
→ Preserve as EML
→ Calculate SHA-256
→ Analyze a working copy or extracted data
Keeping preservation and analysis separate makes the investigation easier to reproduce.
What I Check in the Email Headers
The visible From field is only one part of an email.
For suspicious messages, I review several header fields and authentication-related values together.
These can include:
FromReturn-PathReply-ToToReceivedMessage-IDAuthentication-Results- SPF results
- DKIM results
- DMARC results
No single field should automatically be treated as proof of legitimacy or fraud.
Instead, I compare the values and look for inconsistencies.
For example, the visible sender name may resemble a legitimate company while the actual sending infrastructure, return path, or linked domain belongs to an unrelated domain.
Authentication Results Are Evidence, Not the Whole Answer
SPF, DKIM, and DMARC are important signals, but their interpretation requires context.
A message can pass an authentication check for a domain that has nothing to do with the company being impersonated.
Therefore, I avoid interpreting a result such as SPF=pass as meaning that the email itself is trustworthy.
The more useful question is:
Which domain was authenticated,
and does that domain correspond to the organization represented in the message?
This distinction is particularly important in impersonation attacks.
Extracting URLs and Domains
URLs contained in suspicious messages can provide additional evidence.
Rather than opening the links, I extract the URL strings from the preserved message and identify:
- hostname
- registered domain
- path structure
- unusual subdomains
- redirects visible in the message source
The registered domain is particularly useful because a long hostname can sometimes make an unrelated domain less obvious.
For example:
account.example.login.suspicious-domain.example
The important part is not necessarily the leftmost words. The registered domain must be identified correctly.
Checking Domain Registration Information
After identifying a registered domain, I may check publicly available registration information, such as RDAP data.
Useful fields can include:
- registrar
- creation date
- expiry date
- domain status
- name servers
This information does not prove that a domain is malicious.
However, it can provide additional context when combined with the email headers, URLs, and other evidence.
For example, a recently registered or unrelated domain appearing in a message that imitates an established service may justify closer examination.
Comparing Multiple Emails
One suspicious email can provide useful evidence, but patterns become clearer when multiple messages are compared.
I organize extracted information into structured data so that I can compare fields such as:
| Item | Example of what is compared |
|---|---|
| Sender | Display name and email address |
| Return path | Domain used for bounce handling |
| Authentication | SPF, DKIM, DMARC results |
| Message ID | Domain or sending system |
| URLs | Hostnames and registered domains |
| Domain data | Registrar, dates, name servers |
| File evidence | File name and SHA-256 |
This makes it easier to identify repeated infrastructure or differences between campaigns.
From Manual Analysis to a Local Tool
After repeating this process across several emails, I realized that much of the evidence extraction could be automated.
That led to the design of a local analysis tool for Windows.
The intended workflow is:
EML files
→ Hash calculation
→ Header extraction
→ Authentication result extraction
→ URL and domain extraction
→ Comparison data
→ Markdown analysis report
A key design principle is that the tool should operate locally.
The original email files do not need to be uploaded to an external AI service merely to extract headers, hashes, or URLs.
AI can still assist with interpretation or documentation, but evidence preservation and mechanical extraction can remain local.
Separating Evidence from Interpretation
One of the most useful lessons from this process has been the importance of separating observed facts from conclusions.
For example:
Observed evidence
- a specific sender domain
- an SPF result
- a DKIM result
- a URL hostname
- a domain registration date
Interpretation
- whether the infrastructure is related to the represented organization
- whether multiple emails appear connected
- whether the message should be treated as phishing
Keeping these layers separate reduces the risk of treating assumptions as evidence.
A Reusable Investigation Flow
The overall process can be summarized as:
Preserve
→ Extract
→ Verify
→ Compare
→ Interpret
→ Document
This is similar to other research work I do.
The subject is different, but the underlying approach remains consistent:
Question or suspicious event
→ Evidence collection
→ Information structuring
→ Verification
→ Reusable knowledge or tool
The experience also became the starting point for developing a reusable local phishing evidence analysis workflow.
This Research Note describes a general investigation workflow based on personal technical research. Identifying details, email addresses, and unnecessary indicators have been omitted or generalized. Domain registration information and authentication results should be interpreted together with other evidence and should not be treated as proof of malicious activity on their own.