当前位置: 首页 > 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.dtcms.com/a/329366.html

相关文章:

  • pt-online-schema-change 全解析:MySQL 表结构变更的安全之道
  • 编程的几点感悟
  • 【工具】雀语queyu文件批量下载 文档内容复刻导出
  • LeetCode 面试经典 150_数组/字符串_整数转罗马数字(18_12_C++_中等)(模拟)(对各位进行拆解)
  • 地球磁层全球MHD模型中模拟Dst指数的半经验方法
  • 在RHEL 9.X上安装 Docker最新版(28.3.3)
  • 嵌入式|VNC实现开发板远程Debian桌面
  • Spring 源码学习(十)—— DispatcherServlet
  • 专题:2025抖音电商与微短剧行业研究报告|附150+份报告PDF汇总下载
  • 小迪23年-32~40——java简单回顾
  • Hive 创建事务表的方法
  • 机器学习-----DBSCAN算法
  • 进阶向:Python编写自动化邮件发送程序
  • C++多态:理解面向对象的“一个接口,多种实现”
  • [AXI5]AXI协议中awsize和awlen在Vector Atomic地址膨胀中的作用
  • PCIE 配置空间 拓展能力 定义
  • Linux编程 —— framebuffer
  • AJAX学习(2)
  • AI 创作系列(30)海狸 IM:小而全、易二开、快迭代
  • 八爪鱼和影刀的区别和优缺点
  • 【题解】[CQOI2006] 洛谷P4196 凸多边形 /【模板】半平面交
  • AI时代程序员的进化:从代码工人到创意架构师-优雅草卓伊凡引言:AI浪潮下的职业重构
  • Celery在Django中的应用
  • 排序总结---保研机试极限复习
  • 亚马逊聚焦战略2.0:从资源分散到价值聚焦的商业重构逻辑
  • 北京JAVA基础面试30天打卡09
  • Java面试宝典:ZGC
  • 【自动化运维神器Ansible】playbook主机清单变量深度解析:主机变量与组变量的实战应用
  • InfluxDB数据恢复
  • 在JVM跑JavaScript脚本 | Oracle GraalJS 简介与实践