当前位置: 首页 > news >正文

PG靶机 - PayDay

一、 初步侦察与服务探测

1.1 端口扫描与服务识别

首先,对目标主机 192.168.163.39 进行一次全面的端口扫描,以识别其上运行的各项服务。

sudo nmap 192.168.163.39 -p- --min-rate=5000 -A


图 1: Nmap 扫描结果,显示开放 80、445 和 995 等端口

扫描结果显示,目标主机开放了多个端口,包括 HTTP (80)、SMB (445) 和 POP3S (995)。我们将从最常见的攻击面——Web 服务和 SMB 服务入手。

1.2 服务枚举

首先对 SMB 服务进行信息枚举,但并未发现可利用的共享或敏感信息。


图 2: SMB 枚举未发现有用信息

接下来,将注意力转向 80 端口的 Web 服务。访问该网站,发现其运行的是一个名为 CS-Cart 的电子商务平台。页面上有一个管理员登录框,抱着试一试的心态,输入了常见的弱口令 admin:admin,竟意外登录成功。


图 3: 成功使用弱口令 admin:admin 登录后台

二、 CS-Cart 漏洞利用与初始访问

2.1 漏洞识别与验证

在获得管理员权限后,我们在后台进行了初步探索,但未能直接找到显示当前 CS-Cart 具体版本号的信息。因此,我们转向搜索 CS-Cart 的历史漏洞,并发现一个需要后台管理员权限的远程代码执行(RCE)漏洞,这与我们当前的处境完美契合。

图 4: 发现 CS-Cart 的一个已授权 RCE 漏洞

查阅该漏洞的详细信息,其利用方式是通过后台的模板编辑功能,上传一个包含后门代码的 .phtml 文件,从而绕过文件上传限制,实现代码执行。


图 5: 漏洞利用详情描述

2.2 漏洞利用获取 Webshell

根据漏洞描述,我们导航到后台的模板编辑页面,并上传了一个预先准备好的 PHP 反弹 Shell,将其命名为 .phtml 后缀。


图 6: 在模板编辑页面上传 .phtml 后门文件

系统提示文件上传成功,这表明漏洞确实存在且可被利用。


图 7: 确认后门文件已成功上传

接着,在浏览器中访问该后门文件的路径,同时在本地启动 Netcat 监听。成功接收到反弹 Shell,获得了一个 Web 服务(www-data)的普通用户权限。


图 8: 成功获取 www-data 权限的 Shell

三、 信息收集与权限提升

3.1 用户枚举与凭据搜寻

在获得的初始 Shell 中,首先查看系统用户列表,发现一个名为 patrick 的普通用户,这成为了我们横向移动的目标。


图 9: 发现系统用户 patrick

为了获取 patrick 的登录凭据,我们回到 Web 应用的目录,寻找可能包含敏感信息的配置文件。在 Web 应用根目录下的 config.php 文件中,我们找到了数据库的连接凭证,用户名为 root,密码也为 root


图 10: 在配置文件中发现数据库凭证

数据库中通常存储着用户信息。利用找到的凭证连接到数据库,在用户表中发现了一个名为 customer 的用户。其密码是加密存储的,看起来像是 MD5 哈希。


图 11: 数据库中发现 customer 用户的 MD5 密码哈希

通过在线 MD5 解密工具,我们破解出该哈希对应的明文密码为 customer


图 12: 成功解密出密码为 customer

3.2 凭据猜测与横向移动

至此,我们观察到一个有趣的模式:

  • 管理员 admin 的密码是 admin
  • 数据库用户 customer 的密码是 customer

基于这个规律,我们有理由大胆猜测,系统用户 patrick 的密码可能也是 patrick吗?尝试使用此凭据进行 SSH 登录,果然成功了!


图 13: 成功使用猜测的密码登录 patrick 用户

四、 Sudo 提权至 Root

成功登录 patrick 用户后,我们立即检查其 sudo 权限。


图 14: patrick 用户拥有完全的 sudo 权限

sudo -l 的输出显示,用户 patrick 拥有 (ALL : ALL) ALL 权限,这意味着他可以以任何用户(包括 root)的身份执行任何命令,且无需输入密码。

这使得提权变得轻而易举。我们直接执行 sudo su root 命令切换到 root 用户。

sudo su root


图 15: 成功提权至 root

成功获取 root 权限,至此完成了对目标主机的完全控制。

http://www.xdnf.cn/news/1295065.html

相关文章:

  • 当img占不满div时,图片居中显示,两侧加当前图片模糊效果
  • 【Docker项目实战】使用Docker部署todo任务管理器
  • javaswing json格式化工具
  • 【2025】Datawhale AI夏令营-多模态RAG-Task3笔记-解决方案进阶
  • Redis7学习——Redis的十大类型String、List、Hash、Set、Zset
  • 模式设计:策略模式及其应用场景
  • Linux学习-UI技术
  • Python【算法中心 03】Docker部署Django搭建的Python应用流程实例(Docker离线安装配置+Django项目Docker部署)
  • Coze Studio 概览(十)--文档处理详细分析
  • 51单片机-51单片机最小系统
  • Java Stream API 中常用方法复习及项目实战示例
  • 普通电脑与云电脑的区别有哪些?全面科普
  • Apifox精准定义复杂API参数结构(oneOf/anyOf/allOf)
  • Spring Boot项目调用第三方接口的三种方式比较
  • Spring Boot初级概念及自动配置原理
  • LeetCode215~ 234题解
  • 【代码随想录day 19】 力扣 450.删除二叉搜索树中的节点
  • PyTorch简介
  • electron进程间通信- 从渲染进程到主进程
  • [量化交易](1获取加密货币的交易数据)
  • 从0开始跟小甲鱼C语言视频使用linux一步步学习C语言(持续更新)8.13
  • C#自定义日期时间选择器
  • C++中的`auto`与`std::any`:功能、区别与选择建议
  • ResourcelessTransactionManager的作用
  • 嵌入式第二十七天(UI相关技术(framebuffer))
  • 深度学习·ExCEL
  • 基于js和html的点名应用
  • Jenkins一直无法启动,怎么办?
  • C# 反射入门:如何获取 Type 对象?
  • Android平台RTSP播放器选型指南:从开源方案到跨平台低延迟专业SDK