Feye近期檢測到一起通過高度偽造的釣魚郵件(魚叉式釣魚電郵)攻擊,目標直指美國的金融機構。攻擊中用到的惡意代碼是由一個被作者出售的間諜和監視工具生成。此工具的功能很類似市面上常見的其他遠控軟件。同時,也發現了其他的攻擊者把此工具的惡意代碼嵌入到宏文本文件中用來攻擊其他的目標,看上去更像是第二輪的撒網式釣魚郵件攻擊。
用于攻擊金融機構的C&C的網絡設備是被WinSpy的作者控制的。這并不意味著作者有意在背后為攻擊者提供了服務器。而是攻擊者使用了WinSpy包里面默認配置存儲受害者的數據。這個功能也許是作者的無心之失。
在分析WinSpy的惡意代碼的時候,我們發現其中也有AndroidSpy間諜的組件部分,我們稱之為GimmeRat。這個安卓工具有多種功能包括允許被感染的設備通過短信或者其他形式被Windows的設備控制。基于windows平臺的遠控看上去只能通過物理訪問控制安卓設備。最近數量上升的安卓遠控如Dendroid或者AndroRAT,表名黑客們對移動設備更感興趣。GimmeRAT是又一個攻擊者開始轉向andorid系統的例子。
WinSpy 作為一個間諜和監視工具出售給用戶,其自身的遠程管理功能適合對手找到目標組織的法案.使用WinSpy包的默認指令和默認服務器為攻擊者提供一層匿名代理。
圖1 – 針對金融機構的攻擊機制
通過偽造過網絡釣魚的電子郵件并采用WinSpy的惡意代碼針對美國金融機構進行攻擊。電子郵件的附件(b430263181959f4dd681e9d5fd15d2a0)是一個大的安裝程序的打包文件。打開時用一個工資單的pdf截圖作為誘餌,以避免受害者的關注。它同時會下載和生成如在圖1和圖2所示的各種組件。
圖二:WinSpy的組件
我們觀察到另一個攻擊者在微軟宏文檔(78fc7bccd86c645cc66b1a719b6e1258,?f496bf5c7bc6843b395cc309da004345)?和獨立的可執行文件(8859bbe7f22729d5b4a7d821cfabb044,?2b19ca87739361fa4d7ee318e6248d05)中使用WinSpy。 這些惡意文件作為附件或者是下載鏈接的形式封裝到電子郵件中。它們包含下列特征元素:
這些被發現的惡意郵件有下列命名的附件:
Western Union Slip.xls
Money Transfer Wumt.xls
Wumt.xls
WinSpy模塊使用VB進行編碼的,同時用一些公開的lib庫如modJPEG.bas?和cJpeg.cls。 這些組件支持多種特性如下:
WinSpy木馬軟件會在注冊表的SOFTWAREMSI64目錄下創建自己的配置。WinSpy的組件在運行時會讀取該配置。此配置包含各種設置,如:用戶名,唯一標識,連接參數,遠程FTP和認證,文件名,數據的路徑,當前的狀態等等。例如:DUNIN代表卸載日期,FTSV代表的FTP服務器,FTUS代表著FTP用戶等。SID2表示識別感染的唯一標識,在初始化時候創建。
WinSpy 配置
WinSpy有多個選項配置來生成一個木馬文件。有趣的是默認配置的參數竟然是作者控制的服務器。
圖四 WinSpy生成器
控制器可以截屏,鍵盤記錄,也可以上傳下載文件 執行惡意代碼。
圖五 WinSpy控制器
圖六 WinSpy文件瀏覽器
發指令和控制 WinSpy有多種通信方式進行數據傳遞和指令控制(類似心跳包)。
反向連接控制者服務器的14001端口,“/p”表示在線,服務器也以”/p”回應。
圖七 在線狀態
通過自己封裝的協議反向連接作者服務器的27171。
請求包含受害者的IP地址以及前面講的唯一標志。服務器返回帶有keep alive的response.
smtp 在配置了SMTP選項的情況下,他通過SMTP回傳鍵盤記錄的數據。作者服務器STMP運行在37端口。37端口通常是用于NTP協議,但WinSpy的作者把它配置成STMP服務器。SysMon v1.0.0的響應頭非常明顯。
圖十 SMTP
FTP 通過自定義的FTP服務器進行定期傳輸。FTP帳號密碼等在前面說的注冊表配置中。
直接控制 Rdbms.exe模塊監聽受害者機器的443端口。攻擊者可以直接從WinSpy控制器連接到該端口并發出各種命令來下載數據,上傳/下載文件,執行文件,發送郵件,查看攝像頭等。數據傳輸使用端口444。它支持各種命令,如下所示。在初始連接的命令表,作者打算在某個時間點來實現認證,但目前的情況是任何人都可以使用這個命令連接到受感染的機器 。
表示各種低小下啊!!!
終于有些感興趣的了。
在調查WinSpy的過程中發現一些android木馬組件。我們已經發現三個不同應用是該套件的一部分。其中一個應用,需要通過一個Windows服務器進行控制。只能物理接觸androids設備感染。其他兩個應用是C-S架構,通過另一個android手機進行遠程控制。
圖11 安卓組件
Windows的控制器需要對android設備進行直接的物理接觸,可運行攻擊者獲取感染設備的截圖。選項如下:
Components:
a. Services
?????????? Global Service
??????????b. Methods
????????????????????Sleeper
????????????????????ScreenCapturer
????????????????????ServiceActivity
該應用以intent綁定機制啟動android桌面應用。使用Intent連接com.google.system.service.StartUpReceiver服務時使用附加信息。字符串格式如下: “interval@@hostname@@port@@username@@password@@working_directory@@delete_after_upload” 服務器名,端口,用戶名,密碼連接攻擊者的FTP服務器。在后面介紹如何傳遞截圖。一旦此intent接收到就會讓?GlobalService服務一個間隔參數重啟。
服務包含下列變量
private static final String TAG = "GlobalService";
???? ??? private static boolean isScreenON;
???? ??? private int mInterval;
???? ??? private KeyguardManager mKeyGaurdManager;
???? ??? private BroadcastReceiver mPowerKeyReceiver;
???? ??? private Timer mSyncTimer;
???? ??? private TimerTask mSyncTimerTask;
他會一直檢測鍵盤鎖是否解鎖,如果屏幕鍵盤鎖被解,他會調用startScreenCaptureThread()截取屏幕。
startScreenCaptureThread 該線程設置毫秒的時間間隔,將結果傳遞給服務。它還設置了 mSyncTimerTask的值(任務同步),調用ScreenCapturer. takeScreenshot方法,可以讓線程調用時,每隔多少秒進行截圖。
ScreenCapturer. takeScreenshot 使用socket連接到 localhost:42345端口,GlobalNativeService監聽此端口接收socket傳來的數據。
takeScreenshot以字符串的形式發送‘/data/local/tmp/images/screenshot_DATE.png’到GlobalNativeService。GlobalNativeService檢測接收的字符串最后/的是否有screenshot,如果有 則調用screencap –P 路徑 截圖。
takeScreenshot 返回截圖的路徑作為參數傳給screenCaptureThread方法。該方法調用FTPService傳截圖給攻擊者的C&C服務器。
除了上面說的監聽 等待截圖指令還有其他類似 刪除文件,保存FTP信息到/data/local/tmp/ftpInformation中。 此外 ,如果socket 傳來GPSLocationInfo這樣的字符串,它會創建/data/local/tmp/GPSLocations.txt(但不含GPS信息 未完善的功能)。
GPSTracker的啟動和GlobalService一樣,以一個時間間隔啟動。記錄設備的GPS位置,定期五分鐘。只有當現在位置離開先前位置200m后才會記錄。 當某個位置已被添加到數據庫中的所有以前的位置被刪除。因此,它只能維持最后的位置。
這個應用監控所有傳進來的信息,如果SMS (短信)帶有 [gmyl] (Short for (g)ive (m)e (y)our (l)ocation) 短信時,它會終止該短信的接收,并進行數據庫查詢。并回復短信 類似下面:
[himl]<>DATE><LATITUDE##LONGTITUDE
“himl” is short for (h)ere (i)s (m)y (l)ocation。只回復最后的位置。
此應用是上一個應用的控制器。GPSTrackerClient.apk安裝到攻擊者的設備上。他向被攻擊者發送一個帶有“[gmyl]”的短信。調用本地地圖顯示被攻擊者的方位。
這里值得注意的是,兩個模塊之前沒有任何驗證機制。WTF!
PC端其實是比較低級的遠控 通信處理的一般,而且保存惡意文件。特征也非常明顯。 Android端也是處于一般水平,畢竟Android 的數據加密和簽名機制比IOS要簡單的多。