羅澤林 陳思亮 張貴洲 謝喬 莊小妹
摘要:一句話木馬和Webshell是目前黑客入侵網(wǎng)站的常用技術(shù)。在介紹一句話木馬和WEBSHELL原理和功能的基礎(chǔ)上,介紹了一句話木馬和WEBSHELL相互配合入侵網(wǎng)站的過(guò)程,并提出清除木馬的方法和相應(yīng)的防范措施。
關(guān)鍵詞:網(wǎng)頁(yè)木馬;一句話木馬;Webshell
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)05-0932-03
Attack & Precaution of Webpage Trojan
LUO Ze-lin,CHEN Si-liang, ZHANG Gui-zhou,XIE Qiao ,ZHUANG Xiao-mei
(Guangdong Peizheng College, Guangzhou 510830,China)
Abstract: One-word Trojan and Webshell are the most common technology used by hacker to attack Website currently. After introduce the principle and function about One-word Trojan and Webshell, the attack process of website used by One-word Trojan and Webshell is described, and the corresponding removing method and precaution are given.
Key words: Webpage Trojan;one-word Trojan;wehshell
1 概述
隨著大數(shù)據(jù)時(shí)代的步伐漸漸來(lái)臨,用戶(hù)數(shù)據(jù)安全問(wèn)題成為了網(wǎng)絡(luò)安全人員和黑客們關(guān)注熱點(diǎn)。360網(wǎng)站安全監(jiān)測(cè)通過(guò)對(duì)大量網(wǎng)站頁(yè)面源碼的分析發(fā)現(xiàn),黑客用“一句話木馬”踩點(diǎn)的行為隨處可見(jiàn),一旦黑客確認(rèn)網(wǎng)站可攻擊,則通過(guò)植入后門(mén)等方式,查看和竊取服務(wù)器中的重要文件,危害網(wǎng)站安全。360網(wǎng)站安全監(jiān)測(cè)數(shù)據(jù)顯示,2012年存在“一句話木馬”的網(wǎng)站共12866個(gè),其中政府類(lèi)785個(gè)、教育類(lèi)663個(gè),合計(jì)比例超過(guò)10%,其余89%存在“一句話木馬”的網(wǎng)站涉及電商、社交、視頻等各行各業(yè),其威脅十分廣泛[1]。其實(shí)黑客使用一句話木馬只是入侵的前奏,而在入侵的網(wǎng)站上傳網(wǎng)頁(yè)木馬,進(jìn)而控制服務(wù)器才是黑客的目標(biāo)。
2 網(wǎng)頁(yè)木馬概述
這里所說(shuō)的網(wǎng)頁(yè)木馬是指WEB腳本形式的木馬,而不是傳統(tǒng)意義上exe形式的木馬,也不是指嵌入網(wǎng)頁(yè)中的木馬,因?yàn)榍度胧侥抉R最終還是下載和調(diào)用傳統(tǒng)的木馬[2]。由于EXE形式的文件受到WEB服務(wù)器的限制,這種形式的木馬在WEB服務(wù)器上幾乎已經(jīng)“英雄無(wú)用武之地”。而網(wǎng)頁(yè)木馬比傳統(tǒng)的木馬更輕便、更靈活,而且隱蔽性好,更具有危害性,是目前黑客入侵WEB服務(wù)器最常用的技術(shù)之一。通常這類(lèi)木馬也稱(chēng)為Webshell,而一句話木馬是一種特殊的Webshell。
2.1 什么是Webshell
木馬程序本來(lái)是存在于應(yīng)用軟件層面的一個(gè)分類(lèi),它特指那些用來(lái)遠(yuǎn)程控制、監(jiān)視用戶(hù)計(jì)算機(jī),盜取用戶(hù)信息資料的程序。Web應(yīng)用程序同樣能夠?qū)崿F(xiàn)木馬程序的功能,這就是Webshell。Webshell利用Web開(kāi)發(fā)語(yǔ)言的特殊功能,只需要將系統(tǒng)命令輸入到表單中,提交后,Webshell就可以執(zhí)行命令并返回執(zhí)行結(jié)果,相當(dāng)于通過(guò)Web程序制作出了一個(gè)系統(tǒng)的Shell,并且它還是可以遠(yuǎn)程訪問(wèn)的[3]。
Webshell起初是一種網(wǎng)站管理工具,是為方便管理網(wǎng)站和服務(wù)器開(kāi)發(fā)的,常見(jiàn)有基于asp、php、.net、jsp的Webshell。受FSO權(quán)限的限制,它具有編輯、上傳、下載、查看數(shù)據(jù)庫(kù)、執(zhí)行命令等功能。有腳本編程基礎(chǔ)的入侵者通過(guò)修改相應(yīng)功能達(dá)到控制服務(wù)器的目的。這種Webshell又稱(chēng)“大馬”[4]。
2.2 Webshell的上傳
由于Webshell功能比較復(fù)雜,因此體積一般比較大,而且很多管理員都限制了上傳文件的大小,在入侵初期顯得不夠靈活,所以需要“小馬”作鋪墊。一句話木馬就是“小馬”的一種。通過(guò)一句話木馬上傳Webshell是比較常見(jiàn)的方式,但是也可以通過(guò)低版本fckedit編輯器上傳漏洞上傳。有些網(wǎng)站的后臺(tái)限制ASP文件等網(wǎng)頁(yè)文件的上傳,但允許JPG等圖片文件的上傳,這也為Webshell的上傳提供了可用之機(jī),甚至有些黑客能夠利用抓包和修改數(shù)據(jù)包的工具,再通過(guò)重傳數(shù)據(jù)包來(lái)實(shí)現(xiàn)Webshell的上傳。Wehshell上傳成功后,所能執(zhí)行的功能是有限制的,所以黑客要想辦法提權(quán)。
2.3 什么是一句話木馬
2.4 一句話木馬的功能
一句話木馬雖然只有一個(gè)語(yǔ)句,但功能強(qiáng)大的讓人驚訝。客戶(hù)端可以提供一般的網(wǎng)站管理功能,如上傳下載、文件編輯、復(fù)制、重命名、刪除、修改、保存shell記錄、瀏覽網(wǎng)頁(yè)等。如果網(wǎng)站權(quán)限開(kāi)放得足夠大,甚至可以管理windows和linux的操作系統(tǒng)。因?yàn)橛写篑R的存在,一句話木馬通常只是入侵的前奏,因此,它的“上傳文件”的功能是最為重要的一個(gè)功能。
2.5 一句話木馬的注入
這里說(shuō)的一句話木馬的注入?yún)^(qū)別于平常我們說(shuō)的SQL注入漏洞,它的目的就是植入代碼。假設(shè)現(xiàn)在有一個(gè)about.asp頁(yè)面,它的URL為http://www.test.com/about.asp ,我們可以通過(guò)后臺(tái)編輯相關(guān)的頁(yè)面內(nèi)容,插入一句話<%eval request(“admin”)%>,如果服務(wù)器正常解析了這句代碼,那么我們就可以通過(guò)中國(guó)菜刀等客戶(hù)端工具進(jìn)行連接管理服務(wù)器。入侵思路有很多,例如通過(guò)留言板,利用數(shù)據(jù)庫(kù)的管理漏洞,利用后臺(tái)管理漏洞等。
3 網(wǎng)頁(yè)木馬的攻擊過(guò)程與分析
一句話木馬和Webshell入侵的一般步驟為:
1)通過(guò)漏洞向網(wǎng)站寫(xiě)入一句話代碼。
2) 一句話代碼被網(wǎng)站執(zhí)行。
3) 通過(guò)一句話木馬客戶(hù)端連接一句話木馬。
4)上傳Webshell進(jìn)一步控制網(wǎng)站。
5) 配合Webshell進(jìn)行提權(quán)。
6) 完全控制服務(wù)器
我們以phpxxx9這個(gè)開(kāi)源網(wǎng)站系統(tǒng)為例子,看看網(wǎng)頁(yè)木馬如何為入侵者提供強(qiáng)大的后門(mén)功能。
phpxxx9有一個(gè)文件后綴名提取漏洞,通過(guò)該漏洞可以繞過(guò)后臺(tái),直接上傳一句話木馬[6]。我們以www.lyxxx.com為示范例子,通過(guò)漏洞得到的類(lèi)似文件名為thumb_6_6_.Php.JPG%20%20%20%20%20%20%20Php的一句話木馬,一句話木馬的內(nèi)容為<?php eval($_post[‘ln]);?>,然后通過(guò)中國(guó)菜刀連接。再通過(guò)中國(guó)菜刀的文件上載功能把大馬,即Webshell上傳到Web服務(wù)器。
上載Webshell成功后,先測(cè)試Webshell的權(quán)限,也就是Webshell能夠執(zhí)行的功能和命令。結(jié)果發(fā)現(xiàn)大部分的命令都可以執(zhí)行。通過(guò)執(zhí)行批處理命令,開(kāi)啟服務(wù)器遠(yuǎn)程管理功能,接著通過(guò)執(zhí)行命令查詢(xún)遠(yuǎn)程桌面連接端口號(hào)。
再通過(guò)GetHash.exe獲取服務(wù)器登陸信息,或者更簡(jiǎn)單的,使用一些小程序直接抓取系統(tǒng)賬號(hào)密碼。最后,在本機(jī)利用mstsc命令,輸入Web服務(wù)器地址,就可以遠(yuǎn)程登陸服務(wù)器了,遠(yuǎn)程服務(wù)器也就在入侵者的掌握之中。
以上就是通過(guò)一句話木馬和Webshell成功入侵一臺(tái)服務(wù)器的一般過(guò)程,在這里要說(shuō)明的是,上面提到的執(zhí)行命令功能很多網(wǎng)站都是禁止掉的,這就需要入侵者想方設(shè)法進(jìn)行提權(quán)操作了。通過(guò)這個(gè)簡(jiǎn)單的入侵過(guò)程,我們可以看出一句話木馬和Webshell在這個(gè)過(guò)程中的重要性,一句話木馬上載成功與否直接關(guān)系到后面的步驟,而Webshell為入侵者提供了強(qiáng)大的功能支持。
一個(gè)好的Webshell幾乎可以擁有網(wǎng)站管理的所有功能,相當(dāng)于一個(gè)強(qiáng)大的網(wǎng)站后臺(tái)管理中心,而且通過(guò)調(diào)用功能函數(shù)間接調(diào)用系統(tǒng)接口可以進(jìn)一步實(shí)現(xiàn)服務(wù)器的滲透入侵。在上面的例子中,我們就可以通過(guò)開(kāi)放的PHP的功能函數(shù)來(lái)執(zhí)行服務(wù)器操作系統(tǒng)的命令。
一句話木馬由于體積小,而且僅有一句代碼,可以實(shí)現(xiàn)任意變形加密,或者插入到網(wǎng)站中的某些文件中,極難被管理人員發(fā)現(xiàn),所以一般只要放的位置夠隱秘,就很難被清除掉。相反,Webshell由于體積大,單獨(dú)保存為一個(gè)文件,很容易被管理員發(fā)現(xiàn)進(jìn)而被清除掉。但主要一句話木馬還保存在網(wǎng)站上,就很容易重新上傳Webshell。
4 網(wǎng)頁(yè)木馬的清除和防范
4.1 一句話木馬的清除
一句話木馬體積小,可以任意插入網(wǎng)頁(yè)腳本文件中,一般非常隱蔽,所以手動(dòng)找出并清除非常困難。但由于一句話木馬格式固定簡(jiǎn)單,所以可以通過(guò)相關(guān)的查殺軟件進(jìn)行清除,如護(hù)衛(wèi)神云查殺、安全狗等,找出一句話木馬所在位置就可以直接刪除。但若是入侵者對(duì)一句話進(jìn)行了免殺或加密處理,這樣就只能看管理員的管理經(jīng)驗(yàn)和安全意識(shí)了?!叭旨夹g(shù),七分管理”,管理員的安全防范意識(shí)有時(shí)更為重要。有些時(shí)候,黑客只是把一句話顯示在網(wǎng)站的不顯眼處,目的是提醒網(wǎng)站管理人員。
4.2 Webshell的清除
相對(duì)一句話木馬,Webshell的清除稍為簡(jiǎn)單一些,因?yàn)閃ebshell只能以單獨(dú)的腳本文件形式存在,不能插入網(wǎng)站腳本文件中,可以通過(guò)特征代碼段進(jìn)行查找清除。一般來(lái)說(shuō),入侵者上傳Webshell后會(huì)嘗試各種危險(xiǎn)操作,系統(tǒng)會(huì)當(dāng)成錯(cuò)誤或警告記錄到日志文件中,管理員可以通過(guò)查看系統(tǒng)日志和網(wǎng)站日志找出Webshell。
4.3 防范措施
一切入侵活動(dòng)皆依賴(lài)漏,這就是問(wèn)題的根源。一句話木馬和Webshell也一樣,他們依賴(lài)于網(wǎng)站的漏洞進(jìn)行入侵。漏洞一般是技術(shù)缺陷或人為因素造成的,防范措施如下:
1)及時(shí)打補(bǔ)丁。對(duì)于技術(shù)缺陷造成的入侵行為,我們只能依賴(lài)技術(shù)人員發(fā)布的補(bǔ)丁,所以管理員需要時(shí)常關(guān)注網(wǎng)站以及操作系統(tǒng)的最新漏洞,及時(shí)打上補(bǔ)丁。
2) 設(shè)置訪問(wèn)權(quán)限。一句話木馬和Webshell主要依賴(lài)于網(wǎng)站賦予的權(quán)限才能正常工作,而我們應(yīng)該在權(quán)限上做嚴(yán)格的限制。例如,網(wǎng)站文件夾的權(quán)限設(shè)置為user用戶(hù)組,不需要寫(xiě)操作的文件或文件夾設(shè)置為只讀,需要寫(xiě)操作的文件或文件夾賦予讀寫(xiě)權(quán)限,但不允許執(zhí)行權(quán)限。
3) 安裝安全軟件。服務(wù)器可以安裝如護(hù)衛(wèi)神、安全狗、防篡改和WAF等安全軟件,這類(lèi)的安全軟件比較有針對(duì)性,在很大程度上可以彌補(bǔ)人工維護(hù)的不足。Webshell是利用80號(hào)端口進(jìn)行入侵的,所以它能穿越傳統(tǒng)的防火墻,而WAF即Web應(yīng)用防火墻能較好地防范Webshell。
4)限制開(kāi)放功能函數(shù)和組件。網(wǎng)站應(yīng)該盡量少開(kāi)放甚至不開(kāi)放功能函數(shù),如php的popen()、exec()、passthru()、system();而對(duì)于asp的網(wǎng)站,應(yīng)限制Wscript.shell組件的使用。
5) 過(guò)濾數(shù)據(jù)。網(wǎng)站系統(tǒng)對(duì)用戶(hù)提交的所有數(shù)據(jù)應(yīng)該進(jìn)行某些特殊符號(hào)的轉(zhuǎn)義,如單引號(hào)、反斜杠、尖括號(hào)等。
6) 提高安全意識(shí)。有些管理人員不了解一句話木馬和Webshell的原理和入侵過(guò)程,對(duì)于網(wǎng)頁(yè)上出現(xiàn)的一句話木馬,只是把它作為是網(wǎng)頁(yè)上的錯(cuò)誤而不加關(guān)注,則可能導(dǎo)致更為嚴(yán)重的攻擊。
7)數(shù)據(jù)庫(kù)的安全設(shè)置。一句話木馬很多時(shí)候是直接添加到數(shù)據(jù)庫(kù)中的,數(shù)據(jù)庫(kù)的安全設(shè)置尤其重要,應(yīng)嚴(yán)格設(shè)置數(shù)據(jù)庫(kù)的寫(xiě)入操作。
5 小結(jié)
一句話木馬和Webshell都是一種后門(mén),是目前最流行的網(wǎng)頁(yè)木馬,也是黑客入侵Web服務(wù)器最常用的技術(shù)之一。一句話木馬輕便小巧,是Web攻擊的開(kāi)路先鋒,而Webshel功能強(qiáng)大,是黑客實(shí)現(xiàn)控制Web服務(wù)器有力工具。熟悉一句話木馬和Webshell的入侵原理和過(guò)程,我們才能更好的采取相應(yīng)的防范措施。
參考文獻(xiàn):
[1] 小新.360曝光神秘一句話木馬提醒站長(zhǎng)查后門(mén)[EB/OL].http://safe.it168.com/a2013/0304/1458/000001458560.shtml,2013-03-04.
[2] 安曉瑞.ASP網(wǎng)站網(wǎng)頁(yè)掛馬的危害分析及防范對(duì)策研究[J].甘肅聯(lián)合大學(xué)學(xué)報(bào),2013(27):74.
[3] 王繼剛.揭秘WEB應(yīng)用程序攻擊技術(shù)[M].北京:中國(guó)水利水電出版社,2009.
[4] 百度百科.Webshell [EB/OL].http://baike.baidu.com/view/53110.htm.
[5] 百度百科.一句話木馬[EB/OL].http://baike.baidu.com/view/102246.htm.
[6] n3wF.PHPCMS v9 Getshell(apache)[EB/OL].http://www.wooyun.org/bugs/wooyun-2013-019299.