151-钓鱼篇邮件钓鱼SPF绕过自建邮件系统SwaksGophish

news2024/11/25 10:44:37

前置内容:

1、什么是SPF:

发件人策略框架(Sender Policy Framework)电子邮件认证机制中文译为发送方策略框架,主要作用是防止伪造邮件地址。可以把 SPF 记录看成是一个合法 IP 地址的白名单,当进来的邮件来自一个白名单中指定的 IP 地址,SPF 才会通过。

2、如何判断SPF:

dig -t txt qq.com  //linux

nslookup -type=txt qq.com  //windows

对应的结果

"v=spf1 -all" (拒绝所有,表示这个域名不会发出邮件)

"v=spf1 +all" (接受所有)

"v=spf1 ip4:192.168.0.1/16 -all" (只允许 192.168.0.1/16 范围内的IP发送邮件)

"v=spf1 mx-all" (允许当前域名的 mx记录对应的IP地址发送邮件)

"v=spf1 mx mx:test.example.com -all" (允许当前域名和test.example.com 的mx记录对应的IP地址发送邮件)

"v=spf1 a mx ip4:173.194.72.103 -all" (允许当前域名的 a 记录和 mx 记录和一个给定的IP地址发送邮件)

"v=spf1 include:example.com -all" (采用和 example.com 一样的SPF记录)

列如

这里就是表示允许mail.qq.com这个域名和其mx记录对应的IP地址发送邮件

也就是如果没有设置SPF那么可以直接伪造,如果设置了那么得根据这个放行的条件来尝试进行绕过

实验一:无SPF直接伪造-Swaks

临时邮箱

临时邮箱、十分钟邮箱(10分钟)、临时邮、临时Email、快速注册Email、24Mail--查错网

https://www.linshi-email.com/

这里使用第二个网站的临时邮箱作为受害者邮箱

首先自己发个邮件看看是否可以正常接受

可以正常接受到邮件

1、检测:

nslookup -type=txt iubridge.com

可以看到并没有开启SPF防护

2、伪造

swaks --header-X-Mailer "" --header-Message-Id "" --header-"Content-Type"="text/html" --from "安全测试部" --ehlo shabimeiquo -header "Subject:测试" --body 我们做了一个测试 --to ivcdnvmooq@iubridge.com 

swaks在kali中自带,输入上面的内容(大部分可以自定义最后面的to要改为受害者邮箱号)

在邮箱这边可以看到成功的接受到了钓鱼的邮件并且显示的是admin@qq.com成功的伪造成了qq.com的邮箱号

如果是在实战中这样的邮件是不是一下子就提高了可信度。

但是平时人们用的邮箱域名基本都有SPF的防护,可能一些公司邮箱没有做防护毕竟是自己内部用的。

实验2:有SPF直接伪造-swaks

Swaks - Swiss Army Knife for SMTP

1、软刚发信人:(修改字眼)

简单来说就是system@notice.aliyun.com是正常的做了SPF的域名,只要修改这个域名让他不是notice.aliyun.com比如加个.cn就可以绕过了

swaks --body "test" --header "Subiect:testT" -t xx@163.com -f system@notice.aliyun.com.cn

这里我用了一个我平时邮箱接收的比较多的一个邮箱号,可以看到如果直接伪造为官方的邮箱是会被拒绝接收的

但是如果我添加为

swaks --body "test" --header "Subiect:testT" -t xxx@qq.com -f system@message.ucloud.cn.com

可以看到只是修改了域名的部分就成功的发送了

不过是邮件直接丢到垃圾箱里了,还是挺智能的

思路就是伪造相似的域名,比如aliyun伪造为a1liyun这样的

如果伪造tencent.com就是替换了也被拒绝,它的防护比较严

后面我使用网易邮箱去接受邮件,我发现现在网易的防护也比较高了,也都会丢进垃圾箱里

另外我在测试的时候发现就算是伪造是可以伪造的邮箱号网易邮箱也会被丢进垃圾箱,比如说我有个云服务器厂商的邮箱号为我发现可以直接伪造。但是还是直接给我丢进了垃圾箱,应该是内容不完善被当做垃圾邮件了。

2、硬刚发信人:(转发突破)

注册一个邮箱开启POP3转发

使用网上已知的邮箱系统

1、将要发送的邮件导出EML模版

2、修改内置的发件人内容时间等

swaks --to 收信人 -f 发信人 --data 1.eml --server smtp.163.com -p 25 -au 帐号 -ap 授权码

这里使用网易邮箱演示

首先在设置中 找到这个pop3

开启这个pop3

开启的时候会有一个授权密码记得记录一下

再使用网易给QQ发给邮件测试一下

网易:

qq:

在正常的邮箱里,没有在垃圾箱里

然后在qq邮箱中导出刚才的收到的这份邮件为EML

然后修改这个EML的内容,将里面的这个发送者修改一下

我这里修改为了From: admin admin@jd.com 时间也得伪造一下 这里就是这个Date: Mon, 9 Sep 2024 09:34:53 +0800 (CST) 改为Date: Mon, 9 Sep 2024 19:34:53 +0800 (CST) 大一点的时间就可以了

然后保存把修改好的拖到kali里去

swaks --to xxx.qq.com -f xxx.163.com --data test123.eml --server smtp.163.com -p 25 -au 帐号(这里就是网易邮箱号)  -ap 授权码(前面给的授权码)

这里发送确实是成功的发送了,也成功的代理成功了但是没有成功的渲染EML文件,后面我又导出了其他的一些EML尝试伪造好像都无法渲染,不确定是不是现在的qq邮箱改了变得不会自动渲染这个EML文件了

3、自建要伪造高仿的邮箱系统

使用第三方平台或自行搭建

设置SPE,中转平台突破

1、smtp2go (速度慢但免费发送量大)

2、SendCloud (速度快但免费发送量少)

3、当然也可以自己搭建邮件服务器-Ewomail&Postfix(下节课)

SMTP2GO: Reliable & Scalable Email Delivery Service

https://www.sendcloud.net/

EwoMail邮件服务器,企业邮箱,一键搭建,安全稳定的开源邮件系统

1、创建自己域名

首先准备一个域名,我这里是在阿里云买了一个dreamer292.fun一年只要7元

不过在这注册的域名都得实名认证,还得等一段时间进行实名认证。。。

2、配置域名解析

注册域名实名成功后一切就绪准备开始

在sendcloud这边新增一个域名,有两个地方只需要填入第一个地方即可,添加完成后显示的是未验证的情况

然后点这个创建的域名点进去,此时的状态全部显示未生效

然后到域名这边点击这个解析设置

选择添加记录

然后对照着那边的未生效状态的那些填

比如第一条是

就填

一共4条全部照着填好就是这样的

然后回到这边重新刷新一下如果全部对钩了就是成功了

主页也是显示的已验证了

然后就可以进行测试发送了

第一个选项直接就有

第二个apikey需要自己先申请一个,点进去按照他的要求创建一个就可以了

第三个发信地址就是想伪造的发信人

第四个接受者地址就是受害人邮箱

下面的内容就自定义了

点击发送后如果发送成功就没啥问题

不过接收到还是在垃圾箱里,而且发件人有子域

怎么说呢好像是使用此方法代发的话好像是直接会把代理者显示出来。用网易邮箱也是如此,我的命令也是一样的没有啥地方有问题,不确定是哪里出了问题(确实现在还存在代发这种方式的后续我使用gophish成功的实现了)

另外就是可以通过修改内容让内容更加的正常就不会被丢进垃圾箱,我修改了内容后看着像正常的邮件确实没有被丢进垃圾箱,不过可能会被归纳为广告邮件(也就是内容页很重要)

实验3:优化内容效率-Gophish

Gophish:https://github.com/gophish/gophish

1、配置发件接口(自定义)

2、配置发信模版(更逼真)

3、配置触发页面(钓鱼用)

4、配置收信人地址(批量套)

在gtihub官网下载了压缩包后直接运行,第一次的登录密码会显示

然后登录进行后需要修改密码然后就可以正常使用了

1、配置发件接口(自定义)

选择send profile->new profile

也就是创建一个新的配置

smtp from就填网易邮箱号

host smtp.163.com:25 填这个就是因为前面在网易开启了那个smtp代理

username 也填网易邮箱号

password 填前面获取的那个-ap 指定的授权码

然后可以test一下看是否配置成功

可以看到正常收到了邮件

最后在第一个空格取个名字save配置就可以了

2、配置发信模版(更逼真)

点击email templates

比如我要添加一个这样的模版

一样的先导出为eml文件

然后打开保存下来的文件将里面的内容复制全选,然后import email

可以看到下面把这个模版渲染出来了,一毛一样

然后取个模版的名字

这个envelope sender就是伪造的发件人

然后就可以保存模版了

3、配置触发页面(钓鱼用)

点击 landing pages ->new page

取个名字这里我取test 然后会需要导入一个网址,这个网址其实就是用来钓鱼的网页,需要自己后期制作

如果加载成功就会在下面显示

4、配置收信人地址(批量套)

先添加用户和组,这部分就是目标

在user&group处点击new

然后add 在保存,可以add很多个目标所以可以批量发邮件

5、攻击

点击campaigns下发任务

因为前面都创建好了每个选项都有一个可以选择的

url应该就是钓鱼的页面

填写好后直接launch

成功后在qq邮箱中查看

首先说明我这个伪造的UCLOUD是没有SPF防护的,所以伪造的非常的像,除了下面有个显示了代发的基本和原文件一毛一样,并且没有进垃圾箱

然后只要是邮件里能点的链接全部都跳转到了我设置的baidu.com的网站,非常牛逼

我又尝试了其他的比如腾讯的邮件,虽然会丢进垃圾箱并且也显示代发但是可以伪造的很像

到此基本上初步的钓鱼手法就出来了,但是任然还是容易被丢进垃圾箱,这是使用163或者qq很容易出现的情况,想解决只能后续课程中讲到的自己搭建一个邮箱服务器就不会受到限制了。

总结一下如果没有SPF防护的可以直接使用swaks并且可以伪造的和真实的一模一样不需要使用代发的机制,如果有SPF防护那么只能选择代发的方式进行,其中使用gophish可以很方便快捷的批量发送邮件。

附上一个用来测试发出邮件的垃圾邮件匹配度的网站,来测测你伪造的邮件真不真

Newsletters spam test by mail-tester.com

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

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

相关文章

Java中的常用类及包装类

目录 Java中的常用类及包装类 Math类 Math类常用方法 BigInteger类 创建BigInteger类对象 常用方法 BigDecimal类 创建BigDecimal类对象 常用方法 Date日期类 创建Date类对象 常用方法 Calendar类 获取Calendar类实例 常用方法 SimpleDateFormat类 创建SimpleDateFormat类对象 …

燃气涡轮发动机性能仿真程序GSP12.0.4.2使用经验(二):使用GSP建立PG9351FA燃气轮机性能仿真模型

目录 一、PG9351FA燃气轮机简介及热力循环参数二、基于GSP的性能仿真模型设置环境参数设置进气道参数设置压气机参数设置燃烧室参数设置透平(涡轮)参数设置转子负载参数燃油流量外部控制 三、仿真结果四、其它 一、PG9351FA燃气轮机简介及热力循环参数 …

数据结构10

文章目录 两两交换链表中的节点括号生成I2009 408应用题42题 两两交换链表中的节点 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullp…

Mysql基础练习题 1407.排名靠前的旅行者(力扣)

编写解决方案,报告每个用户的旅行距离。 # 返回的结果表单,以 travelled_distance 降序排列 ,如果有两个或者更多的用户旅行了相同的距离, 那么再以 name 升序排列 。 题目链接: https://leetcode.cn/problems/top-travellers/d…

页面水印的实现以及防删除方案

水印相关 引言绘制一个水印输出背景图封装一点点细节图片加水印防止水印删除问题解决方案 引言 在企业里为了防止信息泄露和保护知识产权,通常会在页面和图片上添加水印 前端页面水印的添加一般有这几种方式:dom 元素循环、canvas 输出背景图、svg 实现…

vite项目配置本地开发使用https访问

在Vite项目中启用HTTPS以安全地使用navigator.mediaDevices.getUserMedia() 引言 在现代Web开发中,保护用户隐私和数据安全是至关重要的。特别是在涉及到媒体捕获功能,如使用用户的摄像头或麦克风时,Web应用需要遵循严格的安全准则。naviga…

《生成式人工智能行业自律倡议》发布,BAT、华为小米 OPPO 荣耀、北大清华等参编

8 月 29 日,在成都举办的 2024 年中国网络文明大会上,《生成式人工智能行业自律倡议》正式发布。 《生成式人工智能行业自律倡议》从保障数据和算法模型安全合规、促进内容生态建设、追求技术创新与质量提升、遵循价值观与伦理道德标准和促进交流合作与开放共建等方面发出行…

Marin说PCB之在CST软件中如何搭建两端子电容器--01

今天是教师节,小编首先祝愿所有的老师们节日快乐,当然还有我的那些国外的老师们,道友们懂得都懂啊,我就不说破了,都毕业很多年了,小编我还是很怀念大学的时光的,毕竟那个时候我也是有很多女粉丝…

CCOS2024盛大举办, 四川眼科医院专家亮相盛会并作精彩分享

名医荟萃,共襄盛举;学术争鸣,共话未来。9月4日-8日,中华医学会第二十八次眼科学术大会(CCOS2024)在武汉国际会议中心和武汉国际博览中心隆重举行! 此次大会汇聚了来自全国各地的一万多名眼科同…

一、windows11交叉编译ffmpeg的android版本库

目录 1、工具准备 (1)MSYS2 (2)NDK(也可直接用android studio安装的) (3)ffmpeg源码 2、环境配置 3、创建编译脚本 4、编译 曾经看到一个博客说,不要用windows编译…

过程设计例题

答案:D 知识点: 体系结构设计 定义软件系统各主要部件之间的关系 数据设计 基于E-R图确定软件涉及的文件系统及数据库的表结构 接口设计(人机界面设计) 软件内部,软件和操作系统间以及软件和人之间如何通信 过程…

基于Springboot的鲜花销售网站的设计与实现

项目描述 这是一款基于Springboot的鲜花销售网站的系统 模块描述 鲜花销售系统 1、用户 登录 在线注册 浏览商品 鲜花搜索 订购商品 查询商品详情 水果分类查看 水果加购物车 下单结算 填写收货地址 2、管理员 登录 用户管理 商品管理 订单管理 账户管理 截图

代码随想录算法训练营第二十三天| 455. 分发饼干、376. 摆动序列、53. 最大子序和

今日内容 贪心理论基础Leetcode. 455 分发饼干Leetcode. 376 摆动序列Leetcode. 53 最大子序和 贪心理论基础 贪心算法的本质就是选择每一阶段的最优,达到全局上的最优。 贪心算法和之前学到的所有方法相比,它没有固定的使用套路,也没有固…

IEEE 802.11a OFDM系统的仿真

(内容源自详解MATLAB/SIMULINK 通信系统建模与仿真 刘学勇编著第九章内容,有兴趣的读者请阅读原书) ​ ​ ​ clear all %%%%%%%参数设计部分%%%%%%%Nsp52;%系统子载波数(不包括直流载波) Nfft64;%FF…

【QT】自制一个简单的小闹钟,能够实现语音播报功能

做了一个自制的小闹钟,能够自己输入时间,以及对应的闹铃,时间到了自动播放设定的闹铃,可以随时取消重新设定,采用分文件编译 注意:需要在.pro文件中加入:QT core gui texttospeech 代码…

使用C++编写一个语音播报时钟(Qt)

要求:当系统时间达到输入的时间时,语音播报对话框中的内容。定时可以取消。qt界面如上图所示。组件如下: countdownEdit作为书写目标时间的line_edit start_btn作为开始和停止的按钮 stop_btn作为取消的按钮 systimelab显示系统时间的lab tex…

绿色医院建的中央空调无线集中控制系统

在医疗服务水平不断提高的今天,空调能耗已成为医院建筑能耗的主要组成部分,达到总建筑能耗的50%至60%。如何提高医院中央空调系统的能效,成为绿色医院建设中亟待解决的问题。而中央空调无线集中控制系统的出现,为医院节能运行提供…

Etsy店铺又被封了?教你申诉和防封技巧!

熟悉美国Etsy平台的用户都知道,该平台对店铺的监管非常严格,店铺被封的情况时有发生。 无论是新开的店铺,还是已经有一定订单量的店铺,都可能面临被封的风险,突如其来的封号,会让很多卖家束手无策。 那么&a…

国内AI论文写作推荐工具有哪些?试试这7款

在当前信息爆炸的时代,AI写作工具已经成为学术研究和写作的重要助手。这些工具不仅能够提高写作效率,还能帮助用户生成高质量的文稿。以下是七款值得推荐的国内AI论文写作工具: 一、千笔-AIPassPaper 千笔-AIPassPaper是一款功能强大且全面…

MDK keil STM32 局部变量不能查看值,显示为not in scope

用MDK调试程序,查看变量时watch窗口总是和 一、方法1:优化级别改为Level 0 1 编译器把这个局部变量给优化掉了,并没有在内存中生成,把优化级别改为Level 0,重新编译。 Keil默认优化是等级3,最高优化&…