Bash漏洞,我们的系统安全是否受到了威胁?

Bash Shell漏洞

类别 详细信息
漏洞名称 CVE-2014-6271,也被称为"破壳"漏洞。
受影响的版本 GNU Bash 4.3及之前版本。
漏洞描述 在评估某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行任意的shell命令。
影响范围 Red Hat、CentOS、Ubuntu、Fedora、Amazon Linux、OS X 10.10等,由于Bash在各主流操作系统的广泛应用,此漏洞的影响范围包括但不限于大多数应用Bash的Unix、Linux、Mac OS X。
利用方式 通过与Bash交互的多种应用展开,包括HTTP、OpenSSH、DHCP等。
解决方案 安装补丁或升级到不受影响的Bash版本。

漏洞复现步骤

Bash漏洞,我们的系统安全是否受到了威胁?插图1
(图片来源网络,侵删)
步骤 详细操作
环境准备 为容器配置固定IP地址,查看bash版本。
本地验证 测试镜像系统是否存在漏洞,使用payload:env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
远程模拟验证 查看容器apache服务配置,编辑测试文件,重启apache服务,远程测试。
遇到的问题 如Kali无法开启伪终端-->Ubuntu,镜像未安装vim,且安装出错-->需要更新源,远程测试时无法连接-->需要为容器配置端口映射等。

技术分析

项目 详细解析
前置技术 Bash中可以自定义shell变量,并通过export命令将其转化为环境变量,环境变量是全局变量,用户自定义变量是局部变量,在Bash中还可以定义Shell函数并将其导出为环境函数。
CGI基础 当WebServer认为这是一个CGI请求时,会调用相关的CGI程序,并封装环境变量和标准输入等数据,然后传输给CGI程序,一般情况下,服务器和CGI程序之间是通过标准输入输出来进行数据传递的,而这个过程需要环境变量的协作方可实现。
漏洞原理 Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以(){开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令,其核心的原因在于在输入的过滤中没有严格限制边界,也没有做出合法化的参数判断。

防御方案

策略 详细操作
升级补丁 及时升级或安装相应补丁,如有问题欢迎联系1257235873@qq.com讨论。
检测方法 进入docker容器,使用命令docker ps -adocker exec -it ID bash,检测payload为env x='() { :;}; echo shellshocked' bash -c "echo hi",如果输出shellshocked则表示存在漏洞。

Bash Shell漏洞是一种严重的安全风险,它允许攻击者通过环境变量执行任意代码,了解这个漏洞的工作原理和如何检测及防御是非常重要的。

到此,以上就是小编对于bash 漏洞的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

Bash漏洞,我们的系统安全是否受到了威胁?插图3
(图片来源网络,侵删)

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/63638.html

小末小末
上一篇 2024年9月30日 04:04
下一篇 2024年9月30日 04:15

相关推荐