钓鱼邮件的投递和伪造
字数 1576 2025-08-25 22:58:28
钓鱼邮件的投递和伪造技术详解
前言
在大型企业边界安全日益完善的今天,钓鱼和水坑攻击成为APT攻击和红蓝对抗演练中越来越常用的手段。本文将全面解析钓鱼邮件的投递和伪造技术,帮助安全人员了解攻击手法以更好地防御。
邮件安全三大协议
SPF (Sender Policy Framework)
SPF是一种以IP地址认证电子邮件发件人身份的技术:
- 接收方检查域名的SPF记录,验证发件人IP是否在授权列表中
- 若IP不在列表中,则视为伪造邮件并退回
- 示例:检查自称来自spam@gmail.com的邮件是否真的来自gmail.com的邮件服务器
DKIM (DomainKeys Identified Mail)
DKIM让企业可以在发送的电子邮件中插入加密签名:
- 签名与域名关联,随邮件一起传送
- 收件人使用签名验证邮件确实来自声称的企业
- 确保邮件内容不被偷窥或篡改
DMARC (Domain-based Message Authentication, Reporting & Conformance)
DMARC是基于SPF和DKIM的可扩展电子邮件认证协议:
- 发送方通过DNS公开表明使用的发件服务器(SPF)并对邮件内容签名(DKIM)
- 接收方检查邮件是否来自授权服务器并验证签名有效性
- 对未通过检查的邮件按发送方指定策略处理(如投入垃圾箱或拒收)
检查SPF配置
查看域名是否配置SPF:
nslookup -type=txt example.com
dig -t txt 163.com
未配置SPF的显示:
example.com text = "v=spf1 ?all"
已配置SPF的显示:
example.com text = "v=spf1 ip4:192.0.2.0/24 ip4:198.51.100.123 a -all"
伪造邮件发送技术
未配置SPF的情况
- 使用swaks工具 (Kali Linux自带):
swaks --to target@qq.com --from info@victim.com --ehlo victim.com --body "hello" --header "Subject: hello"
- 自建邮件服务器:
- 使用EwoMail等开源邮件服务器软件
- 地址:https://github.com/gyxuehu/EwoMail
- 使用第三方伪造服务:
- 如http://tool.chacuo.net/mailanonymous
已配置SPF的情况
需要使用权威邮件服务商绕过检测:
- SendGrid:
- 30天试用,免费发送40000封邮件
- 使用API发送:
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header "Authorization: Bearer YOUR_API_KEY" \
--header 'Content-Type: application/json' \
--data '{"personalizations": [{"to": [{"email": "target@example.com"}]}],"from": {"email": "spoofed@victim.com"},"subject": "Subject","content": [{"type": "text/plain", "value": "Content"}]}'
- Mailgun:
- 每月免费10000封邮件
- 使用示例:
curl -s --user 'api:key-API_KEY' \
https://api.mailgun.net/v3/yourdomain.com/messages \
-F from='Spoofed Name <spoofed@victim.com>' \
-F to='target@example.com' \
-F subject='Subject' \
-F text='Content'
- 其他服务:
- Amazon SES:月免费62000封
- 阿里云邮件推送:每日200封免费
- SendCloud、MandRill、Postmark等
提高送达率的技巧
- 控制发信频率(同一邮箱间隔2-5天)
- 分割大收件人列表分批发送
- 使用变量避免内容完全一致
- 修改发件人昵称(对手机用户特别有效)
钓鱼邮件内容设计
关键要素
- 重要性:体现邮件的重要性驱使目标查看
- 合理性:结合目标身份、习惯和业务情况
- 紧迫性:促使目标尽快采取行动
常见钓鱼案例
- 账号被异常登录
- 账号密码过期提醒
- 系统更新/迁移通知
- 领取礼品/优惠
链接钓鱼技巧
- 超链接伪装:
<a href="http://www.evil.com">www.legit.com</a>
- 相似域名注册:
- 用0代替o:taoba0.com
- 用1代替l:a1iyun.com
- 用vv代替w:vvvv.com
- Unicode域名欺骗:
- 使用特殊Unicode字符(如ṇ代替n)
- 注册Punycode编码域名:
- 原域名:www.biṇaṇce.com
- Punycode:www.xn--biace-4l1bb.com
- 在线转换工具:http://tools.jb51.net/punycode/index.php
- HTTPS证书:
- 申请合法HTTPS证书增加可信度
- 避免浏览器显示安全警告
防御建议
- 为所有业务域名配置SPF、DKIM和DMARC
- 培训员工识别钓鱼邮件特征
- 部署高级邮件安全网关
- 监控异常邮件发送行为
- 定期检查DNS记录是否被篡改
总结
钓鱼邮件攻击利用SMTP协议不验证发送者身份的特性,结合社会工程学技巧,仍然是有效的攻击手段。了解这些技术有助于企业和个人更好地防御此类攻击。切记这些知识仅应用于安全研究和防御目的。