钓鱼邮件的利用方法与防御

  1. 邮件钓鱼的手法
  2. 文章说明
  3. 邮件安全的三大协议
  4. 检查是否配置了SPF
  5. 伪造邮箱的发送
    1. mailgun
  6. 钓鱼技巧
  7. 真假难辨的链接
  8. 域名伪造术
  9. punycode伪造术
  10. 总结

邮件钓鱼的手法

在APT和红队攻击中,钓鱼手法层出不穷。在安全防护做的密不透风的情况下,邮件钓鱼也成为了突破口之一

文章说明

本文只是阅读先知社区的这一篇文章所做的总结:https://xz.aliyun.com/t/6325!!

邮件安全的三大协议

SPF

SPF是一种以IP地址认证电子邮件发件人身份证的技术。接收邮件放首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为这是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。

例如:当邮件服务器收到自称发件人是spam@gmail.com的邮件,那么到底它是不是真的gmail.com的邮件服务器发过来的呢,我们可以查询gmail.com的SPF记录,以此防止别人伪造你来发邮件

参考链接:SPF

DKIM

DKIM让企业可以把加密签名插入到发送的电子邮件中,然后把该签名与域名关联起来。签名随电子邮件发送,而不是沿着网络上的那条路径传送,电子邮件收件人则可以使用签名来证实邮件确认该企业确保邮件内容不被偷窥或篡改

DMARC

DMARC是txt记录中的一种,是一种基于现有的SPF和KIM协议的可扩展电子邮件认证协议,其核心思想是邮件的发送方通过特定方式(DNS)公开表明自己会用到的发件服务器(SPF)、并对发出的邮件内容进行签名(DKIM),而邮件的接收方则检查收到的邮件是否来自发送方授权过的服务器并核对签名是否有效。对于未通过前述检查的邮件,接收方则按照发送方指定的策略进行处理,如果直接投入垃圾箱或拒收。从而有效识别并拦截欺诈邮件和钓鱼邮件,保障用户个人信息安全。

检查是否配置了SPF

由于设置SPF的时候至少要有一个txt记录。所以可以进行dns查询txt的记录来查看SPF是怎么配置的

根据SPF文档说明:

此域名引用了spf1.staff.mail.aliyun.com上的SPF记录。当这个Email发送了一封邮件给QQ邮箱,那么QQ邮箱就会查询这个spf1.staff.mail.aliyun.com的SPF记录。如果该SPF记录允许发送IP发送邮件,那么就代表这封邮箱是正常的。当两个SMTP服务器进行邮件发送的时候,一个SMTP服务器配置了SPF,而另一个没有。那么没有配置SPF的那个SMTP服务器发送出来的邮件将被标记为垃圾邮件,进行拒收或者扔入垃圾箱。

163邮箱的SPF设置

qq设置的spf:

shodan的SPF

只接收IP:216.117.2.180发送的邮件,引用_spf.google.com,软拒绝

伪造邮箱的发送

使用:http://tool.chacuo.net/mailanonymous进行伪造邮箱发送给QQ邮箱,由于tool.chacuo.net没有配置SPF。会直接被qq标记为垃圾邮件并扔入垃圾箱或者拒收

所以qq邮箱收不到

尝试使用Gmail给qq邮箱发送

根据文章里使用SendGrid插件发送邮件,必须要有一台外网服务器吗。。。我在本地搭建WordPress测试发现并不行,丢…

服务器用curl发也不行??我丢,草死了

mailgun

mailgun也类似,每个月可免费发送10000封邮件,可以添加1000个域名,每封邮件都有跟踪日志,简单明了的管理界面。:
https://www.mailgun.com

# Try our API. Copy & run this in your terminal.
curl -s --user 'api:key-**********' \
    https://api.mailgun.net/v3/samples.mailgun.org/messages \
    -F from='Excited User <excited@samples.mailgun.org>' \
    -F to='devs@mailgun.net' \
    -F subject='Hello' \
    -F text='Testing some Mailgun awesomeness!'

其他同类服务
Amazon SES 免费套餐,月发送 62000 封电子邮件。

https://aws.amazon.com/cn/ses/pricing/

阿里云邮件推送服务,每个账户每日200封免费邮件。

https://www.aliyun.com/product/directmail?spm=5176.8064714.321187.pricedetail1111.MpRlp1

SendCloud 搜狐旗下付费服务

https://sendcloud.sohu.com

MandRill 付费服务

https://www.mandrill.com/pricing/

Postmark 免费试用

https://postmarkapp.com/pricing

以上的方法我已经失败到不想在试

钓鱼技巧

  • 内容与目标的工作相关或账号安全风险等内容
  • 修改昵称伪造发件人
  • 内容充实
  • 如果是伪造域名的话注意被伪造的域名是否有https证书,如果有的话自己也弄一个

真假难辨的链接

域名伪造术

可以寻找一些相近的域名来注册,比如仿造baidu.com,可以注册:

biadu.com
bdaidu.com
baiduco.com
biaidu.com
bdu.com

punycode伪造术

文章中提到的

这样的域名是怎么注册的呢?在了解怎么注册一个这样的域名前,需要先了解什么是国际域名(Internationalized domain name, IDN)。
IDN是指在域名中包含至少一个特殊语言字母的域名,特殊语言包括中文、法文、拉丁文等。在DNS系统工作中,这种域名会被编码成ASCII字符串,并通过Punycode进行翻译。Punycode是一个根据RFC 3492标准而制定的编码系统,主要用于把域名从地方语言所采用的Unicode编码转换成为可用於DNS系统的编码。目前,因为操作系统的核心都是英文组成,DNS服务器的解析也是由英文代码交换,所以DNS服务器上并不支持直接的中文域名解析,所有中文域名的解析都需要转成punycode码,然后由DNS解析punycode码。其实目前所说的各种主流浏览器都完美支持IDN域名,浏览器里面会自动对IDN域名进行Punycode转码,而地址栏依旧显示的是原始输入的IDN域名

所以,要想注册“币安”的这个域名:

www.biṇaṇce.com

其实只需要注册他经过punycode转码后的域名:

www.xn--biace-4l1bb.com

如果伪造一个baidu.com的话

总结

想要一次成功的钓鱼,需要对目标信息进行详细的收集,利用最近发生的热点事件来构造话题。引诱受害者上钩,如果钓鱼是模仿某域名钓鱼的话需要牢记以下几个点:

  • 先查是否有SPF
  • 模仿相对应的域名
  • 注意是否有https证书
  • 内容充实
  • 做戏做全套

防御措施:部署DMARCDKIM,查看邮件源数据来确定这份邮件是不是伪造的

thinks read ~


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:钓鱼邮件的利用方法与防御

本文作者:九世

发布时间:2019-09-17, 20:24:55

最后更新:2019-09-17, 20:29:17

原始链接:http://422926799.github.io/posts/cff7f693.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录