python 伪造源ip_Swaks伪造邮件

0x00 swaks

swaks - Swiss Army Knife SMTP, the all-purpose smtp transaction tester.

swaks堪称SMTP协议的瑞士军刀,使用它我们可以灵活的操作SMTP协议报文,这篇文章主要是记录一下我是如何伪造一封邮件绕过gmail的检测。

通常最简单的发送命令:

swaks --to user@example.com --server test-server.example.net

但是邮件头中会带上X-Mailer

3065d368be0f3eee953a00b0e5fd16af.png

同时,SPF检测会FAIL。

0x01 smtp2go

这个是从evi1cg师傅那里看到的,smtp2go主要是相当于邮件托管,可以分发子账户进行发送。

地址:https://support.smtp2go.com/hc/en-gb

(邮箱注册)普通账户可以免费发1000封邮件。

分配好账户后,可以通过swaks进行登录发送邮件:

9ccce5d42ff0d9dcd089103da1a43aef.png

0x02 swaks发送邮件

swaks --to rvn0xsy@gmail.com --from admin@qq.com --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -ap 

但是上面这个邮件无法绕过SPF。

0x03 SPF验证原理

如果mail.smtp2go.com是我的邮件服务器,那么gmail服务器收到的源IP也肯定是mail.smtp2go.com的IP。

gmail会校验邮件发送者的IP是否存在于smtp.from的域名spf配置列表里。

而上面这条命令:

swaks --to rvn0xsy@gmail.com --from admin@qq.com --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -ap 

smtp.from就是admin@qq.com,和mail.smtp2go.com的IP肯定不同,所以SPF校验失败,而校验失败的邮件,会有很高的几率被扔到垃圾邮件中。

默认情况下,如果未设置Mail.From也就是邮件头的From,则会使用smtp.from作为Mail.From。

960e3f6de14638f0b97dc21de9bf4a98.png

0x04 绕过SPF

由于邮件显示的是Header中的From不是smtp.from,因此可以将smtp.from设置为正常的邮件服务器地址,伪造一个Mail.From即可。

swaks --to payloads@aliyun.com --from xx@smtp2go.com --h-From: '管理员' --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -ap 

Gmail接收到这封邮件后,会校验--from xx@smtp2go.com中的smtp2go.com是否等于mail.smtp2go.com的IP,由于是相等的,所以完成了SPF的校验。

而DKIM是校验邮件完整性的,smtp2go与Gmail直接使用的是TLS,不会发生什么问题。

1ee48f9287458a2a1c60c5f67063a123.png

0x05 Header

swaks支持自定义某些Header,参数如下:

swaks --header-

如果我想去除Mailer特征,就可以这么做:

swaks --header-X-Mailer gmail.com --to payloads@aliyun.com --from xx@smtp2go.com --h-From: '管理员' --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -ap 

0x06 附件、钓鱼

swaks --header-X-Mailer gmail.com --to payloads@aliyun.com --from xx@smtp2go.com --h-From: '管理员' --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -ap --attach /tmp/sss.rtf

定制发送:

swaks --data /tmp/mail.data --header-X-Mailer gmail.com --to payloads@aliyun.com --from xx@smtp2go.com --h-From: '管理员' --ehlo gmail.com --body hello --server mail.smtp2go.com -p 2525 -au -ap --attach /tmp/sss.rtf

/tmp/mail.data中是原始的邮件报文。

0x07 Python也可以做

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header

mail_host="mail.smtp2go.com"
mail_user=""
mail_pass=""


sender = 'test@smtp2go.com'
receivers = ['rvn0xsy@gmail.com']

message = MIMEText('Hello World', 'plain', 'utf-8')
message['From'] = Header("from@qq.com", 'utf-8')
message['To'] = Header(receivers[0], 'utf-8')

subject = 'SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')


try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25)
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print "Success"
except smtplib.SMTPException:
print "Error"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

clientmacaddr进不去系统win10_教你一分钟搞定戴尔电脑WIN10改WIN7

最近有很多人问小编,戴尔的新款电脑WIN10(win8)改WIN7电脑不认U盘,不知道怎么设置,今天小编就给大家分享一个快速进入的方法。首先把装有系统的U盘插入电脑,开机一直按F12进入Bios菜单第二步:进入菜单界面后&#xff0…

win7笔记本外接显示器html,window7笔记本外接显示器只显示一个屏幕怎么设置

许多用户都会偏向于入手win7笔记本电脑,这样电脑携带起来也是非常方便,不过由于屏幕较小的缘故,有用户就会选择外接一台显示器,不过在给win7笔记本外接显示器之后就需要对于其进行设置只显示一个屏幕,接下来小编就来教…

机器人穿法_(图解)机器人系统组成介绍

一、机器人介绍1、机器人主体结构机器人主体结构主要由机器人本体、机器人控制柜、机器人控制面板组成。2、机器人控制面板机器人控制面板,主要担负这人机对话的作用,我们对机器人的调试、操作、编程、校正等,均靠机器人控制面板来执行。3、机…

苹果手机怎么查看足迹_用了5年苹果手机!才知道查看一个字母就能辨别手机真假...

苹果手机的价格一般都比较贵,所以大家都怕买到假货!今天笔者就教大家如何快速分辨苹果手机真假,只需查看一个字母就能知道手中的苹果手机是什么型号。方法一:桌面图标iPhone手机桌面上的时钟图标比较特别,它的时针会随…

java实现矩阵谱峰搜索算法

矩阵谱峰搜索算法,也称为矩阵谱峰查找算法,是一种用于搜索二维矩阵中谱峰的方法。谱峰是指在矩阵中的一个元素,它比其上下左右四个相邻元素都大或相等。 该算法的基本思想是从矩阵的中间列开始,找到该列中的最大元素,…

电脑中计算机右键管理无法打开,win8系统计算机右键菜单中的管理打不开怎么办...

‍‍计算机管理一组Windows管理工具,这些工具被组合到一个控制台中,方便我们操作。最近有些雨林木风win8旗舰版用户遇到了计算机管理打不开的情况,在右键点击计算机打开菜单后,点击管理打不开,遇到这种问题该怎么办呢&…

中海达gps软件wince_应用|无人机航测15分钟能做啥?中海达PPK告诉你答案

标星置顶,一秒找到中海达讯点击上方“中海达讯”→点击右上角“…”→点选“设为星标 ★”在航测作业中快速现场成图生成快拼成果报告快速通过内方位元素精度评估完成以上步骤你最快要多长时间?15分钟这是中海达PPK套装给出的答案点击视频查看中海达PPK套…

机械制造工艺基础_机械制造工艺基础知识,錾削与锯削加工工艺

一、錾削用锤子打击錾子对金属工件进行切削加工1.錾削工具(1)錾子錾子的种类及用途(2)锤子2.錾削时的几何角度(1)楔角(βo)錾削硬度较高材料: βo60~70錾削软材料:βo30~50錾削中等硬度材料:βo…

洛阳计算机学校排名2015,洛阳初中名校排行榜TOP10,这一次你说了算!

原标题:洛阳初中名校排行榜TOP10,这一次你说了算!小升初的时间就剩下半年了,相信大家都很关心一个问题,那就是洛阳的初中到底怎么样?有没有洛阳初中名校的排行榜?让家长好做参考。虽然之前也做过…

excel怎么更改坐标轴刻度_如何用excel制作帕累托图

帕累托图,也叫排列图/帕拉图/主次图,是一种将出现的质量问题和质量改进项目按照重要程度依次排列而采用的图表。当我们的帕累托图完成时,便可辅助我们直观的找到造成问题的主要原因,进而针对问题实施对策,最终达到改善…

c++矩阵连乘的动态规划算法并输出_你在Java中用过动态规划吗?

1. 介绍动态规划典型的被用于优化递归算法,因为它们倾向于以指数的方式进行扩展。动态规划主要思想是将复杂问题(带有许多递归调用)分解为更小的子问题,然后将它们保存到内存中,这样我们就不必在每次使用它们时重新计算它们。要理解动态规划的…

win8计算机管理员权限删除文件,win8系统使用管理员权限无法删除部分文件怎么办...

一般情况下,删除重要文件需要使用管理员权限才可以彻底删除,有用户在Win8系统下清理文件的时候提示“文件夹访问被拒绝”无法删除,即使拥有管理员权限也无法删除,怎么回事呢?针对这个问题,下面小编为大家分…

spark中dataframe解析_SparkSql 中 JOIN的实现

Join作为SQL中一个重要语法特性,几乎所有稍微复杂一点的数据分析场景都离不开Join,如今Spark SQL(Dataset/DataFrame)已经成为Spark应用程序开发的主流,作为开发者,我们有必要了解Join在Spark中是如何组织运行的。SparkSQL总体流程…

含枚举类型的函数声明_02Golang基础类型

基础类型命名Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。大写字母…

将xscj指定为当前数据库_通过网络连接数据库模式Hive的搭建过程详解

最近在搭建通过网络直接连接数据库模式的Hive时总是在启动的时候报各种错误,所以今天,我们来总结一下这种模式的Hive的搭建过程。【数据库安装】安装mysqlyum install mysql-server -y配置:启动mysql服务:service mysqld start设置…

全国计算机四六级报名时间2015,2015年英语四六级口语考试报名时间:10月25日起...

出国留学网英语栏目提示:2015年11月六级口语考试即将开始报名,请跟着小编一起阅读以下的口语考试相关事宜。全国大学英语四、六级委员会办公室最新发布的《2015年11月全国大学英语四、六级口语考试报名通知》已公布:2015年11月英语四级口语报…

游戏脚本代码大全_按键精灵】一个很好学的脚本

这【按键精灵】一个很好学的脚本命令名称:GetPixelColor 得到指定点颜色命令功能:得到指定位置的点的颜色命令参数:参数1 整数型,屏幕X坐标参数2 整数型,屏幕Y坐标返 回 值:【按键精灵】一个很好学的脚本字…

标记三维点_便携式3D扫描仪全自动三坐标测量机三维扫描设计扫描测量摄影

项目简介客户产品该客户的产品是铝铸件,铸件的很多位置没有太高的精度要求,但是铸件加工出来的孔位需要严格对上装配的位置,精加工的面要求却又特别高,并且孔位之间相距较远。客户的困难 由于产品要求较高,一般卡尺量具…

中学生计算机编程教学视频6,计算机科学速成课6:寄存器和内存【视频】

上集,我们用逻辑门做了个简单 ALU它能执行算术(Arithmetic)和逻辑(Logic)运算 ALU 里的 A 和 L 因此得名当然,算出来之后如果扔掉就没什么意义了得找个方法存起来可能还要进行多个连续操作这就用到计算机内存了如果你在主机上打过一场长时间的对局或玩困…

python画图显示不了中文_Python使用matplotlib绘图无法显示中文问题的解决方法

本文实例讲述了Python使用matplotlib绘图无法显示中文问题的解决方法。分享给大家供大家参考,具体如下: 在python中,默认情况下是无法显示中文的,如下代码: import matplotlib.pyplot as plt # 定义文本框和箭头格式 d…