這一切要從一次惡意郵件攻擊活動(dòng)開始。下圖為我們最近監(jiān)測到的一個(gè)以惡意文件為發(fā)送附件的郵件攻擊,請注意郵件信息中的英語寫作水平是多么差勁,其實(shí),這也是惡意郵件的一個(gè)特點(diǎn),還請收件人提高警惕。
郵件樣本
在這封郵件中其附件以“.doc”文件擴(kuò)展名結(jié)尾,但其實(shí)這是一個(gè)RTF(富文本)格式文件,文件被嵌入了一個(gè)精心構(gòu)造的cve-2010-3333漏洞利用腳本,漏洞產(chǎn)生原因?yàn)槲④沷ffice文件格式轉(zhuǎn)換器在處理RTF文件“pfragments”參數(shù)屬性時(shí)存在棧緩沖區(qū)溢出,遠(yuǎn)程攻擊者可以借助特制的RTF數(shù)據(jù)執(zhí)行任意代碼,該漏洞又名”RTF棧緩沖區(qū)溢出漏洞”,但微軟官方已在5年前就已修復(fù)了漏洞。
被加密混淆的RTF文件
在上圖中你可以看到,漏洞利用代碼中的shellcode字段被模糊變形以避免殺毒軟件的檢測,在經(jīng)過代碼提取、清理和解密之后,我確定了漏洞利用代碼的shellcode將會(huì)從一個(gè)未知域名volafile.io下載并執(zhí)行某些文件。
shellcode 的16進(jìn)制字符串
漏洞攻擊負(fù)載
下載的可執(zhí)行文件
經(jīng)過分析,從volafile.io 下載的文件是一個(gè).NET可執(zhí)行文件,通過十六進(jìn)制文件分析之后可以得到一個(gè)有趣的線索,編碼中出現(xiàn)了“HawkEyekeylogger”字段。
Hawkeye 鍵盤記錄的主體
通過GOOGLE搜索技巧,最終我找到了開發(fā)該Keylogger軟件的網(wǎng)站,在網(wǎng)站上,他們聲稱并列出了所有“HawkEyekeylogger”具備的“牛X的功能”。
HawkEye Keylogger 功能列表
在我的動(dòng)態(tài)分析中發(fā)現(xiàn),該Keylogger在一個(gè)名為%appdata%的文件夾下釋放自身副本,啟動(dòng)一個(gè)名為windowsupdate.exe的程序?yàn)檫\(yùn)行進(jìn)程,并設(shè)置進(jìn)程啟動(dòng)信息為隨機(jī)自啟動(dòng),實(shí)現(xiàn)與系統(tǒng)同時(shí)啟動(dòng)。
Keylogger’的例行程序
同時(shí),該Keylogger也在受感染的系統(tǒng)中釋放以下文件:
%Temp%sysinfo.txt–惡意程序的執(zhí)行路徑
%Appdata%pid.txt–惡意進(jìn)程ID
%Appdata%pidloc.txt–惡意程序可執(zhí)行文件的位置
之后,我想通過觀察Keylogger的網(wǎng)絡(luò)外聯(lián)活動(dòng)以獲取其遠(yuǎn)程管理控制IP地址
受感染主機(jī)的網(wǎng)絡(luò)包
一段時(shí)間之后,被Keylogger感染的主機(jī)就開始向攻擊者郵箱發(fā)送信息了
被感染keylogger的主機(jī)向攻擊者遠(yuǎn)程控制管理郵件發(fā)送本機(jī)相關(guān)信息
這些信息包括:
計(jì)算機(jī)名稱(或CPU信息)
本地日期和時(shí)間
系統(tǒng)語言
安裝的操作系統(tǒng)
系統(tǒng)開發(fā)平臺(tái)
操作系統(tǒng)版本
系統(tǒng)內(nèi)存
開發(fā)框架
系統(tǒng)權(quán)限
默認(rèn)瀏覽器
安裝的防火墻
內(nèi)部IP地址
外部IP地址
電子郵件密碼和相關(guān)設(shè)置
瀏覽器設(shè)置和FTP密碼
如前所述,該Keylogger軟件是利用.NET框架編寫的,所以接下來我用.NET 編譯器ILSpy來完成這項(xiàng)任務(wù)。
Hawkeye keylogger 反編譯代碼
我把“HawkEye keylogger”開發(fā)網(wǎng)站上聲稱具備的“牛X的功能”,與反編譯源代碼時(shí)認(rèn)真對照,可以肯定的是其功能確實(shí)很厲害。這以下就是其具備的功能:
鍵盤記錄:
鍵盤記錄程序
剪貼板操作記錄:
剪貼板操作例行程序
竊取瀏覽器、郵件客戶端、FTP密碼,它還試圖竊取密碼管理器憑據(jù)和系統(tǒng)密碼:
還有一個(gè)將keylogger通過USB傳播感染到其它系統(tǒng)主機(jī)的蠕蟲程序:
USB 感染程序
它還針對在線游戲平臺(tái)Steam用戶,通過刪除電腦上儲(chǔ)存的游戲配置數(shù)據(jù)和登錄信息,強(qiáng)制用戶再次登錄,然后利用鍵盤記錄程序竊取用戶的登錄密碼。
Steam游戲平臺(tái)感染程序
另外,HawkEye keylogger還通過郵件反彈和FTP方式竊取被感染系統(tǒng)的桌面截屏,以確定其程序是否被正確配置。
郵件發(fā)送程序
攻擊者也可以配置鍵盤記錄軟件,通過HTTP通道上傳被盜信息至一個(gè)PHP主機(jī),但這部分代碼似乎是空的。
最有趣的是我在反編譯代碼中發(fā)現(xiàn)了一個(gè)名為form1()的C#構(gòu)造函數(shù),這就是HawkEye keylogger軟件的配置存儲(chǔ)函數(shù),但攻擊者使用了base64對遠(yuǎn)程控制和管理的電子郵件和FTP信息進(jìn)行了加密隱藏。
keylogger配置信息
但是,這些加密的數(shù)據(jù)并不總是安全的,特別是當(dāng)反編譯源代碼中就可以看出解密程序來時(shí)
解密函數(shù)調(diào)用
下圖就是解密函數(shù),它包含兩個(gè)字符串參數(shù)encrypted bytes和secretkey,密鑰字符串是固定的硬編碼hawkspysoftwares
解密程序
同時(shí),HawkEye keylogger使用者還使用了Unicode字符串 “099u787978786″對密碼字符串進(jìn)行加鹽處理
keylogger 使用的加密方法
出于好奇,我復(fù)制了代碼的解密部分,并進(jìn)行了相應(yīng)修改,在MS VisualStudio程序下編譯,最終解密成功,包含了郵件和FTP賬戶密碼(對不起,我需要對解密信息進(jìn)行模糊處理)
經(jīng)過解密的攻擊者的遠(yuǎn)程控制郵箱和FTP信息
當(dāng)然,最終我還是好奇地登錄了攻擊者的遠(yuǎn)程控制管理郵箱。
攻擊者的遠(yuǎn)程控制管理郵箱登錄界面
在攻擊者的控制管理郵箱里,我發(fā)現(xiàn)了受害者被竊取的電子郵件信息,并嘗試進(jìn)行了登錄,讓人驚訝的是,受害者的電子郵件系統(tǒng)中被設(shè)置了郵件轉(zhuǎn)發(fā)功能,受害者所有的收發(fā)郵件被自動(dòng)轉(zhuǎn)發(fā)到了攻擊者的另外一個(gè)郵箱[email protected]。
受害者郵箱系統(tǒng)被設(shè)置了自動(dòng)轉(zhuǎn)發(fā)功能
在對此次攻擊分析之后,我們又發(fā)現(xiàn)了另外一個(gè)包含CVE-2012-0158漏洞利用代碼的RTF郵件攻擊。雖然這兩個(gè)漏洞都比較過時(shí)了,但仍然被廣泛用于郵件攻擊中。
(后記:在2015年被發(fā)現(xiàn)的“海德薇”(Hedwig)APT網(wǎng)絡(luò)攻擊中,HawkEyekeylogger被用作竊密木馬)
*原文地址:trustwave,clouds編譯,轉(zhuǎn)載請注明來自FreeBuf黑客與極客(FreeBuf.COM)