邮件传输协议实战抓包分析

时间:2024-03-06 08:49:58

下面来实战抓包、分析包,抓包:使用邮件系统自己给自己发送一封图片邮件,解包:通过解析数据包解析传输的文件内容

1.协议的分析

1.先分析使用的什么协议,每个协议有什么特征,邮件传输使用的SMTP协议,邮件接收协议使用pop3或imap协议

 

MUA协议:MUA就是“邮件用户代理”。邮件需要代理,这是由于通常Client端的计算机无法直接寄信,所以,需要通过MUA帮我们传递信件,不论是送信还是收信,Client端用户都需要通过各个操作系统提供的MUA才能够使用邮件系统

MTA协议:MTA就是“邮件传送代理”的意思,用户寄信与收信时 ,都是找MTA,它负责帮用户传送。通过SMTP协议发送、转发邮件

MDA:邮件投递代理”主要的功能就是将MTA接收的信件依照信件的流向(送到哪里)将该信件放置到本机账户下的邮件文件中(收件箱),或者再经由MTA将信件送到下个MTA,有两个经常的功能,自动回复、邮件过滤,如果邮件带有情色语句,也是会被过滤的

POP: 邮件接收协议,POP3允许用户从服务器上把邮件存储到本地主机

IMAP:交互式邮件存取协议,是一个应用层协议,默认端口是143,通过SSL协议加密之后的默认端口是993,他能在线进行邮件预览

 

 

2.网络抓包

1.了解了协议对我们分析有很好的帮助,可以开始着手抓包

打开wireshark,在打开foxeamil,发送一封邮件给自己,并且发送了一张图片

 

3.网络包分析

通过smtp过滤,可以看到SMTP过滤的端口是25

现在我们就来分析网络数据包,

104号数据包:是客户端连接服务端,第一个是表明身份连接

 

 107号包是个登录连接 ,其实看名称也知道

 109与111号包是登录的包,一个是用户名一个是密码,然后他是经过base64加密

我们来解压109号包  账号()

import base64
>>> cipher=\'emhhbmdqdW5AamlndWFuZy5jbg==\' >>> plantext=base64.b64decode(cipher) >>> print(plantext) b\'zhangjun@jiguang.cn\'

 成功解压出用户名

112号包是服务端回应客户端认证成功

113号包发件人

114号包收件人

117号包发送数据

 

 119后就是发包,可以看到一直发送数据  

 

我们可以来解压数据包内容

选择追踪流下的TCP流

 

      1.打开数据窗口,查看数据内容

     2.解码文件

       因为我们知道是base64位的编码方式,所以我们可以把文件内容写在一个txt文件中,在使用base64解码文件,进行解码,会生成一个plainfile.txt文件

 

import base64
file=open(\'emaile.txt\')
file_text=file.read()

plain_text=base64.b64decode(file_text)
file.close()

plain_file=open(\'plainfile.txt\',\'wb\')
plain_file.write(plain_text)
plain_file.close()

    3.进行转码 

执行完后我本地生成一个txt文件,我们打开这个文件会发现是乱码,那是因为文件需要进行转码

 

    4.文件格式识别 

其实我们查看详情的时候就知道这个文件是一个jpg文件,但是如果不知道,可以在线查看这个文件的编码格式

 

 现在我们就把文件名进行更改,更改后文件就展示出来了

 

152号包就是表示来自哪里,是否携带附件

161退出

162服务也返回了结束的表示

 

 至此,邮件传输文件 抓包 解包就结束了