釋放Rootkit的無文件型宏惡意程序分析。正當海灣合作委員會(GCC,Gulf Cooperation Council)成員國疲于應付Shamoon惡意軟件時,他們的服務器又遭受了一種全新的垃圾郵件的攻擊。這種VB宏形式惡意文檔看起來是像是經過全新編寫或改造的,至少在本文成稿時,還沒在任何地方發現它的活動蹤跡。
有多個GCC成員國組織收到過幾封嵌有惡意文檔附件的垃圾郵件,該文檔能夠躲避所有的安全檢測并成功投遞到受害者收件箱中,一個樣本信息如下圖所示:
即使不打開該文檔,通過文檔的屬性信息我們還是可以猜測出它是一份惡意文件。文檔屬性信息如下圖:
打開文檔后,Word提示文檔宏已經被禁用,而文檔內容則誘騙用戶啟用Word宏功能,如下圖:
惡意文檔分析
我們直接跳到宏代碼分析部分:
其中“Document_Open ()”函數使得宏腳本在用戶打開文檔時就會自動運行。
當我們對代碼進行靜態分析時,我們發現一些有用的代碼片段,細查這些片段,可以看到一些經過編碼的字符串會被傳遞給“RraiseeventR”函數,返回結果會存放在另一個變量中。
我們還可以看到許多這樣的變量,而“RraiseeventR”函數往往一同出現。因此我們猜測函數與解密流程有關。
“RraiseeventR”函數的部分代碼如下所示:
經過進一步的靜態分析,我們可以發現所有的變量會拼接匯聚起來。腳本調試的主要優點就在于可以利用代碼自身來對編碼部分進行解碼或解密。
對這些變量值進行解碼后,它們的功能也逐步清晰起來。整體看來,它們應該是PowerShell腳本,其中還包含“URL”信息。
所有的變量拼接起來形成“inEmptyMe”變量,內容是一個完整的PowerShell腳本。
將PowerShell腳本從變量中提取出來,規范化格式以便閱讀。分析該PowerShell代碼可知,其功能是文件的下載執行。
進一步分析的話,我們還以發現代碼中有個潛在的策略,能夠繞過UAC及其他檢測。
代碼工作過程分析如下:
1) 隱式調用powershell.exe,進行變量的賦值工作。$wscript變量指向WScript.Shell,用于運行帶參數的shell命令;
2)定義$webclient變量,用來從給定的URI上傳或下載數據。每個web client調用可通過web請求類來實現,如“DownloadFile”類(比如WebClient.DownloadFile 或WebClient.UploadFile);
3)定義$random變量用來產生1到65535之間的隨機數;
4)定義$urls變量,指向一或多個可執行文件的惡意網址。這代表腳本可作為下載器,執行其他文件。
5)下載文件被重命名為隨機數字字符串,以.exe后綴名結尾,保存在“temp“文件夾中。
6)定義$hkey變量,值為“HKCU\Software\Classes\mscfile\shell\open\command“。
7)接下來,腳本訪問指定的URL,下載可執行文件,按步驟5)重命名并保存到臨時文件夾中。
至此,該PowerShell腳本使用的策略已躍然紙上,也就是使用無文件形式的UAC繞過方法,利用注冊表獲得系統最高權限。
仔細研讀代碼后,讀者心里可能會有兩個問題:
1)為什么腳本要修改注冊表“HKCU\Software\Classes\mscfile\shell\open\command“鍵值,將可執行惡意文件路徑添加該鍵值中?
2)為什么腳本需要利用“eventvwr.exe“?
其實這兩者之間存在很大的關聯性。讓我們將視角聚焦到時間處理器(event viewer)以及該注冊表鍵值上。
打開注冊表讀取該鍵值,我們可以看到鍵值指向了“mmc.exe“(Microsoft Management微Console,軟管理控制臺)的所在路徑。
“mmc.exe“用來打開.msc文件(Microsoft Saved Consoles),比lusrmgr.msc、eventvwr.msc等。
通常我們運行eventvwr.exe時,它首先會訪問注冊表“HKCU\Software\Classes\mscfile\shell\open\command“鍵值,詢問mmc.exe所在地址。
不幸的是,查詢結果是值不存在(NAME NOT FOUND)。
看文倉www.kanwencang.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20170224/105987.html
文章列表