伪造邮件攻击原理分析
从上面两种伪造邮件攻击的方法我们了解到,想实现伪造邮件,伪造发件人的攻击方式基本上没有什么技术含量,只需要浏览网页,添加一些文字或者安装两个软件即可。但是,为什么可以轻易地实现伪造邮件攻击呢?
SMTP(Simple Mail Transfer Protocol)协议,即简单邮件传输协议,是定义邮件传输的协议,它是基于TCP服务的应用层协议,用户通过SMTP协议所指定的服务器就可以把邮件发送到收件人的服务器上。其邮件传输过程共分为三个阶段:建立连接、传输数据和关闭连接。
由于传输数据的阶段是人为可控的,所以就会出现人为控制传输数据中发件人、发送的信息实现的伪造邮件攻击。数据传输过程中,SMTP协议主要是通过以下五个主要命令实现的。
a)Helo:与SMTP服务器处理邮件的进程开始通信。
b)Mail from:邮件发件人的信息,即黑客伪造的发件人地址信息。
c)Rcpt to:邮件接收人得信息,即黑客发送伪造邮件的目的邮箱地址。
d)Data:邮件正文内容。
e)Quit:退出邮件。
这些命令封装在应用程序中,对用户是隐藏的,用户在发送邮件过程中不会察觉这些命令的使用。
通过分析SMTP协议工作过程中的主要过程我们了解到,发件人的信息、邮件正文信息均是在发送过程中人为可控的数据,也就解释了为什么我们之前使用deadfake网站和Advanced Direct Remailer软件可以实现随意伪造发件人的地址和邮件正文信息,那么我们结合SMTP传输过程中的主要命令,在Advanced Direct Remailer软件环境来具体了解一下邮件发送的过程。
首先,我们通过telnet连接SMTP服务器的25端口。输入命令为telnet 127.0.0.1 25,然后我们看到SMTP服务器返回给我们的信息,然后我们依次输入刚刚介绍的数据传输中的命令,如下图11所示。