篇一Wireshark抓包分析POP3和SMTP协议
Wireshark抓包分析POP3和SMTP协议
一、 实验目的
1.初步掌握Wireshark的使用方法熟悉抓包流程
2.通过对Wireshark抓包实例进行分析加强对POP3协议和S MTP协议的理解
3.培养动手实践能力和自主学习自主探究的精神。
二、 实验要求
利用Wireshark软件抓包得到邮箱登录的信息和发送邮件的信息并根据所抓包对P OP 3协议和SMTP协议进行分析。
三、 实验环境
1.系统环境Windows 8专业版
2.邮件接收 Foxmail 6正式版
3.Wireshark V1.4.9
四、 实验过程
一 邮箱登录及邮件接收过程POP3协议
1.POP3协议简介[1]
1
POP3(Post Office Protocol3)
即邮局协议的第3个版本它是规定个人计算机如何连接到互联网上的邮箱服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准 POP3协议允许用户从服务器上把邮件存储到本机主机上同时根据客户端的操作删除或保存在邮箱服务器上的邮件。而POP3服务器则是遵循POP3协议的接收邮件服务器用来接收电子邮
件的。POP3协议是TCP/IP协议族中的一员由RFC 1939定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
2.实验过程
1 准备工作
? 申请一个126邮箱
?安装并配置Foxmail将接收和发送邮件的服务器分别设置为POP3服务器和SMTP服务器
?在安装好的Foxmail上添加申请到的126邮箱账户
添加后的邮箱信息
2 打开Wireshark软件选择正在联网的网卡开始抓包。
3 打开Foxmail选择邮箱账号登录 点击左上角收取 邮
箱开始连接服务器。
2
4 关闭FoxmailWireshark停止抓包找到包的位置可
以发现账号和密码都被找出来了。
3.分析过程
通过查找资料可知主机向POP3服务器发送的
命令采用命
令行形式用ASCII码表示。服务器响应是由一个单独的命令行组成或多个命令行组成 响应第一行以ASCII文本+O K或-E RR(O K指成功 -E RR指失败指出相应的操作状态是成功还是失败。 由上述报文可以分析出如下过程
?因为P OP3协议默认的传输协议时TCP协议[2] 因此连接服务器要先进行三次握手
?主机需要提供账号和密码并等待服务器确认
?认证成功以后开始进入处理阶段
?主机向服务器发送命令码STAT服务器向主机发回邮箱的统计资料包括邮件总数和总字节数3个邮件共17393个字节
?主机向服务器发送命令码UIDL服务器返回每个
邮件的唯
一标识符
三个邮件的标识符
?主机向服务器发送命令码LIS T服务器返回邮件数量
3
和每个邮件的大小
三个邮件的大小分别是14417字节、 882字节、 2096字节
?主机向服务器发送命令码QUIT终止会话。
?进一步分析可得到如下信息以主机向服务器发送密码为例 ?本机的端口号为65500 服务器端口号为110
?本机和服务器MAC地址
篇二 S M TP协议分析
S M TP协议分析第1章.S MTP概述
1.1.SMTP在邮件通信中的位置
S MTP 即简单邮件传送协议所对应RF C文档为RF C 821。 同http等多数应用层协议一样它工作在C/S模式下用来实现因特网上的邮件传送。 S MTP在整个电子邮件通信中所处的位置如图1所示。
图1电子邮件的通信过程
可以看出S MTP是用来将客户机上的邮件传送到服务器上。这里的客户机是指某次连接中的发送方服务器是指相应的接收方。在讲解发送邮件的整个通信过程前先解释一下面几个术语。
1.2.几个术语1.2.1.邮件
邮件是一种消息的格式 由信封、首部和正文组成。
信封上最重要的是收信人的地址。邮件服务器用这个地址
4
将邮件发送到收信人所在的邮件服务器上。
首部是由用户代理或邮件服务器添加的一些信息。包括Received、Message-ID、 From、Data、Reply-To、X-Phone、X-Maile r、 To和Subject等字段。
正文是是发送用户发给接收用户报文的内容。RFC822规定正文为NVT AS CII文字行。
更为详细的说明请参考RF C 821和RF C 822等协议。
1.2.2.用户代理
用户代理UAUser Agent是用户与电子邮件系统的交互接口一般来说它就是我们PC机上的一个程序。Windows上常见的用户代理是Foxmail和Outlook Express。
用户代理提供一个好的用户界面它提取用户在其界面填写的各项信息生成一封符合S M TP等邮件标准的邮件然后采用S MTP协议将邮件发送到发送端邮件服务器。 1.2.3.邮件服务器
邮件服务器是电子邮件系统的核心它用来发送和接收邮件。邮件服务器不同于普通PC的是它几乎是全天工作的所以它可以在任何时候为用户提供服务后面将提到这正是为什么需要邮件服务器的一个重要原因。很多IS P都提供免费的邮件服务器如126提供smtp.126.co m邮件服务器。
邮件服务器向其它邮件服务器转发邮件也是采用S MTP协议。
5
1.3.邮件的收发过程
一般情况下一封邮件的发送和接收过程如下。
1) 发信人在用户代理里编辑邮件包括填写发信人邮箱、收信人邮箱和邮件标题等等。
2) 用户代理提取发信人编辑的信息生成一封符合邮件格式标准
RF C 822的邮件。
3) 用户代理用S MTP将邮件发送到发送端邮件服务器
即发信人邮箱所对应的邮件服务器。
4) 发送端邮件服务器用S MTP将邮件发送到接收端邮件服务器即收信人邮箱所对应的邮件服务器。
5) 收信人调用用户代理。用户代理用POP3协议从接收端邮件服务器取回邮件。
6) 用户代理解析收到的邮件 以适当的形式呈现在收信人面前。
第2章.SMTP详解
2.1.通信过程
一个具体的S MTP通信如发送端邮件服务器与接收端服务器的通信的过程如下。
1) 发送端邮件服务器以下简称客户端与接收端邮件服务器以下简称服务器的25号端口建立TCP连接。
2) 客户端向服务器发送各种命令来请求各种服务如
6
认证、指定发送人和接收人。
3) 服务器解析用户的命令做出相应动作并返回给客户端一个响应。 4) 2)和3)交替进行直到所有邮件都发送完或两者的连接被意外中断。 从这个过程看出命令和响应是S M TP协议的重点下面将予以重点讲述。
2.2.命令和响应
2.2.1.格式
SMTP的命令不多14个它的一般形式是COMMAND[Parameter]<CRLF。其中COMMAND是ASCII形式的命令名 Parameter是相应的命令参数 <CRLF是回车换行符(0DH,0AH)。
S M TP 的响应也不复杂 它的一般形式是 XXXReadable Illustratio n。 XXX是三位十进制数 ReadableIllustratio n是可读的解释说明用来表明命令是否成功等。XXX具有如下的规律 以2开头的表示成功 以4和5开头的表示失败 以3开头的表示未完成进行中。
2.2.2.一个例子
命令和响应的格式是语法各命令和响应的意思则是语义各命令和各响应在时间上的关系则是同步。下面将通过一个简单的S M TP通信过程来说明协议的这三个要素。
C telnet smtp.126.com 25/*以telnet方式连接126邮件服务器*/
7
S 220 126.com Anti-spam GT for Coremail System(126com[071018]) /* 220为响应数字其后的为欢迎信息会应服务器不同而不同*/
C HELO smtp.126.com/*HELO后用来填写返回域名
具体含义请参阅RFC821但该命令并不检查后面的参数
*/
250 OK
C:MAIL FROM:bripengandre@126.com/*发送者邮箱
*/
S 250?./*“?”代表省略了一些可读信息*/
CRCPT TO:bripengandre@smail.hust.e du.cn/*接收者邮箱*/
S 250?./*“?”代表省略了一些可读信息*/
C DATA /*请求发送数据*/
S 354 Enter mail,end with.on a line by itself
C Enjoy Protocol Studing
C .
S 250 Message sent
C QUIT/*退出连接*/
S 221 Bye
分析上面的过程可参考注释进行这里要补充如下几点。
1) “C”开头的行(不包括C )是客户端的输入而以“S”
8
开头的行(不包括S )则是服务器的输出。
2) 上述的命令并不一定会一次性成功服务器会返回错误响应客户端应该按照协议规定的时序来输入后续的命令或重复执行失败的命令或重置会话或退出会话等等。
2.2.3.常用命令
SMTP命令不区分大小写但参数区分大小写有关这方面的详细说明请参考RF C 821。常用的命令如下。
HELO<domain<CRLF。 向服务器标识用户身份发送者能欺骗说谎但一般情况下服务器都能检测到。
MAIL FROM: <reverse-path <CRLF 。<reverse-path为发送者地址此命令用来初始化邮件传输 即用来对所有的状态和缓冲区进行初始化。
RCPT TO <forward-path <CRLF 。<forward-path用来标志邮件接收者的地址 常用在MAIL FROM后可以有多个RCPT TO。
DATA<C RLF。将之后的数据作为数据发送 以<C RL F.<C RL F标志数据的结尾。
REST<CRLF。重置会话 当前传输被取消。
NOOP<CRLF。要求服务器返回OK应答一般用作测试。
QUIT<CRLF。结束会话。
VRF Y<st ring<C RLF。验证指定的邮箱是否存在
9