下面来实战抓包、分析包,抓包:使用邮件系统自己给自己发送一封图片邮件,解包:通过解析数据包解析传输的文件内容
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服务也返回了结束的表示
至此,邮件传输文件 抓包 解包就结束了