0x00 安装:

kali中自带,或者从作者网页下载

http://www.jetmore.org/john/code/swaks/

0x01 基本用法:

  1. swaks to <要测试的邮箱> 用来测试邮箱的连通性

前面都返回250ok,说明该邮箱存在,并且可以正常收信。最后可以看到qq邮箱返回550错误,qq官方给出的出错原因:该邮件内容涉嫌大量群发,并且被多数用户投诉为垃圾邮件。

我们可以继续对邮件进行伪造,来绕过qq邮箱的判断

比如:

  1. swaks --body "test" --header "Subject:testT" -t rcfkve06917@chacuo.net -f admin@local.com

  1. swaks --to rcfkve06917@chacuo.net --from info@freebuf.com --ehlo freebuf.com --body hello --header "Subject: hello"

其中:

--from <要显示的发件人邮箱>

--ehlo <伪造的邮件ehlo头>

--body <邮件正文>

--header <邮件头信息,subject为邮件标题>

--data <源邮件>

0x02 高级用法:

使用swaks其实还可以进行更高级的邮件伪造,几乎可以伪造邮件中的每一个参数。

首先,我们需要一份正常的邮件

点击显示邮件原文,把原文复制出来,保存为email.txt

其中的received可以都删除,该项为接收信息,发信中不需要。to项也可以删除,可以直接用swaks --to来代替。

注意不要忘了加--from 否则qq邮箱会报由kali代发……

  1. swaks --data ./Desktop/email.txt --to xxxx@qq.com --from services@tophant.com

发送成功,qq邮箱没报垃圾邮件,也没报有害。

注意在发送的时候没有加--from参数,因为在测试中我发现收到邮件时,邮件内容与文件内容显示完全一样,与参数无关

这里能看到,收件人和发件人都不是靠--to和—from,这里应该需要修改文本的内容,达到隐藏效果

这里略作修改,成功伪造了邮箱,

在测试中,我修改了时间,但事实证明时间是不能被指定的,

这里还有很多地方可以伪造,十分钟邮箱不显示,就没有继续测试。

邮件伪造结合钓鱼网站,免杀程序,在加上一点社工技巧,是比较主动的APT攻击方式,需要多加注意。

0x03 邮件头格式 :

  1. Received: 由每个中继服务站添加,用于帮助追踪传输中出现的错误。字段内容包括,发送、接收的主机和接收时间。参数via 用于记录信息发送后经过的物理站点,”with 指示了使用的邮件、连接的协议。参数 id 用于标识邮件。参数for 用于记录发送者的分发的目的地址。
  2. Reply-To: 发件人地址是在发件人标题中实际找到的值。这应该是信息的来源。在大多数邮件客户机中,这就是您所看到的“发件人”。如果一封电子邮件没有回复头,那么所有的人工(邮件客户端)回复都应该返回到“发件人”地址。
  3. Date: 表示建立信件的时间
  4. From:发件人
  5. To:收件人
  6. cc:抄送人
  7. Subject:邮件标题
  8. Sender:发件人名称
  9. Message-IDSMTP协议发邮件自动生成的
  10. X-Priority:邮件优先级
  11. X-mailer:代理发信的客户端
  12. MIME-Version: 所使用的网络邮件格式标准版本
  13. Content-Type: 邮件内容数据的类型,包括类型标识(type)和子类型标识(subtype),前者类型标识(type)声明了数据的类型,后者子类型标识(subtype)为这种数据类型指定了特定的格式。
  14. Return-Path: 退信地址,该字段由信息的最后发送者添加,是关于信息原始来源的地址和回朔路径。
  15. X-MS-Exchange-Organization-AuthSource:该 X-header 指定代表组织对邮件的身份验证进行评估的服务器计算机的 FQDN

邮件头示例

  1. Received: from unic0rn.com.cn (IP) by .unic0rn.cn
  2. (IP) with Microsoft SMTP Server id 14.3.123.3; Fri, Dec :: +
  3. Reply-To: <Reply@qq.com>
  4. Date: Fri, Dec :: +
  5. From: IT_Sytem <From@unic0rn.cn>
  6. To: <To@unic0rn.cn>
  7. cc: <cc@unic0rn.cn>
  8. Sender: Sender
  9. Subject: Subject
  10. Message-ID: <@unic0rn.cn>
  11. X-Priority: (Highest)
  12. X-mailer: Foxmail , , , [cn]
  13. MIME-Version: 1.0
  14. Content-Type: multipart/related; type="multipart/alternative";
  15. boundary="=====003_Dragon301638870326_====="
  16. Return-Path: Return@unic0rn.cn
  17. X-MS-Exchange-Organization-AuthSource: . unic0rn.cn
  18. X-MS-Exchange-Organization-AuthAs: Anonymous

0x04 解决办法:

遇到可疑邮件要查看源邮件,判断发信人ip是否为可信任的ip。

0x05 10分钟邮箱:

http://24mail.chacuo.net/ 不可接收附件(txt)

https://10minutemail.net/ 可接收附件(eml后缀)

http://www.linshiyouxiang.net/

https://docs.microsoft.com/zh-cn/previous-versions/office/exchange-server-2010/bb232136(v=exchg.141)?redirectedfrom=MSDN

Swaks - SMTP界的瑞士军刀的更多相关文章

  1. Jodd - Java界的瑞士军刀轻量级工具包!

    Jodd介绍 Jodd是对于Java开发更便捷的开源迷你框架,包含工具类.实用功能的集合,总包体积不到1.7M. Jodd构建于通用场景使开发变得简单,但Jodd并不简单!它能让你把事情做得更好,实现 ...

  2. Kali Linux信息收集工具

    http://www.freebuf.com/column/150118.html 可能大部分渗透测试者都想成为网络空间的007,而我个人的目标却是成为Q先生! 看过007系列电影的朋友,应该都还记得 ...

  3. Kali Linux信息收集工具全集

    001:0trace.tcptraceroute.traceroute 描述:进行路径枚举时,传统基于ICMP协议的探测工具经常会受到屏蔽,造成探测结果不够全面的问题.与此相对基于TCP协议的探测,则 ...

  4. Kali Linux信息收集工具全

    可能大部分渗透测试者都想成为网络空间的007,而我个人的目标却是成为Q先生! 看过007系列电影的朋友,应该都还记得那个戏份不多但一直都在的Q先生(由于年级太长目前已经退休).他为007发明了众多神奇 ...

  5. RFIDler:一款定义RFID的读、写、仿真器的开源软件

    很多类似于RFID这样的技术看起来都很神秘,实际上他是依赖于很多物理学原理的,比如”电磁感应原理”.是的,这些现象产生的各种信号足以令人发狂,看完这些模拟模拟信号后,我忽然发现二进制信息多么干净美丽. ...

  6. rsyslog

    http://www.rsyslog.com/ http://www.rsyslog.com/doc/v5-stable/troubleshooting/troubleshoot.html RSYSL ...

  7. nc命令用法举例

    什么是nc nc是netcat的简写,有着网络界的瑞士军刀美誉.因为它短小精悍.功能实用,被设计为一个简单.可靠的网络工具 nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可以作为server ...

  8. Python之路day4

    坚持就是胜利.今天零下14度,从教室出来的路上真的很冷很冷,希望这个冬天自己不会白过,春暖花开的时候一定要给世界一个更好的自己. 原本以为day3的作业自己做得挺好的,没想到只得了B+.必须要加油了, ...

  9. 取代netcat

    前言 众所周知,netcat是网络界的瑞士军刀,它的主要作用是:提供连接其他终端的方法,可以上传文件,反弹shell等等各种利于别人控制你电脑的操作.所以聪明的系统管理员会将它从系统中移除,这样当别人 ...

随机推荐

  1. Nginx - upstream sent invalid chunked response while reading upstream 异常问题

    一个 post 的请求,直接调接口服务数据正常返回,但是通过 nginx 代理后, 什么都没有返回. nginx 配置如下: 使用 postman 调用,返回如下: 于是检查日志报错信息,如下: ng ...

  2. jenkins升级完后一直显示升级中

    这个时候是已经升级成功了的,刷新界面,从新登录即可

  3. FreeRTOS 时间片,外部中断,任务优先级的一个疑问

    时间片1ms 假设有两个任务,A和B,A任务等待中断里面发出的信号量,B任务在运行 此时,B任务运行了300us的时候中断发生,发出信号量,那么任务A接收到信号量,A任务优先级高,A任务运行 有个问题 ...

  4. SecureCRT配色方案(转)

    1. 设置背景颜色和字体颜色: 选项(Options)==>会话选项(Sessions options)==>终端(Terminal)==>仿真(Emulation)  选项(Opt ...

  5. 有关_meta内容(持续更新)

    假设在models里创建了一个类:UserInfo model.UserInfo._meta.app_label #获取该类所在app的app名称 model.UserInfo._meta.model ...

  6. left join 和inner join关联查询区别

    inner join 必须两边对应才能查处结果 left join 用主表关联副表,关联不出来依然显示结果

  7. LeetCode 278. 第一个错误的版本(First Bad Version)

    278. 第一个错误的版本 LeetCode278. First Bad Version 题目描述 你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每 ...

  8. Java字符串定义及常用方法

    String.StringBuffer和StringBuilder   String修饰的是不可变的字符串,而StringBuffer和StringBuilder类的对象是可以被修改的.   Stri ...

  9. str.format() 格式化数字的多种方法

    Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能. 基本语法是通过 {} 和 : 来代替以前的 % . format 函数可以接受不限个参数 ...

  10. docker 实践十一:docker 跨主机通讯

    在上一篇了解了关于 docker 的网络模型后,本篇就基于上一篇的基础来实现 docker 的跨主机通信. 注:环境为 CentOS7,docker 19.03. 本篇会尝试使用几种不同的方式来实现跨 ...