最近在看有关协议分析的资料,其中谈到了邮件传输协议(SMTP)的工作原理,深受感触。之后在网上又搜索了一些相关的资料,大概的整理了一下,希望对大家有帮助,有不对的地方请批评指正。
对照此方法可以检验你的邮件服务器是否有此方面的安全缺陷。对用此方法而引起的后果自负(如需转载,请注明信息来源)
一、SMTP 邮件的传输
共分为三个阶段:1、建立连接2、数据传输3、连接关闭
首先在建立连接阶段我不用再罗嗦,主要就是TCP的三次握手。而问题就出现在第二个阶段(数据传输)在此过程中可以人为控制。邮件在传输的时候,我个人认为是通过五条命令来实现(有的资料上说的是其中三条命令)的分别是:
Helo
mail from:
rcpt to:
data
共分为三个阶段:1、建立连接2、数据传输3、连接关闭
首先在建立连接阶段我不用再罗嗦,主要就是TCP的三次握手。而问题就出现在第二个阶段(数据传输)在此过程中可以人为控制。邮件在传输的时候,我个人认为是通过五条命令来实现(有的资料上说的是其中三条命令)的分别是:
Helo
mail from:
rcpt to:
data
quit
注:(这五条命令是内嵌在程序中自动完成,对用户来说是透明的。比如OUTLOOK、foxmail等程序)后面我会具体说明如何使用这些命令。
五条命令的含义:
Helo 表示与服务器内处理邮件的进程开始“通话”
mail from: 表明信息的来源地址,也就是要伪造的地址
rcpt to: 邮件接收者的地址
data 邮件的具体内容
注:(这五条命令是内嵌在程序中自动完成,对用户来说是透明的。比如OUTLOOK、foxmail等程序)后面我会具体说明如何使用这些命令。
五条命令的含义:
Helo 表示与服务器内处理邮件的进程开始“通话”
mail from: 表明信息的来源地址,也就是要伪造的地址
rcpt to: 邮件接收者的地址
data 邮件的具体内容
quit 退出邮件
二、SMTP 数据包分析
下面是一个通过FOXMAIL程序发送邮件并进行抓包的分析(作了适当的修改):
172.17.1.1是邮件服务器地址,域名是abc.cn
下面是一个通过FOXMAIL程序发送邮件并进行抓包的分析(作了适当的修改):
172.17.1.1是邮件服务器地址,域名是abc.cn
192.168.0.1是客户端地址;请留意粗体字部分
Source |
Destiination |
Protocol |
Info |
172.17.1.1 |
192.168.0.1 |
SMTP |
RESPONSE:220 abc.cn ESMTP sendmail 7.14.2/7.14.2; Thu, 22 may 2010 23: |