天天看點

利用Tomcat的使用者名和密碼建構“永久”後門

利用Tomcat的使用者名和密碼建構“永久”後門

Simeon

從本案例中可以學到:

(1)關于JSP的一些基礎知識

(2)利用Tomcat的使用者名和密碼來建構後門

本文首先要感謝《黑客手冊》“非安全.後生”編輯為本為提供了幫助,還要感謝網友“傷心的魚”,本文借鑒了“看小菜如何搞定tomcat”一文中的思路,該文中提供的war生成比較模糊,且操作複雜,本文提供的方法簡單易行。

JSP是Java Server Pages的縮寫,是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動态網頁技術标準。 JSP技術是用JAVA語言作為腳本語言的,JSP網頁為整個伺服器端的JAVA庫單元提供了一個接口來服務于HTTP的應用程式。在傳統的網頁HTML檔案(*.htm,*.html)中加入Java程式片段和JSP标記,就構成了JSP網頁(*.jsp)。Web伺服器在遇到通路JSP網頁的請求時,首先執行其中的程式片段,然後将執行結果以HTML格式傳回給客戶。程式片段可以操作資料庫、重新定向網頁以及發送 email 等等,這就是建立動态網站所需要的功能。所有程式操作都在伺服器端執行,網絡上傳送給用戶端的僅是得到的結果,對客戶浏覽器的要求最低,可以實作無Plug-in,無ActiveX,無Java Applet,甚至無Frame。

Tomcat是一個免費的開源的Serlvet容器,它是Apache基金會的Jakarta項目中的一個核心項目,由Apache、Sun和其它一些公司及個人共同開發而成。由于有了Sun的參與和支援,最新的Servlet和Jsp規範總能在Tomcat中得到展現。與傳統的桌面應用程式不同,Tomcat中的應用程式是一個WAR(Web Archive)檔案。WAR是Sun提出的一種Web應用程式格式,與JAR類似,也是許多檔案的一個壓縮包。這個包中的檔案按一定目錄結構來組織:通常其根目錄下包含有Html和Jsp檔案或者包含這兩種檔案的目錄,另外還會有一個WEB-INF目錄,這個目錄很重要。通常在WEB-INF目錄下有一個web.xml檔案和一個classes目錄,web.xml是這個應用的配置檔案,而classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其它類(如JavaBean)。通常這些所依賴的類也可以打包成JAR放到WEB-INF下的lib目錄下,當然也可以放到系統的CLASSPATH中,但那樣移植和管理起來不友善。

在Tomcat中,應用程式的部署很簡單,隻需将你的WAR放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個檔案,并将其解壓。在浏覽器中通路這個應用的Jsp時,通常第一次會很慢,因為Tomcat要将Jsp轉化為Servlet檔案,然後編譯。編譯以後,通路将會很快。另外Tomcat也提供了一個應用:manager,通路這個應用需要使用者名和密碼,使用者名和密碼存儲在一個xml檔案中。通過這個應用,輔助于Ftp,可以在遠端通過Web部署和撤銷應用,當然本地也可以,本案例就是利用這個特性來建構後門程式的。

Tomcat不僅僅是一個Servlet容器,它也具有傳統的Web伺服器的功能:處理Html頁面。但是與Apache相比,它的處理靜态Html的能力就不如Apache。可以将Tomcat和Apache內建到一塊,讓Apache處理靜态Html,而Tomcat處理Jsp和Servlet.這種內建隻需要修改一下Apache和Tomcat的配置檔案即可。

(一)檢查Tomcat設定。伺服器安裝了Apache Tomcat後會預設開放8080端口供外部連接配接,一般在浏覽器中輸入“IP:8080”或者域名來通路Apache Tomcat頁面,如圖1所示。

圖1 連接配接到Tomcat的頁面

(二)檢視Tomcat使用者配置檔案。Tomcat安裝完成後有一個配置檔案“tomcat-users.xml”,它位于Tomcat程式安裝目錄下的conf目錄下,直接打開該檔案可以看到其中關于使用者名和密碼的明文值,如圖2所示,找到并記住包含“admin,manager”那一行的使用者名和密碼。

圖2 擷取使用者配置的使用者名和密碼

說明:

(1)有很多對tomcat不是很了解的管理者在安裝完Tomcat後并沒有修改預設密碼,使用者名是admin,密碼為空,如果是這種情況可以直接登入。

(2)如果使用者修改了該密碼,那麼其密碼一定儲存在“tomcat-users.xml”中,是以可以通過Webshell來擷取這個檔案的内容。

(三)進入Tomcat管理。Tomcat提供了線上管理,本案例也正式利用線上管理來建構後門的。在圖1中單擊左上角下面的“Tomcat Manager”連結後,會彈出一個要求輸入使用者名和密碼的視窗,該視窗跟Windows登入視窗有點類似,如圖3所示。

圖3 登入Tomcat管理應用

(四)檢視部署情況。在圖3中輸入從“tomcat-users.xml”檔案中擷取的具有管理者權限的使用者名和密碼,驗證通過後進入部署管理頁面,如圖4所示。

圖4 部署管理頁面

(1)在部署管理頁面中可以“Start”(啟動)、“Stop”(停止)、“Reload”(重載)、“Undeploy”(删除部署)已經部署的項目,單擊“Undeploy”會對檔案進行實體删除。

(2)部署的檔案夾是以*.war檔案的名稱,例如上傳的檔案是job.war,則在Tomcat目錄中會對應生成一個“job”檔案夾 。

(五)部署JSP WebShell後門程式。在部署管理頁面的下方有一個“WAR file to deploy”,單擊浏覽選擇一個已經設定好的後門war檔案,在本例中的後門程式為job.war,單擊“deploy”将該檔案部署到伺服器上,如圖5所示。

圖5 上傳後門war檔案到伺服器

說明

(1)部署是其檔案必須是war檔案。

(2)将winzip軟體安裝在系統中,然後将單一或者多個jsp後門檔案壓縮成一個壓縮檔案,壓縮成功後,将“*.zip”檔案更名為“*.war”即可。

(3)上傳檔案後,tomcat會自動進行部署并運作。

(六)測試後門程式。在位址欄中輸入“部署檔案名稱/jsp檔案”,例如在本例中其正确的通路是“[url]http://127.0.0.1:8080/job/job.jsp[/url]”,如果設定正确會顯示如圖6所示的Webshell登入視窗。

圖6 登入webshell

(七)在Webshell中執行指令。在Webshell中輸入密碼後,進入到Webshell管理界面,預設顯示伺服器的一些資訊,在功能菜單中選擇“執行指令”,并在執行指令輸入框中輸入“netstat -an”指令可以檢視網絡連接配接等,如圖7所示。

圖7 執行指令

(1)通過這種方式部署的Jsp後門程式具有較大權限,可以執行添加使用者等危險指令。

(2)jsp後門中可以通過“檔案系統”子產品來對檔案進行操作;通過“資料庫”子產品來連接配接資料庫等操作;

(3)本案例建構後門也正是這裡,平時可以在系統中保留一個小的後門程式,如果後門程式被防毒軟體清除或者被管理者發現并删除掉了,則可以通過以上步驟重新進行部署,進而循環永久保留後門。

小結

   本案例介紹的情況适合于管理者(admin)密碼為空的情況,同時也适合于擷取了tomcat中的tomcat-users.xml檔案中的使用者名和密碼的情況。一般來講内網相對防護要弱一些,是以該案例對于内網滲透時有一定的幫助。由于本人對jsp不是特别熟悉,尤其是部署設定,不知道在jsp中是否也可以進行諸如IIS中的嚴格權限限制,能否禁止jspwebshell的執行,本案例是對伺服器攻防的一種探讨,功能強大的應用程式往往一個弱小的漏洞就可以攻破整個系統。

後記

    通過google對tomcat的一些關鍵字進行了搜尋,沒有遇到管理者為空的,我使用inurl:8080 關鍵字進行搜尋的,不知道還有什麼好的方法來進行搜尋。

 本文轉自 simeon2005 51CTO部落格,原文連結:http://blog.51cto.com/simeon/58877