钓鱼邮件的初步构造

0x00  前情提要

最近公司一直在做护网的前期准备,安全部准备给同事们组织一次安全培训,其中一项内容就是给大家发送钓鱼邮件看同事是否会上钩。这个任务就落在了我的身上。

0x01 初次尝试

在网上看些技术文章,初步把实现工具定在swaks和email_hack这两个上。先介绍一下这两个工具的初步使用。我首先用的email_hack,工具的下载地址:https://github.com/Macr0phag3/email_hack。用法也很简单:

python email_hacker.py -faddr hr@×××.com -taddr ×××@×××.com -s "薪水调整通知" -b "×××您好:\n根据您近期的表现,公司决定涨薪3000元,以资鼓励。”

参数说明:

 -h, --help         输出帮助信息
 -faddr FROM_ADDRESS, --from_address FROM_ADDRESS  伪造的来源邮件地址
 -taddr TO_ADDRESS, --to_address TO_ADDRESS   接收方的邮件地址
 -s SUBJECT, --subject SUBJECT     邮件主题
 -b BODY, --body BODY        邮件正文

查看效果:

钓鱼邮件的初步构造_第1张图片

发是发了,但是最后有个随机码。这不是影响我骗人吗?查看源代码

钓鱼邮件的初步构造_第2张图片

把这一段删了,但是随机数后面还有个“.”,这个不能删除,删除了邮件发送失败,因为临近下班,我也没仔细找原因。

还有就是有两个可以申请10分钟邮箱的网址供大家使用:

https://10minutemail.com/    支持英文,需××

https://bccto.me          支持中英文

再来说swaks,这是kali里自带的一款工具,比较全的命令格式如下:

swaks --to [email protected] --from [email protected] --h-From: '"集团安全组" ' --ehlo china.com --body "各位同事好:\n接集团通知,配合护网行动,所 有员工需要修改邮箱密码,请访问内网邮箱密码重置链接http://172.16.1.203/*******进行修改。修改完成后请回复该邮件。\n\n\n_____________________________\n\n**************************\n\n集团安全组\n\n某某集团\n16601125423\[email protected]\n***************************\n如果您错误接收了该邮件,请通过电子邮件立即通知我们。请回复邮件到[email protected],即可以退订此邮件。我们将立即将您的信息从我们的发送目录中删除。If you have received this email in error please notify us immediately by e-mail. Please reply to [email protected] ,you can unsubscribe from this mail. We will immediately remove your information from send catalogue of our." --header "Subject: 关于切实落实总公司护网行动的通知"

钓鱼邮件的初步构造_第3张图片

效果如图:

钓鱼邮件的初步构造_第4张图片

如果给人家限定24小时修改,在这个时期容易被当做钓鱼邮件处理,还是让修改后回复邮件吧。

如果需要带附件,可以使用--attach参数:

swaks --to [email protected] --from [email protected] --header "Subject:通知" --attach ./hc.doc --body "各位,请下载附件使用"

我们也可以使用--data参数引用一个源邮件,但是会提示收件人这个邮件是由他人代发的:

钓鱼邮件的初步构造_第5张图片

拷贝原文保存成一个email.txt的文件,删除其中的received、to、from等我们不需要的字段,使用命令:

swaks --data ./email.txt --to [email protected] --from [email protected]

但是最终会提示用户,该邮件由他人代发。

0x02 可能遇到的问题

在我尝试的一些邮箱中,qq邮箱不能发送,但是我们公司邮箱和263邮箱可以成功发送。在发送失败之后,我们根据提示可以分析为什么没有发送成功,这点263邮箱比较好,有提示。但是qq邮箱和我们公司邮箱值回复250发送成功,但是到不了用户手里。我所遇到的三个问题

1、同公司的邮箱地址发,比如伪装成[email protected][email protected]发邮件,会有两种结果。我们的公司邮箱,第一次发送成功,但是之后就收不到了。如果是263邮箱,会提示你需要验证,如下图:。

钓鱼邮件的初步构造_第6张图片

我感觉是因为发送人邮箱是归这个SMTP服务器管的,所以它能去认证一下这个IP上该用户的登录状态。这种的解决措施就是发送人的邮箱换个地址,这样就不能做认证了,比如[email protected],仅仅是多加了一个“i”,他们应该也不会发现吧[偷笑]。

2、有的服务器会验证邮件的来源地址和邮箱域名绑定的IP是不是一致的,如图:

钓鱼邮件的初步构造_第7张图片

这种的只会匹配知名邮箱,所以别用qq.com,163.com等知名邮箱就有可能绕过,比如qq1.com,1633.com。

3、这种的很少见,验证EHLO头信息。这种就根据上面--ehlo 域名就可以绕过。这也是上面为啥添加--ehlo参数的原因,但是大多数情况下加不加没啥区别。

4、使用SPF、DKIM和DMARC

SPF 是为了防范垃圾邮件而提出来的一种 DNS 记录类型,它是一种 TXT 类型的记录,它用于登记某个域名拥有的用来外发邮件的所有 IP 地址,如果声称的域名和IP一致则放行,不一致则丢弃。但是对于没有记录的域名呢,可以试试,就比如上面问题2所示,就是放行了。

还有一种就是登录邮箱服务器,使用正常的邮箱地址进行邮件发送进行绕过,格式如下:

swaks --to ×××@qq.com --from 正常地址 --h-From: '管理员' --ehlo qq.com --body hello --server 邮件服务器 -p 25 -au  -ap 

这种方式也会提示用户由某某代发。

DKIM 是一种防范电子邮件欺诈的验证技术,通过消息加密认证的方式对邮件发送域名进行验证。

DMARC 是一种基于现有的SPF和DKIM协议的可扩展电子邮件认证协议,在邮件收发双方建立了邮件反馈机制,便于邮件发送方和邮件接收方共同对域名的管理进行完善和监督。

这两种就不说了,光看协议的简介就知道,这不是我能绕过的。

0x03 合格的钓鱼邮件

这里其实算是钓鱼邮件的核心。我们可以通过技术发送给受害者邮件,但是我们最终的目的是想让用户点击链接或者下载运行软件。这就需要攻破受害者的心里防线,让他真正感觉到我就该点这个链接,我就该运行这个软件。头一段收到一封邮件,说是开学了,教务处发的通知,你说这邮件我能点吗?我们要了解我们的攻击对象,比如,他是哪儿个公司的,他们公司最近在干啥,最好知道他们公司内部邮件有没有什么特定格式,行文风格。这一块我就不细说了,https://blog.csdn.net/yiifaa/article/details/78471241这篇文章写的很细,大家可以看看。

0x04 写在最后

这篇文章是为了做公司内部员工安全意识培训所写的,请不要用来做非法用途。

长按下方图片关注我们:

你可能感兴趣的:(钓鱼邮件的初步构造)