如何对SMTP服务器进行渗透测试?国外白帽小哥 Shahmeer Amir 将在下文向您展示如何有效地对 SMTP 服务器进行渗透测试以获取信息和漏洞。
SMTP 是一种可以在大多数渗透测试场景中找到的服务。如果系统管理员未禁用 EXPN 和 VRFY 命令,此服务可以帮助渗透测试人员通过这些命令进行用户名枚举。有多种方法可以通过 SMTP 实现此枚举,本文将对此进行解释。
EXPN命令的作用是获取用户别名的实际地址和电子邮件列表以及VRFY,可以确认用户名是否存在以及是否有效。
SMTP 枚举可以通过 telnet 和 netcat 等实用程序手动执行,也可以通过 metasploit、nmap 和 smtp-user-enum 等各种工具自动执行。下图显示了如何使用 telnet 服务通过 VRFY 和 RCPT 命令枚举用户。
使用 Metasploit 工具
Metasploit Framework中可以通过SMTP执行用户枚举的模块如下:
auxiliary/scanner/smtp/smtp_enum
该模块唯一需要的是输入远程主机的 IP 地址并使用运行命令执行它,因为其他选项已由 metasploit 自动填充。
Metasploit SMTP 枚举模块 - 配置
我们可以在下图中看到 metasploit 的结果:
使用smtp-user-enum 工具
另一个可用的工具是smtp-user-enum,它提供了 3 种用户枚举方法。此工具用来验证用户名的命令是 EXPN、VRFY 和 RCPT。它还可以支持单个用户名枚举和通过检查 .txt 列表进行的多个用户名枚举。因此,为了有效地使用此工具,您需要有一个用户名字典。下面是使用 VRFY 命令进行扫描的示例,该命令发现了以下用户名。
通过 smtp-user-enum 枚举 SMTP 用户
smtp-user-enum 还可用于发现有效的电子邮件地址,下图显示了这种用法。
通过 smtp-user-enum 发现电子邮件地址
使用 Nmap
SMTP 枚举也可以通过 Nmap 实现。NSE(Nmap 脚本引擎)中有一个脚本可用于 SMTP 用户枚举。该脚本的通用用法如下:
nmap –script smtp-enum-users.nse 172.16.212.133
但是从上图我们可以看出,在这种情况下枚举并没有成功。
SMTP 是每个网络中都可以找到的常见服务。管理员需要通过禁止执行EXPN、VRFY和RCPT命令来正确配置邮件服务器,以避免泄漏信息。从另一方面来说,渗透测试人员可以使用从此枚举中获得的用户名对其他系统进行进一步攻击例如:弱口令攻击、密码爆破等。
原文地址:https://shahmeeramir.com/penetration-testing-an-smtp-server-cf91e4846101
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):对 SMTP 服务器进行渗透测试
评论