暗渡陳倉:披著圖片外衣的特洛伊木馬
InfoStealer是一種木馬,功能為收集受害計算機系統用戶的敏感信息,并將其轉發到一個預定的位置,而搜集的信息包含財務信息,登錄憑據,密碼或者都有,這些信息可能被出售在黑市上。AVAST將其命名為MSIL:Agent-AKP。
下面,我們就來看看一個通過exploit kit(全自動攻擊工具)部署在受害者電腦上的惡意.NET文件。用反編譯器打開該文件后,發現資源中只包含如下干擾圖片:


以位圖方式打開圖片,一個像素一個像素的處理。對于每個像素,它并不是非黑即白(ARGB不等于0×00000000),3種顏色提取并保存在一個列表中,一個值接著一個值,一列接著一列。
當我們提取出整張列表后,得到如下的結果。注意MZ標識,正是可執行文件的開頭:

很明顯,我們正在對付一個obfuscator(混淆器),它從位圖中轉換數據,構造可執行文件。
單單的查看這個位圖文件,并不能立即意識到它還存儲著可執行文件。對照BITMAPINFOHEADER和它的bitHeight項,我們可以看到它的值是0X134。

根據文檔,如果biHeight是正值,相應的位圖就是自底而上的DIB(與設備無關的位圖),它的起始點在較低的靠左的位置。

下圖展示了這個可執行文件的前9個字符是如何隱藏在位圖中的。一個像素包含3個字符,隨后的下一列是下一組3字符(自底而上)。我們發現紅色標識的字符正是可執行文件的MZ特征:4D5A90 000300 000004。

仔細觀察Payload
Payload從位圖中被提取出來,原始文件有兩個位圖,其中一個解析后是用.NET寫的加載器,裝載進內存并執行第二個二進制文件。第一個二進制文件通過修改zone.identifier 來修改數據流。
硬盤上的任何文件都或有無被賦予了

這里的惡意文件試圖將zone值設為2,表明是URLZONE_TRUSTED。

這個區域的存在是由于安全原因考慮。某些程序/操作系統可能會報告與此類文件有關的安全信息。

第二個匯編碼是從第二個位圖源文件中提取的。它通過創建Win7zip注冊表Uuid值來生成。

通過創建[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options],運行之后將禁用幾個安全方案,將調試器的值設置成一個不存在的exe文件路徑,每當用戶試圖使用受影響的程序時,Windows將運行“調試”出來的值來代替原本的值,這樣就可以成功的禁用此類程序。下圖顯示了通過修改此注冊表項禁用的程序的列表。

同樣利用修改注冊表項禁用安全組件:
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]。將HideSCAHealth的值設置成1來禁用Action Center。Notification balloons的禁用可以通過修改TaskbarNoNotification的注冊表項來達成。
在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsBackup],修改DisableMonitoring注冊表項,可以禁用Windows備份通知。

通過對注冊表項2500鍵值進行設置,設置為3-禁用,就可以關閉Internet Explorer的保護模式。


如果發現裝有如下的FTP軟件,就會竊取它們的認證日志:
FileZilla
SmartFTP
CoreFTP
FlashFXP
WinSCP
FTP Commander
可以在它的body中看到下列字符:
FileZilla\sitemanager.xml
SmartFTP\Client 2.0\Favorites
SmartFTP
Software\FTPWare\CoreFTP\Sites
FlashFXP
Sites.dat
Quick.dat
Software\Martin Prikryl\WinSCP 2\Sessions
%s\FTP Commander
%s\FTP Commander Deluxe
Ftplist.txt
它同樣可以修改注冊表項:
注冊表項[HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Plug-in\{version}\UseJava2IExplorer]的種類是REG_DWORD,設置成0的意思就是禁用JAVA;設置成1的意思就是啟用JAVA。
注冊表項 [HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\{version}\Privileged\bProtectedMode]的種類是REG_DWORD,設置成0就是禁用;設置成1就是啟用。

(木馬)作者力求保留將來再次感染該系統的可能。一旦用戶再次登錄exploit kit,感染將再次發生。
InfoStealer同時也向作者報告被入侵電腦上安裝的一些軟件,通過判斷是否存在如下的文件、目錄或者注冊表鍵值:
Software\Valve\Steam
jagexcache
SOFTWARE\Blizzard Entertainment
.minecraft
League of Legends
Software\Skype
例如,“jagexcache”的出現表明在線游戲RuneScape,“.minecraft”表明Minecraft,注冊表鍵值“SOFTWARE\\Blizzard Entertainment”或者“Software\Valve\Steam”告訴我們或許機器上安裝著這來自這些游戲廠商的游戲。“League of legends”和”Software\Skype”這些字符不言自明。
InfoStealer禁用了一些系統服務。Wuauserv就是“Windows Update service”,wscsvc就是“Security Center”,mpssvc就是“Windows Firewall”,BITS是“Background Intelligent Transfer Service”。

它也擁有“洪水”攻擊目標服務器的能力。

當我們試圖搜尋上面提及的命令時,我們發現了一個地下論壇,如下描述:

通過向[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下添加“AudioDriver32”值,就能達到永遠存在的效果,即使機器重啟。

InfoStealer木馬通過展示如下的錯誤信息提示窗的聰明方式來迷惑用戶,使其可以提升權限運行。

無論點“Restore files”還是“Restore files and check disk for errors”后,都執行下面的代碼。

InfoStealer使用ShellExecute函數執行自身。要注意“runas”命令,試圖以提升的權限運行程序。如果一個用戶被提示UAC(用戶訪問控制),他很可能會允許該程序運行,因為它需要“restore his corrupted document files”。
如果用戶點擊了“More details about this error”, 如下的頁面將會打開。它是正常的微軟社區頁面,用戶在此提問、答復相關問題。
這里的問題正是與“Corrupted Documents Folder”相關的,與展現給受害用戶的出錯信息窗口相關。

InfoStealer掃描所有正在運行的進程以及它們的啟動命令行參數。這些命令行會被解析,如果匹配如下的模式,它們還會被報告給(木馬)作者。這些模式代表著比特幣挖掘的進行。如果cgminer在入侵電腦上運行,將會被報告。

所有獲取的數據存放在[HKCU\Software\Classes\CLSID\{GUID}]注冊表鍵值中,這些信息稍后會被發送給攻擊者。

總結
上面所展現的惡意軟件試圖竊取多種程序的認證信息,或者至少報告它們的存在。通過修改多處系統注冊表值來禁止安全軟件或者action center的通知服務的運行,且該信息竊取者針對的對象為終端用戶。
SHAs:6ABA3F3DE5BBB513C073066473E39349E0E68403DBDB3E55E444FFF6632274D4
本文來自Avast博客JAROMIR HOREJSI的文章《Your documents are corrupted: From image to an information stealing trojan》。