crontab提权

crontab介绍

Linux crontab 是用来定期执行程序的命令, crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来立即执行。

 suid介绍

suid是一种特殊权限,设置了suid的程序文件,在用户执行该程序时,用户的权限是该程序文件属主的权限。

添加suid权限:chmod u+s filename

  • 只有可以执行的二进制程序文件才能设定SUID权限,非二进制文件设置SUID权限没任何意义
  • 命令执行者要对该程序文件拥有执行(x)权限
  • 命令执行者在执行该程序时获得该程序文件属主的身份
  • SUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

crontab提权原理

如果特权用户通过crontab -e 或者 vim /etc/crontab添加了计划任务,计划任务中存在脚本文件,且其他用户有可写的权限,则我们可以利用计划任务进行提权。

crontab提权演示

查看/etc/crontab下root用户的计划任务

查看/test.sh文件权限

利用其他用户可写权限,向该脚本文件中写入提权操作

运行/tmp/bash

演示