Swaks伪造邮件
0x00 swaks
swaks - Swiss Army Knife SMTP, the all-purpose smtp transaction tester.
swaks堪称SMTP协议的瑞士军刀,使用它我们可以灵活的操作SMTP协议报文,这篇文章主要是记录一下我是如何伪造一封邮件绕过gmail的检测。
通常最简单的发送命令:
|
|
但是邮件头中会带上X-Mailer
:
同时,SPF检测会FAIL。
0x01 smtp2go
这个是从evi1cg师傅那里看到的,smtp2go主要是相当于邮件托管,可以分发子账户进行发送。
地址:https://support.smtp2go.com/hc/en-gb
(邮箱注册)普通账户可以免费发1000封邮件。
分配好账户后,可以通过swaks进行登录发送邮件:
0x02 swaks发送邮件
|
|
但是上面这个邮件无法绕过SPF。
0x03 SPF验证原理
如果mail.smtp2go.com是我的邮件服务器,那么gmail服务器收到的源IP也肯定是mail.smtp2go.com的IP。
gmail会校验邮件发送者的IP是否存在于smtp.from的域名spf配置列表里。
而上面这条命令:
|
|
smtp.from就是[email protected],和mail.smtp2go.com的IP肯定不同,所以SPF校验失败,而校验失败的邮件,会有很高的几率被扔到垃圾邮件中。
默认情况下,如果未设置Mail.From也就是邮件头的From,则会使用smtp.from作为Mail.From。
0x04 绕过SPF
由于邮件显示的是Header中的From不是smtp.from,因此可以将smtp.from设置为正常的邮件服务器地址,伪造一个Mail.From即可。
|
|
Gmail接收到这封邮件后,会校验--from [email protected]
中的smtp2go.com是否等于mail.smtp2go.com的IP,由于是相等的,所以完成了SPF的校验。
而DKIM是校验邮件完整性的,smtp2go与Gmail直接使用的是TLS,不会发生什么问题。
0x05 Header
swaks支持自定义某些Header,参数如下:
|
|
如果我想去除Mailer特征,就可以这么做:
|
|
0x06 附件、钓鱼
|
|
定制发送:
|
|
/tmp/mail.data中是原始的邮件报文。
0x07 Python也可以做
|
|