目录

Swaks基本用法:

补充(附件发送)

造成原因

1.1前提

1.2语法

1.3绕过

1.4总结


Swaks基本用法:

1、swaks --to test@qq.com 测试邮箱的连通性;

2、参数说明(这里只是简单的罗列了一些,至于更加具体的内容可以使用–help进行查看了解):

--from  test@qq.com     //发件人邮箱;
--ehlo   qq.com      //伪造邮件ehlo头,即是发件人邮箱的域名。提供身份认证
--body  "http://www.baidu.com"    //引号中的内容即为邮件正文;
--header  "Subject:hello"   //邮件头信息,subject为邮件标题
--data   ./Desktop/email.txt    //将正常源邮件的内容保存成TXT文件,再作为正常邮件发送;

Kali内置了swaks

如图所示:

实际测试:

1。临时邮箱申请

2.伪造一份来自 360hr 的邮件,收件人为9wgdxije@iffygame.com,内容为:“123456”,如下图所示:

swaks --to 9wgdxije@iffygame.com --from hr@360 --ehlo 360.com --body "123456"

3.查看临时邮件收件箱情况,出现了来自360hr的邮件,内容为12356

补充(附件发送)

1.将当前目录下1.txt文件当附件发送给9wgdxije@iffygame.com

2.将–body 中的内容写入到1.txt中,在发送附件

swaks --to 9wgdxije@iffygame.com --from hr@360 --ehlo 360.com --body "123456" --data 1.txt

造成原因

1.1前提

  • SMTP协议是简单的邮件传输协议,目前邮件还是使用这个协议通信,但是它本身并没有很好的安全措施。SMTP协议本身没有机制鉴别寄件人的真正身份,电子邮件的“寄件者”一栏可以填上任何名字,于是伪冒他人身份来网络钓鱼或寄出垃圾邮件便相当容易,而真正来源却不易追查。
  • MX记录用于指定负责处理发往收件人域名的邮件服务器。MX记录允许设置一个优先级,当多个邮件服务器可用时,会根据该值决定投递邮件的服务器(值越小优先级越高)。SMTP会根据MX记录的值来决定邮件的路由过程。
  • SPF记录的全称为 Sender Policy Framework,中文译作“发件人策略框架”,它是一套电子邮件认证机制,可以确认电子邮件确实是由网域授权的邮件服务器寄出,防止有人伪冒身份网络钓鱼或寄出垃圾电邮。SPF允许管理员设定一个DNS TXT记录或SPF记录设定发送邮件服务器的IP范围,如有任何邮件并非从上述指明授权的IP地址寄出,则很可能该邮件并非确实由真正的寄件者寄出。

1.2语法

查看一个域名的SPF记录命令:

nslookup -type=txt example.com //windows
dig -t txt example.com         //linux

SPF记录会结合“匹配机制”和“限定词”使用,它其实就是一条有特殊语法的TXT记录

匹配机制主要用于定义和指定可由该域名发送邮件的主机,其定义方式包括:

  • all 匹配任何主机,它写在SPF记录最后以匹配在其前面所列出的主机
  • ip4 匹配 IPv4 地址或网络范围
  • ip6 匹配 IPv6 地址或网络范围
  • a 匹配主机名或域名
  • mx 匹配域名的MX记录,当出站与入站邮件为同一服务器时通常采用此种机制
  • ptr 通过DNS反向记录来匹配发件人IP和域名,由于会增加DNS负载,一般不采用此种机制
  • exists 只检查域是否在DNS中存在
  • include 将发件人IP和SPF记录指向另一个域,这种匹配机制通常用于云服务,

匹配机制会结合一些限定词来使用,以告诉服务器找到一条匹配记录时该怎么办。常见的限定词有:

  • + 放行,如果没有明确指定限定词,则为默认值
  • - 硬拒绝,直接拒绝来自未经授权主机的邮件
  • ~ 软拒绝,邮件可被接受,也可被标记为垃圾邮件
  • ? 中性,不考虑邮件是否被接受

一些实例(v=spf1 指采用SPF1版本,现在它的最新版本就是第 1 版):

"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记录)

1.3绕过

SPF解析不当

  • 语法错误将导致SPF记录完全失效,https://www.kitterman.com/spf/validate.html 网站输入域名和SPF记录,可以检查SPF记录是否正确(SPF记录本质上是一个DNS记录,所以并不是修改之后立即生效的,通常需要几个小时的时间)
  • 允许IP段过大,只要攻击者拿下一台网段内的机器即可绕过
  • ~all 软拒绝,会接受来信,但可能被标记为垃圾邮件(outlook 邮箱可以接收邮件,qq 邮箱不接收,163 邮箱标记为垃圾邮件)SPF记录设置硬拒绝,就会有大量的邮件被丢弃或者隔离,影响办公效率,为了减少业务影响,有些管理员采用软拒绝的策略,但也会在一定程度上造成安全风险

SPF配置不当

  • 域名增加了SPF记录,但是邮件服务器不支持SPF检查或邮件网关未开启SPF检测,无法验证邮件来源。这种情况下,我们声明了自己是谁,但却无法验证对方是谁,SPF检测无效,可伪造任意用户发送到你的域名邮箱里
  • SPF解析在公网DNS,邮件服务器配置内部DNS,内部DNS无法进行SPF解析,从而导致绕过,可从公网伪造任意用户发送邮件
  • 攻击者在公司内网,内网SMTP服务器开启匿名邮件发送或者在信任服务器IP段,就可以使用任意用户发送邮件

高权限用户绕过

  • Exchange 邮箱系统,拥有 Domain admin 权限的域用户,可以通过 outlook 直接指定发件人,伪造任意发件人发送邮件并且邮件头不会显示真实IP,但是这条没有什么实际意义,已经拥有 Domain admin 权限就没必要进行邮件伪造了

邮件客户端内容解析差异

From 字段特殊字符填充绕过

1.4总结

上一小节只讲了前三点进行SPF绕过的原理,因为写这篇随笔的初衷是如何判断邮件服务器有无配置SPF,如果没有或配置不当的话可以直接使用 swaks 伪造邮件发送,思路偏向于防守和挖洞,而后两点则是运用一些技术实践任意邮件伪造漏洞,思路偏向于红队,接下来会再出一篇实操任意邮件伪造的思路。

邮件伪造-swaks相关推荐

  1. swaks邮件伪造获取键盘记录

    目录 前言 一.swaks发送邮件 二.CS克隆目标网站 三.邮件伪造绕过SPF 前言 下面以swaks工具伪造邮件内容,并且设置钓鱼网站,来获取被攻击者的键盘记录 SMTP 简单邮件传输协议 (Si ...

  2. 邮件伪造测试-Swaks

    阅览目录 1. 前言 2.基本用法: 3.源码分析 4.查看IP的办法 5.发送伪造邮件原理 6.安全防护解决方案 7.参考 回到顶部 1. 前言 在kali中自带一个邮件伪造工具Swaks,工具项目 ...

  3. Swaks绕过SPF验证进行邮件伪造

    0x00 swaks简介 Swaks是一个功能强大,灵活,可编写脚本,面向事务的SMTP测试工具,由John Jetmore编写和维护. 目前Swaks托管在私有svn存储库中.官方项目页面是http ...

  4. 几个好用的邮件伪造工具

    转载https://zhuanlan.zhihu.com/p/147373196 工欲善其事必先利其器,我们来介绍两款用于邮件伪造的测试工具,实现伪造任意用户邮箱. SimpleEmailSpoofe ...

  5. linux smtp ip伪造,邮件伪造和SPF

    之前看了下邮件伪造觉得挺有意思的,所以看了下邮件伪造的东西,下面简单的总结了一下,如果有不妥的地方还望大佬们提出来. 1. 什么是SPF SPF是 Sender Policy Framework 的缩 ...

  6. 搭建exchange邮件服务器一定要ad域么?_邮件伪造之SPF绕过的5种思路

    SMTP(SimpleMail Transfer Protocol) 即简单邮件传输协议,正如名字所暗示的那样,它其实是一个非常简单的传输协议,无需身份认证,而且发件人的邮箱地址是可以由发信方任意声明 ...

  7. SPF难以解决邮件伪造的现状以及方案

    邮件伪造的现状 仿冒域名 私搭邮服仿冒域名: 例如某公司企业的域名是example.com,那么攻击者可以搭建一个邮服,也把自己的域名配置为example.com,然后发邮件给真实的企业员工xxx@e ...

  8. python编写安全工具_Python3学习系列(四):编写属于自己的邮件伪造工具

    timg.jpg (158.2 KB, 下载次数: 92) 2017-10-21 13:33 上传 前言: 相信有些人也看过一些渗透,邮件伪造然后钓鱼这个在渗透中也是经典技巧了,那么邮件伪造又是如何运 ...

  9. 邮件伪造_伪造品背后的数学

    邮件伪造 入门指南 (An Introductory Guide) Although many are familiar with the incredible results produced by ...

最新文章

  1. 十大机器智能新型芯片:华为抢占一席,Google占比最多
  2. UML从需求到实现---类图(2)
  3. 4.Eclipse的安装和使用
  4. linux 日期 通配符,Linux常用基础命令下(grep,history,du,date,通配符,alias,rm,mv,cp)
  5. C++右值引用与转移语义
  6. 154. 寻找旋转排序数组中的最小值 II(有手就行)
  7. EJB 3.x:生命周期和并发模型(第2部分)
  8. java development kit64_Java SE Development Kit (JDK) v14.0 x64
  9. 企业真的有必要购买WMS系统吗?
  10. python发QQ邮件
  11. 2021年中国宠物玩具与训练市场趋势报告、技术动态创新及2027年市场预测
  12. post and get
  13. 【微软小冰】多轮和情感机器人的先行者
  14. 直方图规定化计算过程
  15. Matlab入门变量篇
  16. 安卓版无线投屏服务器,无线乐播app最新版安卓版
  17. mysql拼音码自动生成_根据中文名,自动生成首字母的拼音码或拼音码(两种方法)...
  18. java 防篡改_用JAVA二十分钟撸一个简易图片防篡改
  19. 运行出现:Trying to start MapKit location updates without prompting for location authorization.
  20. 我学习python的体会

热门文章

  1. altium designer 18 PCB拼板:V型切割和邮票孔方式
  2. 华为p60参数配置怎么样 华为p60是5g手机吗
  3. python飞机大战设计(论文+程序+源代码)
  4. 第三节:论文代码统计-学习笔记
  5. Android 电池管理(BatteryService) 详解
  6. 经典游戏-魔塔1.2 攻略 zz
  7. LRC 滚动器 + Vue.js
  8. DreamWeaver经典50问
  9. GitLab 版本管理
  10. 自媒体先行者之路 - 深夜谈吃微信公众号的运营总结