rbash绕过

作者: const27 分类: All,提权/后渗透 发布时间: 2020-07-03 03:31

参考https://www.dazhuanlan.com/2019/11/30/5de17052dfbec/
https://xz.aliyun.com/t/2333

何为rbash

rbash,是出于安全性考虑的一个功能受限的bash,我在vulnhub dc-2首次接触,他的限制性可能会有如下.

  • cd 切换目录
  • 含有斜杠 / 的命令, 譬如 /bin/sh
  • 设置 PATH ENV 等环境变量
  • 使用 > < 进行重定向
  • binary 的运行. 通常 root 用户会手动创建 /bin/binary_file -> /home/rbash_user/bin/binary_file 的软链接, 限制性地提供部分 binary_file 给 rbash_user 使用 在 bash 下 echo $SHELL, 可以获取当前环境是否是 rbash.

bypass

scp bypass

我在http://www.const27.com/2020/07/02/vulnhub-dc-2/就是用scp绕的

scp命令就是可以通过ssh,将文件在本地与远程之间流动。
所以我们可以先把我们需要的命令通过ssh发送到远端

再从远端通过ssh下载到我们自己的PATH指定目录里

比如我们用这个传个/bin/bash回来,然后bash -p 就绕过rbash了

进入命令自带shell bypass

man,git config help,more,less,vim,vi,ftp,gdb等命令都有自己的shell,我们只需在他们各自的shell中执行/bin/sh即可
一般都是在shell键入!/bin/sh来bypass rbash

下面这种方法也是可行的(似乎仅vim)

:set shell=/bin/bash
:shell

执行上面两个语句,就bypass了

find bypasss

简单概括就是-exec执行一下/bin/bash …

编程语言 bypass

python

如果python都可以用的话,那就更轻松了,os安排一下
似乎pty也行?没试

python -c "import os;os.system('/bin/bash')"

php

php -a 进入php shell
然后执行命令:exec("/bin/bash");

perl

perl -e 'exec "/bin/sh";'

ruby

ruby -e 'exec "/bin/bash"'

cp bypass

直接用cp把/usr/bin里的命令复制过来就行了

直接更改PATH/SHELL变量

键入export -p 查看该用户的变量

如果这俩变量有w权,那么我们可以直接写入来bypass

ssh bypass

原理是通过ssh链接当前IP的当前用户并启动/bin/bash
主要用到了ssh命令的t参数

ssh username@Ip -t "/bin/bash"

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

Leave a Reply

Your email address will not be published. Required fields are marked *

标签云