OSCP中SMTP/POP3邮件服务攻击思路与实战总结(上)"

admin 2026-10-24 03:32:09 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

OSCP 中 SMTP / POP3 邮件服务攻击思路与实战总结(上)

原创

网安布道师
网安布道师

六边形攻防安全

2026年6月21日 07:38
河北

在小说阅读器读本章

去阅读

在 OSCP 或内网渗透中,邮件服务经常不是是最终入口,但它很可能提供非常关键的信息:用户名、密码、内部域名、重置链接、系统通知、SSH 凭据等。

很多同学(包括我)一开始看到 25/tcp open smtp 或 110/tcp open pop3 时,只知道这是邮件服务,但不知道下一步该怎么打。本文整理一套适合 OSCP 的 SMTP / POP3 枚举与利用思路。希望对你备考oscp或实战有所帮助。❞

一、常见邮件服务端口

邮件相关服务常见端口如下:

端口 服务 说明
25 SMTP 邮件发送 / 接收 / 转发
587 SMTP Submission 认证后提交邮件
465 SMTPS SSL 加密 SMTP
110 POP3 收取邮件
995 POP3S SSL 加密 POP3
143 IMAP 收取邮件,支持同步
993 IMAPS SSL 加密 IMAP

在 OSCP 中最常见的是:

25/tcp open  smtp110/tcp open pop3143/tcp open imap

可以简单记成:

SMTP = 枚举用户 / 发邮件 / 检查中继POP3 / IMAP = 登录邮箱 / 读取邮件 / 寻找凭据

二、为什么邮件服务值得关注

邮件服务经常出现在服务器上,而不是普通个人电脑上。

一台机器开放 SMTP / POP3,通常说明它可能是:

  • 邮件服务器
  • 内部办公服务器
  • Web 应用的邮件通知服务器
  • 老旧 Linux 服务靶机
  • 某个业务系统的消息转发节点

在 OSCP 里,邮件服务常见价值包括:

  • 枚举系统用户名
  • 爆破邮箱账号密码
  • 读取邮件获取敏感信息
  • 找到 SSH、FTP、Web 登录凭据
  • 发现内部域名、主机名、路径
  • 检查是否存在开放中继

三、基础枚举

发现邮件端口后,先做服务识别:

nmap -sC -sV -p25,110,143,465,587,993,995 <target>

如果想更细一点,可以加上相关 NSE 脚本:

nmap -p25,110,143,465,587,993,995 --script \"*smtp* or *pop3* or *imap*\" <target>

重点关注:

  • 服务名称
  • 版本号
  • 是否支持认证
  • 是否支持明文登录
  • 是否支持 VRFY、EXPN
  • 是否泄露域名或主机名

四、SMTP 攻击思路

SMTP 主要用于邮件发送、接收和转发。在 OSCP 中,SMTP 的重点通常是:

枚举用户 -> 检查版本 -> 测试中继 -> 尝试认证

五、SMTP 手工连接

可以使用 nc 连接 SMTP 服务:

nc -nv <target> 25

连接后可能看到类似 banner:

220 mail.example.local ESMTP Postfix

这个 banner 可能泄露:

  • 邮件服务软件
  • 主机名
  • 域名
  • 版本信息

也可以尝试:

HELO test.com

或:

EHLO test.com

EHLO 通常会返回服务器支持的功能,例如:

250-STARTTLS250-AUTH LOGIN PLAIN250-VRFY

如果看到 AUTH LOGIN、AUTH PLAIN,说明它可能支持登录认证。

六、SMTP 用户枚举

SMTP 有几个经典命令可以用于枚举用户。

1. VRFY

VRFY rootVRFY adminVRFY john

如果用户存在,可能返回:

250 john

如果用户不存在,可能返回:

550 No such user

2. EXPN

EXPN usersEXPN admins

EXPN 用于展开邮件列表。如果配置不当,可能泄露用户列表。

3. RCPT TO

有些服务器禁用了 VRFY 和 EXPN,但可以通过 RCPT TO 判断用户是否存在。

手工测试流程:

HELO test.comMAIL FROM:<[email protected]>RCPT TO:

如果用户存在,可能返回:

250 OK

如果不存在,可能返回:

550 User unknown

七、使用 smtp-user-enum 枚举用户

OSCP 中常用工具是 smtp-user-enum。

使用 VRFY 模式:

smtp-user-enum -M VRFY -U users.txt -t <target>

使用 EXPN 模式:

smtp-user-enum -M EXPN -U users.txt -t <target>

使用 RCPT 模式:

smtp-user-enum -M RCPT -U users.txt -t <target>

如果知道域名,可以指定:

smtp-user-enum -M RCPT -U users.txt -D example.local -t <target>

常用用户名字典或者根据web页面存在的用户名生成字典进行爆破:

/usr/share/seclists/Usernames/top-usernames-shortlist.txt/usr/share/seclists/Usernames/xato-net-10-million-usernames.txt

八、SMTP 开放中继测试

开放中继,即 Open Relay,表示攻击者可以借助该服务器向外部地址发送邮件。

可以用 nmap 检查:

nmap --script smtp-open-relay -p25 <target>

如果存在开放中继,说明服务器配置不当。

不过在 OSCP 里,开放中继不一定直接拿 shell,但它可能帮助你:

  • 伪造内部邮件
  • 触发某些业务流程
  • 配合 Web 应用功能利用
  • 发现邮件投递行为

九、SMTP 爆破认证

如果 SMTP 支持认证,可以尝试爆破。

普通 SMTP:

hydra -L users.txt -P passwords.txt smtp://<target>

指定 587 端口:

hydra -L users.txt -P passwords.txt -s 587 smtp://<target>

使用 SSL:

hydra -L users.txt -P passwords.txt -s 465 -S smtp://<target>

如果已经通过 SMTP 枚举出用户,可以把用户名保存到 users.txt,再配合常见密码字典尝试。

十、POP3 攻击思路

POP3 是收邮件服务。

在 OSCP 中,POP3 的核心价值非常直接:

登录邮箱 -> 读取邮件 -> 找敏感信息

如果你拿到了邮箱账号密码,POP3 很可能直接给你下一步线索。

十一、POP3 手工登录

连接 POP3:

nc -nv <target> 110

登录:

USER johnPASS password123

查看邮件列表:

LIST

读取第一封邮件:

RETR 1

读取第二封邮件:

RETR 2

退出:

QUIT

完整示例:

nc -nv 192.168.56.10 110
USER johnPASS summer2020LISTRETR 1QUIT

邮件中重点寻找:

  • SSH 密码
  • Web 后台账号
  • 数据库密码
  • 临时密码
  • Reset password 链接
  • 内部域名
  • 主机名
  • 备份路径
  • 其他用户信息

十二、POP3 爆破

使用 Hydra 爆破 POP3:

hydra -L users.txt -P passwords.txt pop3://<target>

如果是 POP3S,也就是 995 端口:

hydra -L users.txt -P passwords.txt -s 995 -S pop3://<target>

如果只有一个用户:

hydra -l john -P passwords.txt pop3://<target>

如果只有一个密码,想撞用户名:

hydra -L users.txt -p password123 pop3://<target>

十三、IMAP 简单补充

虽然本文重点是 SMTP / POP3,但 OSCP 中也经常遇到 IMAP。

IMAP 端口:

143  = IMAP993  = IMAPS

Hydra 爆破:

hydra -L users.txt -P passwords.txt imap://<target>

IMAPS:

hydra -L users.txt -P passwords.txt -s 993 -S imap://<target>

手工连接可以使用 telnet 或 openssl,不过 IMAP 命令比 POP3 稍微麻烦一点。

十四、SSL 邮件服务连接方式

如果遇到 SSL 端口,例如:

465/tcp open smtps995/tcp open pop3s993/tcp open imaps

可以用 openssl s_client 连接。

连接 SMTPS:

openssl s_client -connect <target>:465

连接 POP3S:

openssl s_client -connect <target>:995

连接 IMAPS:

openssl s_client -connect <target>:993

连接后再输入对应协议命令。

十五、典型 OSCP 攻击流程

假设扫描发现:

25/tcp open  smtp110/tcp open pop3

可以按下面流程走:

1. 服务识别

nmap -sC -sV -p25,110 <target>

2. SMTP 枚举用户

smtp-user-enum -M VRFY -U users.txt -t <target>

如果失败,换模式:

smtp-user-enum -M RCPT -U users.txt -t <target>

3. 保存有效用户

例如枚举出:

adminjohnmary

保存到:

users.txt

4. 爆破 POP3

hydra -L users.txt -P passwords.txt pop3://<target>

5. 登录 POP3 读取邮件

nc -nv <target> 110
USER johnPASS password123LISTRETR 1RETR 2

6. 提取敏感信息

如果邮件里发现:

Your temporary SSH password is: Welcome123

尝试 SSH登录:

ssh john@<target>

十六、常见组合拳

邮件服务一般不是孤立看的,要和其他服务组合。

1. SMTP 枚举用户 + SSH 爆破

smtp-user-enum -M VRFY -U users.txt -t <target>hydra -L valid-users.txt -P passwords.txt ssh://<target>

2. SMTP 枚举用户 + POP3 爆破

smtp-user-enum -M RCPT -U users.txt -t <target>hydra -L valid-users.txt -P passwords.txt pop3://<target>

3. POP3 读邮件 + Web 登录

邮件里可能出现:

Web portal: http://intranet.localUsername: johnPassword: Password123

然后尝试登录 Web 后台。

4. 邮件中发现内部域名

如果邮件或 banner 中出现:

mail.example.localdev.example.localintranet.example.local

记得加入 /etc/hosts:

echo \"<target> example.local dev.example.local intranet.example.local\" | sudo tee -a /etc/hosts

然后访问对应站点。

十七、常用命令速查

nmap 枚举邮件服务

nmap -sC -sV -p25,110,143,465,587,993,995 <target>

连接 SMTP

nc -nv <target> 25

SMTP 用户枚举

smtp-user-enum -M VRFY -U users.txt -t <target>smtp-user-enum -M EXPN -U users.txt -t <target>smtp-user-enum -M RCPT -U users.txt -t <target>

检查开放中继

nmap --script smtp-open-relay -p25 <target>

爆破 SMTP

hydra -L users.txt -P passwords.txt smtp://<target>hydra -L users.txt -P passwords.txt -s 587 smtp://<target>hydra -L users.txt -P passwords.txt -s 465 -S smtp://<target>

连接 POP3

nc -nv <target> 110

POP3 登录命令

USER usernamePASS passwordLISTRETR 1QUIT

爆破 POP3

hydra -L users.txt -P passwords.txt pop3://<target>hydra -L users.txt -P passwords.txt -s 995 -S pop3://<target>

SSL 连接

openssl s_client -connect <target>:465openssl s_client -connect <target>:995openssl s_client -connect <target>:993

十八、OSCP 记忆口诀

可以把 SMTP / POP3 的攻击思路记成一句话:

SMTP 先问有没有这个人,POP3 再看这个人邮箱里有什么。

更完整一点:

SMTP 枚举用户,POP3/IMAP 读取邮件。拿到邮箱密码后,优先找 SSH、Web、FTP、数据库和内部域名信息。

十九、总结

在 OSCP 中,SMTP 和 POP3 的攻击并不复杂,关键是形成固定流程。

遇到 SMTP:

  • 看 banner
  • 识别版本
  • 尝试 VRFY / EXPN / RCPT
  • 枚举用户名
  • 检查开放中继
  • 尝试认证爆破

遇到 POP3:

  • 尝试登录
  • 爆破弱口令
  • 读取邮件
  • 提取凭据和内部信息
  • 尝试横向使用这些信息

邮件服务的本质价值是信息收集。它经常不是终点,但很可能是通往 SSH、Web 后台或提权路径的关键跳板。

本篇文章主要介绍了smtp/pop3邮件服务器攻击思路的一个总结,在下一篇中将进行靶场实战演示这些攻击的组合利用。敬请关注!!!


OSCP中SMTP/POP3邮件服务攻击思路与实战总结(上)" 网络安全文章

OSCP中SMTP/POP3邮件服务攻击思路与实战总结(上)"

本文系统总结了OSCP渗透测试中SMTP/POP3邮件服务的攻击方法论,详细阐述了端口识别、用户枚举、认证爆破、邮件读取等核心攻击流程。文章提供了smtp-user-enum、Hydra等工具的具体使用命令,并给出了典型的攻击组合拳实战案例,帮助渗透测试人员快速获取系统用户名、密码凭据等关键信息。
CVE-2026-54665:ApacheNiFi中的预认证主机头注入漏洞" 网络安全文章

CVE-2026-54665:ApacheNiFi中的预认证主机头注入漏洞"

CVE-2026-54665是ApacheNiFi中的预认证主机头注入漏洞,攻击者可通过X-Forwarded-Host或X-ProxyHost头操控OAuth2重定向URI等关键参数。该漏洞源于2025年重构时误删主机允许列表验证机制,影响0.0.1至2.9.0版本,在启用OIDC时可能导致账户接管(CVSS8.1)。官方已在2.10.0版本通过NIFI-15953修复,建议用户立即升级并验证代理配置。
别一条条看了!我把Burp流量全喂给AI,自动标出越权漏洞" 网络安全文章

别一条条看了!我把Burp流量全喂给AI,自动标出越权漏洞"

本文介绍了一种利用AI自动检测越权漏洞的方法,通过将Burp流量导出并预处理后喂给大语言模型进行批量分析。方案包含三个步骤:导出Burp流量为XML、Python脚本过滤静态资源并格式化数据、使用设计好的Prompt让AI识别身份参数和响应差异。相比传统手工测试,该方法能有效处理UUID等复杂参数,理解业务语义,案例显示在40分钟内从6000条流量中准确识别出12个真实漏洞。文章还对比了AI与Autorize工具的优劣,并强调了隐私风险和验证必要性。
循环工程:教会AI智能体从自己的错误中学习" 网络安全文章

循环工程:教会AI智能体从自己的错误中学习"

循环工程是一种构建AI编程工作流的方法,通过规划、行动、观察、调整的持续迭代过程,使AI智能体能够从错误中学习并改进代码。该方法强调小步行动、可靠验证和明确停止规则,包含测试驱动、编译器驱动等五种常见模式。文章提出从狭窄任务开始、明确验证方法、人类参与判断等最佳实践,帮助团队实现安全高效的AI辅助编程。
评论:0   参与:  0