用途
本技能用于对 SMTP(简单邮件传输协议)服务器进行全面的安全评估,识别开放中继、用户枚举、弱认证和错误配置等漏洞。涵盖横幅抓取、用户枚举、中继测试、暴力破解以及安全加固建议。
主要能力
- 服务发现:使用 Nmap 识别 SMTP 端口(25、465、587、2525)和服务版本,查询域名的 MX 记录。
- 横幅抓取:通过 Telnet、Netcat 或 Nmap 获取服务器软件、版本、主机名及支持的扩展信息。
- SMTP 命令枚举:测试 EHLO 返回的能力,使用 VRFY、EXPN、RCPT TO 命令验证用户或展开邮件列表。
- 用户枚举:使用 smtp-user-enum、Nmap 脚本或 Metasploit 模块,通过 VRFY、EXPN、RCPT 方法枚举有效邮箱地址。
- 开放中继测试:使用 Nmap 的 smtp-open-relay 脚本、Telnet 手动测试或 Metasploit 模块,判断服务器是否允许未授权的中继转发。
- 暴力破解认证:使用 Hydra、Medusa 或 Metasploit 对 SMTP 认证进行弱口令测试。
- 命令注入测试:测试邮件头注入、邮件伪造等注入类漏洞。
- TLS/SSL 安全测试:检查 STARTTLS 支持、直接 SSL 连接以及加密套件配置。
- 邮件认证分析:查询并分析 SPF、DKIM、DMARC 记录。
使用方式
需预先安装的工具包括:Nmap(含 SMTP 脚本)、Netcat、Hydra、smtp-user-enum、Metasploit Framework。典型工作流程如下:
- 理解 SMTP 架构(MTA → MDA → MUA)与端口(25、465、587、2525)。
- 使用 Nmap 进行 SMTP 服务发现,使用 dig/nslookup/host 查询 MX 记录。
- 通过 Telnet、Netcat 或 Nmap 抓取横幅。
- 连接后使用 EHLO 查看服务器能力,测试 VRFY、EXPN、RCPT 等命令。
- 使用 smtp-user-enum(-M VRFY/EXPN/RCPT)、Nmap 的 smtp-enum-users 脚本或 Metasploit 的 smtp_enum 模块进行用户枚举。
- 使用 Nmap 的 smtp-open-relay 脚本、Telnet 手动测试或 Metasploit 的 smtp_relay 模块测试开放中继。
- 使用 Hydra、Medusa 或 Metasploit 的 smtp_login 模块进行暴力破解。
- 进行命令注入、邮件伪造测试。
- 使用 openssl s_client 和 Nmap 的 ssl-enum-ciphers 测试 TLS/SSL。
- 使用 dig 查询 SPF、DKIM、DMARC 记录。
适用场景
- 对自有或已获授权的 SMTP 服务器进行安全评估。
- 识别开放中继、用户枚举、弱认证、缺少 TLS、缺失 SPF/DKIM 等漏洞。
- 生成安全评估报告、用户枚举结果、中继测试结果和加固建议。
限制
法律要求:只能测试自己拥有或获得授权测试的 SMTP 服务器;发送垃圾邮件或恶意邮件是违法的;记录所有测试活动;不得滥用发现的开放中继。
技术限制:现代服务器通常禁用 VRFY/EXPN;速率限制可能减慢枚举;某些服务器对有效/无效用户返回相同响应;灰名单可能延迟枚举响应。
道德边界:绝不通过发现的中继发送实际垃圾邮件;不得为恶意用途收集邮箱地址;应向服务器管理员报告开放中继;发现仅用于授权的安全改进。
安全加固建议(面向管理员)
禁用开放中继(要求外部投递认证)、禁用 VRFY/EXPN、强制 TLS(要求所有连接使用 STARTTLS)、实施 SPF/DKIM/DMARC、启用速率限制与账户锁定、精简横幅信息、监控日志、及时更新 SMTP 软件、限制 SMTP 访问 IP。