- A+
所属分类:漏洞复现
漏洞简介
GNU Bash 4.3及之前版本在评估某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行Shell命令。某些服务和应用允许未经身份验证的远程攻击者提供环境变量以利用此漏洞。此漏洞源于在调用Bash Shell之前可以用构造的值创建环境变量。这些变量可以包含代码,在Shell被调用后会被立即执行。
这个漏洞的英文是:ShellShock,中文名被XCERT命名为:破壳漏洞。
该漏洞在Red Hat、CentOS、Ubuntu 、Fedora 、Amazon Linux 、OS X 10.10中均拥有存在CVE-2014-6271(即“破壳”漏洞)漏洞的Bash版本,同时由于Bash在各主流操作系统的广泛应用,此漏洞的影响范围包括但不限于大多数应用Bash的Unix、Linux、Mac OS X,而针对这些操作系统管理下的数据均存在高危威胁。
漏洞的利用方式会通过与Bash交互的多种应用展开,包括HTTP、OpenSSH、DHCP等
漏洞原理:
Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以“(){”开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。而其核心的原因在于在输入的过滤中没有严格限制边界,也没有做出合法化的参数判断。
影响范围:
1 2 3 4 5 6 7 8 9 10 |
Gnu Bash:3.2 Gnu Bash:2.05:B Gnu Bash:3.0 Gnu Bash:1.14.5 Gnu Bash:1.14.6 Gnu Bash:3.0.16 Gnu Bash:1.14.7 Gnu Bash:2.0 Gnu Bash:2.01 Gnu Bash:2.01.1 |
环境搭建
利用vulhub现有的环境
1 |
cd /vulhub/bash/shellshock && docker-compose up -d |
本地检测
进入容器中,执行以下命令,若输出shellshocked 则说明存在漏洞。
payload:
1 |
env x='() { :;}; echo shellshocked' bash –c "echo hi" |
漏洞复现
exp:
1 |
https://www.exploit-db.com/exploits/34765 |
修复建议:
建议对linux bash 进行升级。
1 |
http://www.cnnvd.org.cn/web/xxk/bdxqById.tag?id=51624 |
参考文章:
1 |
https://www.guildhab.top/2019/11/shellshock-%E7%A0%B4%E5%A3%B3%E6%BC%8F%E6%B4%9E-cve-2014-6271-%E5%88%86%E6%9E%90%E7%AC%94%E8%AE%B0/ |
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫