免责声明:本文仅用于授权场景下的安全分析、检测与应急排查,请勿用于未授权测试或违法用途。
一、概述
电子邮件相关协议主要包括:
- SMTP:发送和转发邮件
- POP3:拉取邮件
- IMAP:同步和管理邮件
钓鱼邮件分析的核心目标通常有三个:
- 判断这封邮件是否为恶意或伪造邮件
- 判断附件、链接、发件源是否存在风险
- 判断收件人是否已经点击、登录、执行附件并造成影响
常见钓鱼关键词和场景:
- 财务报销
- 发票
- 快递异常
- 密码过期
- 学校通知
- OA / VPN 登录
- 领导催办
二、SMTP 基础
1. SMTP 是什么
SMTP(Simple Mail Transfer Protocol)是客户端与服务器、以及服务器之间发送和转发电子邮件的应用层协议。
2. SMTP 大致通信流程
建立连接
- 客户端与服务器基于 TCP 建立连接,默认端口为 25
- 服务器返回 220,表示服务已就绪
- 客户端发送 EHLO 或 HELO
- 服务器返回 250,并在 EHLO 情况下告知支持的扩展功能,如:
发送邮件
- 客户端发送 MAIL FROM:
- 服务器返回 250
- 客户端发送一个或多个 RCPT TO:
- 服务器返回 250
- 客户端发送 DATA
- 服务器返回 354
- 客户端逐行发送邮件头和正文
- 最后以单独一行的 . 结束
- 服务器返回 250,表示邮件已接收并排队
关闭连接
三、邮件伪造原理
1. 为什么能伪造
在 SMTP 交互中,发件人地址本质上是发送端声明的,因此如果缺少校验机制,From 字段可以被伪造。
示例邮件内容:- Date: Wed, 06 Aug 2025 14:57:55 +0800
- To: example@example.com
- From: 110@110.com
- Subject: test Wed, 06 Aug 2025 14:57:55 +0800
- Message-Id:
- X-Mailer:
- Content-Type: text/html
- This is a test
复制代码 常见字段含义:
- Message-Id:消息唯一标识
- X-Mailer:发件工具或客户端
- Subject:邮件标题
- To:收件人地址
- From:表面显示的发件人地址
2. 常见防伪造机制
SPF
发件人策略框架,用来声明哪些服务器被授权为该域发送邮件。
DKIM
通过域名公私钥机制对邮件头做数字签名,验证邮件是否被伪造或篡改。
DMARC
在 SPF 和 DKIM 校验结果基础上,告诉接收服务器该如何处理邮件,如放行、标记、隔离或拒收。
3. 查看域名是否配置 SPF / DKIM
- dig +short TXT iport._domainkey.cisco.com
复制代码 其中 iport._domainkey.cisco.com 可以替换为对应域名。
DKIM 示例
SPF 示例
四、SPF 记录
1. 示例
- v=spf1 ip4:192.0.2.0/24 include:_spf.example.com redirect=example.net -all
复制代码 2. 字段说明
- v=spf1:SPF 协议版本
- ip4/ip6:允许的 IP 段
- a / mx:允许与域名 A 记录或 MX 记录匹配的主机
- include::引入其他域的 SPF 规则
- redirect=:当前规则不匹配时,跳转检查其他域 SPF
3. 限定符
- 无符号或 +:Pass
- -:Fail
- ~:SoftFail
- ?:Neutral
4. 常见写法
- -all:未匹配者硬拒绝
- ~all:未匹配者标记可疑
五、伪造测试与原理验证
这一部分更适合理解“为什么能伪造”和“为什么会被拦截”,实战中重点还是放在分析与排查。
1. Swaks
Swaks 是一个命令行 SMTP 测试工具,常被称为 “SMTP 瑞士军刀”,可用于测试 SMTP 服务、模拟发信流程和观察服务器响应。
安装:2. 简单伪造示例
比如临时邮箱网站:
https://tempmail.so/
- swaks \
- --from "admin@pku.edu.cn" \
- --to "example@example.com" \
- --ehlo "pku.edu.cn" \
- --header "X-Mailer: Gmail" \
- --header "Content-Type: text/html; charset=UTF-8" \
- --header "Subject: test" \
- --body "test"
复制代码 3. SPF 绕过中常见的代发思路
代发场景中:
- --from:真实发件人地址
- --h-From:显示给收件人的伪造发件人地址
示例:- swaks \
- --from "username" \
- --h-From "admin@pku.edu.cn" \
- --to "example@example.com" \
- --ehlo "pku.edu.cn" \
- --header "X-Mailer: Gmail" \
- --header "Content-Type: text/html; charset=UTF-8" \
- --header "Subject: 北京大学录取通知书" \
- --body @./test.html \
- --server smtp.qiye.aliyun.com \
- --au "username" \
- --ap "password"
复制代码 参数说明:
- from:真实发件人账号
- h-From:伪造展示的发件人
- ehlo:声明的域名
- header:自定义头
- body:正文内容
- server:SMTP 服务器
- au:SMTP 认证用户名
- ap:SMTP 认证密码
原文中的测试场景里,目标域未配置相关验证,因此可以直接构造伪造邮件:
对应伪造邮件成功送达的效果如下:
六、钓鱼邮件分析与排查流程
总体流程
- 判断邮件是否可疑
- 导出 eml / msg 原始邮件
- 分析邮件头、发件链路与认证结果
- 提取 IOC
- 分析正文链接和附件
- 判断收件人是否已经点击或执行
- 做处置、加固、封禁和溯源
初步判断是否为钓鱼邮件
先做表面判断,重点看以下内容:
- 发件人显示名与真实邮箱是否一致
- 是否为“代发”邮件
- 标题是否诱导性强、制造紧迫感
- 内容是否要求登录、转账、下载附件、扫码
- 是否包含可疑链接、短链接、二维码
- 是否包含压缩包、Office 文档、脚本、可执行文件
- 是否冒充领导、财务、人事、学校、快递、运营商等高频身份
邮件头分析
1. 建议先导出原始邮件
优先导出:
不要只看 Web 邮箱界面,因为很多关键字段默认不会显示完整。
2. 邮件头重点字段
基础字段
- From:显示发件人
- To:收件人
- Subject:标题
- Date:发送时间
- Message-ID:消息唯一标识
- X-Mailer:发件客户端或工具
真实性和路由相关字段
- Return-Path:退信地址,常能看出真实发件来源
- Reply-To:回复地址,常用于诱导用户回复到其他邮箱
- Received:邮件传输链路,通常需要自下而上分析
- Authentication-Results:SPF、DKIM、DMARC 的校验结果
- Received-SPF:SPF 检测结果
- DKIM-Signature:DKIM 签名字段
3. 重点看
是否为代发
- From 域名、Return-Path 域名、Reply-To 域名是否一致
- 发件显示名是否与真实邮箱匹配
- 邮箱页面是否显示“代发”
代发场景在邮件界面中通常会有明显提示:
也可以导出 eml 文件进一步分析:
头部中通常能看到代发域名、发件 IP 等信息:
是否为伪造
- SPF 是否失败
- DKIM 是否缺失或验证失败
- DMARC 是否失败
- Message-ID 域名是否与 From 域名不一致
是否使用钓鱼平台或异常客户端
例如可以通过 X-Mailer 字段看出邮件可能由 gophish 发出:
发件链路是否异常
- Received 中是否出现异常跳转
- 第一跳发件 IP 是否可疑
- 发件服务器与发件域是否明显不匹配
IOC 提取与情报分析
1. 建议提取的 IOC
- 发件人邮箱
- Return-Path
- Reply-To
- 发件 IP
- 中继 IP
- 发件域名
- 正文链接
- 跳转域名
- 附件文件名
- 附件哈希:
2. 情报分析思路
可将提取到的 IP、域名、哈希放到情报平台分析,例如:
重点看:
- 是否命中恶意情报
- 是否为新注册域名
- 是否为一次性邮箱域名
- 是否有历史恶意行为
- 是否与已知钓鱼活动关联
情报分析示例:
正文分析
1. 重点检查项
- 链接显示文本和真实跳转地址是否一致
- 是否使用短链接、重定向、跳板页面
- 是否使用相似域名、同形异义字符、错拼域名
- 是否诱导输入账号密码、验证码、邮箱口令
- 是否伪装成:
- 企业登录页
- Office 365
- QQ 邮箱
- 银行
- 学校
- OA / VPN
2. 建议
- 不要直接在办公机点击链接
- 先提取 URL 做情报查询
- 必要时在隔离环境中访问
- 看是否存在:
附件分析
1. 高风险附件类型
常见危险文件类型:
- 压缩包:.zip、.rar、.7z
- Office文档:.doc、.docm、.xls、.xlsm
- PDF文件:.pdf
- 脚本文件:.js、.vbs、.ps1、.bat、.cmd
- 可执行文件:.exe、.dll、.scr
- 快捷方式:.lnk
- 磁盘镜像:.iso、.img
2. 分析流程
- 先计算哈希
- 查情报
- 上传沙箱
- 看行为
- 再决定是否需要逆向分析
3. 沙箱重点看什么
- 是否释放落地文件
- 是否创建计划任务、注册表启动项
- 是否拉起脚本解释器:
- 是否外联恶意 IP / 域名
- 是否下载二阶段载荷
- 是否窃取浏览器、邮箱、VPN、IM 凭据
4. 建议
带附件的钓鱼邮件,优先上传沙箱分析,确认是否为恶意程序、属于什么木马家族、是否有后续外联和持久化动作。
附件上传沙箱分析示例:
七、处置建议
1. 未点击、未打开附件
- 标记为钓鱼邮件
- 删除或隔离邮件
- 封禁发件地址、发件域名、源 IP、URL、哈希
- 在网关、邮件系统、EDR、代理设备中同步规则
2. 已点击链接
- 立刻断开风险访问
- 修改相关账号密码
- 检查 MFA 状态
- 强制下线所有会话
- 排查是否存在 OAuth 授权滥用、邮箱规则投毒
3. 已打开附件
- 隔离主机
- 保留样本与日志
- 排查进程、网络连接、持久化
- 查询全网是否有相同哈希或相同外联
- 必要时做内存取证和深度查杀
八、实战中的判断思路
判断是否可疑邮件
-> 看发件人显示名、域名、代发情况
-> 导出 eml 分析头部
-> 提取发件 IP、域名、链接、附件哈希
-> 分析 SPF / DKIM / DMARC
-> 分析附件和正文链接
-> 判断用户是否点击、登录、执行
-> 做隔离、封禁、告警扩线、溯源
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |