跳跃 shell - bin/bash - 逃离受限 shell

跳跃 Shell:攻击者如何将受限 Shell 转至 /bin/bash

什么是受限 Shell 以及为什么跳跃 Shell 攻击很重要

受限 shell 用于控制用户可以执行的命令,通常会阻止以下操作 cd、启动新的 shell 或导出环境变量。它们通常部署在 CI/CD 代理或构建环境来限制用户行为。 然而,攻击者正在寻找执行跳转 shell 的方法,这是一种用于逃离受限 shell 环境并获取不受限制的 shell 访问权限的方法,例如 垃圾箱/bash。 一旦进去 it,攻击者拥有完全的命令行控制权,绕过了受限环境的所有限制。

跳转 Shell 的工作原理:从 Restricted 到 bin/bash

跳跃 shell 的目标是利用受限环境中的弱点并触发 shell 逃逸,从而导致 垃圾箱/bash逃逸受限shell攻击的常见技术包括:

$ ls
/bin/bash
$ /bin/bash

If 垃圾箱/bash 是可访问的,这个简单的调用就完成了它。

另一种常用方法:

$ echo "/bin/bash" > run.sh
$ sh run.sh

攻击者还可能利用以下编辑器 vi or :

vi
:set shell=/bin/bash
:shell

这些方法说明了跳跃贝壳是多么容易导致 垃圾箱/bash 执行,有效绕过受限的 shell 保护。

DevOps 中这些攻击的真正风险

在共享 CI/CD 环境,限制shell用于隔离构建并降低风险。但是,当攻击者成功使用跳跃shell并到达 垃圾箱/bash,安全模型崩溃。

风险包括:

  • 未经授权访问环境机密
  • 通过不受限制的权限提升 垃圾箱/bash
  • 篡改构建 pipeline或文物
  • 在 pipeline

逃逸限制壳 垃圾箱/bash 打开了全面系统入侵的大门,这往往是更广泛攻击的第一步 DevSecOps攻击.

监控和检测跳转 Shell 和 bin/bash 转义

为了检测跳转 shell 行为并阻止逃逸限制 shell 尝试,安全团队必须:

  • 记录所有 shell 活动,尤其是 / bin / bash 执行
  • 监控编辑器滥用和脚本使用情况作为 shell 生成向量
  • 跟踪对 shell 配置文件的访问,例如 的.bashrc or .bash_配置文件

行为模式,例如启动 垃圾箱/bash 来自受限环境的威胁应被视为高优先级警报。及早发现可以防止更深层次的横向移动。

防止逃脱受限 Shell 攻击和漏洞利用

为了减轻跳壳风险并防止攻击者发起 垃圾箱/bash:

  • 强化限制壳:移除或阻止 ACCESS
  • 使用 AppArmor 或 SELinux 限制命令执行
  • 实施最低权限 CI/CD 角色和跑步者
  • Containerize 使用缺少 shell 的 distroless 镜像进行构建,例如 垃圾箱/bash
  • 在构建之前和之后验证环境以发现异常

预防逃逸受限 shell 的情况需要分层控制,而不仅仅是依赖受限 shell。如果出现以下情况,不要认为受限 shell 是安全的: 垃圾箱/bash 甚至是有可能实现的。

结论:Shell 逃逸是入口点

受限 Shell 只是一道防御层,并非万全之策。跳跃 Shell 攻击针对的是隔离性较弱且验证机制较差的情况。一旦进入 / bin / bash,攻击者可以转移、持久并破坏 DevSecOps 基础设施。

检测和隔离至关重要。结合命令日志记录、受限环境以及适当清理包管理器,可以减少暴露。

最后,像 西吉尼 提供对这些风险的可见性。它们有助于确保代码完整性,检测异常的 shell 行为,以及 保护你的 pipeline免受内部和外部威胁包括那些从简单的跳跃壳开始的 / bin / bash 或尝试逃离受限的 shell 环境。

sca-tools-软件-成分分析工具
确定软件风险的优先级、进行补救并加以保护
7-day免费试用
无需信用卡

保护您的软件开发和交付

使用 Xygeni 产品套件