SuperAPI AI 工具集

SMTP Penetration Testing

安全与审计

查看项目

更新于 10-15 14:55

技能介绍

用途

SMTP Penetration Testing 是一个针对 SMTP(Simple Mail Transfer Protocol)服务器开展安全评估的技能。其目标是识别邮件服务器中的漏洞,包括开放中继(open relay)、用户枚举、弱认证和错误配置,并输出安全加固建议。技能覆盖从服务发现到邮件认证记录分析的完整测试流程。

主要能力

技能覆盖以下测试环节:

  • SMTP 架构理解:组件为 MTA(传输)→ MDA(投递)→ MUA(客户端);端口包括 25(SMTP)、465(SMTPS)、587(submission)、2525(替代端口)。
  • 服务发现与版本识别:使用 Nmap 探测 SMTP 端口和服务版本,使用 dig、nslookup、host 查询域名的 MX 记录。
  • Banner 抓取:通过 Telnet、Netcat 或 Nmap 获取服务器软件、版本、主机名及支持的扩展(STARTTLS、AUTH 等)。
  • SMTP 命令枚举:测试 VRFY、EXPN、RCPT TO 等命令,判断用户是否存在或展开邮件列表。
  • 用户枚举:使用 smtp-user-enum(VRFY/EXPN/RCPT 三种模式)、Metasploit 的 smtp_enum 模块、Nmap 的 smtp-enum-users 脚本枚举有效邮箱地址。
  • 开放中继测试:使用 Nmap 的 smtp-open-relay 脚本、Metasploit 的 smtp_relay 模块或手动 Telnet 测试,并尝试不同发件人/收件人组合。
  • 暴力破解认证:使用 Hydra、Medusa 或 Metasploit 的 smtp_login 模块测试弱 SMTP 凭据。
  • SMTP 命令注入测试:包括头部注入(如 Bcc、X-Injected)与发件人伪造测试。
  • TLS/SSL 安全测试:使用 openssl s_client 检查 STARTTLS 与直接 SSL,使用 Nmap 的 ssl-enum-ciphers 枚举加密套件。
  • SPF、DKIM、DMARC 分析:通过 dig TXT 查询相关记录,并解读 SPF 策略(-all 严格失败、~all 软失败、?all 中性)。

使用方式

技能以命令和操作流程的形式提供,不涉及代码编写。典型使用步骤为:先进行服务发现与 Banner 抓取,再进行命令枚举与用户枚举,随后进行开放中继、暴力破解、命令注入、TLS 和邮件认证记录测试,最后输出安全评估报告、用户枚举结果、中继测试结果和修复建议。

所需工具

# Nmap with SMTP scripts
sudo apt-get install nmap

# Netcat
sudo apt-get install netcat

# Hydra for brute force
sudo apt-get install hydra

SMTP user enumeration tool:

sudo apt-get install smtp-user-enum

Metasploit Framework:

msfconsole

所需知识

  • SMTP 协议基础
  • 邮件架构(MTA、MDA、MUA)
  • DNS 与 MX 记录
  • 网络协议

所需访问权限

  • 目标 SMTP 服务器 IP 或主机名
  • 测试的书面授权
  • 用于枚举和暴力破解的字典文件

常用命令示例

服务发现:

nmap -p 25,465,587,2525 -sV TARGET_IP
nmap -sV -sC -p 25 TARGET_IP
nmap --script=smtp-* -p 25 TARGET_IP
dig MX target.com

Banner 抓取:

telnet TARGET_IP 25
nc TARGET_IP 25

用户枚举:

smtp-user-enum -M VRFY -U /usr/share/wordlists/users.txt -t TARGET_IP
smtp-user-enum -M RCPT -U users.txt -t TARGET_IP -p 25 -d target.com
nmap --script smtp-enum-users -p 25 TARGET_IP

开放中继测试:

nmap -p 25 --script smtp-open-relay TARGET_IP

暴力破解:

hydra -l admin -P /usr/share/wordlists/rockyou.txt smtp://TARGET_IP

TLS 测试:

openssl s_client -connect TARGET_IP:25 -starttls smtp

邮件认证记录查询:

dig TXT target.com | grep spf
dig TXT selector._domainkey.target.com
dig TXT _dmarc.target.com

适用场景

  • 对自有或获授权的邮件服务器进行完整安全评估
  • 枚举有效用户以评估信息暴露风险
  • 测试并记录开放中继漏洞
  • 检查 SMTP 服务的加密配置与邮件认证记录
  • 为管理员提供安全加固依据

常见漏洞与响应码

常见漏洞包括:开放中继(高风险,通过外部收件人测试)、用户枚举(中风险,通过 VRFY/EXPN/RCPT 测试)、Banner 泄露(低风险)、弱认证(高风险,通过暴力破解测试)、无 TLS(中风险,通过 STARTTLS 测试)、缺失 SPF/DKIM(中风险,通过 DNS 记录查询)。

关键响应码:220 服务就绪;221 关闭连接;250 请求动作完成;354 开始邮件输入;421 服务不可用;450 邮箱不可用;550 用户未知/邮箱未找到;553 邮箱名不允许。

限制

法律要求

  • 仅测试自己拥有或获得授权测试的 SMTP 服务器
  • 发送垃圾邮件或恶意邮件是违法的
  • 记录所有测试活动
  • 不得滥用发现的开放中继

技术限制

  • 现代服务器通常禁用 VRFY/EXPN
  • 速率限制可能减慢枚举速度
  • 某些服务器对有效与无效用户返回相同响应
  • Greylisting 可能延迟枚举响应

道德边界

  • 绝不通过发现的开放中继发送实际垃圾邮件
  • 不得为恶意用途收集邮箱地址
  • 向服务器管理员报告开放中继
  • 仅将发现用于授权的安全改进

排障提示

  • 连接被拒绝:端口被阻断或关闭,检查端口,ISP 可能封锁 25 端口,可尝试 587/465 或使用 VPN
  • VRFY/EXPN 被禁用:服务器已加固,改用 RCPT TO 方法,分析响应时间或代码差异
  • 暴力破解被阻断:存在速率限制或锁定,减慢速度(hydra -W 5)、使用密码喷洒、检查 fail2ban
  • SSL/TLS 错误:端口或协议错误,465 用于 SSL,25/587 用于 STARTTLS,验证 EHLO 响应

面向管理员的加固建议

禁用开放中继(外部投递要求认证)、禁用 VRFY/EXPN、强制 TLS(所有连接要求 STARTTLS)、实施 SPF/DKIM/DMARC、速率限制、账户锁定、Banner 加固、日志监控、补丁管理、访问控制(限制 SMTP 到授权 IP)。