Bash漏洞详解

Posted 安全牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash漏洞详解相关的知识,希望对你有一定的参考价值。

0x00 什么是BASH


Bourne Again Shell(简称BASH)是在GNU/Linux上最流行的SHELL实现,于1980年诞生,经过了几十年的进化从一个简单的终端命令行解释器演变成了和GNU系统深 度整合的多功能接口。


0x01 CVE-2014-6271


法国GNU/Linux爱好者Stéphane Chazelas于2014年9月中旬发现了著名的SHELL实)的一个漏洞,你可以通过构造环境变量的值来执行你想要执行的脚本代码,据报道称,这个漏洞能影响众多的运行在GNU/Linux上的会跟BASH交互的应用程序,包括:

在sshd配置中使用ForceCommand,用以限制远程用户执行命令,这个漏洞可以绕过限制去执行任何命令。一些Git和Subversion部署环境的限制Shell也会出现类似情况,OpenSSH通常用法没有问题。


Apache服务器使用mod_cgi或者mod_cgid,如果CGI脚本在BASH或者运行在子SHELL里都会受影响。子Shell中使用C 的system/popen,Python中使用os.system/os.popen,php中使用system/exec(CGI模式)和Perl中 使用open/system的情况都会受此漏洞影响。


PHP脚本执行在mod_php不会受影响。 DHCP客户端调用shell脚本接收远程恶意服务器的环境变量参数值的情况会被此漏洞利用。


守护进程和SUID程序在环境变量设置的环境下执行SHELL脚本也可能受到影响。


任何其他程序执行SHELL脚本时用BASH作为解释器都可能受影响。Shell脚本不导出的情况下不会受影响。


OpenSSH, Apache2, php, dhcp client甚至带SUID的程序。


1,本地SHELL环境中测试是否有漏洞:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

如果存在漏洞会打印"vulnerable"。


2,C程序:

(c)2006-2024 SYSTEM All Rights Reserved IT常识