對很多IT專業人士來說,Powershell的確是Windows系統中一個相當強大的工具,而且微軟也有意將PowerShell作為Windows系統的默認命令行工具。但賽門鐵克最近的一份報告指出,超過95%的PowerShell腳本實際上都是惡意腳本。
賽門鐵克在報告(傳送門)中指出,絕大部分惡意PowerShell腳本都是扮演下載的角色。當然PowerShell腳本的終極目標還是要在設備上執行惡意代碼,在整個網絡傳播惡意軟件。
絕大多數PowerShell腳本是惡意腳本
由于PowerShell框架極具靈活性,攻擊者可以濫用它來下載惡意payload、進行惡意偵查、或者是遍歷網絡。賽門鐵克分析,95.4%的PowerShell腳本為惡意腳本,這個結果表明來自外部的PowerShell腳本程序對企業構成了重大威脅,尤其是在使用shell 框架的企業中。
下載并執行遠程文件的簡單腳本程序示例
如今的很多針對性攻擊均使用了Powershell腳本,無論是Odinaff集團發起的攻擊還是Kovter Trojan木馬作者編寫的腳本(都是采用PowerShell)。PowerShell腳本甚至不需要以文件為載體就能感染目標,因此越來越多銀行木馬和其他類型的威脅都選擇了PowerShell。
比如最近有款名為“August”的惡意程序就采用PowerShell進行感染,而且并沒有以文件為載體(傳送門):在這次攻擊中,惡意腳本企圖竊取身份憑證和敏感文件。它通過包含惡意宏的word文檔進行傳播,一旦打開文檔,Powershell命令行就會啟動,然后下載并安裝最終的payload。
賽門鐵克在例證中特別提到了Nemucod downloader——如果你對Locky勒索軟件熟的話,應該也很清楚Nemucod用的就是PowerShell。不過實際上,報告中一直在強調,最常與PowerShell匹配的還是Office宏;另外各種Exploit Kits漏洞利用工具也經常采用PowerShell,比如說相當知名的RIG、Neutrino、Magnitude和Sundown。
惡意PowerShell腳本的一些數據
我們接收到的樣本數量在2016年急劇增長。賽門鐵克在第二季度收到的樣本數量是第一季度的14倍,而第三季度更是第二季度的22倍。
基本代碼混淆
賽門鐵克的這份報告對大量樣本進行了觀察分析。這些數據均來自賽門鐵克惡意軟件分析沙盒(Symantec Blue Coat)。在這個沙盒中,僅今年就有49127例PowerShell腳本提交。而且,安全研究員還手動分析了4782例不同的樣本,發現其中的111個惡意軟件系列存在濫用PowerShell命令行的情況。而在這111例中,僅有8%的惡意軟件使用了如大小寫混合字母之類的混淆技術;沒有腳本會對命令參數做隨機化之類的混淆。
研究人員表示,他們觀察到目前比較流行的,正在使用PowerShell、三個最常見的惡意軟件,分別是W97M.Downloader(在分析樣本當中占比9.4%),Trojan.Kotver(占比4.5%)和JS.Downloader(占比4.0%)。
分析樣本中,最常用的PowerShell命令行參數是“NOPROFILE”(占比34%),“WindowsStyle”(占比24%)和“ExecutionPolicy”(占比23%)。
研究人員還提到,在今年觀察的10797個PowerShell腳本中——也包括那些沒有惡意的腳本,55%的腳本是以cmd.exe開始執行的。如果只考慮惡意腳本,95%都是通過cmd.exe執行。不過,絕大部分宏downloader還沒運行就已經被系統禁止了,所以都并不需要賽門鐵克的行為引擎分析。
針對已經被攻陷的網絡,攻擊者采用的PowerShell手法注入Invoke-Command、Enter-PSSession、WMI/wmic/Invoke-WMImethod、Task Scheduler,還有PsExe這樣一般的工具。而且為了能夠保證存在的持久性,PowerShell也會安排任務、替換啟動文件夾中的腳本、采用組策略或者WMI、感染本地配置文件,在注冊表中存儲腳本(如2014年的Trojan.Poweliks)等。
除此之外,賽門鐵克的這份報告還詳細談到了黑客針對PowerShell腳本的混淆技術;列出了不少PowerShell惡意程序的相關信息,包括勒索軟件,鍵盤記錄器,以及銀行和后門木馬。有興趣的可點擊這里下載查看完整報告。
如何應對?
防御此類威脅的最好方法是運行最新版本的安全軟件以及Powershell。另外,惡意腳本大都是通過電子郵件傳播,因此最好是不要打開來自不信任源的腳本、文件或者是鏈接。
公司內部的IT專業人士需要對企業內部應用對PowerShell的調用進行更加嚴密的監控,記錄PowerShell的活動并通過分析日志來發現異常行為,創建規則,以便在發生異常行為時能夠報警。
另外,我們也應該(尤其是安全人士)經常審視PowerShell的命令行,通常合法腳本的內容和目的都很直觀,而攻擊腳本通常都使用Base64加密命令行,并且經常把各種腳本團塞在一行內,出現這種情況時,我們一眼就能看出端倪。
*參考來源:securityweek,softpedia,symantec,FB小編latiaojun編譯,轉載請注明來自Freebuf.COM。