运用Wireshark进行邮件抓包——以QQ邮箱为例_wireshark抓包邮件发送-程序员宅基地

技术标签: 学习小结  网络  

        使用工具:wireshark、foxmail

        当前,邮件传输仍使用SMTP(Simple Mail Transfer Protocol)(端口:25)协议,SMTP协议是整个邮件传输体系中最基础的框架协议。1982年,协议协议首次作为互联网标准被写进RFC文档,此后经过多次更新,最近的依次比较大的更新在2008年,更新标准为RFC5321。

        STMP是一种比较老的协议了,安全性差,在邮件传输过程中,容易被第三方所窃取。STMP缺少身份验证机制,攻击者可以很容易在传输链路上获取明文的邮件内容。在这次邮件抓包中,人为关闭SSL,从而使流量捕获容易、密文解码容易。

        大致过程就是我发送一封邮件给别人,在发送之前打开wireshark并监听端口,发送完成后,即抓取到流量包,随后进行分析,得到邮件内容。

详细操作过程:

1、登录foxmail,在设置中》账号》服务器,去掉SSL勾选。

 2、在wireshark中,监听自己电脑(WLAN等)接口:25

3、开始捕获后,可以看到还没有捕获到即时流量包,这是正常现象,STMP协议使用25端口,邮件还未发送,没有流量的产生。

4、前期准备工作做好了,我们就可以开始写邮件并发送了。邮件想写啥写啥,这只是一封测试邮件,你可以发给自己,发给别人,只要邮件能够发送,你抓取到流量包即可。

在foxmail中可编辑邮件并发送:

5、邮件发送成功后,wireshark中即时捕获流量包。  

        输入smtp以过滤SMTP包,随后选择任意一组,鼠标右击追踪TCP流。

6、分析TCP流

        我们可以看到邮件内容采用Base64的加密方式,并且使用GB2312字符集。

7、解码工作:

可以使用在线的解码工具,注意字符集要高级设置为“GB2312”,而不是“UTF-8”。

        我们来简单回顾下整个流程,整个抓取过程还是比较顺利的,当然,在真正邮件传输过程中,会使用SSL/TLS协议保障传输安全,同时会使用DMARC机制对发件人进行身份验证,邮件内容使用PGP与S/MIME协议进行加密。常人还是较难以中间人的身份窃取邮件内容的。

知识补充:

1、MIME协议

        MIME(Multipurpose Internet Mail Extensions)是一种标准,用于在邮件中传输非纯文本的数据,如图像、音频、视频等多媒体内容。MIME From 是 MIME 标准中的一个字段,用于指示发送者的名称和电子邮件地址。

        MIME From 字段通过以下格式表示:
        From: "Sender Name" <[email protected]>
        其中,"Sender Name" 是发送者的名称,可以是用户昵称或真实姓名;<[email protected]> 是发送者的电子邮件地址。
MIME From 字段允许发送者在电子邮件中显示自定义的发送者名称,而不仅仅是电子邮件地址。这有助于接收者更容易识别和辨认邮件的来源。需要注意的是,MIME From 字段并不影响邮件的传递和路由过程,它主要是为了提供更人性化的发送者信息,并让邮件看起来更正式和可信。邮件服务器和客户端可能会根据 MIME From 字段来显示发送者的名称,但并不保证所有邮件客户端都会正确显示该字段中的信息。总结而言,MIME From是MIME 标准中的一个字段,用于指示邮件发送者的名称和电子邮件地址。它提供了更人性化的发送者信息,并使邮件看起来更正式和可信。

2、TLS协议

        TLS(Transport Layer Security)是一种加密协议,用于在网络通信中提供安全和私密性。它的前身是 SSL(Secure Sockets Layer)协议,后来由于协议改进而更名为 TLS。 TLS 协议通过对数据进行加密和认证来保护通信的安全性。

        SSL/TLS协议被设计为一个两阶段协议,分为握手阶段和应用阶段:

        握手阶段也称协商阶段,在这一阶段,客户端和服务器端通过第三方(CA) 认证对方身份。

 3、PGP/GPG协议

        PGP/GPG(Pretty Good Privacy/GNU Privacy Guard):PGP 和 GPG 是两个类似的开放标准,用于在电子邮件中实现端到端的加密和数字签名。这些标准允许用户生成和管理自己的密钥对,并使用公钥对邮件进行加密,以保护邮件内容的机密性。

         PGP加密由一系列散列数据压缩对称密钥加密,以及公钥加密的算法组合而成。每个步骤支持几种算法,可以选择一个使用。每个公钥均绑定唯一的用户名和/或者E-mail地址。这个系统的第一个版本通常称为可信Web或X.509系统;X.509系统使用的是基于数字证书认证机构的分层方案,该方案后来被加入到PGP的实现中。当前的PGP加密版本通过一个自动密钥管理服务器来进行密钥的可靠存放。

4、DKIM

DKIM(DomainKeys Identified Mail)并不是一个独立的协议,而是一种邮件验证技术。它通过在邮件的头部添加数字签名来验证邮件的来源和完整性。

DKIM使用公钥加密算法,将发送方域名的私钥生成的数字签名添加到邮件头部的DKIM-Signature字段中。接收方的邮件服务器可以使用发送方域名的DNS记录中的公钥来验证该签名,从而确定邮件是否经过篡改并确认邮件的来源是合法的。通过使用DKIM,接收方可以验证邮件的真实性,防止邮件被篡改和伪造。这有助于减少垃圾邮件、欺诈和网络钓鱼等邮件安全问题。

虽然DKIM不是一个独立的协议,但它通常与SMTP协议一起使用,以确保邮件的安全性和可信度。

5、DMARC

DMARC(Domain-based Message Authentication, Reporting, and Conformance)是一种用于电子邮件的认证和报告机制,旨在提供对域名的邮件发送者身份验证,减少伪造邮件的风险,并提供有关邮件传递的详细报告。DMARC 的主要目标是防范钓鱼攻击、伪造邮件和垃圾邮件,通过以下方式实现:

1、SPF(Sender Policy Framework):SPF 是 DMARC 的一部分,用于验证发件人服务器是否被授权发送特定域名的邮件。通过在域名的 DNS 记录中设置 SPF 记录,发件人可以指定哪些服务器有权发送该域名的邮件。

2、DKIM(DomainKeys Identified Mail):DKIM 也是 DMARC 的一部分,用于验证邮件的完整性和真实性。发件人使用私钥对邮件进行签名,并将公钥发布到 DNS 中。接收方使用公钥解密签名并验证邮件是否被篡改。

3、邮件处理政策:通过 DMARC,域名所有者可以指定邮件的处理政策,如是拒绝、放行或进行进一步审查。这样,接收方可以根据域名的 DMARC 记录来判断如何处理未经验证或不符合策略的邮件。

4、报告机制:DMARC 提供了详细的报告功能,让域名所有者了解有关邮件传递情况的信息。这些报告包括未经验证的邮件、失败的验证尝试、通过的验证尝试等,帮助域名所有者监测和分析邮件流量。

通过使用 DMARC,域名所有者可以加强对其域名下邮件的控制,减少伪造邮件和钓鱼攻击的风险,并提供有关邮件传递的实时报告。然而,为实现最佳的效果,DMARC 的配置需要一定的技术知识和正确的设置。总结而言,DMARC 是一种用于电子邮件的认证和报告机制,通过 SPF 和 DKIM 验证发件人身份,并提供处理政策和详细报告。通过使用 DMARC,域名所有者可以增强对邮件的控制,防范邮件欺诈和伪造,并获得有关邮件流量的可视化报。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/He_Danglin/article/details/132306506

智能推荐

如何配置filezilla服务端和客户端_filezilla server for windows (32bit x86)-程序员宅基地

文章浏览阅读7.8k次,点赞3次,收藏9次。如何配置filezilla服务端和客户端百度‘filezilla server’下载最新版。注意点:下载的版本如果是32位的适用xp和win2003,百度首页的是适用于win7或更高的win系统。32和64内容无异。安装过程也是一样的。一、这里的filezilla包括服务端和客户端。我们先来用filezilla server 架设ftp服务端。看步骤。1选择标准版的就可以了。 _filezilla server for windows (32bit x86)

深度学习图像处理01:图像的本质-程序员宅基地

文章浏览阅读724次,点赞18次,收藏8次。深度学习作为一种强大的机器学习技术,已经成为图像处理领域的核心技术之一。通过模拟人脑处理信息的方式,深度学习能够从图像数据中学习到复杂的模式和特征,从而实现从简单的图像分类到复杂的场景理解等多种功能。要充分发挥深度学习在图像处理中的潜力,我们首先需要理解图像的本质。本文旨在深入探讨深度学习图像处理的基础概念,为初学者铺平通往高级理解的道路。我们将从最基础的问题开始:图像是什么?我们如何通过计算机来理解和处理图像?

数据探索阶段——对样本数据集的结构和规律进行分析_数据分析 规律集-程序员宅基地

文章浏览阅读62次。在收集到初步的样本数据之后,接下来该考虑的问题有:(1)样本数据集的数量和质量是否满足模型构建的要求。(2)是否出现从未设想过的数据状态。(3)是否有明显的规律和趋势。(4)各因素之间有什么样的关联性。解决方案:检验数据集的数据质量、绘制图表、计算某些特征量等,对样本数据集的结构和规律进行分析。从数据质量分析和数据特征分析两个角度出发。_数据分析 规律集

上传计算机桌面文件图标不见,关于桌面上图标都不见了这类问题的解决方法-程序员宅基地

文章浏览阅读8.9k次。关于桌面上图标都不见了这类问题的解决方法1、在桌面空白处右击鼠标-->排列图标-->勾选显示桌面图标。2、如果问题还没解决,那么打开任务管理器(同时按“Ctrl+Alt+Del”即可打开),点击“文件”→“新建任务”,在打开的“创建新任务”对话框中输入“explorer”,单击“确定”按钮后,稍等一下就可以见到桌面图标了。3、问题还没解决,按Windows键+R(或者点开始-->..._上传文件时候怎么找不到桌面图标

LINUX 虚拟网卡tun例子——修改_怎么设置tun的接收缓冲-程序员宅基地

文章浏览阅读1.5k次。参考:http://blog.csdn.net/zahuopuboss/article/details/9259283 #include #include #include #include #include #include #include #include #include #include #include #include _怎么设置tun的接收缓冲

UITextView 评论输入框 高度自适应-程序员宅基地

文章浏览阅读741次。创建一个inputView继承于UIView- (instancetype)initWithFrame:(CGRect)frame{ self = [superinitWithFrame:frame]; if (self) { self.backgroundColor = [UIColorcolorWithRed:0.13gre

随便推点

字符串基础面试题_java字符串相关面试题-程序员宅基地

文章浏览阅读594次。字符串面试题(2022)_java字符串相关面试题

VSCODE 实现远程GUI,显示plt.plot, 设置x11端口转发_vscode远程ssh连接服务器 python 显示plt-程序员宅基地

文章浏览阅读1.4w次,点赞12次,收藏21次。VSCODE 实现远程GUI,显示plt.plot, 设置x11端口转发问题服务器 linux ubuntu16.04本地 windows 10很多小伙伴发现VSCode不能显示figure,只有用自带的jupyter才能勉强个截图、或者转战远程桌面,这对数据分析极为不方便。在命令行键入xeyes(一个显示图像的命令)会failed,而桌面下会出现:但是Xshell能实现X11转发图像,有交互功能,但只能用Xshell输入命令plot,实在不方便。其实VScode有X11转发插件!!方法_vscode远程ssh连接服务器 python 显示plt

element-ui switch开关打开和关闭时的文字设置样式-程序员宅基地

文章浏览阅读3.3k次,点赞2次,收藏2次。element switch开关文字显示element中switch开关把on-text 和 off-text 属性改为 active-text 和 inactive-text 属性.怎么把文字描述显示在开关上?下面就是实现方法: 1 <el-table-column label="状态"> 2 <template slot-scope="scope">..._el-switch 不同状态显示不同字

HttpRequestUtil方法get、post、JsonToPost_httprequestutil.httpget-程序员宅基地

文章浏览阅读785次。java后台发起请求使用的工具类package com.cennavi.utils;import org.apache.http.Header;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apach_httprequestutil.httpget

App-V轻量级应用程序虚拟化之三客户端测试-程序员宅基地

文章浏览阅读137次。在前两节我们部署了App-V Server并且序列化了相应的软件,现在可谓是万事俱备,只欠东风。在这篇博客里面主要介绍一下如何部署客户端并实现应用程序的虚拟化。在这里先简要的说一下应用虚拟化的工作原理吧!App-V Streaming 就是利用templateServer序列化出一个软件运行的虚拟环境,然后上传到app-v Server上,最后客户..._app-v 客户端