惡意軟體Ursnif的隱蔽進程注入技術分析
介紹
惡意軟體LockPos以其新穎且令人難以置信的先進和複雜逃避技術而聞名,傳播和影響了許多銷售點。其另一變種正在蔓延,採用了類似但不同的先進逃避技巧。它是舊版銀行木馬的一個新變種ursnif v3,從2017年11月開始傳播。此外由於這個新型惡意軟體的C&C伺服器oretola.at已被當局sinkhole,所以很難重現該惡意軟體的整個行為和真正目的。
然而,分析其隱形逃避技術非常有趣,許多當下的防病毒軟體都看不見它。實際上,其最後一步將自己隱藏為explorer.exe進程的一個線程,這使得分析非常困難。為達到目的,惡意軟體採用了基於Windows Native API的雙進程挖空技術,利用系統進程svchost.exe提升許可權,並在explorer.exe中注入惡意代碼。
隱藏在explorer.exe進程之後,它才開始惡意操作,包括通聯眾多託管加密payload的已感染網站。其惡意行為的最後一步是定期與C2C伺服器oretola.at通信,向其發送受害主機的信息。
該惡意軟體可能通過垃圾郵件傳播,郵件中包含一個URL,指向託管惡意樣本的感染站點。我們在其中一個受感染的網站(義大利一個有關玩偶的博客)上發現了惡意軟體樣本marinellafashiondolls.com/_private/php3.exe。
圖1:惡意軟體解析的部分域名
技術
首先,此惡意軟體幾乎全部使用未公開功能的Windows Native API,這就導致防病毒軟體難以監控。一旦執行了php3.exe文件,它就會從原目錄中自刪除,並複製自身到如下路徑:「%APPDATA% Roaming Microsoft Brdgplua ddraxpps.exe」。
一旦完成此操作,惡意軟體就會開始其惡意行為。各個階段總結如下:
1、在掛起模式下使用CreateProcessA創建一個新的svchost.exe進程。
圖2:創建svchost進程
圖3:CreateProcessA函數參數
2、在掛起模式下使用OpenProcess創建explorer.exe進程的一個新線程,啟用PROCESS_CREATE_THREAD和PROCESS_SUSPEND_RESUME標誌。
圖4: suspended模式下創建explorer.exe進程的一個新線程
3、在內存中開闢一個新段用來載入映射到svchost.exe進程的代碼。
圖5:創建新段
此時這個段是空的,將在下一步中填充。
4、使用memcpy函數複製payload到上一步中的內存段。
圖6:使用 memcpy 函數拷貝Payload到之前創建的段
5、使用Windows Native API函數NtMapViewOfSection將已填充的段映射到svchost.exe進程。
圖7:使用NtMapViewOfSection將已填充的段映射到 svchost.exe 進程
6、恢復svchost.exe線程以便在先前分配的段中執行操作。
圖8:恢復svchost.exe以便執行已載入到段中的payload
7、Exit
至此我們對行為失去了控制,因為svchost.exe是系統進程,所以無法監視其內部行為。但我們可以看到:
l 惡意svchost.exe及其父進程ddraxpps.exe均終止。
l explorer.exe進程開始惡意行為,特別是它產生了與已感染網站的網路流量。
圖9:explorer.exe進程產生的異常流量
因此,我們很有把握地推斷,payload被注入到explorer.exe的線程中,而svchost.exe只是用來將惡意代碼轉移到explorer進程中的一個代理,以便使惡意軟體更加隱蔽地執行。事實上,svchost.exe很可能會執行與上面相同的操作來實現其目的。看起來,第一階段的過程挖空是用來提升許可權的,從用戶空間到系統空間; 第二階段是完全隱藏用戶的payload。
總而言之,在這個惡意軟體分析中,真正具有挑戰性的是不同尋常且有效的隱藏技術。事實上,許多複雜的惡意軟體確實採用了進程挖空來隱藏自己,但不是這個兩步走的版本。惡意軟體採用許可權提升和進程挖空,使得分析工作非常困難。
圖10: 惡意軟體使用了雙進程挖空技術
※新型銀行惡意軟體變種KillDisk來襲,專攻拉美金融機構
TAG:嘶吼RoarTalk |