Web滲透測試大家都耳熟能詳,但是針對應用虛擬化的滲透測試或許大家比較少接觸,而且網上也沒有相關的資料。作為前沿攻防團隊,本期技術專題將結合過往的項目經驗,針對應用虛擬化技術給大家介紹一下相關的攻防技術。
首先介紹一下什么是應用虛擬化,其實應用虛擬化是指應用/服務器計算A/S架構,采用類似虛擬終端的技術,把應用程序的人機交互邏輯(應用程序界面、鍵盤及鼠標的操作等)與計算邏輯隔離開來,服務器端為用戶開設獨立的會話空間,應用程序的計算邏輯在這個會話空間中運行,把變化后的人機交互邏輯傳送給客戶端,并且在客戶端相應設備展示出來,通俗的說法為“瘦終端”。
目前,主流的廠家有Ctrix,VMWare等,下圖為Ctrix的應用虛擬化樣例:
通過這種應用虛擬化技術,對于企業來說,能夠提高員工辦公的效率,增加效益,對于辦公人員來說,則可以在實現隨時隨地的辦公,提高了便捷型,可謂是雙方得益,然而越便捷的東西,就意味著他的脆弱性越高,而且在部署這類型應用虛擬化的產品時,大部分的工程人員并無安全經驗,很多細節的安全問題并未得到重視,TRT在項目過程中遇到的這類型系統基本都是輕而易舉的入侵成功。
攻防是一個持續過程,在滲透測試的過程中,我們必須知己知彼才能百戰百勝,了解應用系統是很關鍵的,所以我們還是得簡單介紹一下應用虛擬化的工作模式,以Ctrix的XenApp作為例子:
客戶端通過訪問CtrixWeb Interface 并選擇所需要打開的應用,如下圖,那么Ctrix Web Interface就會調用數據中心的應用服務器打開該應用,同時通過特殊的協議,如Citrix ICA,將應用服務器所打開的應用映射到用戶的客戶端。應用的所有操作均在數據中心完成,用戶即使不安裝該應用也能使用該應用。
那么問題來了,既然打開的應用是在數據中心,那就意味著,使用者是直接操作數據中心的服務器,如果應用的訪問控制沒有做好,那么就意味著,攻擊者能夠利用訪問控制的缺失訪問非授權的資源,甚至直接控制服務器。
一般情況下,管理員在部署應用虛擬化時都會禁止用戶直接調用CMD、任務管理器、組策略、控制面板、注冊表、瀏覽C盤目錄、寫入文件等,但總會有一些疏忽之處,TRT團隊總結出了不少逃逸的技巧,挑選幾項給大家分享一下:
調用BAT、VBS執行代碼
場景1:如果通過管理員禁止調用任務管理器、注冊表、組策略等,同時也禁止了用戶瀏覽C盤目錄,限制了用戶執行cmd.exe的權限,無法通過調用CMD執行命令。
突破方式:
一般情況下,管理員禁止了用戶瀏覽C盤目錄,但禁止不了用戶正常瀏覽用戶桌面(在windows 2008系統C:USER登錄用戶名的文件夾下,也同樣可以正常瀏覽),攻擊者只需要調出瀏覽用戶桌面即可,如IE,Word都具備打開本地文件的功能,以IE為例,可以使用IE的“查看下載”—>“選項”—>“瀏覽”,打開資源管理器:
1、盡管多個地方做了瀏覽及寫入限制,但在默認情況下,如WINDWOS 2008系統的C:USER登錄用戶名的文件夾或桌面文件夾是具備訪問和寫入權限的,我們可以通過寫入VBS、BAT命令遠程執行代碼,然后將執行的結果輸出到C:USER登錄用戶名的文件夾下,成功執行遠程代碼。
2、調用宏命令執行代碼:
場景2:在場景1的前提下,如果管理員禁止了目錄的執行權限,導致C:USER登錄用戶名的文件夾的目錄無法執行命令時。
突破方式:
由于用戶進行了執行的限制,那我們可以利用“應用”為我們執行命令。利用上述的方式打開資源管理器,通過Ctrix的遠程掛載客戶端硬盤的功能,在本地的磁盤打開一個新建的Excel,新建一個宏,利用宏命令的shell()函數(該函數能夠通過宏直接調用cmd命令),如下圖
Shell “cmd /c ipconfig >> c:Userxxx文件名.txt”
如果存在word、Microsoft Access、PowerPoint應用的話,同樣也通過新建一個宏,利用宏命令的shell()函數(該函數能夠通過宏直接調用cmd命令),如下圖
Word:
Access:
Powerpoint:
使用X-shell執行系統代碼
場景3:在場景1的前提下,如果管理員禁止了目錄的執行權限,導致C:USER登錄用戶名的文件夾的目錄無法執行命令時。
突破方式:
瀏覽云主機的文件夾時,曾發現部分管理員會為了方便管理,安裝X-SHELL,這時就可以用利用X-SHELL執行系統命令。
默認情況下,X-SHELL能夠執行的系統命令特別有限:
直接運行一些系統命令時,提示command not found
但是可以通過類似管道符的方式,如ipconfig | net user形式執行系統命令:
通過以上方式,可以達到執行系統命令的效果。
開發者模式執行代碼
場景4:在場景1和場景2的前提下,如果用戶只發布了IE,也對C盤目錄做了限制,甚至猥瑣到你禁止跳轉到任何目錄上,但依然有辦法突破。
突破方式:
由于打開的是當前目標服務器的IE,可以通過IE的開發者工具的調試功能,通過Javascript調用命令行的方式打開目標服務器的命令行,執行命令。下圖為通過IE打開命令行的方法截圖:
上述是我們在不同項目過程中,發現的部分應用虛擬化所存在的安全問題,有攻才有防,在攻防的過程中,我們更重視防御的方法,針對部署應用虛擬化我們建議除了做禁止用戶直接調用CMD、任務管理器、組策略、控制面板、注冊表、瀏覽C盤目錄及寫入文件、目錄的執行權限等之外,還需要做以下的防護:
1、限制用戶使用快捷鍵方式打開資源管理器。
2、除了對cmd.exe進行限制外,還需要對system32下面的應用進行限制,通過策略禁止普通用戶執行該目錄下的應用,如systeminfo、ipconfig、netstat、net,net1,copy,xcopy等。
3、若office應用軟件必須,建議通過策略禁止使用宏命令的使用。
4、若開發者工具非必須,建議通過策略禁止IE的開發者工具。
5、建議刪除不必要的第三方應用。
6、系統服務器及時更新補丁。
本文版權屬于TRT團隊,由團隊成員121、Sampro、短信炸彈編寫。如果你覺得這篇文章有用,可以分享給自己的朋友,同樣希望更多的人也關注我們的微信公眾號trt917,我們會定期分享一些信息安全相關知識,希望能夠對大家有所幫助。