SMTP是电子邮件发送协议,本次使用第三方代理及telnet进行电子邮件的发送,使用wireshark抓包分析

使用邮件代理发送邮件

本次实验使用Win10的邮件应用来代理收发QQ邮件

生成授权码

登录Web端

因为QQ邮箱使用第三方代理时需要使用独立密码,需要去Web端生成,所以先登录QQ邮箱Web端,如图所示

开启相关服务

登陆后点击设置,进入账户标签下的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV****服务选项,查看POP3、IMAP和SMTP功能的开启状态,如图所示

生成授权码

开启后,点击生成授权码来生成一个密码,验证密保后即可获得一个16位的授权码

使用第三方客户端

打开Win10的邮件应用,点击管理账户中的添加账户

选择其他账户,填你的邮件地址发件名称和刚才的授权码后点击登录,即可完成账户添加。

关闭其他界面,在邮件首页点击刷新按钮后等待从腾讯服务器同步邮件,即可在首页查收所收到的邮件。

如欲发送邮件,点击界面左上方的**+**,即可撰写新邮件,如图所示

即可发送邮件

发送邮件进行抓包分析

邮件客户端设置

打开Foxmail客户端,登录好账号后写一封邮件但是不要发送

Wireshark抓包前的设置

打开Wireshark的捕获-选项,设置为TCP only过滤器,减少干扰,点击ok,

关闭Foxmail的ssl加密,否则无法抓到

抓取电子邮件数据包

设置好后开始抓包,然后发送邮件,发送后停止抓包

分析电子邮件数据包

过滤SMTP方便查看

第100帧:以telnet方式建立连接,220为响应数字,其后为欢迎信息

第101帧:向服务器发送EHLO指令,表明身份,主机名DESKTOP - MHFVII6

第104帧:观察响应内容,响应码是请求mail活动完成(250)。包括尺寸,登录命令,服务器地址等

第105帧:请求认证,信息通过base64编码,解密后发现包括user,password等信息

第108帧:响应身份验证成功(235)

第110帧:发送MAIL指令,表明发送者信息

第113帧:响应活动完成(250)

第114帧:发送RCPT指令,表明要发送的地址

第115帧:响应活动完成(250)

第116帧:发送DATA指令,表明即将发送邮件内容

第118帧:响应邮件的输入和结束格式(354)

第119帧:包括邮件的主题,正文等信息,如图所示,标题为明文,正文为base64编码后的密文

第123帧:推测是把邮件信息通过html方式发送

第126帧:响应活动完成(250)

第128帧:发送QUIT指令表明结束

第131帧:响应Bye(221)

web邮件

  1. 使用QQ邮箱的web端按照上面的流程,先写好一封邮件不要发送

  2. 开始抓包,发送邮件,结束抓包

  3. 通过ssl过滤结果

QQ邮箱是网址是基于HTTPS协议的,HTTPS能够加密信息,由HTTP+TLS/SSL组成,在原本的HTTP协议上增加了一层加密信息模块,服务端和客户端的信息传输都要经过TLS进行加密,所以传输的数据都是加密后的数据。无法直接获取

抓包分析

第57帧:TLS握手过程的第一步就是客户端发起请求,主要包括了客户端生成的随机字符串(session key),还包含了客户端所支持所支持的加密套件列表、随机数等信息。

第60帧:服务器收到客户端的Client Hello数据包之后,根据客户端发来的加密套件列表,选择一个加密套件,也生成一个随机字符串返回给客户端。密钥交换算法选择的是使用ECDHE_RSA,对称加密算法使用AES_128_GCM_SHA256

第71帧:服务器把certificate发给客户端。服务器返回Server Key Exchange数据包,用于和客户端交换用于数据加密的密钥,Server Hello Done用于通知客户端已经发送用于密钥交换的数据等待客户端响应。

第72帧:客户端根据服务器返回的DH数据生成DH数据发给服务器,用来生成最终的pre-master-secret。

第73-74帧:发送加密后的数据

第77帧:每隔一段时间更新一次会话密钥

telnet收发邮件

qq邮箱使用了加密的smtp,并且第三方登录时只能使用授权码,而不能使用qq密码登录,这是为了安全,防止密码泄露。首先qq邮箱要开启IMAP/SMTP服务,然后通过telnet指令发送邮件

  1. win10先在控制面板开启telnet客户端功能

  2. 终端输入telnet smtp.qq.com 25 开始telnet通信

以下是操作过程

检查收件箱,成功收到邮件

抓包分析

使用smtp过滤结果

内容和之前类似。