Silver Platter TryHackMe
字数 3725 2025-10-26 18:21:34

TryHackMe: Silver Platter 渗透测试实战教学指南

文档版本: 1.0
目标读者: 对渗透测试、Web安全有基本了解的网络安全学习者
难度等级: 初级至中级

一、 实验目标与概述

本教学文档旨在复现并详细讲解TryHackMe房间“Silver Platter”的完整渗透测试过程。通过本次实战,您将学习到:

  1. 信息收集:使用端口扫描和目录枚举技术发现目标服务。
  2. 漏洞识别:根据服务指纹寻找相关的公开漏洞(CVE)。
  3. 漏洞利用:利用身份验证绕过漏洞获取系统初始访问权限。
  4. 权限提升:通过分析用户组权限和系统日志,实现横向移动和提权至root。

目标机器是一个运行着存在已知漏洞的Silverpeas协作平台(开源软件)的Linux系统。

二、 环境与工具准备

在开始之前,请确保您拥有以下环境与工具:

  • 环境: 一个已连接到TryHackMe网络(或目标网络)的Kali Linux或类似渗透测试系统。
  • 目标IP: 假设为 10.201.120.18(请根据实际目标替换)。
  • 必要工具
    • nmap: 端口扫描。
    • dirsearch / gobuster: Web目录和文件枚举。
    • cewl: 根据网站内容生成定制密码字典。
    • hydra: 进行在线密码爆破。
    • 浏览器(如Firefox): 手动测试Web应用。

三、 渗透测试详细步骤

步骤 1: 信息收集 - 端口扫描

操作: 使用nmap对目标进行全端口扫描,以发现开放的服务。
命令:

nmap -sS -sV -p- 10.201.120.18

预期结果与关键点分析:

  • 22/tcp (SSH): 安全外壳协议,用于远程登录。这是后续获取稳定shell的通道。
  • 80/tcp (HTTP): 标准的Web服务。初步访问发现已被黑客入侵(Defaced),这可能是一个干扰项或提供线索。
  • 8080/tcp (HTTP-Alt): 另一个Web服务端口。初始访问返回404,需要进一步探测。

教学要点: 永远不要只扫描默认的少量端口。全端口扫描能发现像8080、8443这样常用于开发、测试或管理后台的服务。

步骤 2: Web服务枚举 - 目录扫描

操作: 针对8080端口的Web服务进行目录和文件枚举,以发现隐藏的入口点。
命令:

dirsearch -u 'http://10.201.120.18:8080/' -e php,html,txt,js,json -t 30

关键发现与分析:

  • 扫描结果中出现了多个指向 /noredirect.html 的302重定向,例如:
    • /console/...
    • /console/login/LoginForm.jsp
  • 最重要的是发现了 /silverpeas 路径。这直接指明了目标正在运行 Silverpeas 协作平台。
  • 在80端口的页面上,通过查看contact信息或页面源代码,发现了一条关键线索:项目经理的用户名为 scr1ptkiddy

教学要点

  1. 目录枚举是Web渗透的核心:许多应用的管理后台、API接口或配置文件都隐藏在深层目录中。
  2. 关注重定向:302重定向往往意味着访问被引导至登录页,这确认了该路径是需要认证的入口。
  3. 信息关联:将80端口发现的用户名scr1ptkiddy与8080端口发现的silverpeas路径关联起来,构成了攻击面。

步骤 3: 漏洞识别与利用 - Silverpeas 身份验证绕过

操作: 尝试利用Silverpeas的已知漏洞进行未授权访问。

  1. 初始尝试 - 密码爆破

    • 使用cewl爬取80端口网站内容,生成定制密码字典。
      cewl http://silverplatter.thm > passwords.txt
      
    • 使用hydrascr1ptkiddy用户进行密码爆破。
      hydra -l scr1ptkiddy -P passwords.txt silverplatter.thm -s 8080 http-post-form "/silverpeas/AuthenticationServlet:Login=^USER^&Password=^PASS^&DomainId=0:F=Login or password incorrect"
      
    • 结果: 爆破失败。这促使我们寻找非暴力的漏洞。
  2. 关键漏洞利用 - CVE-2024-36042

    • 漏洞描述: Silverpeas CRM 6.3及之前版本存在身份验证绕过漏洞。攻击者可以通过构造特定的HTTP请求,在不提供正确密码的情况下登录系统。
    • 利用方法
      • 访问登录页面: http://10.201.120.18:8080/silverpeas/defaultLogin.jsp
      • 尝试使用已知用户名scr1ptkiddy和任意密码登录,同时使用Burp Suite等工具拦截登录请求。
      • 核心技巧: 在拦截到的POST请求数据中,直接删除Password参数,然后转发请求。
      • 请求示例(修改前)
        Login=scr1ptkiddy&Password=anything&DomainId=0
        
      • 请求示例(修改后,利用漏洞)
        Login=scr1ptkiddy&DomainId=0
        
    • 预期结果: 系统由于漏洞逻辑缺陷,在缺少密码参数时错误地认为认证成功,从而登录到scr1ptkiddy的用户面板。

教学要点

  • CVE知识库的重要性: 遇到知名软件/框架时,第一时间搜索其公开漏洞是最高效的途径。
  • 漏洞利用的灵活性: 并非所有漏洞都有现成的EXP。理解漏洞原理(如参数处理逻辑错误)后,可以手动构造请求进行利用。

步骤 4: 初始访问与横向移动

操作: 在Silverpeas平台内寻找更多凭据,以获取SSH访问权限。

  1. 内部信息收集

    • 登录成功后,浏览平台内部功能。文中提到查看了notification和用户列表。
    • 关键发现: 发现另一个用户tyler(经理角色),并且平台内部提供了该用户的访问密码(可能是用于登录某些设备或服务的备注信息)。
  2. 获取SSH访问

    • 使用获得的tyler用户名和密码,通过SSH登录到目标服务器。
    ssh tyler@10.201.120.18
    
    • 结果: 成功获得一个低权限的交互式shell。可以执行ls命令,并在当前目录或用户主目录下找到user.txt,读取第一个flag。

教学要点横向移动: 获取一个用户的权限后,不应停止。应继续在应用内部、配置文件、数据库或笔记中寻找其他用户的凭据,以扩大控制范围。

步骤 5: 权限提升 - 从 tyler 到 root

操作: 分析当前用户权限,寻找提权路径。

  1. 检查当前用户权限

    • 执行id命令,查看tyler所属的用户组。
      id
      # 输出示例: uid=1002(tyler) gid=1002(tyler) groups=1002(tyler),4(adm)
      
    • 关键发现tyler用户属于adm组。
  2. 理解 adm 组权限

    • adm组的主要权限是读取系统日志文件(如/var/log/auth.log, /var/log/syslog)。
    • 查看adm组有哪些成员: grep '^adm:' /etc/group。确认tylertim都在该组中。
  3. 利用日志文件提权

    • 由于tyler可以读取系统日志,而SSH认证过程会被记录在/var/log/auth.log中。
    • 搜索与tim用户相关的日志,特别是他使用sudosu的命令记录,可能会泄露密码或敏感信息。
    • 命令
      grep -i 'tim' /var/log/auth.log
      # 或者更广泛地搜索
      grep -ir 'password' /var/log/ 2>/dev/null | grep -i tim
      
    • 关键发现(根据文章推断): 在日志中发现tyler用户曾经使用sudo su命令切换到了root用户。这意味着tyler本身已经拥有sudo权限。
  4. 最终提权

    • 检查tylersudo权限:
      sudo -l
      
    • 结果: 很可能显示tyler可以以root身份执行所有命令(如(ALL:ALL) ALL)。
    • 直接提权至root:
      sudo su
      
    • 验证权限: 执行whoami,返回root。现在可以访问系统上的任何文件,包括/root/root.txt,读取最终的flag。

教学要点

  • Linux组权限审计: 理解每个标准用户组(如adm, lxd, docker)的权限是提权的关键。adm组权限容易被忽视。
  • 日志中的秘密: 系统日志可能包含密码、命令历史等敏感信息,是提权的重要来源。
  • sudo -l 命令: 这是渗透测试中必须执行的步骤,它能直接显示当前用户是否可以通过sudo提权。

四、 总结与知识点梳理

本次渗透测试流程清晰,涵盖了现代Web应用渗透的典型阶段:

阶段 使用技术/工具 关键知识点
信息收集 nmap, dirsearch 全端口扫描;Web目录/路径枚举;从页面源码中提取敏感信息(用户名)。
漏洞分析 搜索引擎、CVE数据库 根据服务指纹(Silverpeas)快速定位公开漏洞(CVE-2024-36042)。
漏洞利用 浏览器、Burp Suite 理解漏洞原理并手动修改HTTP请求(删除密码参数)实现身份验证绕过。
后渗透/横向移动 SSH 在已攻破的应用内部寻找其他用户的凭据,实现权限扩展。
权限提升 id, grep, sudo -l 分析Linux用户组权限(adm);检查系统日志寻找敏感信息;利用sudo配置不当直接提权。

核心收获: 成功的渗透测试依赖于细致的信息收集、对漏洞原理的深刻理解以及系统性的权限提升思路。切忌在发现一个入口点后就停止探索,应持续挖掘,直到获得最高权限。


免责声明: 本文档仅用于网络安全教学和研究目的。请勿将文中所述技术用于任何非法活动。使用者需遵守《中华人民共和国网络安全法》及相关法律法规。

TryHackMe: Silver Platter 渗透测试实战教学指南 文档版本: 1.0 目标读者: 对渗透测试、Web安全有基本了解的网络安全学习者 难度等级: 初级至中级 一、 实验目标与概述 本教学文档旨在复现并详细讲解TryHackMe房间“Silver Platter”的完整渗透测试过程。通过本次实战,您将学习到: 信息收集 :使用端口扫描和目录枚举技术发现目标服务。 漏洞识别 :根据服务指纹寻找相关的公开漏洞(CVE)。 漏洞利用 :利用身份验证绕过漏洞获取系统初始访问权限。 权限提升 :通过分析用户组权限和系统日志,实现横向移动和提权至root。 目标机器是一个运行着存在已知漏洞的Silverpeas协作平台(开源软件)的Linux系统。 二、 环境与工具准备 在开始之前,请确保您拥有以下环境与工具: 环境 : 一个已连接到TryHackMe网络(或目标网络)的Kali Linux或类似渗透测试系统。 目标IP : 假设为 10.201.120.18 (请根据实际目标替换)。 必要工具 : nmap : 端口扫描。 dirsearch / gobuster : Web目录和文件枚举。 cewl : 根据网站内容生成定制密码字典。 hydra : 进行在线密码爆破。 浏览器(如Firefox): 手动测试Web应用。 三、 渗透测试详细步骤 步骤 1: 信息收集 - 端口扫描 操作: 使用 nmap 对目标进行全端口扫描,以发现开放的服务。 命令: 预期结果与关键点分析: 22/tcp (SSH) : 安全外壳协议,用于远程登录。这是后续获取稳定shell的通道。 80/tcp (HTTP) : 标准的Web服务。初步访问发现已被黑客入侵(Defaced),这可能是一个干扰项或提供线索。 8080/tcp (HTTP-Alt) : 另一个Web服务端口。初始访问返回404,需要进一步探测。 教学要点 : 永远不要只扫描默认的少量端口。全端口扫描能发现像8080、8443这样常用于开发、测试或管理后台的服务。 步骤 2: Web服务枚举 - 目录扫描 操作: 针对8080端口的Web服务进行目录和文件枚举,以发现隐藏的入口点。 命令: 关键发现与分析: 扫描结果中出现了多个指向 /noredirect.html 的302重定向,例如: /console/... /console/login/LoginForm.jsp 最重要的是发现了 /silverpeas 路径。这直接指明了目标正在运行 Silverpeas 协作平台。 在80端口的页面上,通过查看 contact 信息或页面源代码,发现了一条关键线索:项目经理的用户名为 scr1ptkiddy 。 教学要点 : 目录枚举是Web渗透的核心 :许多应用的管理后台、API接口或配置文件都隐藏在深层目录中。 关注重定向 :302重定向往往意味着访问被引导至登录页,这确认了该路径是需要认证的入口。 信息关联 :将80端口发现的用户名 scr1ptkiddy 与8080端口发现的 silverpeas 路径关联起来,构成了攻击面。 步骤 3: 漏洞识别与利用 - Silverpeas 身份验证绕过 操作: 尝试利用Silverpeas的已知漏洞进行未授权访问。 初始尝试 - 密码爆破 : 使用 cewl 爬取80端口网站内容,生成定制密码字典。 使用 hydra 对 scr1ptkiddy 用户进行密码爆破。 结果 : 爆破失败。这促使我们寻找非暴力的漏洞。 关键漏洞利用 - CVE-2024-36042 : 漏洞描述 : Silverpeas CRM 6.3及之前版本存在身份验证绕过漏洞。攻击者可以通过构造特定的HTTP请求,在不提供正确密码的情况下登录系统。 利用方法 : 访问登录页面: http://10.201.120.18:8080/silverpeas/defaultLogin.jsp 尝试使用已知用户名 scr1ptkiddy 和任意密码登录,同时使用Burp Suite等工具拦截登录请求。 核心技巧 : 在拦截到的POST请求数据中, 直接删除 Password 参数 ,然后转发请求。 请求示例(修改前) : 请求示例(修改后,利用漏洞) : 预期结果 : 系统由于漏洞逻辑缺陷,在缺少密码参数时错误地认为认证成功,从而登录到 scr1ptkiddy 的用户面板。 教学要点 : CVE知识库的重要性 : 遇到知名软件/框架时,第一时间搜索其公开漏洞是最高效的途径。 漏洞利用的灵活性 : 并非所有漏洞都有现成的EXP。理解漏洞原理(如参数处理逻辑错误)后,可以手动构造请求进行利用。 步骤 4: 初始访问与横向移动 操作: 在Silverpeas平台内寻找更多凭据,以获取SSH访问权限。 内部信息收集 : 登录成功后,浏览平台内部功能。文中提到查看了 notification 和用户列表。 关键发现 : 发现另一个用户 tyler (经理角色),并且平台内部 提供了该用户的访问密码 (可能是用于登录某些设备或服务的备注信息)。 获取SSH访问 : 使用获得的 tyler 用户名和密码,通过SSH登录到目标服务器。 结果 : 成功获得一个低权限的交互式shell。可以执行 ls 命令,并在当前目录或用户主目录下找到 user.txt ,读取第一个flag。 教学要点 : 横向移动 : 获取一个用户的权限后,不应停止。应继续在应用内部、配置文件、数据库或笔记中寻找其他用户的凭据,以扩大控制范围。 步骤 5: 权限提升 - 从 tyler 到 root 操作: 分析当前用户权限,寻找提权路径。 检查当前用户权限 : 执行 id 命令,查看 tyler 所属的用户组。 关键发现 : tyler 用户属于 adm 组。 理解 adm 组权限 : adm 组的主要权限是 读取系统日志文件 (如 /var/log/auth.log , /var/log/syslog )。 查看 adm 组有哪些成员: grep '^adm:' /etc/group 。确认 tyler 和 tim 都在该组中。 利用日志文件提权 : 由于 tyler 可以读取系统日志,而SSH认证过程会被记录在 /var/log/auth.log 中。 搜索与 tim 用户相关的日志,特别是他使用 sudo 或 su 的命令记录,可能会泄露密码或敏感信息。 命令 : 关键发现(根据文章推断) : 在日志中发现 tyler 用户曾经使用 sudo su 命令切换到了root用户。这意味着 tyler 本身已经拥有 sudo 权限。 最终提权 : 检查 tyler 的 sudo 权限: 结果 : 很可能显示 tyler 可以以root身份执行所有命令(如 (ALL:ALL) ALL )。 直接提权至root: 验证权限: 执行 whoami ,返回 root 。现在可以访问系统上的任何文件,包括 /root/root.txt ,读取最终的flag。 教学要点 : Linux组权限审计 : 理解每个标准用户组(如 adm , lxd , docker )的权限是提权的关键。 adm 组权限容易被忽视。 日志中的秘密 : 系统日志可能包含密码、命令历史等敏感信息,是提权的重要来源。 sudo -l 命令 : 这是渗透测试中 必须执行 的步骤,它能直接显示当前用户是否可以通过sudo提权。 四、 总结与知识点梳理 本次渗透测试流程清晰,涵盖了现代Web应用渗透的典型阶段: | 阶段 | 使用技术/工具 | 关键知识点 | | :--- | :--- | :--- | | 信息收集 | nmap , dirsearch | 全端口扫描;Web目录/路径枚举;从页面源码中提取敏感信息(用户名)。 | | 漏洞分析 | 搜索引擎、CVE数据库 | 根据服务指纹(Silverpeas)快速定位公开漏洞(CVE-2024-36042)。 | | 漏洞利用 | 浏览器、Burp Suite | 理解漏洞原理并手动修改HTTP请求(删除密码参数)实现身份验证绕过。 | | 后渗透/横向移动 | SSH | 在已攻破的应用内部寻找其他用户的凭据,实现权限扩展。 | | 权限提升 | id , grep , sudo -l | 分析Linux用户组权限( adm );检查系统日志寻找敏感信息;利用sudo配置不当直接提权。 | 核心收获 : 成功的渗透测试依赖于细致的信息收集、对漏洞原理的深刻理解以及系统性的权限提升思路。切忌在发现一个入口点后就停止探索,应持续挖掘,直到获得最高权限。 免责声明 : 本文档仅用于网络安全教学和研究目的。请勿将文中所述技术用于任何非法活动。使用者需遵守《中华人民共和国网络安全法》及相关法律法规。