您现在的位置是:首页 > 正文

计划任务提权

2024-02-01 00:21:33阅读 2

目录

一.原理

二.利用步骤

1.查看计划任务(cat /etc/crontab)

 2.查找计划任务位置(find/ -name 计划任务名)

​ 3.进入计划任务目录下查看权限

 4.提权

(1)修改计划任务文件(vim 计划任务名)

(2)运行修改后的计划任务 (sudo 计划任务名)

(3)查看属主权限(ls -la 属主名)

(4)运行属主命令(sudo 属主名 -p)

三.总结

 

一.原理

运维人员通常会通过计划任务去执行脚本完成一些日常操作,但若是权限配置不当,往往会被攻击者利用,用来提权。开始计划任务提权前先简单介绍下crontab,crontab是Linux的计划任务,其服务是crond,配置文件为/etc/crontab,可以通过编辑此配置文件配置定期执行的程序或命令,也可以使用crontab命令配置。

计划任务提权总结:在具有root权限的计划任务的文件的目录下创建或编译一个自定义的文件并赋予suid权限,系统在执行该定时任务执行时便会执行我们自定义的具有suid权限的文件,从而进行提权。

配置文件语法如下:

m               h               dom          mon            dow           user          command           

分(0-59)  小时(0-23)   天(1-31)    月(1-12)     天每星期     用户            命令

特殊符号的含义:

*:代表取值范围内的数字;

/:代表“每”;

-:代表从某个数字到某个数字;

,:分开几个离散的文字;

以上字段中除了“command”是每次都必须制定的字段以外,其他字段皆为可选字段,可根据需要进行决定。对于不指定的字段,要用*填补其位置。本实验攻击端通过修改计划任务中的脚本文件将/bin/bash设置为SUID权限且属主为root,执行完之后便可以使用root权限打开baseshell来执行命令。

二.利用步骤

1.查看计划任务(cat /etc/crontab)

如图看到已设置root用户每隔一分钟执行一次cleanup.py脚本。

5d88f84d14c0483c94a29ee8080eb117.png

 2.查找计划任务位置(find/ -name 计划任务名)

命令:find/ -name cleanup.py,查找cleanup.py文件的位置,发现该文件在/home/cleanup目录中。

0323f423342e4246bb64017c855f8c6f.png 3.进入计划任务目录下查看权限

执行命令 cd /home/cleanup,切换至该目录。
再执行命令ls -la cleanup.py,查看该文件权限,发现任意用户都可以对其进行编辑。

1448aa5b257b4b4c88fc1b290b12199f.png

4.提权

(1)修改计划任务文件(vim 计划任务名)

执行命令vim cleanup.py,在cleanup.py文件中添加如下代码,赋予SUID权限

#!/user/bin/env python
import os
import sys
try:
    os.system(‘chmod u+s /bin/bash’)
except:
   sys.exit

此代码是为了给bash命令设置SUID,这样便可利用计划任务将bash命令设置为SUID,用SUID提权即可。添加完毕后按Esc键,输入:wq!强制保存并退出

c27ca6dd31b94058842776c8b4b295dd.png

(2)运行修改后的计划任务 (sudo 计划任务名)

执行命令sudo python cleanup.py,执行该脚本,输入受害主机密码。

(3)查看属主权限(ls -la 属主名)

执行命令ls -la /bin/bash,发现属主的权限由x变成了s,也就是设置了SUID

a40a5fed45df49a981549046dd3881ee.png

(4)运行属主命令(sudo 属主名 -p)

运行命令sudo bash -p,便可以root权限打开一个bash shell,在新开的Shell里执行命令whoami,发现当前权限是root

412da0fe37ad41ac8607d32bc9fc9033.png

三.总结

1.查看计划任务

2.查找计划任务所在位置

3.进入计划任务目录下并查看其权限

4.提权(修改计划任务-运行修改后计划任务-查看新计划任务中属主权限-运行属主命令-提权成功)

 

网站文章

  • java 解析中文xml_java如何解析XML

    java 解析中文xml_java如何解析XML

    DOM方式解析XMLDom解析是将xml文件全部载入到内存,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,与平台无关,java提供的一种基础的解析XML文件的API,理解较简单,但是由于整个文档都需要载入内存,不适用于文档较大时。 (推荐学习:java课程)SAX方式解析XML基于事件驱动,逐条解析,适用于只处理xml数据,不易编码,而且很难同时访问同一个文档中的...

    2024-02-01 00:21:04
  • 编程过程中常见几何数学公式汇总

    1、已知直线上两点求直线的一般式方程已知直线上的两点P1(X1,Y1) P2(X2,Y2), P1 P2两点不重合。则直线的一般式方程AX+BY+C=0中,A B C分别等于:A = Y2 - Y1B = X1 - X2C = X2*Y1 - X1*Y22、过直线外一点P0(x0,y0)的垂线方程:y=(B/A)*(x-x0)+y03、求直线与垂线的交点x=((B^2)...

    2024-02-01 00:20:57
  • C++中的类型转换static_cast、dynamic_cast、const_cast和reinterpret_cast总结

    C++中的类型转换static_cast、dynamic_cast、const_cast和reinterpret_cast总结

    原文:http://www.jb51.net/article/55885.htm这篇文章主要介绍了C++中的类型转换static_cast、dynamic_cast、const_cast和reinterpret_cast总结,需要的朋友可以参考下前言这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中确实经常使用的。俗话

    2024-02-01 00:20:49
  • MySQL LIKE 子句

    MySQL LIKE 子句

    MySQL LIKE 子句 我们知道在 MySQL 中使用 SQL SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。 WHERE 子句中可以...

    2024-02-01 00:20:20
  • 面试题 position有哪些值?有什么作用?

    static:默认值; 不脱离文档流,top,right,bottom,left等属性不生效。 绝对定位:absolute 绝对定位的关键是找对参照物,要成为绝对定位元素的参照物必须满足以下两个条件: 1.参照物和绝对定位元素必须是包含与被包含关系; 2.该参照物必须具有定位属性; 如果找不到满足以上两个条件的父包含块,那么相对于浏览器窗口进行定位。 注:设置了position...

    2024-02-01 00:20:13
  • jQuery高级编程

    jquery高级编程1.jquery入门2.Javascript基础3.jQuery核心技术   3.1 jQuery脚本的结构   3.2 非侵扰事JavaScript   3.3 jQuery框架的结构   3.4 理解Dom和事件   3.5 与其他JavaScript库一起使用jQuery.4.选择和操作Dom元素5.事件处理6.Html表单,数据和AJAX7.动画和特效jQue...

    2024-02-01 00:20:07
  • 证明static 关键字并不能保证线程可见性

    证明static 关键字并不能保证线程可见性

    1.static : 标识这个属性是实例共享的。(也可以称作类变量) 2.volatile:标记该属性是易变的,被修饰的属性被修改后,别的线程每当用到该属性都要重新去读取。 疑惑:static 修饰变...

    2024-02-01 00:20:02
  • 7-3 类的定义和使用

    7-3 类的定义和使用

    定义一个日期类Date,内有数据成员year、month和day,分别代表年、月、日,并若干有成员函数:构造函数用于初始化数据成员,isLeap函数用于闰年的判断。编写主函数:创建日期对象,判断该年是否是闰年。

    2024-02-01 00:19:34
  • react中popover弹窗_移动端控件(三)-气泡(Popover)

    react中popover弹窗_移动端控件(三)-气泡(Popover)

    什么是气泡(Popover/弹出框/弹出式气泡)弹出框(Popovers)是一个瞬态视图,当您点击某个控件或区域时,它会显示在屏幕上其他内容的上方。通常,弹出窗口包括指向其出现位置的箭头。Popove...

    2024-02-01 00:19:28
  • 使用freemarker按模板导出带表格word文档

    使用freemarker按模板导出带表格word文档

    一.制作模板 1.将word文档制作成以下样式,需要替换的内容放占位符,并按照占位符名字替换数据。表格里,使用RR.XXX的形式的占位符。RR表示当前行对象的名字,XXX相当于对象的属性名。写后台的时候,根据这些名将数据存为map,即名字为键值。例子如下: 2.将word另存为xml格式,这里因为项目需要,我将word保存为.xml 2003。然后将xml文件以标签的形式打开,这里我使...

    2024-02-01 00:18:52