关于bash的shellshock漏洞
这一漏洞的描述如下:
Shellshock (CVE-2014-6271, CVE-2014-6277, CVE-2014-6278, CVE-2014-7169, CVE-2014-7186, CVE-2014-7187) is a vulnerability in GNU's bash shell that gives attackers access to run remote commands on a vulnerable system. If your system has not updated bash in since Tue Sep 30 2014: 1:32PM EST (See patch history), you're most definitely vulnerable and have been since first boot. This security vulnerability affects versions 1.14 (released in 1994) to the most recent version 4.3 according to NVD.
这里还有一个测试这一漏洞的脚本:
至于原理,看了半天,大概有点明白了:
漏洞的关键在于bash会把定义的各种函数放到env里面去,大致的格式如下:
$ function foo { echo bar; }
$ export -f foo
$ env | grep -A1 foo
foo=() { echo bar
}
这样的话,是不是可以放一个假的函数进去呢?答案是,可以!而且,这里的关键在于,这里它执行函数的时候,不是检测完整的“{}”对,而是简单的执行“{”之后的所有bash代码!!!也包括你放进去的代码。。。所以,为什么不放点东西进去让它执行?
那么话说回来了,是不是不执行bash不就完事了?理论上是这样的。但是,事情总有意外,比如,你在编程的时候使用了systcall之类的,去运行了shell指令。你的程序继承了父程序的环境变量,你调用的systemcall空间继承了你程序的环境变量,然后,它就可能顺带的执行被注入到环境变量中的代码。
下面是360提供的简单测试sh的一个方案:
1. 服务器端有一个shell脚本,内容随意,可以如下:
#!/bin/bash echo "Content-type: text/html" echo "" echo '<html>' echo '<head>' echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">' echo '<title>PoC</title>' echo '</head>' echo '<body>' echo '<pre>' /usr/bin/env echo '</pre>' echo '</body>' echo '</html>' exit
2. 此时,用户端是可以用浏览器,curl,wget,nc...等等工具去连接你的服务器,并触发这个脚本的。比如,curl,可以看到:
3. 注意,这是正常情况!!!正常情况就是该显示嘛,就显示嘛!!!但是,WEB服务器都是把http的header都先放到ENV里面去的。所以,有了下面的访问(nc和wget类似,给传header就行):
4.咳咳。。然后你就欢快的看到了下面的情形。http的header被服务器放到了ENV里;ENV被作为cgi的bash脚本继承。当作为cgi的shell脚本执行时,注入的这一个“假函数”也被执行。而这一段假函数做的事,则是把bash挂到“某IP”的8080端口上。。。所以,在“某IP”上用nc监听时,我们看到bash热情的向我们奔来。
顺带搜了下其他的反弹shell的方式。。。只在这里做个记录,大致看了下,有些有错误的。基本上都是建立一个tcp链接,然后把bash以交互式方式打开(-i interactive),然后把输入输出都重定向到这条TCP链接上。
bash版本:
关于bash的shellshock漏洞的更多相关文章
- Shellshock漏洞复现
漏洞分析: exp: curl -A "() { :; }; echo; /bin/cat /etc/passwd" http://172.16.20.134:8080/victi ...
- 威胁远胜“心脏出血”?国外新爆Bash高危安全漏洞
这几天Linux用户们可能不能愉快地玩耍了,红帽(Redhat)安全团队昨天爆出一个危险的Bash Shell漏洞.其带来的威胁可能比早前披露的“心脏出血”漏洞更大更强! [OpenSSL心脏出血漏洞 ...
- Bash Shellshock(CVE-2014-6271)破壳漏洞测试
0x01 漏洞原理 Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以"(){"开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行 ...
- 详细的漏洞复现:Shellshock CVE-2014-6271 CVE-2014-7169
目录 前言 漏洞原理 利用方式 复现过程 1. 环境准备 (1) 为容器配置固定IP地址 (2) 查看bash版本 2. 本地验证:测试镜像系统是否存在漏洞 3. 远程模拟验证(原理验证) (1) 查 ...
- CVE-2014-6271 Shellshock 破壳漏洞 复现
补坑. 什么是shellshock ShellShock是一个BashShell漏洞(据说不仅仅是Bash,其他shell也可能有这个漏洞). 一般情况来说,系统里面的Shell是有严格的权限控制的, ...
- Shellshock 破壳漏洞 Writeup
破壳漏洞 CVE编号:CVE-2014-6271 题目URL:http://www.whalwl.site:8029/ 提示:flag在服务器根目录 ShellShock (CVE-2014-6271 ...
- bash shell漏洞及测试
1.bash shell是大多数linux发行版本的默认shell命令解释器,但是最近爆出bash shell存在漏洞. 2.如果Bash是默认的系统shell,网络攻击者可以通过发送Web请求.se ...
- linux_曝出重大bash安全漏洞及修复方法
日前Linux官方内置Bash中新发现一个非常严重安全漏洞(漏洞参考https://access.redhat.com/security/cve/CVE-2014-6271 ),黑客可以利用该Bas ...
- ShellShock 攻击实验
一. 实验描述 2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发.在本实验中,学生需要亲手重现攻击来理解该漏洞,并回答一些问 ...
随机推荐
- 安装StarUML 及使用时序图(Sequence Diagram)和用例图(use case diagram)
时序图 用例图
- C# 鼠标穿透窗体功能
通过以下代码,在窗体启动后调用方法SetPenetrate() 即可实现窗体的穿透功能. 同样该功能需要加载命名空间 using System.Runtime.InteropServices; pri ...
- C语言 百炼成钢4
//题目10:打印楼梯,同时在楼梯上方打印两个笑脸. #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdli ...
- U3D assetbundle加载
using UnityEngine; using System.Collections; public class testLoadFromAB : MonoBehaviour { IEnumerat ...
- perl 简单学习,安装perl模块
检查是否安装了某个perl模块 有多种方式 0.perldoc perlinstall 列出所有的模块及版本号 1. perl -M模块名 -e 1(模块名不加空格) 没有返回值则说明有此模块 2.p ...
- [MySQL] 按日期进行统计(前一天、本周、某一天)
在mysql数据库中,常常会遇到统计当天的内容.例如,在user表中,日期字段为:log_time统计当天 sql语句为: select * from user where date(log_time ...
- 20135316王剑桥 linux第十周课实验笔记
关于who 功能说明:显示目前登入系统的用户信息. 语 法:who [-Himqsw][--help][--version][am i][记录文件] 补充说明:执行这项指令可得知目前有那些用户登入系统 ...
- 疯狂位图之——位图生成12GB无重复随机乱序大整数集
上一篇讲述了用位图实现无重复数据的排序,排序算法一下就写好了,想弄个大点数据测试一下,因为小数据在内存中快排已经很快. 一.生成的数据集要求 1.数据为0--2147483647(2^31-1)范围内 ...
- 九幽2015年Q3 WP市场份额细分报告
上周,被微软称为史诗级别的Win10纽约新品发布会已落下帷幕,90分钟.六款新品齐发的庞大阵势,相信让大家眼花缭乱.兴奋不已吧.而在新品发布会上微软也晒出了Win10发布以来的可喜成绩单:Win10系 ...
- php模式设计之 观察者模式
这是我写的<php模式设计>的第五篇.前面的四篇在不断学习不断加深认识,到了今天再看观察者模式,觉得非常容易理解.这也许就是我们积少成多的结果吧.希望还是能够不断进步. 开篇还是从名字说起 ...