Swaks伪造邮件

倾旋
倾旋
技术分享|2019-5-9|最后更新: 2023-6-22|
type
status
date
slug
summary
tags
category
icon
password
URL

0x00 swaks

💡
swaks - Swiss Army Knife SMTP, the all-purpose smtp transaction tester.
swaks堪称SMTP协议的瑞士军刀,使用它我们可以灵活的操作SMTP协议报文,这篇文章主要是记录一下我是如何伪造一封邮件绕过gmail的检测。
通常最简单的发送命令:
但是邮件头中会带上X-Mailer
notion image
同时,SPF检测会FAIL。

0x01 smtp2go

这个是从evi1cg师傅那里看到的,smtp2go主要是相当于邮件托管,可以分发子账户进行发送。
地址:https://support.smtp2go.com/hc/en-gb
(邮箱注册)普通账户可以免费发1000封邮件。
分配好账户后,可以通过swaks进行登录发送邮件:
notion image

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。
notion image

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,不会发生什么问题。
notion image

0x05 Header

swaks支持自定义某些Header,参数如下:
如果我想去除Mailer特征,就可以这么做:

0x06 附件、钓鱼

定制发送:
/tmp/mail.data中是原始的邮件报文。

0x07 Python也可以做

©2021-2024 倾旋. All rights reserved.