VulnHub 靶场渗透测试报告:从信息收集到权限提升

一、项目背景

本文以 VulnHub 靶场为授权测试对象,按照正式渗透测试报告的结构,记录从信息收集、服务识别、漏洞验证、获取初始权限到权限提升的完整流程。

相比普通题解,报告更关注测试过程、风险说明、影响范围和修复建议。这样的写法更接近安全服务、渗透测试岗位中的实际交付内容。

二、测试范围

项目 内容
测试对象 VulnHub 靶场主机
测试类型 内网授权渗透测试
攻击机 Kali Linux
测试目标 发现目标主机风险并获取 root 权限
约束说明 仅在本地靶场/授权环境中测试

本文中涉及的 IP 地址均为本地虚拟机环境地址,不针对真实公网目标。

三、信息收集

1. 主机发现

首先使用 arp-scan 在当前网段中发现存活主机:

1
arp-scan -l

发现目标主机后,记录其 IP 地址,并确认攻击机与靶机处于同一 NAT 网络环境。

2. 端口扫描

使用 nmap 对目标进行全端口扫描和服务识别:

1
nmap -sS -sV -sC -p- 192.168.207.133 -oN nmap_full_scan

扫描结果显示目标开放了以下关键端口:

端口 服务 风险关注点
22 SSH 可用于后续远程登录
80 HTTP Web 信息泄露、目录探测
139 NetBIOS/SMB 文件共享枚举
445 SMB 匿名访问、敏感文件泄露

从端口分布来看,目标主机的突破口可能不只在 Web 服务,SMB 文件共享同样值得重点关注。

四、漏洞验证过程

1. Web 服务探测

访问 80 端口后,页面内容较少,没有直接暴露后台入口或可利用功能点。

继续进行目录扫描:

1
dirsearch -u http://192.168.207.133

目录扫描未发现高价值后台路径,因此将重点转向 SMB 服务。

2. SMB 共享枚举

使用 smbmap 枚举目标 SMB 共享:

1
smbmap -H 192.168.207.133

发现存在可读共享目录 wave。继续使用 smbclient 尝试匿名访问:

1
smbclient //192.168.207.133/wave

进入共享目录后发现敏感文件:

1
2
FLAG1.txt
message_from_aveng.txt

使用 get 命令下载文件到本地:

1
2
get FLAG1.txt
get message_from_aveng.txt

3. 敏感信息提取

查看下载文件内容,发现其中包含一段 Base64 编码字符串。解码命令如下:

1
echo "RmxhZzF7V2VsY29tZV9UMF9USEUtVzNTVC1XMUxELUIwcmRlcn0KdXNlcjp3YXZleApwYXNzd29yZDpkb29yK29wZW4K" | base64 --decode

解码后得到有效凭据:

1
2
user: wavex
password: door+open

该问题属于典型的敏感信息泄露:SMB 共享目录权限配置不当,导致认证凭据被未授权读取。

五、获取初始权限

使用上一步获取到的账号密码尝试 SSH 登录:

1
ssh wavex@192.168.207.133

登录成功后,获得普通用户 wavex 权限。此时已经完成从远程信息收集到获取初始 Shell 的过程。

当前权限较低,需要进一步枚举系统信息并寻找权限提升路径。

六、权限提升分析

1. sudo 权限检查

登录后首先检查当前用户可执行的 sudo 命令:

1
sudo -l

如果目标用户存在免密或弱限制 sudo 权限,可能直接形成提权路径。

2. SUID 文件检查

继续检查系统中的 SUID 程序:

1
find / -perm -u=s -type f 2>/dev/null

该命令用于发现以文件所有者权限执行的程序。若某些可利用程序具有 SUID root 权限,可能导致本地提权。

3. 可写文件与敏感脚本排查

进一步检查当前用户可读写的异常文件:

1
find / -perm 0777 -type f 2>/dev/null

在目标环境中发现敏感脚本路径:

1
/usr/share/av/westsidesecret/ififoregt.sh

查看脚本内容:

1
cat /usr/share/av/westsidesecret/ififoregt.sh

脚本中泄露了新的账号凭据。使用该凭据切换用户后,再次检查 sudo 权限:

1
sudo -l

发现该用户可以通过 sudo 执行 /bin/bash,因此可直接提升到 root 权限:

1
sudo /bin/bash

执行后获得 root Shell,完成权限提升。

七、风险评级

风险项 风险等级 说明
SMB 匿名访问 高危 共享目录可被未授权读取
敏感凭据泄露 高危 文件中包含可登录系统的账号密码
系统脚本泄露凭据 高危 普通用户可读取敏感脚本并获取其他账号
sudo 配置不当 高危 用户可通过 sudo 执行 bash 获取 root 权限
Web 暴露面 低危 Web 服务未发现直接利用点,但仍需加固

本次测试的核心风险链路为:

1
SMB 匿名访问 -> 敏感文件泄露 -> SSH 登录 -> 读取敏感脚本 -> sudo 配置不当 -> root 权限

八、修复建议

1. SMB 服务加固

  • 禁止匿名访问 SMB 共享。
  • 对共享目录设置最小权限。
  • 删除共享目录中的账号密码、Flag、备份文件等敏感内容。
  • 定期检查 SMB 暴露的共享目录和访问权限。

2. 凭据安全

  • 不在脚本、文本文件、共享目录中明文保存密码。
  • 对历史泄露账号立即修改密码。
  • 使用强密码策略,避免弱口令和可猜测密码。
  • 对不同服务使用不同密码,降低横向移动风险。

3. sudo 权限收敛

  • 使用 visudo 检查 sudo 配置。
  • 避免允许普通用户直接执行 /bin/bash/bin/shvimless 等可逃逸程序。
  • 仅授予业务必须的命令权限。
  • 对 sudo 操作开启日志审计。

4. 系统侧加固

  • 定期排查全局可写文件。
  • 定期检查 SUID 文件,移除不必要的 SUID 权限。
  • 检查 /home/tmp/var 等目录中的异常脚本。
  • 保留 SSH 登录日志,便于溯源分析。

九、复测结论

按照修复建议处理后,应重新验证以下内容:

  • SMB 共享是否仍允许匿名访问。
  • 敏感文件是否已删除或迁移到安全位置。
  • 泄露账号是否已修改密码或禁用。
  • 普通用户是否仍可通过 sudo 执行高危命令。
  • 是否还能通过原攻击路径获取 root 权限。

若以上路径均无法复现,则本次漏洞链路修复有效。

十、总结

本次靶场渗透测试展示了一条比较完整的内网渗透链路:先通过端口扫描识别 SMB 服务,再利用共享目录权限配置不当读取敏感文件,随后使用泄露凭据登录 SSH,最后通过敏感脚本和 sudo 配置问题完成提权。

从实战角度看,这类问题的危害不在于单个漏洞多复杂,而在于多个“配置不严谨”的点被串联后,会形成完整入侵路径。因此在安全服务工作中,除了验证漏洞本身,更要写清楚攻击链、风险影响和可落地的修复建议。