邮件传输协议实战抓包分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
邮件传输协议实战抓包分析
下⾯来实战抓包、分析包,抓包:使⽤邮件系统⾃⼰给⾃⼰发送⼀封图⽚邮件,解包:通过解析数据包解析传输的⽂件内容
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@'
成功解压出⽤户名
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服务也返回了结束的表⽰
⾄此,邮件传输⽂件抓包解包就结束了。