0.产生原因(理论原因)

SMTP 的全称为 Simple Mail Transfer Protocol,即「简单邮件传输协议」。发件人的邮箱地址是可以由发信方任意声明伪造。
常见钓鱼邮件方式:

  • 利用链接的显示与实际不同进行欺骗 比如url显示的是baidu.com 点击进去是恶意网站
  • 利用近似URL来进行欺骗 相似字符(欺负眼瞎)ta0bao.com
  • 利用子域名假如攻击者有http:a.com 子域名 http:baidu.a.com
  • 仿冒子域名 正常:http://mail.qq.com/ 仿冒:http://mail-qq.com

    0.0防御协议

    SPF

    SPF体系中,每个需要发送电子邮件的企业在其对外发布的DNS域名记录中,列出自己域名下需要发送邮件的所有IP地址段;而接收到邮件的服务器则根据邮件中发件人所属的域名,查找该企业发布的合法IP地址段,再对照发送邮件的机器是否属于这些地址段,就可以判别邮件是否伪造的。
    简单来说 如果你发送了一个邮件 发件地址以某域名 开启了SPF就会去该域名下对照你发送机器的ip是不是属于该ip段。 如果开启了SPF 伪造钓鱼邮件就会拒绝接收:550 SPF check failed

    检验是否开启SPF协议

    nslookup-type=txtqq.com
    dig-ttxtqq.com

DKIM(未验证)

DKIM是一种在邮件中嵌入数字签名的技术,DKIM签名会对邮件中的部分内容进行HASH计算,最后在邮件头中增加一个DKIM-Signature头用于记录签名后的HASH值,接收方接收到邮件后,通过DNS查询得到公开密钥后进行验证, 验证不通过,则认为是垃圾邮件。
那么我们如何获取到发件方的DKIM的密钥呢?在DKIM中有一个选择器(selector)的概念,通过此功能可以为不同的用户提供不同的签名,想要找到发件方的DKIM服务器,首先需要找到selector,在邮件的DKIM头中,s字段的值即为DKIM的selector,获取到selector后,我们就可以在如下域名中找到密钥。

DMARC(未验证)

DMARC是基于SPF和DKIM协议的可扩展电子邮件认证协议,通常情况下,它与SPF或DKIM结合使用,并告知收件方服务器当未通过SPF或 DKIM检测时该如何处理。
以阿里云为例,获取_dmarc.aliyun.com的txt记录即可获取DMARC策略。

1.如何伪造钓鱼邮件

1.1伪造发件人

1.2钓鱼邮件工具

伪造工具 swaks :https://www.freebuf.com/sectool/92397.html
效果:过时了 开启spf就不行 当然不是所有公司都会开启spf

钓鱼网站构建平台:gophlish https://www.freebuf.com/articles/network/224684.html
效果:可以生成钓鱼模板 ……(不能伪造发件地址)
但是如果获取某公司内部人员邮箱账号密码再利用钓鱼网站还是可以。

Cobalt Strike发送钓鱼邮件
功能效果同上,还可以复制网站……

传统邮箱比如qq邮箱也可以直接查看发件人机器真实iphttps://jingyan.baidu.com/article/20b68a8850e41d796dec627a.html

在线伪造: http://tool.chacuo.net/mailanonymous
匿名邮件: http://tool.chacuo.net/mailsend

———————————————————
一般情况下直接伪造发件人 但是发件机器的ip可以查到(一般人第一反应不是看ip)
如果开启了spf 伪造发件人会不行。但是可以利用其他东西绕过spf

  1. 绕过 sendgird, mailgun
  2. 在有SPF的情况下,就需要绕过SPF,可以使用swaks+smtp2go,需要借助到邮件托管平台来绕过SPF监测。
  3. swaks --to xxx@163.com
  4. --from admin@gov.com
  5. --ehlo xxx
  6. dan--body hello i'm 007"
  7. --server mail.smtp2go.com -p 2525 -au user -ap pass

2.防御&&绕过

https://www.freebuf.com/articles/web/227694.html

参考文档:https://www.freebuf.com/sectool/92397.html
https://www.freebuf.com/articles/web/260391.html