Linux中sudo提权

一、原理

sudo在linux用来临时使用其他用户拥有的命令。比如当前用户是test1(普通用户),vi命令拥有者是test2,test1是无法使用vi命令的,但是如果配置了test1可以通过sudo命令使用vi,则test1可以通过“sudo vi”来使用vi命令。要注意的是,使用的时候,实际执行vi命令的用户是test2,如果这时候在vi的命令模式下执行/bin/bash命令,则会打开一个以test2为用户的shell,如果test2刚好是root用户,则打开的就是一个root shell,从而实现提权。
参考:
sudo和suders文件

二、可以用来提权的命令

一般来说,只要是能sudo且可以在执行命令后可以再输入命令的命令,都可以用来提权。比较常见的有如下几个:
vi
more
less
git
nmap

三、提权过程

环境:DC-2靶机,基于Debian3.16,已经拥有一个可以用ssh连接的低权限账户jerry,要提升至root权限。
1.找到可以使用的命令
sudo -l 可以查看当前用户可以使用的sudo命令
在这里插入图片描述
PS:本人修改了该系统sudo配置,使得DC-2只能通过sudo使用这四个命令,实际环境中不一定会这么明显显示可用命令,某些配置也是可以使用这几个命令的,如果对sudo机制不熟悉,可以直接使用sudo+命令 测试是否可用。
2.sudo vi提权
vi是linux中的一个文本编辑器,其在底线命令行模式下,可以执行命令打开一个shell
①输入命令

sudo vi test.txt

在这里插入图片描述

②进入后即为底线命令模式,输入:!/bin/bash,即可打开一个用户为root的shell
在这里插入图片描述
3.sudo more和sudo less提权
more为按页读取文本,当一页未显示完时,可以执行命令打开一个shell

①输入命令(以sudo more演示,sudo less过程一样)

sudo more flag4.txt

注:flag4.txt是当前目录中的一个文件,如果没有这个文件,可以先创建一个,该文件的行数尽量多一点,保证终端中一页无法显示完
在这里插入图片描述
②输入!/bin/bash,即可打开一个用户为root的shell
在这里插入图片描述
3.sudo git提权
sudo git提权与sudo vi类似,不过git使用的是帮助信息未显示完全可以输入命令打开shell

①输入命令

sudo git -p help   #不知道为什么要写成这样,只有这样写才可以

得到如图
在这里插入图片描述
注意:一定要把终端窗口上下拉窄一些,使得回显信息一页无法显示完全
②输入!/bin/bash,即可打开一个用户为root的shell
在这里插入图片描述
4.sudo nmap提权

echo "os.execute('/bin/bash')" > /tmp/shell.nse #将os.execute('/bin/bash')"写入文件shell.nse
sudo nmap --script=/tmp/shell.nse #使用sudo nmap执行脚本shell.nse

五、加固措施

sudo提权其实利用的是linux的一种权限机制,本身并不是系统存在的漏洞,主要还是配置上存在一些问题。
实际应用中,一般不存在单独配置more/less/vi为sudo命令,这三个命令很少会需要用root来执行,git也很少见,更多的情况是管理员直接配置所有普通用户都可以sudo使用root的所有命令或者是/bin、/usr/bin目录下的所有命令,这样也就可以sudo more/less/vi了。如下图
在这里插入图片描述
若sudo -l查看可使用的sudo命令时,显示(ALL) ALL,表示该用户可以sudo使用所有root命令,自然也就包括more/less/vi了。

所以,加固措施是,在配置sudo的时候,排除掉more/less/vi/git等命令

jerry ALL =(root) ALL,!/bin/more,!/usr/bin/less,!/usr/bin/vi,/usr/bin/git

对于确实需要在root下使用的命令,建议切换至root使用。

参考链接
Linux sudo命令和sudoers文件

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值