3.3 利用电子邮件系统的漏洞
从本质上说,所有电子邮件系统都要接入互联网,接受来自外部的匿名访问,这样才能起作用。许多企业用户都会通过电子邮件发送机密信息。在大多数环境中,电子邮件服务器都会保存一些有价值的信息,这使得它们成为了攻击者的最高优先级目标。对使用者来说,好消息是只要正确配置了,现代电子邮件系统是极其难被抓住漏洞的。但这并不意味着电子邮件系统对攻击就是免疫的。大多数邮件系统都有Web应用,并可以通过Web界面访问。这提高了远程攻击者获取核心系统访问权限的可能性,攻击者可以利用它作为跳板,连接到内网的其他系统。
在我们将邮件系统作为目标之前,首先需要知道托管邮件服务器的是什么系统。如果不知道这些信息,可以借鉴我们在第2章 中学到的侦察技术。在这个例子中,我们会用Fierce来找出特定域名的MX主机。在大多数情况下,MX主机就是SMTP服务器。下面是对www.cloudcentrics.com 运行Fierce 的例子:
首先,需要查看目标邮件服务器是否有可以执行直接命令的漏洞。大多数攻击者都想利用邮件服务器来仿冒邮件,使用邮件服务器作为非授权的邮件中继服务器。本书将会在第4章 中进一步介绍如何利用侵入的邮件服务器进行社会工程。
在这个例子中,我们会使用Netcat 作为连接到邮件服务器的工具。Netcat 是一个用于读取或写入通过TCP或UDP进行的网络连接的计算机网络服务。Netcat被设计成了那种可以依赖的后端设备,方便直接使用或易于被其他程序或脚本驱动。Netcat同时也是一个功能丰富的网络调试和调查工具,它可以通过自带的多种功能来生成各种关联关系。
启动Netcat常用的方法是调用命令netcat mail-server port 。在本例中,目标邮件服务器是运行在端口25上。我们在第2章 介绍侦察步骤时用nmap 验证过这部分信息。
使用Netcat连接到邮件服务器后,使用HELO 命令来告诉服务器我们的身份。
如果收到了响应,可以使用SMTP 命令对大多数服务器进行操作(有些系统可能由于配置和系统类型的原因而不可侵入)。在下面的例子中,一开始会通过HELO 命令告诉服务器我们的身份。之后,就可以用该邮件服务器来为将来的客户端攻击做邮件中继了。
只有HELO 、MAIL FROM 、RCP To 和Data 字段是必填的。你可以用其他字段来隐藏邮件的发件人并修改reply to 字段。这里举个例子,你可以修改reply to 地址来达到让收件人将电子邮件误回给其他人的目的。
完整的SMTP 命令清单可以在SMTP RFC中找到,或是通过谷歌找到。