ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux之计划任务提权

2021-11-02 12:32:15  阅读:1032  来源: 互联网

标签:crontab 提权 任务 计划 Linux test bash


目录

一、Crontab介绍

crontab -e 与 vim /etc/crontab

二、Crontab提权

总结


实验环境:ubuntu 20.4

一、Crontab介绍

通过 crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script 脚本。时间间隔的单位可以是分钟、小时、日、月、周的任意组合。

这里看一看crontab 的格式:

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

ubuntu中crontab默认启动了,可以通过下面这条命令查看cron 是否成功的在后台启动,启动了就会自动检测任务执行

ps aux | grep cron

可以通过下面列出存在的计划任务,如下不存在计划任务

crontab -l 

 

接着我们添加一条计划任务,通过crontab -e 打开文件,将计划任务加进去。第一次打开会让我们选择一个默认的编辑器。这里我们添加如下计划任务,意思为每隔一分钟在当前用户的家目录下创建一个1.txt的文件,写好后保存。其任务会自动执行

 然后通过crontab -l 可以列出当前的计划任务,接着每隔一分钟就创建一个1.txt文件。

 ps:计划任务仅在当前用户下有效,各用户的计划任务互不影响。

crontab -e 与 vim /etc/crontab

我们不仅可以通过crontab -e 来添加计划任务也可以通过vim /etc/crontab来添加计划任务

修改/etc/crontab这种方法只有root用户能用(但实际上经测试别的用户也能用,虽然添加任务时显示只读,但是可以强制保存),这种方法更加方便与直接,直接给其他用户设置计划任务,而且还可以指定执行shell等等,
crontab -e这种所有用户都可以使用,普通用户也只能为自己设置计划任务。然后自动写入/var/spool/cron/usename

详细可看——> crontab使用以及/etc/crontab文件和crontab -e命令区别

二、Crontab提权

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

1. root用户添加计划任务

vim /etc/crontab
*/1 * * * *     root    sh /test.sh >> /tmp/test.txt

意思为每隔一分钟执行test.sh脚本文件并输出到 /tmp/test.txt中

 test.sh文件内容如下

#! /bin/bash
echo "hello world! "

漏洞的利用条件就是test.sh其他用户有写权限

环境准备好了,该计划任务也立即生效。我们切换到普通用户,开始进行提权操作

2. pspy检测进程

pspy是一种命令行工具,无需root权限即可监听进程。可以查看其他用户执行的命令、cron作业等。

下载地址:pspy工具 ,点击进行下载

下载完之后,放到linux中,执行./pspy64。我们监测到如下进程,脚本test.sh以root权限运行(UID=0)

 我们查看test.sh的权限,发现普通户用有写入的权限,即我也可以写入

于是我们使用vim /test.sh写入如下命令,脚本的意思为复制/bin/bash到/tmp/bash并赋予SUID权限,这里实际上就是利用的suid提权 ——> Linux下SUID提权方法

cp /bin/bash /tmp/bash; chmod +s /tmp/bash

 保存的时候会提示只读,这里强制保存

:w !sudo tee %

然后接着就会在/tmp下创建一个拥有suid权限的bash文件

进行suid提权

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

总结

如果计划任何中存在root权限执行的脚本,并且脚本其他用户拥有写入权限则可以通过计划任务提权

标签:crontab,提权,任务,计划,Linux,test,bash
来源: https://blog.csdn.net/qq_44159028/article/details/121094075

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有