如何测试开放邮件中继
确保外部邮件服务器正确配置以不支持开放邮件中继至关重要。开放邮件中继可能被垃圾邮件发送者滥用,耗尽资源并使您被列入黑名单。如今完全开放的邮件中继已不常见,因为它们容易被滥用,从而促使管理员修复它们。
但常见的是所谓的“部分开放邮件中继”。这种情况发生在邮件中继可用于以下任一情况时:
- 从外部源地址发送邮件到内部目标地址。
- 从内部源地址发送邮件到内部目标地址。
这对攻击者针对内部用户开发电子邮件钓鱼活动非常有用。想象一下,一封看似来自CSO的邮件发送给所有员工。利用部分开放邮件中继使邮件看起来真实,员工没有视觉指示表明这并非真正来自CSO。如果员工的电子邮件客户端显示邮件来自CSO,且源电子邮件地址确认了这一点,他们更可能信任它。没有通常的“这是钓鱼邮件”的线索,例如使用类似域名。
不幸的是,漏洞扫描器在检测此漏洞方面做得不好,甚至可能完全检测不到。因此,为了确保安全,您需要自己测试,以下是方法。
使用telnet或netcat客户端连接到邮件服务器端口。这里有一个需要注意的问题。邮件服务器端口通常是端口25,许多家庭互联网服务提供商会阻止此端口。这意味着当您尝试连接时,它会超时。以下显示了两个因此原因连接失败的示例。第一个是使用telnet客户端的尝试,第二个是使用netcat客户端的尝试。
您可以使用以下PowerShell命令检查Windows上的端口25是否开放用于通信。
|
|
如果您得到的响应不是“Yep, port 25 is open”,您可能正在进行过滤,需要从不同的网络位置进行此测试。
现在我们知道可以在端口25上进行通信,我们可以使用以下命令测试开放邮件中继。在下面的示例中,蓝色文本显示您应在命令行中输入的内容,绿色文本显示命令输出或服务器响应。
上面的命令只是一个示例,结果证明对于测试开放邮件中继来说是一个不好的示例。这是因为example.com实际上是一些邮件服务器中配置的特殊情况用于测试。它会假装接受消息进行传递,但实际上并不传递。因此,当您想测试开放邮件中继时,请使用不同于example.com的域。您应首先检查是否可以从外部电子邮件地址中继邮件到外部电子邮件地址,如下所示。
测试:外部源地址,外部目标地址
|
|
接下来,检查是否可以使用外部源电子邮件地址和内部目标地址中继邮件。
测试:外部源地址,内部目标地址
|
|
最后,检查是否可以使用内部源电子邮件地址和内部目标地址中继邮件。
测试:内部源地址,内部目标地址
|
|
您应重复此最后测试,以确保您使用了既有的内部源地址和不存在的内部源地址。这是因为一些邮件服务器可能配置为要求对现有用户进行身份验证,但通过使用不存在的内部源地址(例如在我们的示例中为[email protected])可能绕过此保护。
在所有邮件服务器上检查此问题,因为每个服务器可能配置不同。以下是您可以使用Linux dig命令列出域的邮件服务器的方法。或在Windows上,尝试nslookup。
|
|
还有一个Metasploit模块可以测试邮件中继,点击这里查看。
最后,以下是一些修复您发现的任何问题的建议。简单的答案是配置邮件服务器不中继邮件,但业务要求可能要求从受信任的第三方中继邮件。在这种情况下,考虑实施以下控制措施之一,首选第一个解决方案:
- 要求使用用户帐户进行身份验证并通过STARTTLS加密。
- 配置电子邮件网关仅允许电子邮件网关本身和授权的IP地址发送。
您可以从Carrie的课程中了解更多!查看这里:
- 攻击模拟工具:Atomic Red Team、CALDERA等
- PowerShell for InfoSec 提供实时/虚拟和点播课程!