mcpField
S
smtp-penetration-testing

smtp-penetration-testing

github.com/sickn33安全48.7k350 次安装今天更新
代码仓库

关于 smtp-penetration-testing

面向授权安全评估与教学环境的 SMTP 渗透测试技能,涵盖邮件服务器检查和防御建议。使用前设有明确授权确认门槛,并要求在未确认时仅提供只读指导。

主要功能

  1. 01SMTP 服务发现与横幅检查
  2. 02用户枚举与开放中继评估
  3. 03固件之外的邮件安全建议
  4. 04执行前授权与范围确认

适用场景

  1. 01评估自有邮件服务器配置
  2. 02在受控环境检查 SMTP 风险
  3. 03为邮件服务器制定加固措施

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill smtp-penetration-testing

安装后在 Claude Code 中输入/smtp-penetration-testing确认已加载。

附带文件references/detailed-guide.md

详细介绍

⚠️ 仅限授权使用 此技能仅用于教育目的或经授权的安全评估。 使用此工具前,必须获得系统所有者明确的书面许可。 滥用此工具属于违法行为,且严格禁止。

强制确认关卡 在运行任何探测、利用、修改、在目标上建立持久访问、提取目标数据或尝试访问目标凭据的命令之前:

  1. 请用户说明确切的目标 URL、IP、账户或资源。
  2. 请用户确认已获得书面授权,并说明许可范围。
  3. 展示确切的命令,并说明其预期效果。
  4. 等待用户在当前对话中明确确认。

未获得上述确认时,仅进行只读操作,并且只提供防御性指导。优先使用沙盒、一次性 VM 或受控实验环境。

仅限授权使用:此技能仅可用于经授权的安全评估、防御性验证或受控教育环境。

SMTP 渗透测试

详细指南

执行此技能前,请阅读详细指南。其中保留了完整流程和参考资料。必须遵守其中的安全要求、前置条件和验证要求。进行有针对性的操作时,请加载相关章节;进行端到端操作时,请完整阅读指南。

前置条件

所需工具
# 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 地址/主机名
  • 测试的书面授权
  • 用于枚举和暴力破解的字典

限制条件

法律要求
  • 仅测试你拥有或获准测试的 SMTP 服务
  • 发送垃圾邮件或恶意邮件属于违法行为
  • 记录所有测试活动
  • 不得滥用发现的开放中继
技术限制
  • 现代服务通常会禁用 VRFY/EXPN
  • 速率限制可能会减慢枚举速度
  • 某些服务对有效用户和无效用户会返回相同响应
  • 灰名单机制可能会延迟枚举响应
道德界限
  • 绝不要通过发现的中继发送真正的垃圾邮件
  • 不得为恶意用途收集电子邮件地址
  • 向服务管理员报告开放中继
  • 发现结果仅用于经授权的安全改进

示例

示例 1:完整的 SMTP 评估

场景: 对邮件服务进行全面安全评估

# Step 1: Service discovery
nmap -sV -sC -p 25,465,587 mail.target.invalid

# Step 2: Banner grab
nc mail.target.invalid 25
EHLO test.com
QUIT

# Step 3: User enumeration
smtp-user-enum -M VRFY -U /usr/share/seclists/Usernames/top-usernames-shortlist.txt -t mail.target.invalid

# Step 4: Open relay test
nmap -p 25 --script smtp-open-relay mail.target.invalid

# Step 5: Authentication test
hydra -l admin -P /usr/share/wordlists/fasttrack.txt smtp://mail.target.invalid

# Step 6: TLS check
openssl s_client -connect mail.target.invalid:25 -starttls smtp

# Step 7: Check email authentication
dig TXT target.com | grep spf
dig TXT _dmarc.target.com
示例 2:用户枚举攻击

场景: 枚举有效用户,为钓鱼攻击做准备

# Method 1: VRFY
smtp-user-enum -M VRFY -U users.txt -t 192.168.1.100 -p 25

# Method 2: RCPT with timing analysis
smtp-user-enum -M RCPT -U users.txt -t 192.168.1.100 -p 25 -d target.com

# Method 3: Metasploit
msfconsole
use auxiliary/scanner/smtp/smtp_enum
set RHOSTS 192.168.1.100
set USER_FILE /usr/share/metasploit-framework/data/wordlists/unix_users.txt
run

# Results show valid users
[+] 192.168.1.100:25 - Found user: admin
[+] 192.168.1.100:25 - Found user: root
[+] 192.168.1.100:25 - Found user: postmaster
示例 3:开放中继利用

场景: 测试并记录开放中继漏洞

# Test via Telnet
telnet mail.target.invalid 25
HELO attacker.com
MAIL FROM:<[email protected]>
RCPT TO:<[email protected]>
# RCPT acceptance alone is inconclusive; verify authorized external relay and actual controlled delivery policy.

# Document with Nmap
nmap -p 25 --script smtp-open-relay --script-args [email protected],[email protected] mail.target.invalid

# Output:
# PORT   STATE SERVICE
# 25/tcp open  smtp
# |_smtp-open-relay: Server is an open relay (14/16 tests)

安全建议

面向管理员
  1. 禁用开放中继 - 要求通过身份验证才能向外部投递邮件
  2. 禁用 VRFY/EXPN - 防止用户枚举
  3. 通过 TLS 保护提交/身份验证 - 单独定义服务器间传输策略(例如 MTA-STS/DANE),避免意外丢失邮件
  4. 实施 SPF/DKIM/DMARC - 通过对齐和接收方强制执行来减少域名冒充;这并不能普遍防止欺骗
  5. 速率限制 - 防止暴力破解攻击
  6. 账户锁定 - 多次尝试失败后锁定账户
  7. 强化服务横幅 - 尽量减少服务器信息泄露
  8. 日志监控 - 对可疑活动发出警报
  9. 补丁管理 - 保持 SMTP 软件为最新版本
  10. 访问控制 - 将 SMTP 访问限制为已授权的 IP

适用场景

当需要执行概述中描述的工作流或操作时,可使用此技能。

所有投递、转发和伪造示例都必须使用经过明确授权的发件人和收件人测试邮箱;不得默认允许向第三方投递、欺骗员工或进行密码喷洒。商定速率、尝试次数和锁定限制,并在遇到阻止时停止。手动提供 Bcc/X-Injected 标头不属于命令/标头注入;应单独演示存在漏洞的应用程序输入到标头边界。仅具备 STARTTLS 功能或完成 s_client 握手,并不能验证证书主机名/信任或降级策略;请配置 SNI/验证并检查失败情况。仅确认 DNS 记录存在,并不能验证 SPF/DKIM/DMARC 的有效性。请对身份验证数据和捕获的地址进行脱敏处理。

评论

支持 Markdown