上周五在索泰顯卡十周年慶典上,NVIDIA中國區(qū)總經(jīng)理張建中談到了官方對GPU挖礦的態(tài)度,他說NVIDIA禁止GeForce游戲顯卡挖礦,不鼓勵用戶這么做,要挖礦有專用的礦卡,質(zhì)保90天,無顯示輸出接口。當(dāng)時在采訪中他還提到NVIDIA還會用技術(shù)手段禁止挖礦,之前不明白NVIDIA這是在說什么,不過從P106礦卡的情況來看,NVIDIA在嚴(yán)格區(qū)分顯卡、礦卡上真的是操碎了心——P106礦卡禁用了DirectX支持,意味著礦卡沒法玩游戲了。
P106礦卡沒顯示輸出,質(zhì)保也只有90天,現(xiàn)在還屏蔽了DX支持
挖礦顯卡因為長期高負(fù)荷運(yùn)行,對顯卡的使用壽命自然會有影響,在這一點上AMD、NVIDIA的立場應(yīng)該是一樣的,不過AMD那邊似乎并沒有采取什么行動,NVIDIA之前受挖礦影響不大,現(xiàn)在以太幣挖礦中,GTX 1060顯卡也很受追捧,所以N卡挖礦現(xiàn)在動靜大多了,官方對此也不能置之不理,嚴(yán)格區(qū)分礦卡與游戲卡的用途、質(zhì)保。
之前我們已經(jīng)說過了P106礦卡雖然是基于GP106核心的,但不能叫GTX 1060的名字,只能叫P106,搭配6GB顯存,不配置視頻輸出接口,質(zhì)保時間也從游戲卡的2-3年大幅降至3個月,也就是90天,這個時間大概也是精心算過的,因為礦卡挖不多在3月時間能回本。
香港媒體搞到了一塊影馳的P106礦卡
香港eZone網(wǎng)站上周末拿到了影馳的P106礦卡,除了實物之外還首次公開了P106礦卡的GPU-Z信息,部分信息還不能準(zhǔn)確識別,不過核心識別為P106-100,核心頻率1506Mhz,加速頻率1709MHz,顯存顆粒來自三星,容量6GB,位寬192bit,頻率不知道為何被打馬賽克了。
值得注意的是DX版本部分,是灰色的,顯示為Unknown未知,要么是沒識別,但更可能的是被禁用了,按照NVIDIA的表態(tài)來看,這并不奇怪,既然他們禁止顯卡用來挖礦,為了防止礦卡以后流入顯卡市場,禁用DX也可以理解,反正挖礦也不是基于DX規(guī)范的。
從NVIDIA一系列的動作來看,他們這是徹底封殺礦卡未來流向二手顯卡市場的可能了,對游戲玩家來說這是好事,可以避開未來潛在的雷區(qū),不過工頭們顯然不太高興,挖礦質(zhì)保期只有三個月也就罷了,一旦礦難來臨不能當(dāng)作二手卡賣掉,回收成本也是個問題,那么P106礦卡還會有工頭購買嗎?大家可以跟小超哥(id:9501417)微信聊聊,關(guān)注礦卡及如何挖礦的讀者也可以找他咨詢。
翻譯:興趣使然的小胃
預(yù)估稿費(fèi):300RMB
投稿方式:發(fā)送郵件至linwei#360.cn,或登陸網(wǎng)頁版在線投稿
一、前言
許多組織及機(jī)構(gòu)正逐步轉(zhuǎn)向虛擬化架構(gòu),包括應(yīng)用及桌面的虛擬化。這一過程通常會涉及如Citrix之類的虛擬化平臺來提供服務(wù)。
對虛擬化平臺而言,如果你配置不當(dāng)或者鎖定失敗,那么用戶可能會打破你原以為牢不可破的虛擬化環(huán)境。可能隨后不久,你就會發(fā)現(xiàn)你的整個域都被攻陷了。
在這之前,網(wǎng)上可能有很多教程指導(dǎo)用戶如何突破受限桌面環(huán)境,但據(jù)我們所知,這方面還沒有一個全面的教程囊括受限桌面環(huán)境突破的各種辦法。
這正是本文的目的所在,我們希望這是一篇實用的文章。當(dāng)然,本文也會是一篇不斷更新的文章,雖然我們做了大量的努力和研究,但可以肯定的是,我們沒有覆蓋每一種攻擊方法。如果你認(rèn)為我們在某些方面有所欠缺,請及時告知我們加以補(bǔ)充。
二、對話框
獲取一個對話框通常是突破虛擬化環(huán)境的首個突破口,如果系統(tǒng)經(jīng)過某種加固,這種方法常常能起到奇效。
即使你只能看到一個非常簡單的Notepad應(yīng)用,你手頭上還是有許多可選項的。
即使看起來最為無害、最為簡單的應(yīng)用也可能導(dǎo)致客戶域被攻陷,這一點上已經(jīng)有很多現(xiàn)實案例了。這種現(xiàn)象通常被稱為“滾雪球”效應(yīng),其中某個小問題引發(fā)另一個問題,最終導(dǎo)致整個環(huán)境存在極大的安全風(fēng)險。
許多標(biāo)準(zhǔn)的Windows應(yīng)用程序通常都會提供某種接口來打開一個對話框:
當(dāng)然有很多種方法可以打開一個對話框,然而,最簡單的方法是:
1、“另存為(Save as)”/“打開為(Open as)”菜單項。
2、“打印(Print)”菜單項:選擇“打印到文件(print to file)”選項(比如XPS/PDF等)。
三、濫用對話框
打開對話框之后,我們可以此為立足點,開始探索整個系統(tǒng),或者用來提升權(quán)限。能達(dá)到什么效果通常與你的創(chuàng)造力有關(guān),但我們通常可以有以下幾種方案:
1、創(chuàng)建新文件
(1)批處理文件:右鍵,依次選擇“新建(New)”、“文本文件(Text File)”,重命名為.BAT(或者.CMD)文件,之后選擇“編輯(Edit)”,“打開(Open)”。
(2)快捷方式:右鍵,依次選擇“新建(New)”、“快捷方式(Shortcut)”、選擇“%WINDIR%\system32”。
2、打開新的Windows資源管理器實例
在任意文件夾上右鍵,選擇“在新窗口中打開(Open in new window)”。
3、探索上下文菜單
(1)在任意文件或目錄上右鍵,觀察上下文菜單。
(2)點擊“屬性(Properties)”,重點觀察對象是快捷方式,選擇“打開文件路徑(Open File Location)”按鈕。
4、輸入框
許多輸入框都會接受文件路徑,你可以嘗試輸入UNC路徑,如“//attacker–pc/”或者“//127.0.0.1/c$”或者“C:\”。
5、繞過文件限制
在“文件名(File name)”框中,輸入“*.*”或者“*.exe”。
四、幫助菜單
幫助菜單有多種存在形式,但我們重點關(guān)注的是應(yīng)用程序的幫助菜單以及通用的“Windows幫助及支持”菜單(可以通過Windows+F1快捷方式啟動)。
幫助菜單中通常具有鏈接及快捷方式,以提供各種功能。如下圖所示,用戶可以點擊其中的鏈接打開命令提示符:
其他方式:
1、在任意空白處點擊右鍵,選擇“查看源碼(view source)”,通常會打開一個notepad實例。
2、頂部的打印圖標(biāo)可以引出一個打印對話框。
3、你可以通過語言欄訪問幫助菜單。許多需要提供多語言服務(wù)的環(huán)境中(比如機(jī)場)經(jīng)常會遇到這種場景。
4、許多應(yīng)用程序經(jīng)常會在開始菜單中帶有指向廠商網(wǎng)頁的超鏈接(比如www.vendor.com)。點擊這種鏈接通常可以引出一個IE瀏覽器窗口,這也是一個突破口。
五、環(huán)境變量/繞過路徑限制
某些系統(tǒng)做了些加固處理,我們無法直接訪問某個敏感路徑,如“C:\Windows\System32”目錄。但我們還是有可能使用各種符號鏈接繞過這個限制。
我們也可以使用文件協(xié)議前綴,打開使用其他方式無法打開的應(yīng)用程序:
六、奪取命令提示符
如果我們能夠訪問命令提示符,那么我們在突破受控系統(tǒng)上已經(jīng)取得了第一階段的勝利,我們可以借此獲取操作系統(tǒng)的許多控制權(quán),比如枚舉許多有用的信息,為權(quán)限提升做準(zhǔn)備。許多系統(tǒng)的加固強(qiáng)度不夠大,在開始菜單中都能看到cmd.exe的標(biāo)準(zhǔn)快捷方式,我們自然可以將這個接口當(dāng)成第一個突破口:
通常情況下,我們可以使用多個可執(zhí)行程序獲取系統(tǒng)的shell接口:
1、Cmd.exe
2、COMMAND.COM
3、Powershell.exe
4、第三方的管理/shell工具
6.1 通過“運(yùn)行(Run)”對話框
這可能是最簡單的一種辦法。可以通過開始菜單或者“Windows+R”快捷鍵打開運(yùn)行對話框:
6.2 通過資源管理器
這也是種簡單有效的方法。瀏覽包含可執(zhí)行程序的目錄(例如“C:\windows\system32\”),我們可以選擇可執(zhí)行程序,在彈出的右鍵菜單中選擇:
6.3 文件拖放
我們可以將任何文件拖放到cmd.exe文件上(即便不正確的擴(kuò)展名,如*.txt也可以),這樣會彈出一個命令提示符窗口:
6.4 超鏈接/快捷方式
我們可以利用文件處理器,使用與可執(zhí)行程序綁定的鏈接。這個鏈接可以在許多地方使用,比如對話框、在微軟Office內(nèi)部按住CTRL再點擊鏈接等等。這個鏈接為“file:///c:/Windows/System32/cmd.exe”。
6.5 任務(wù)管理器
Windows的任務(wù)管理器能幫我們不少忙,此外,它也可以用來創(chuàng)建新的進(jìn)程。我們可以通過各種方式啟動任務(wù)管理器(taskmgr),比如開始菜單、較新版的Windows中的CTRL+ALT+DELETE組合鍵,以及直接使用CTRL+SHIFT+ESCAPE組合鍵。
6.6 計劃任務(wù)(Task Scheduler)
這是個非常有趣的薄弱點。某些系統(tǒng)可能會限制cmd.exe的訪問,但還是可以通過計劃任務(wù)啟動cmd.exe。我們可以用過命令行形式的計劃任務(wù)工具(at.exe)或者GUI形式的計劃任務(wù)工具(taskschd.msc)完成這一任務(wù)。在計劃任務(wù)中,我們可以指定在特定時間(如1分鐘內(nèi))或者特定事件(如用戶登錄)發(fā)生時運(yùn)行cmd.exe。
6.7 COMMAND.COM
這是Windows出于兼容性而保留的一個16位程序。即使cmd.exe被禁用,這個程序通常也是可以訪問的。不幸的是,64位的Windows中再也不提供COMMAND.COM了。
6.8 Powershell.exe
與cmd.exe類似,但PowerShell具備某些更加高級的功能,例如它可以使用并調(diào)用.NET的某些功能。
6.9 MSPAINT.exe
這是一種不常用但行之有效的方法,我們可以在微軟的畫圖工具中繪制特定的顏色,創(chuàng)建指向cmd.exe的快捷方式,最終獲取shell接口。其原理與創(chuàng)建BMP文件所使用的編碼算法有關(guān),我們可以小心選擇特定的RGB顏色,將ASCII數(shù)據(jù)寫入到某個文件中。
1、打開MSPaint.exe,設(shè)置畫布大小為:寬度=6,高度=1像素。
2、放大畫布,以便操作。
3、使用顏色選擇器,按從左到右的順序,依次使用以下數(shù)值設(shè)置像素值:
(1)R: 10, G: 0, B: 0
(2)R: 13, G: 10, B: 13
(3)R: 100, G: 109, B: 99
(4)R: 120, G: 101, B: 46
(5)R: 0, G: 0, B: 101
(6)R: 0, G: 0, B: 0
4、將該圖保存為24位位圖(*.bmp;*.dlib)
5、將其擴(kuò)展名從bmp改為bat,然后運(yùn)行。
6.10 繞過交互式控制臺限制
當(dāng)交互式命令提示符被禁用時,我們通常可以使用“/K”或者“/C”參數(shù)運(yùn)行cmd.exe。我們可以使用“cmd.exe /K pause”命令,就能繞過限制,載入一個交互式shell:
此外,我們也可以將“/C”參數(shù)傳遞給cmd.exe,創(chuàng)建一個非交互式的命令提示符會話。比如,我們可以使用如下命令“cmd.exe /C tasklist > c:\tasks.txt”。
6.11 FTP方式
雖然FTP客戶端不能提供完全形式的命令行訪問接口,但它通常是可用的,在其他通道都被堵死的情況下,我們可以在FTP客戶端中使用“!dir”命令,羅列系統(tǒng)文件。此外,F(xiàn)TP客戶端也可以用來傳輸數(shù)據(jù),下載第三方工具。
其他一些有用的FTP命令:
1 2 3 | !whoami !date !ping 127.0.0.1 |
七、繞過寫入限制
繞過目標(biāo)環(huán)境的寫入限制是非常重要的一點,我們可以借助這類技術(shù),找到上傳第三方工具以及寫入數(shù)據(jù)的系統(tǒng)區(qū)域。
在一個理想的環(huán)境中,最好的管理原則就是用戶只能具備最低的寫入權(quán)限,同時不會對其正常工作造成影響。在現(xiàn)實中,這意味著用戶在本地文件系統(tǒng)中只能具備非常低的寫權(quán)限。
臨時目錄是一個很好的突破口,用戶幾乎總是具備該目錄的寫權(quán)限。我們可以通過“%TEMP%”環(huán)境變量,枚舉默認(rèn)的臨時目錄位置,類似的命令為“echo %TEMP%”。臨時文件目錄通常為:
1、C:\Users\USER\AppData\Local\Temp
2、C:\temp\
3、C:\tmp\
當(dāng)然“%USERPROFILE%”目錄也是另一個選擇,不過該目錄有可能會鏈接到某個網(wǎng)絡(luò)共享文件夾。
Accesschk.exe
該工具屬于Sysinternals工具集中的一員,與“cacls”/“icacls”功能類似。
我們可以使用這個工具,查找文件系統(tǒng)中我們具備哪些目錄的寫權(quán)限:
accesschk.exe -uwdqs Users c:\
accesschk.exe -uwdqs “Authenticated Users” c:\
八、繞過執(zhí)行限制
某些系統(tǒng)會使用白名單機(jī)制,只允許某些具備特定文件名或文件擴(kuò)展名的應(yīng)用程序運(yùn)行。有些時候,我們可以將malware.exe重命名為白名單中的合法名稱(如mspaint.exe),繞過白名單限制。
在某些配置不當(dāng)?shù)沫h(huán)境中,只要目錄符合白名單標(biāo)準(zhǔn),任何應(yīng)用程序都可以運(yùn)行。如果你正在測試的系統(tǒng)允許運(yùn)行微軟的Word程序,你可以嘗試將待運(yùn)行的程序拷貝到WINWORD.EXE所在的目錄加以運(yùn)行。
九、Internet Explorer瀏覽器
許多Web應(yīng)用程序使用類似Citrix/遠(yuǎn)程服務(wù)/Kiosk平臺之類的技術(shù)進(jìn)行分發(fā)部署。因此,大多數(shù)情況下,這意味著用戶需要Web瀏覽器才能訪問這些應(yīng)用程序。以老版本的Internet Explorer(IE)瀏覽器為例,我們可以借助IE瀏覽器,使用多種方式完成我們的任務(wù):
9.1 對話框及菜單欄
1、地址欄:我們可以使用地址欄,填入前文提到過的各種路徑及環(huán)境變量。例如可以使用 “file://c:\windows\system32\cmd.exe” 路徑。
2、菜單欄:幫助菜單、打印菜單以及搜索菜單都包含某些鏈接及選項,可能指向并打開瀏覽器之外的外部資源(如Windows資源管理器)。
3、右鍵點擊:右鍵菜單中包含某些非常有用的選項,比如“查看源碼”(notepad)以及“保存圖片為”菜單。
4、收藏菜單:打開收藏選項卡(ALT+C),將文件夾拖到瀏覽器窗口中,任意項目(如“MSN站點”)都可以。
9.2 主頁
我們可以將瀏覽器主頁設(shè)置為任意值(如“cmd.exe”)來訪問任意文件,當(dāng)然這是一種快速但略不文雅的方法。
9.3 F12開發(fā)者工具
在IE瀏覽器中,我們可以使用F12快捷鍵打開開發(fā)者工具。選擇“文件(File)”菜單中的“自定義Internet Explorer視圖源”選項,我們有可能可以自主選擇自定義程序。
根據(jù)我們的目的,我們可以選擇“C:\windows\system32\cmd.exe”作為視圖源,這樣cmd.exe就成為IE中默認(rèn)的HTML源代碼查看器。最后,我們可以在某個網(wǎng)頁上點擊右鍵,選擇“查看源碼(View Source)”,開始探索旅途。
9.4 證書導(dǎo)入
載入IE設(shè)置,轉(zhuǎn)到“內(nèi)容(Content)”選項卡,然后選擇“證書(Certificates)”按鈕。點擊“導(dǎo)入(Import)”選項,會彈出如下向?qū)В?/p>
向?qū)У南乱徊綍笪覀兲钊胱C書路徑,這將打開一個Windows資源管理器(或者文件瀏覽類型)對話框。我們可以使用“三、濫用對話框”這一部分中的技巧來打破受限環(huán)境及提升權(quán)限。
9.5 瀏覽器附加組件/小程序/動態(tài)內(nèi)容
默認(rèn)情況下,IE的設(shè)計初衷是提供界面友好且內(nèi)容豐富的用戶體驗。我們可以利用這一點,通過瀏覽器自身功能實現(xiàn)與操作系統(tǒng)的交互。在IE瀏覽器不被限制的情況下,我們可以使用ActiveX附加組件、Flash應(yīng)用、Java小程序以及類似技術(shù)完成這一任務(wù)。
9.6 基于瀏覽器的漏洞利用
如果系統(tǒng)沒有及時打補(bǔ)丁,不同版本的IE瀏覽器可能存在許多漏洞,攻擊者可以訪問精心構(gòu)造的某個鏈接來利用這些漏洞。典型的利用平臺就是Metasploit平臺。
當(dāng)然我們也可以誘騙系統(tǒng)上的另一個用戶點擊我們精心構(gòu)造的那個鏈接,這意味著惡意代碼會以這些用戶的身份運(yùn)行,如果這些用戶是高權(quán)限賬戶那再好不過。
十、微軟Office
與IE瀏覽器類似,大多數(shù)環(huán)境中都提供Office套裝以滿足用戶辦公需求。同樣,這也為我們提供了眾多可利用的點。
10.1 VBA(Visual Basic for Applications)腳本及宏
我們可以使用msfencode/msfpayload輕松生成VBA代碼,創(chuàng)建目標(biāo)主機(jī)上的反彈型shell或Meterpreter shell。這種方法很少會被反病毒軟件阻止。雖然Meterpreter shell非常有用,但以這種方式創(chuàng)建的shell會運(yùn)行在當(dāng)前文檔用戶的上下文環(huán)境中。當(dāng)然我們可以根據(jù)目標(biāo)系統(tǒng)的具體安全性設(shè)置,使用Meterpreter來提升權(quán)限。
10.2 開發(fā)者工具
所有的Office應(yīng)用中都提供開發(fā)者工具,但這項功能默認(rèn)情況下并沒有被啟用。不同版本啟用開發(fā)者工具的方法有所不同,以O(shè)ffice 2010為例,該選項位于應(yīng)用程序選項的“自定義功能區(qū)”選項卡中。開發(fā)者工具一旦啟用,各種加載項就可以為我們提供豐富的功能。
開發(fā)者工具中包含大量與操作系統(tǒng)交互的ActiveX控件。如果IE瀏覽器被禁用,但Excel并沒有被禁用,我們?yōu)槭裁床粍?chuàng)建自己的Web瀏覽器呢?
10.3 通過VBA運(yùn)行命令
通過宏或者VBA代碼,我們只需要簡單的三行代碼就能啟動外部應(yīng)用程序:
10.4 MS SQL服務(wù)器(本地及遠(yuǎn)程)
雖然這是條較為漫長的道路,但如果我們能夠訪問微軟出品的SQL服務(wù)器(特別是老版本的服務(wù)器),這種方法還是值得一試的。我們可以檢查SQL服務(wù)器是否啟用了XP_CMDSHELL組件。如果服務(wù)器缺乏訪問限制或者用戶控制機(jī)制,我們有可能可以在該服務(wù)器上執(zhí)行命令并最終遠(yuǎn)程控制它。
10.5 對話框及快捷鍵
這又是對話框的一種利用方式。我們可以在標(biāo)準(zhǔn)文檔(如Word文檔)中嵌入簡單的指向文件系統(tǒng)的快捷方式(如file://)。
十一、修改ICA文件
Citrix的某些配置依賴.ICA(Independent Computing Architecture,獨立計算結(jié)構(gòu))文件來存放某個連接的配置信息。這些配置信息中包含許多明顯的特征參數(shù),比如服務(wù)器地址以及端口信息,當(dāng)然還有許多更加有趣的參數(shù)可以為我們所用。
簡單的ICA文件形式如下:
某些應(yīng)用程序可能需要進(jìn)一步的身份驗證,當(dāng)前的身份無法奏效。我們可以模糊測試(fuzz)“InitialProgram”這個參數(shù),枚舉潛在有效的可執(zhí)行程序。
Nmap(使用citrix-enum-apps這個NSE插件)以及Metasploit(使用auxiliary/gather/citrix_published_applications)可以用來枚舉已發(fā)布的應(yīng)用程序,互聯(lián)網(wǎng)中還有許多類似的公開腳本可以完成同樣工作。
十二、默認(rèn)/弱憑證
在任何環(huán)境中,挖掘探索默認(rèn)的用戶名/密碼組合或者使用弱口令(如“password”)的賬戶顯然是攻擊行動中非常關(guān)鍵的一環(huán)。
如果可能的話,你在發(fā)起攻擊前應(yīng)嘗試枚舉獲取可用的用戶名列表。我們可以通過錯誤信息判斷某個賬戶是否存在,比如“該用戶名不存在”以及“密碼錯誤”這類錯誤消息都能提供有用的信息。“忘記密碼”功能通常也能告訴我們某個用戶是否存在。
如果你已經(jīng)通過驗證,也能獲取一個shell,你可以嘗試使用“net users”以及“net users /domain”命令。
包括如下用戶名在內(nèi)的許多用戶名總是值得嘗試的。很多情況下,賬戶的密碼有可能就是用戶名:
十三、目標(biāo)中的文件傳輸
我們會簡單介紹一下目標(biāo)環(huán)境中可以使用的某些方法:
1、FTP
2、HTTP服務(wù)器(WAMP/LAMP以及其他一些公開工具)
3、SMB客戶端工具 \hacker\tools
4、SMB服務(wù)端工具 \server\c$
5、DNS隧道
6、電子郵件(私人或企業(yè)郵件)
7、剪貼板
8、基于用戶輸入的流數(shù)據(jù)
9、設(shè)備穿透技術(shù)(RS323/串口、火線接口)
以上某些方法需要在攻擊環(huán)境中架設(shè)服務(wù)器,不過這并不麻煩,Kali Linux中已經(jīng)集成了許多服務(wù),我們可以直接使用。
13.1 DNS隧道
即使在高度受限的環(huán)境中,DNS查詢請求還是有可能可以抵達(dá)外部互聯(lián)網(wǎng),這是非常有趣的一個事實。我們在另一篇文章中單獨介紹了這個技術(shù)點。
13.2 電子郵件
如果Web瀏覽器可用,通常情況下電子郵件也是可用的,我們可以使用個人電子郵件賬戶(如Gmail)傳輸目標(biāo)主機(jī)上的數(shù)據(jù)。根據(jù)目標(biāo)環(huán)境具體的防火墻策略以及網(wǎng)絡(luò)過濾規(guī)則,我們可以探索哪種郵件協(xié)議可用,如POP3、IMAP以及SMTP協(xié)議。
全功能桌面環(huán)境可能具備公司郵件系統(tǒng)的訪問權(quán)限,我們也可以使用類似的方式利用這一點。需要注意的是,許多企業(yè)(特別是大型公司)的郵箱系統(tǒng)通常會采取基于附件的內(nèi)容過濾機(jī)制,我們可以使用加密數(shù)據(jù)(如ZIP)附件繞過這一限制。
13.3 剪貼板
剪貼板也是傳輸數(shù)據(jù)的一種方法。二進(jìn)制文件可以先經(jīng)過BASE64編碼,在遠(yuǎn)程系統(tǒng)上解碼重構(gòu)以便執(zhí)行。此外,我們也可以使用剪貼板傳輸匯編語言代碼,然后在遠(yuǎn)程主機(jī)上使用debug.exe執(zhí)行這些代碼。
13.4 基于用戶輸入的流數(shù)據(jù)
利用用戶輸入的標(biāo)準(zhǔn)接口(比如鍵盤及鼠標(biāo)),我們可以創(chuàng)建一個模擬用戶輸入的自動腳本來發(fā)送數(shù)據(jù),數(shù)據(jù)可以使用慢速流進(jìn)行傳輸,在另一端重構(gòu)即可。
例如Rubber Ducky之類的可重新編程的人機(jī)接口設(shè)備(Human Interface Devices,HIDs)正是這類攻擊的優(yōu)良載體。我的一名同事,David Lodge,寫了篇文章詳細(xì)介紹了這類攻擊。
13.5 設(shè)備穿透
根據(jù)目標(biāo)所在的具體環(huán)境,我們有可能穿透本地硬件設(shè)備(如USB存儲設(shè)備)到達(dá)遠(yuǎn)程主機(jī)。某些客戶端,例如微軟的遠(yuǎn)程桌面協(xié)議以及Citrix Receiver實際上使用了自動化的設(shè)備穿透機(jī)制,當(dāng)然這個功能可以根據(jù)需要手動進(jìn)行修改。
對于微軟的遠(yuǎn)程桌面應(yīng)用而言,啟動遠(yuǎn)程服務(wù)客戶端(mstsc.exe),選擇“本地資源”標(biāo)簽頁,點擊窗口底部的“更多”按鈕,我們可以選擇本地哪種設(shè)備及驅(qū)動會被傳遞到遠(yuǎn)程主機(jī)。
對Citrix Receiver來說操作類似,在連接建立之前,我們可以轉(zhuǎn)到桌面查看器首選項,選擇“設(shè)備(Devices)”標(biāo)簽頁:
連接建立后,我們也可以使用狀態(tài)欄重復(fù)類似操作:
13.6 設(shè)備穿透(RS232/串口)
如果類似串口之類的設(shè)備也能夠通過設(shè)備穿透技術(shù)進(jìn)行連接,那么主機(jī)及服務(wù)器之間傳輸數(shù)據(jù)就會更加便捷。可用的串口列表可以在本地主機(jī)枚舉獲得,流數(shù)據(jù)可以經(jīng)過串口傳輸?shù)椒?wù)器。在服務(wù)端,我們可以使用終端應(yīng)用程序(如Windows HyperTerminal或者使用debug.exe編譯的自定義程序)來接受數(shù)據(jù)。
13.7 設(shè)備穿透(火線接口)
安全社區(qū)對火線接口的印象不佳,原因在于它們?nèi)菀资艿轿锢韮?nèi)存攻擊的影響。這類攻擊利用了火線中的某個“功能”,使連接火線的外部設(shè)備能夠具備DMA(Direct Memory Access,直接內(nèi)存訪問)能力。從理論上講,支持DMA功能的某些模擬火線設(shè)備(例如Apple iPod)也可能使用設(shè)備穿透功能,然后該設(shè)備就可能具備遠(yuǎn)程內(nèi)存的完全讀寫權(quán)限。這將帶來嚴(yán)重的問題,因為內(nèi)存中很有可能包含敏感數(shù)據(jù),比如用戶憑證、加密密鑰等。
十四、實用的系統(tǒng)/管理工具
當(dāng)Windows系統(tǒng)經(jīng)過加固后,某些內(nèi)置的用于系統(tǒng)管理的默認(rèn)工具可能會被管理員忘記加固,因此可以為攻擊者所用。其中大部分工具可以使用前文介紹的方法來運(yùn)行;
1、MMC.exe:微軟管理控制臺,允許我們使用“管理單元“控制許多系統(tǒng)功能。
2、Mstsc.exe:微軟遠(yuǎn)程服務(wù),用來連接到另一臺主機(jī)。
3、Regedit.exe:注冊表控制工具。
4、Taskmgr.exe:任務(wù)管理器。
5、Control.exe:控制面板快捷方式。
6、Rundll32.exe:利用該工具可以調(diào)用原生API訪問隱藏的系統(tǒng)功能。
7、Dxdiag.exe:DirecX診斷工具,可以用來收集系統(tǒng)信息。
8、Msconfig.exe:系統(tǒng)配置工具,可以顯示許多系統(tǒng)信息,包含指向系統(tǒng)工具的鏈接。
9、Eventvwr.exe:本地事件查看器。
10、Systeminfo.exe:系統(tǒng)信息收集器的命令行工具。
11、Msinfo32.exe:系統(tǒng)信息收集。
12、Osk.exe:虛擬鍵盤程序,在沒有鍵盤的環(huán)境中十分有用。
13、At.exe:計劃任務(wù)調(diào)度程序命令行版。
14、Taskschd.msc:計劃任務(wù)調(diào)度程序界面版。
15、Explorer.exe:創(chuàng)建一個新的Windows資源管理器實例。
16、WMIC.exe
17、Qwinsta.exe:顯示RDP會話相關(guān)信息。
18、Tasklist.exe /qprocess.exe:列出進(jìn)程信息。
當(dāng)然有時候枚舉當(dāng)前可用的本地或第三方可執(zhí)行文件也是非常有用的:
1 | dir /s %WINDIR% *.exe |
14.1 Rundll32
通過Rundll32,我們可以運(yùn)行許多命令,常見的命令如下所示:
已保存的用戶名及密碼:
1 | RunDll32.exe keymgr.dll,KRShowKeyMgr |
控制面板:
1 | RunDll32.exe shell32.dll,Control_RunDLL |
日期及時間屬性:
1 | RunDll32.exe shell32.dll,Control_RunDLL timedate.cpl |
設(shè)備管理器:
1 | RunDll32.exe devmgr.dll DeviceManager_Execute |
文件管理器屬性:
1 | RunDll32.exe shell32.dll,Options_RunDLL 0 |
忘記密碼向?qū)В?/p>
1 | RunDll32.exe keymgr.dll,PRShowSaveWizardExW |
鍵盤屬性:
1 | RunDll32.exe shell32.dll,Control_RunDLL main.cpl @1 |
鎖定屏幕:
1 | RunDll32.exe user32.dll,LockWorkStation |
網(wǎng)絡(luò)鏈接:
1 | RunDll32.exe shell32.dll,Control_RunDLL ncpa.cpl |
彈出打開方式對話框:
1 | Rundll32 Shell32.dll,OpenAs_RunDLL FILE.ext |
打印機(jī)用戶界面:
1 | Rundll32 Printui.dll,PrintUIEntry /? |
系統(tǒng)屬性對話框:
1 | Rundll32 Shell32.dll,Control_RunDLL Sysdm.cpl,,3 |
Windows防火墻:
1 | RunDll32.exe shell32.dll,Control_RunDLL firewall.cpl |
Windows關(guān)于對話框:
1 | RunDll32.exe SHELL32.DLL,ShellAboutW |
14.2 WMIC.exe
WMIC(Windows Management Instrumentation Command-Line)是一個非常強(qiáng)大的命令行工具,可以用來收集信息:
WMIC覆蓋的范圍非常廣泛,我們只選取某些使用案例:
本地共享:
1 | wmic share list /format:table |
本地用戶:
1 | wmic useraccount list full |
本地用戶 – 輸出到HTML文件:
1 | wmic /output:c:\users.html useraccount list full /format:hform |
進(jìn)程:
1 | wmic process list full |
服務(wù):
1 | wmic service list full |
軟件:
1 | wmic os lsit full |
已安裝的補(bǔ)丁/服務(wù)包/修補(bǔ)程序:
1 | wmic qfe |
十五、快捷方式
與大多數(shù)操作系統(tǒng)一樣,Windows中經(jīng)常使用的功能都會有快捷方式。特別是系統(tǒng)加固方式只是浮于表面時(例如只是簡單刪除了開始菜單鏈接),某些快捷方式在這種場景中就顯得尤為有用。
15.1 標(biāo)準(zhǔn)的操作系統(tǒng)快捷方式
我們可以在Windows系統(tǒng)的許多地方創(chuàng)建標(biāo)準(zhǔn)的系統(tǒng)快捷方式,比如我們可以嘗試在桌面或者資源管理器中點擊右鍵,在彈出的右鍵菜單中創(chuàng)建指向其他資源的鏈接,如“%WINDIR%\system32\cmd.exe“。
15.2 輔助功能快捷鍵
許多快捷方式指向的是輔助功能,比如“粘滯鍵“以及”鼠標(biāo)按鍵“等。按下正確的組合鍵會彈出相應(yīng)的對話框,這些對話框可以用來訪問輕松訪問中心(Ease of Access Centre,EAC)。我們可以使用EAC作為突破口。
1、粘滯鍵:按下SHIFT鍵5次。
2、鼠標(biāo)按鍵:SHIFT+ALT+NUMLOCK
3、高對比度:SHIFT+ALT+PRINTSCN
4、切換鍵:按住NUMLOCK鍵5秒鐘
5、過濾鍵:按住右SHIFT鍵12秒鐘
其他標(biāo)準(zhǔn)快捷方式也有用處,有些快捷鍵與特定程序有關(guān):
1、WINDOWS+F1 – Windows搜索
2、WINDOWS+D – 顯示桌面
3、WINDOWS+E – 啟動Windows資源管理器
4、WINDOWS+R – 運(yùn)行對話框
5、WINDOWS+U – 輕松訪問中心
6、WINDOWS+F – 搜索
7、SHIFT+F10 – 右鍵上下文菜單
8、CTRL+SHIFT+ESC – 任務(wù)管理器
9、CTRL+ALT+DEL – 顯示鎖定屏幕
10、F1 – 幫助
11、F3 – 搜索
12、F6 – 地址欄
13、F11 – IE瀏覽器會進(jìn)入全屏模式
14、CTRL+H – IE瀏覽器歷史記錄
15、CTRL+T – IE瀏覽器新標(biāo)簽頁
16、CTRL+N – IE瀏覽器新頁面
17、CTRL+O – 打開文件
18、CTRL+S – 保存
19、CTRL+N – 新建
十六、RDP/Citrix快捷方式
Citrix以及微軟遠(yuǎn)程桌面協(xié)議(RDP)有一套自己的快捷方式或者“熱鍵“,對應(yīng)操作系統(tǒng)功能或者其他功能。
16.1 遠(yuǎn)程桌面熱鍵
1、CTRL+ALT+END – 打開Windows安全對話框
2、CTRL+ALT+BREAK – 在窗口和全屏之間切換
3、ALT+INSERT – 循環(huán)切換窗口
4、ALT+HOME – 顯示開始菜單
5、ALT+DELETE – 顯示控制/上下文菜單
6、CTRL+ALT+NUMBER 結(jié)合-號 – 截取活動窗口屏幕并保存到RDP剪貼板中
7、CTRL+ALT+NUMBER 結(jié)合+號 – 截取整個RDP會話屏幕并保存到RDP剪貼板中
16.2 Citrix ICA熱鍵
1、SHIFT+F1 – 顯示W(wǎng)indows任務(wù)列表
2、SHIFT+F2 – 切換標(biāo)題欄
3、SHIFT+F3 – 關(guān)閉遠(yuǎn)程應(yīng)用/Citrix連接
4、CTRL+F1 – 顯示W(wǎng)indows NT安全桌面
5、CTRL+F2 – 顯示遠(yuǎn)程任務(wù)列表或者開始菜單
6、CTRL+F3 – 顯示任務(wù)管理器
7、ALT+F2 – 循環(huán)切換最大化及最小化窗口
8、ALT+PLUS – 循環(huán)切換已打開的窗口
9、ALT+MINUS – 反向循環(huán)切換已打開的窗口
十七、批處理文件及腳本
當(dāng)交互式shell被禁用時,我們可以使用諸如.BAT和.CMD之類的批處理文件來執(zhí)行系統(tǒng)命令。雖然.BAT文件可能會被禁用,但較為陌生的.CMD文件有時候還是能發(fā)揮作用的。
17.1 Windows腳本宿主(Windows Script Host,WSH)
假如“cscript.exe“或者”wscript.exe“未被禁用,我們可以使用WSH來運(yùn)行許多腳本語言,默認(rèn)情況下可以運(yùn)行VBScript、VBA以及JScript語言。
例如,我們可以執(zhí)行如下VBScript片段,將代碼片段保存為.VBS文件即可。使用這段代碼,我們有可能可以啟動一個CMD命令行:
1 2 | set objApp=CreateObject(“WScript.Shell”) objApp.Run “CMD C:\” |
我們可以通過雙擊方式來運(yùn)行這個VBS文件,也可以將文件名作為參數(shù)傳遞給cscript.exe或者wscript.exe來運(yùn)行。
系統(tǒng)支持的其他語言也有可能被攻擊者濫用,如Python、Perl、PHP等,我們可以嘗試使用這些語言。許多主機(jī)上默認(rèn)會安裝Java運(yùn)行環(huán)境,我們可以采用類似方式使用javac.exe以及java.exe完成命令運(yùn)行目的。
十八、敏感文件及數(shù)據(jù)
許多敏感數(shù)據(jù)對(快速)權(quán)限提升來說非常有用。總會有某些人會以明文形式將密碼保存在某個文件中。
18.1 使用十八般武藝來搜索文件
1、Windows資源管理器
2、Windows搜索功能
3、命令行配合“dir c:\ /s juicy.txt“以及“dir c:\ /s *password*==*cred*==*vnc*==*.config*”命令。
18.2 枚舉可能保存敏感數(shù)據(jù)的應(yīng)用程序
1、VNC:ultravnc.ini等
2、Apache:httpd.conf,.htaccess等
3、KeePass以及類似應(yīng)用程序
18.3 敏感注冊表項
1、reg query “HKCU\Software\ORL\WinVNC3\Password”
2、reg query “HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon”
3、reg query “HKLM\SYSTEM\Current\ControlSet\Services\SNMP”
4、reg query “HKCU\Software\SimonTatham\PuTTY\Sessions”
18.4 敏感文件
1、sysprep.inf
2、sysprep.xml
3、%WINDIR%\Panther\Unattend\Unattended.xml
4、%WINDIR%\Panther\Unattended.xml
5、%WINDIR%\debug\NetSetup.log
6、%WINDIR%\repair\sam
7、%WINDIR%\repair\system
8、%WINDIR%\repair\software
9、%WINDIR%\repair\security
10、%WINDIR%\system32\config\AppEvent.Evt
11、%WINDIR%\system32\config\SecEvent.Evt
12、%WINDIR%\system32\config\default.sav
13、%WINDIR%\system32\config\security.sav
14、%WINDIR%\system32\config\software.sav
15、%WINDIR%\system32\config\system.sav
16、%USERPROFILE%\ntuser.dat
18.5 Citrix ICAClient緩存連接
我們有可能會在本地應(yīng)用數(shù)據(jù)倉庫中找到已緩存的連接信息。檢查“ICAClient”目錄,這個目錄通常位于%APPDATA%目錄。使用“dir /s ICAClient”命令也可以。
我們可以將其他用戶的ICAClient內(nèi)容復(fù)制到自己的目錄中,這樣有可能可以劫持他們已緩存的連接。
18.6 組策略首選項中保存的密碼
如果你正在測試的主機(jī)屬于某個域,并且你可以訪問域控上的SYSVOL網(wǎng)絡(luò)共享目錄,那么我們可以尋找存儲在各種XML文件中的“cPassword”字段。我們可以手動瀏覽SYSVOL文件夾,查看以下相關(guān)文件:
1、Groups.xml
2、Services.xml
3、ScheduledTasks.xml
4、Printers.xml
5、Drives.xml
6、DataSources.xml
“Password”屬性經(jīng)過AES加密,然而密鑰為靜態(tài)密鑰,并且微軟官方通過許多MSDN文章介紹了這個靜態(tài)密鑰。
十九、二進(jìn)制駐留
二進(jìn)制程序的駐留涉及到將惡意代碼放在某個目錄,而這個目錄經(jīng)常會被存在漏洞的應(yīng)用或服務(wù)所使用。通常我們需要結(jié)合多種脆弱配置才能完成這一任務(wù)。
19.1 脆弱的Windwos服務(wù)權(quán)限
常見的一個攻擊點就是存在漏洞的Windows服務(wù)以及文件/目錄權(quán)限。正如前文所述,Sysinternals的accesschk.exe工具可以用來枚舉此類信息。
首先,要確認(rèn)我們位于那個用戶組。對于低權(quán)限用戶來說,他們通常位于標(biāo)準(zhǔn)的“已認(rèn)證用戶”組中。
現(xiàn)在我們需要枚舉哪些服務(wù)可以被我們修改:
1 | accesschk.exe -uwcqv “Authenticated Users” * |
如果結(jié)果中包含任意服務(wù),我們就可以選擇它作為攻擊目標(biāo)。
許多服務(wù)會運(yùn)行在SYSTEM權(quán)限下,因此如果我們具備這類服務(wù)的寫權(quán)限,我們就能以最高權(quán)限運(yùn)行任何應(yīng)用程序。
19.2 DLL劫持
應(yīng)用程序通常不能自己啟動運(yùn)行,而是以來他們掛載的資源池來完成運(yùn)行目的。這種情況對諸如DLL之類的代碼庫來說非常普遍。通常情況下,Windows應(yīng)用程序會按照預(yù)設(shè)路徑來查找DLL文件,會依次檢查如下目錄:
1、應(yīng)用程序加載的目錄
2、32位系統(tǒng)目錄(C:\Windows\System32)
3、16位系統(tǒng)目錄(C:\Windows\System)
4、Windows目錄(C:\Windows)
5、當(dāng)前工作目錄(CWD)
6、PATH環(huán)境變量指定的目錄(先是系統(tǒng)變量然后是用戶變量)
如果我們可以將我們的惡意DLL放在上游路徑,那么應(yīng)用程序就會優(yōu)先加載我們的惡意代碼。
二十、總結(jié)
通過本文分析,我們知道這類環(huán)境通常難以進(jìn)行安全防護(hù),甚至難以正確地進(jìn)行安全防護(hù)。
當(dāng)用戶可以使用全功能的桌面環(huán)境時,這種安全防護(hù)可能是一項更具挑戰(zhàn)的任務(wù)。操作系統(tǒng)的設(shè)計初衷是提供豐富的功能,盡可能地對用戶友好。不幸的是,這兩點都與系統(tǒng)安全存在某種沖突。
我們建議任何遠(yuǎn)程環(huán)境都按照務(wù)實方式進(jìn)行配置,盡可能少地向用戶提供可用功能,滿足用戶日常需求即可,這樣能盡可能少地減少整體攻擊面。
所有的默認(rèn)配置都應(yīng)該被調(diào)整和加強(qiáng),以盡可能地減少攻擊者可以使用的攻擊路徑。
當(dāng)然這些環(huán)境應(yīng)該提供盡可能豐富的日志功能,同時將日志報告給中央監(jiān)控/報告系統(tǒng)。這樣管理員就能實時監(jiān)控可能發(fā)生的任何攻擊行為。
二十一、參考資料及延伸閱讀
1、Citrix安全規(guī)范:http://www.citrix.com/support/security-compliance.html
2、SANS白皮書:Citrix以及遠(yuǎn)程服務(wù)環(huán)境中的服務(wù)器安全:http://www.citrix.com/content/dam/citrix/en_us/documents/support/citrix-xenapp-6-5-and-xendesktop-5-6-security-standards-and-deployment-scenarios.pdf
3、Tariq Azad撰寫的《如何對企業(yè)中的Citrix XenApp服務(wù)器進(jìn)行安全加固》:http://www.goodreads.com/author/show/3072999.Tariq_Azad
4、windows-privesc-check:http://pentestmonkey.net/tools/windows-privesc-check
5、使用mspaint創(chuàng)建cmd.exe:http://nsimattstiles.wordpress.com/2013/03/19/gain-command-prompt-access-via-mspaint/