- 網絡攻防實戰研究:漏洞利用與提權
- 祝烈煌
- 2227字
- 2019-11-18 15:09:41
2.12 對某虛擬主機的一次SiteManager提權
虛擬主機提供商所提供的服務器,安全性相對較高。安全設置較好的服務器,即使某個站點存在安全漏洞,被攻擊者獲得WebShell,也不會影響其他站點,即攻擊者無法獲取其他站點的資料,各個站點的安全相對獨立,采取的是基于角色的安全控制(用戶站點)。在入侵手法中,對虛擬主機的入侵,如果針對某個站點無法入侵成功,那么攻擊者往往會采用旁注的方法來入侵虛擬主機上的其他站點,當成功得到其他站點的WebShell后,再來獲取指定站點的數據庫、管理后臺等資料,然后實施深層次的滲透。
對虛擬主機的滲透,一般前半部分較容易實現,后半部分相對較難。本案例虛擬主機的設置還是比較安全的,但是就因為一個細節沒有設置好,導致整個服務器乃至所管理的服務器群主機失陷。下面就介紹整個安全滲透過程。
2.12.1 獲取虛擬主機某站點的WebShell
通過SQL注入、FTP口令掃描等方法都可以獲取WebShell。獲取該虛擬主機所有用戶的站點配置文件,該配置文件中列出了站點名稱、FTP用戶名及密碼。直接將其設置到CuteFTP中,上傳“神秘超強冷楓后門”ASP版本的WebShell,然后在瀏覽器中輸入WebShell的地址,如圖2-112所示,輸入密碼后可正常運行。

圖2-112 上傳并測試WebShell
2.12.2 使用WebShell中的提權功能嘗試提權
目前的WebShell功能很強大。在該WebShell中提供了很多可以提升權限的地方,例如查看提權目錄列表Program、pcAnywhere、Serv-u、RealServer、SQL、config、data、temp、Recycler等,如圖2-113所示。不要小看這些目錄,如果能夠查看這些目錄,而且具有讀寫權限,那對虛擬主機來說就很危險了。

圖2-113 查看提權目錄
在本例中,依次查看Program、pcAnywhere、Serv-u、RealServer、SQL、config、data、temp、Recycler等可能提權的目錄,如圖2-114所示,不是無法訪問,就是路徑未找到,因此利用這些目錄來提權是行不通的。

圖2-114 獲取相應文件路徑失敗
2.12.3 查看可寫目錄
在WebShell的左邊功能列表中單擊“查看可寫目錄”選項,如圖2-115所示,WebShell會給出本系統WebShell可寫的所有目錄,單擊“詳細報告”按鈕可以查看詳細情況。

圖2-115 查看系統可寫目錄
依次查看每個磁盤的可寫目錄,如圖2-116所示,對前3個磁盤(C盤、D盤和E盤)都無法寫入。

圖2-116 依次查看可寫文件目錄
系統的temp目錄中可能會保留一些有用信息,而該主機的操作系統為Windows Server 2003,系統盤下的Windows\temp目錄可以讀取,因此可以嘗試從中獲取可利用的信息。在一些系統中,主機管理系統會將部分運行信息保存在臨時回話中,由于程序運行完畢未對臨時文件夾進行清理,因此只要找到這些信息,就可以提升權限。到C:\Windows\temp目錄下下載并打開該目錄下的每一個文件,如圖2-117所示,通過查看該目錄中的sess_*文件,發現以“sess”開頭的文件是該系統所提供虛擬主機的多個站點的臨時會話,雖然有些會話中包含了用戶賬號等信息,但對本次提權意義不大。查看其他文件,也沒有找到特別有用的信息。

圖2-117 打開并查看temp目錄中的文件
繼續查看磁盤,發現G盤中有一個目錄可以讀寫,如圖2-118所示,名稱為“setup”。setup目錄一般是管理員進行程序安裝及設置時所用的目錄,在setup文件夾下有多個文件夾,對各個文件夾依次進行查看。

圖2-118 獲取G盤唯一可讀寫目錄
說明
對整個磁盤進行可讀寫目錄的查看,發現僅setup目錄可讀寫,這極有可能是管理員在安裝和設置程序后沒有及時刪除或者做安全限制造成的。
在查看文件夾及文件的過程中,在vbs文件夾中發現存在多個vbs文件。直接打開,如圖2-119所示,GetPing.vbs是一個用于獲取ping功能的vbs文件。

圖2-119 查看vbs文件
2.12.4 滲透成功
1.找到明文管理員密碼
在G:\Setup\vbs下的一個txt文件中找到了一個關鍵的地方——SiteManager。如圖2-120所示,使用SiteManager必須要有具備系統管理員權限的用戶名和密碼,它們在相關配置文件中會以明文形式存在。

圖2-120 找到SiteManager所用的管理員賬號和密碼
2.查看遠程終端端口
在WebShell中單擊“特殊端口”選項,查看系統特殊端口的開放情況。如圖2-121所示,該服務器遠程終端3389端口是開放的,由于該WebShell無法執行“netstat-an”等DOS命令,所以認為該計算機的3389端口是打開的。

圖2-121 獲取端口開放情況
說明
使用WebShell讀取注冊表的數據不一定準確,在本例中就是這樣,WebShell獲取的端口是3389,而實際終端端口是6688。筆者使用了一個笨方法,對該主機的所有端口都進行了探測,然后根據經驗對開放的端口進行3389登錄嘗試。
3.進入系統
在“運行”框中輸入“mstsc”,打開遠程終端登錄器,輸入IP地址及獲取的用戶名和密碼,成功進入系統。使用“ipconfig/all”命令查看,發現該計算機有3個IP地址,如圖2-122所示。

圖2-122 進入系統
2.12.5 繼續滲透內外網
1.獲取系統口令
使用3389遠程終端登錄系統,將無法使用GetPw及PwDump等工具獲取系統的密碼,上傳的NC不知道為什么,一傳上去就不見了,上傳了好多次都是如此。實在沒有辦法,筆者直接到Radmin網站下載了Radmin 2.2上傳到服務器,在服務器上安裝Radmin客戶端,通過其telnet來執行“getpw$local”命令,以獲取其系統Hash值。對獲取的Hash值進行整理,并將其導入LC5進行破解,如圖2-123所示。

圖2-123 破解系統賬號
說明
破解系統賬號的目的是對內部或者外部網絡進行滲透,利用同一口令進行登錄嘗試。在一個大型網絡中,使用同一口令的服務器還是很多的。通過分析研究,筆者發現獲取的其他賬號和口令分布對應于某一個域名的FTP賬號和口令,但不知道這是如何做到的。
2.探測相同網段具有該端口的遠程終端IP地址
使用“sfind-p 6688 60.*.*.1 60.*.*.255”命令查看與被滲透主機有相同網段的開放6688端口的IP地址,如圖2-124所示,找出了4個IP地址。

圖2-124 使用sfind命令探測開放6688端口的其他同網段IP地址
3.使用獲取的用戶賬號和密碼登錄
使用原來獲取的用戶賬號和密碼嘗試登錄,成功進入系統,如圖2-125所示,該服務器有2個IP地址。

圖2-125 成功進入新的服務器
4.啟用內外網卡
在查看“網絡鄰居”的屬性時,發現計算機有多塊網卡,其中有一塊網卡被禁用了。啟動內網網卡后,遠程終端連接失敗,內網與外網斷開了。