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"。