新聞中心
目前為止,PowerShell仍然是網(wǎng)絡(luò)安全專家進行防御和黑客進行攻擊的首選工具。原因很簡單,PowerShell具有很好的可擴展性,支持能力以及適應(yīng)各種編程語言。如PowerShell Empire,PowerSploit等,都被安全研究人員以及黑客所使用。

創(chuàng)新互聯(lián)公司長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為城廂企業(yè)提供專業(yè)的網(wǎng)站制作、網(wǎng)站設(shè)計,城廂網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
這兩天,就有安全平臺檢測出了有惡意軟件利用PowerShell所進行的攻擊,該攻擊可以進行持久性攻擊并繞過傳統(tǒng)安全防護的檢測。惡意軟件會誘騙用戶對網(wǎng)站上的Adobe Flash瀏覽器插件進行更新,然后使用一個稱為mshta.exe的HTA攻擊方法。 MSHTA.exe是一個合法的Microsoft二進制文件,可以在任何瀏覽器中被調(diào)用,用于執(zhí)行.HTA文件。不過在大多數(shù)情況下,對MSHTA.exe的擴展都屬于惡意擴展,所以我們建議開啟防火墻里所有阻止HTA擴展的功能。
目前利用MSHTA.exe進行攻擊的方法已經(jīng)被列入社會工程學(xué)攻擊包(SET)多年了:
如果被MSHTA.exe攻擊了,就會發(fā)生上圖所列的那些情況。黑客可能是利用了VBS下載器,PowerShell,一個被下載和執(zhí)行的二進制文件等等來執(zhí)行的MSHTA.exe攻擊。
目前,在大多數(shù)情況下,這種釣魚網(wǎng)絡(luò)攻擊都能夠被檢測到,如下圖所示, 一旦網(wǎng)頁啟動了惡意HTA ,就能被立即檢測到。
一旦發(fā)生這種情況,PowerShell命令就會被執(zhí)行,因為這個HTA會觸發(fā)了多個危險提示。通常,惡意HTA會觸發(fā)SYSWOW64降級攻擊,將進程降級為32位進程,從而給目標設(shè)備注入shellcode。
在我們對攻擊日志進行分析時,我們發(fā)現(xiàn)Invoke-Expression(IEX)是一種常用的攻擊技術(shù),利用這種技術(shù)可以提取特定的注冊表項,并實現(xiàn)持久化的掛鉤( hook)。PowerShell攻擊是通過Invoke-Expression(IEX)調(diào)用.Net Web Client下載功能來下載瀏覽器上的PowerShell代碼并執(zhí)行。不過,提取的注冊表項的名稱和持久性掛鉤都會在初始PowerShell調(diào)用中經(jīng)過混淆處理。
在這個由Invoke-Expression引起的攻擊中,攻擊者會在CurrentVersion Run下的用戶配置文件下創(chuàng)建了一個注冊表項,以作為持久性掛鉤的起始位置。
通過研究持久性掛鉤的日志,我們發(fā)現(xiàn)混淆后的持久性注冊表掛鉤如下:
- HKEY_USERS:SANITIZED\Software\Microsoft\Windows\CurrentVersion\Run
- "C:\Windows\system32\mshta.exe" "about:"
反混淆后的持久化注冊表掛鉤如下:
這一系列過程,就是我們本文所說的無文件攻擊技術(shù),也稱為有效載荷傳遞攻擊技術(shù),因為該攻擊技術(shù)不是直接將特定的有效載荷寫入文件的,而是通過運行注冊表項來在目標設(shè)備中實現(xiàn)持久化注入。
在文件攻擊技術(shù)中,mshta.exe會使用WScript.shell來調(diào)用嵌入了PowerShell命令的注冊表項。目前,這種無文件攻擊至今還無法被檢測到。不過,“無文件”并不是真的沒有文件的意思,而是指的有效載荷,關(guān)于什么是無文件惡意軟件,請點擊這里進行詳細了解。
使用目標設(shè)備的PowerShell和mshta,攻擊者可以使用傳統(tǒng)的攻擊技術(shù)來對目標設(shè)備進行惡意文件的下載及后門的安裝。通常黑客會使用Invoke-Expression(IEX)來進行繞過并使用PowerShell的“EncodedCommand”參數(shù)以躲避安全軟件的檢測。
最近,安全研究員Vincent Yiu就展示了一種通過PowerShell來繞過傳統(tǒng)檢測的方法,該方法沒有調(diào)用任何IEX和EncodedCommand。目前這種方法已開始被廣泛使用了,比如下圖這個例子,就是利用了“.”來調(diào)用calc.exe的。在這個例子中,由于沒有調(diào)用其他代碼,所以無需使用該代碼來分配變量。
那么,在這種情況下,網(wǎng)站的TXT將記錄下載PowerShell的命令,并通過nslookup在系統(tǒng)上執(zhí)行該命令。這意味著我們可以把命令代碼注入到DNS中的TXT記錄中,并啟動PowerShell命令。
開頭我們所提到的那家安全平臺就可以就可以通過這種PowerShell的運行,來檢測出惡意運行。
如果檢測到nslookup以及通過nslookup提取代碼的行為,則該平臺就能立馬檢測到這種惡意行為,因為PowerShell內(nèi)部使用的nslookup以及在txt記錄中的代碼都是惡意的。另外,上面例子中的“.”只能執(zhí)行文件,而不是執(zhí)行代碼本身。因此,我們還需要另一個命令,來執(zhí)行從nslookup txt記錄中提取的代碼。
安全研究專家Daniel Bohannon給出了一種實現(xiàn)辦法,不過仍然需要用到IEX:
- $nslookupResult1 = 'iex'
- $nslookupResult2 = 'Write-Host THIS IS MY ACTUAL PAYLOAD -f green'
- . $nslookupResult1 $nslookupResult2
- or even better:
- $nslookupAllInOne = @('iex','Write-Host ALL IN ONE -f green')
- . $nslookupAllInOne[0] $nslookupAllInOne[1]
以下是在該平臺所識別出的一種特定攻擊模式:
預(yù)防措施
對于那些還沒有使用該平臺進行防護的組織來說,我們可以推薦一些方法來檢測PowerShell的這種無文件持久化行為,其實這種惡意行為并不僅限于某種特定的模式,例如IEX。下面我們就為你列出一些預(yù)防措施,讓你做到心中有數(shù):
- 注意PowerShell命令的字符長度必要過大;
- 注意將PowerShell置于約束語言模式下的行為;
- 啟用增強的PowerShell日志記錄,例如腳本塊日志記錄;
- 經(jīng)常對設(shè)備進行安全檢測;
- 注意minesweeper.exe的出現(xiàn);
- 監(jiān)控諸如IEX,EncodedCommand等的使用;
- 利用Sysmon等工具提高記錄功能,并檢測可能由可疑進程(PowerShell)引發(fā)的流程注入,
- 審查DNS日志并尋找可疑的控制命令和DNS請求;
- 查找不是源自powershell.exe和powershell_ise.exe的System.Management.Automation.dll和System.Management.Automation.ni.dll;
- 在正常情況下禁止普通用戶執(zhí)行PowerShell命令(AppLocker +Device Guard可以防止普通用戶使用PowerShell)。
網(wǎng)站題目:PowerShell無文件持久化技術(shù)與常用的防御繞過技術(shù)
分享鏈接:http://www.dlmjj.cn/article/dpgcccg.html


咨詢
建站咨詢
