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邮件
使用QQ邮箱的web端按照上面的流程,先写好一封邮件不要发送
开始抓包,发送邮件,结束抓包
通过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指令发送邮件
win10先在控制面板开启telnet客户端功能
终端输入
telnet smtp.qq.com 25
开始telnet通信
以下是操作过程
检查收件箱,成功收到邮件
抓包分析
使用smtp过滤结果
内容和之前类似。