基础知识:
less : 可以随意浏览文件,而不能做其他操作。该命令长用于查看大型文件和跟踪日志文件。
vim:linux提供的编辑器。
find:linux下的查找工具。
这三个指令都存在配置错误漏洞。sudo漏洞:sudo属于Linux系统的管理指令,通常是以root用户身份运行命令,也允许用户在不需要切换环境的前提下以其他用户的权限运行命令,但普通用户只有在得到许可或者知道root密码才能以root权限执行命令,优点是可以减少root用户的登录和管理时间。
1. 为漏洞复现准备初始环境
场景为:管理员配置了这样一个用户:hyz ALL=/usr/bin/less。
1)复现环境,利用“sudo -i”,输入密码进入root用户。
2)vi进入,编译sudoers文件。
3)在root用户下边加入一个普通用户,并加上ALL=/usr/bin/less这一句命令(红色框框位置),就赋予了一个权限。该命令的意思是只要hyz这个用户在sudo这个指令里用到了less指令,就赋予它root用户的权限,前提条件是需要输入密码。
2.提权
1) 首先切换到普通用户(hyz),然后利用less命令查看passwd文件。
2) 可以看到可以查看到该文件中的东西,但不能做任何修改。
3)此时在普通用户下,想mkdir一个目录,是不能成功的。
4) 然后我们再次进入到passwd这个文件里,输入一串指令“!/bin/bash”,表示强制执行bin目录下的bash文件(强制执行shell文件)。然后回车退出。
5)退出之后,就会看到我们拿到了root权限。原因是他绕过了权限的检测。
6)此时在root权限下,就可以进行mkdir,或者其他的操作。也就是提权拿到了root。
vim和find下的提权:
vim配置错误时,配置时将命令换为 “hyz ALL= /usr/bin/vim”
输入命令: sudo vim -c '!bash',回车。他就会跳转到root用户,也就拿到了权限
find配置错误时,将命令改为 “hyz ALL= /usr/bin/find”。然后在普通用户权限下输入指令:
sudo find /usr/bin -name ls -exec /bin/bash \;
回车就可以提取权限。