美文网首页
linux 提权-Crontab提权

linux 提权-Crontab提权

作者: CSeroad | 来源:发表于2021-01-12 18:33 被阅读0次

    前言

    记录一下linux提权系列的Crontab计划任务提权的学习过程。

    crontab 命令

    crontab命令用来定期执行程序。

    -e   编辑当前的crontab文件,默认保存在/var/spool/cron/用户名下
    -r   删除目前的时程表
    -l   列出目前的时程表
    

    语法格式

    分 时 日 月 周 需要执行的命令
    
    分:0~59
    时:0~23
    日:1~31
    月:1~12
    周:0~6 #0代表周日
    *:(星号)代表取值范围中的每一个数字
    -:(减号)连续区间表达式,想要代表1~7,则需要写成1-7
    /:(斜杠)表示每x个。例如想在每10分钟执行一次,则在分的位置写:*/10
    ,:(逗号)表示多个取值。如果想在1点,3点,5点执行一次,则在时的位置写:1,3,5
    

    如:

    */2 * * * * echo `date` >> /tmp/stu01
    

    表示每两分钟输出时间到/tmp/stu01文件。

    image.png

    /var/spool/cron/user 用来区分每个用户自己的执行计划

    而 /etc/crontab 表示系统执行计划,需要在五个*后面加上用户
    如编辑/etc/crontab 文件

    image.png

    如添加

    */1 * * * * root  ls />> /tmp/cron
    

    表示每分钟执行ls命令并输出到/tmp/cron 文件。

    其余关于计划任务的文件

    /etc/cron.deny   表示只拒绝哪些用户不能他用crontab,默认存在空文件
    /etc/cron.allow  表示只允许哪些用户使用crontab
    

    漏洞介绍

    Crontab通常以root权限运行。如果可以成功篡改在定时任务执行的任何脚本或二进制文件,那么我们可以使用root权限执行任意代码。

    漏洞利用

    假如root用户配置不当,在/etc/crontab文件创建了一个计划任务。

    image.png

    意为每分钟执行test.sh文件并输出到/tmp/test.txt文件。
    下载 pspy工具 到目标环境。
    该工具无需root权限即可监听进程。

    image.png

    监听发现该指令以root权限运行。
    查看该test.sh文件以cseroad用户身份运行。

    image.png

    我们可以通过覆盖test.sh文件提升为root权限。

    echo "cp /bin/bash /tmp/bash; chmod +s /tmp/bash" >> test.sh
    

    2 分钟后,tmp目录下会创建出SUID权限的bash。

    image.png

    /tmp/bash -p 即可获取root权限

    image.png

    总结

    crontab计划任务不要写到/etc/crontab文件里,而是通过crontab -e去创建,让他写到默认的/var/spool/cron下。

    参考资料

    http://www.361way.com/crontab-privilege/5958.html

    相关文章

      网友评论

          本文标题:linux 提权-Crontab提权

          本文链接:https://www.haomeiwen.com/subject/yodfaktx.html