Wireshark抓包分析POP3和SMTP协议
一、实验目的
1.初步掌握Wireshark的使用方法,熟悉抓包流程;
2.通过对Wireshark抓包实例进行分析,加强对POP3协议和
SMTP协议的理解;
3.培养动手实践能力和自主学习自主探究的精神。
二、实验要求
利用Wireshark软件抓包,得到邮箱登录的信息和发送邮件的信息,并根据所抓包对POP3协议和SMTP协议进行分析。
三、实验环境
1.系统环境:Windows 8专业版
2.邮件接收:Foxmail 6正式版
3.Wireshark:V1.
4.9
四、实验过程
(一)邮箱登录及邮件接收过程(POP3协议)
1.POP3协议简介[1]
POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮箱服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本机主机上,同时根据客户端的操作删除或保存在邮箱服务器上的邮件。而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收
电子邮件的。POP3协议是TCP/IP协议族中的一员,由RFC 1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
2.实验过程
(1)准备工作
●申请一个126邮箱
●安装并配置Foxmail,将接收和发送邮件的服务器分
别设置为POP3服务器和SMTP服务器
●在安装好的Foxmail上添加申请到的126邮箱账户
添加后的邮箱信息
(2)打开Wireshark软件,选择正在联网的网卡,开始抓包。
(3)打开Foxmail,选择邮箱账号登录,点击左上角收取,邮箱开始连接服务器。
(4)关闭Foxmail,Wireshark停止抓包,找到包的位置,可以发现账号和密码都被找出来了。
3.分析过程
通过查找资料可知,主机向POP3服务器发送的命令采用命令行形式,用ASCII码表示。服务器响应是由一个单独的命令行组成或多个命令行组成,响应第一行以ASCII文本+OK或-ERR(OK指成功,-ERR指失败)指出相应的操作状态是成功还是失败。
由上述报文可以分析出如下过程:
●因为POP3协议默认的传输协议时TCP协议[2],因此连接服
务器要先进行三次握手
●主机需要提供账号和密码,并等待服务器确认
●认证成功以后,开始进入处理阶段
➢主机向服务器发送命令码STAT,服务器向主机发回邮箱的统计资料,包括邮件总数和总字节数(3个邮件,共17393个字节)
➢主机向服务器发送命令码UIDL,服务器返回每个邮件的唯一标识符
三个邮件的标识符
➢主机向服务器发送命令码LIST,服务器返回邮件数量和每个邮件的大小
三个邮件的大小分别是14417字节、882字节、2096字节
➢主机向服务器发送命令码QUIT,终止会话。
●进一步分析可得到如下信息(以主机向服务器发送密码为例)➢本机的端口号为65500 服务器端口号为110
➢本机和服务器MAC地址
➢POP协议是基于TCP/IP的协议
4.过程总结
由上述实验结果和实验分析可知,账户的登录过程为:当
邮件发送到服务器后,账户登录时,电子邮件客户端会调用邮
件客户端程序连接服务器,连接时先进行身份验证(账号和密码),验证成功以后通过向服务器发送一些命令码,从而获得所有未读的电子邮件信息到主机,完成登录过程和新邮件信息的
获取。
从抓包结果来看,客户端向服务器采用明码来发送用户名
和密码,在认证状态下服务器等待客户端连接时,客户端发出连接请求,并把由命令构成的user/pass用户身份信息数据明文发送给服务器。所以在抓包时可以看到未加密的密码。(二)邮件发送过程(SMTP协议)
1. SMTP协议简介
SMTP(Simple Mail Transfer Protocol)即简单邮局传输协议。用于电子邮件系统中发送邮件。它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方。
SMTP协议使用客户端/服务器模型,发送邮件的进程是客户端,接收邮件的进程是服务器[3]。SMTP协议基于TCP协议,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
SMTP的默认端口是25.
2. 实验过程
(1)准备阶段
软件和客户端已安装配置完毕。
(2)打开Foxmail客户端,点击撰写按钮
(3)打开Wireshark软件,选择正在上网的网卡,开始抓包
(4)点击Foxmail客户端,对于已编写好的邮件,点击左上角的发送按钮,邮件开始发送,发送成功以后,关闭界面,
(5)W ireshark停止抓包,查找
3. 分析过程
(1)过程描述和解释
SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的。在通讯链路建立后,发送SMTP发送MAIL命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响。双方如此反复多次,直至邮件处理完毕[4]。具体过程如下:
⏹因为SMTP协议是基于TCP的,所以先进行三次握手,
客户端与服务器建立TCP连接,服务器返回连接信息,
表示是否连接成功
⏹客户端向服务器发送命令“HELO”,并加上本机的主机
名(123shi),服务器响应并回复(250表示服务器可
用)
⏹客户端向服务器发送用户登录命令“AUTH LOGIN”,
服务器回复表示接受(“334”表示接受)