威脅情報小組「Unit 42」,最近觀察到一隻名為 9002 的木馬,它結合短網址並透過Google Drive 上的分享檔案等的攻擊手法進行散佈。用到的其他散佈方法還包括運用被駭客控制的伺服器,裡頭運行著重導向用戶瀏覽器的 Script,這類 Script 還被用來追蹤連至目標電郵位址的成功點擊動作。
「Unit 42」表示,這個 9002 木馬樣本的基礎架構,稍早之前還被發現曾被用來向緬甸與其他亞洲國家發動攻擊,這些攻擊都運用 Poison Ivy 木馬作為主體,而且可能和最近向台灣發起持續攻擊的行動有關連。
雖然目前還未掌握這項攻擊在遠端遙控方面的資訊,但「Unit 42」相信它是用到短網址(以下案例中用的是 TinyURL 短網址服務)來散佈 9002 木馬。這種短網址形式如下:hxxp://tinyurl[.]com/zmu4dry
這種短網址鏈結,會把受害者重新導向被駭客控制的伺服器,而這種重導向伺服器裡頭裝著 Script 程式,負責把瀏覽器重導向到另一個網址。舉例來說,上述的縮短鏈結指向:
hxxp://222.239.91[.]152?<redacted>QGdtYWlsLmNvbWh0dHA6Ly90aW55dXJsLmNvbS9qZmo5b3V2
上面的網址內含 base64 編碼資料,伺服器之後會把這些資料進行解碼。網址中經 base64 編碼的參數會將解碼資料重新導向至:
<redacted>@gmail.comhttp://tinyurl[.]com/jfj9ouv
解碼後資料內的 Gmail 位址是一位知名政界人士的合法網址,他本身是緬甸的人權鬥士。解碼後資料內的短網址‘hxxp://tinyurl[.]com/jfj9ouv’再重新導向到:
hxxps://drive.google[.]com/uc?id=0B0eVt8dSXzFuN2ltVlVkVl8zNVU&authuser=0&export=download
下文為「Unit 42」針對這起事件的追蹤報告。
駭客控制的重新導向伺服器
IP 網址為 ‘222.239.91[.]152’ 的這部伺服器,依其行為來看,內部執行一個 Script,負責對送入伺服器的 HTTP 要求分析各項參數。為了更精準判斷這隻 Script 的功能,我們發送一連串 HTTP 要求至重導伺服器,試著找出網址中 base64 編碼資料的目的,以及判斷 script 中哪些字串用來重新導向瀏覽器。
我們初期的 HTTP 要求,如下圖所示,顯示這項攻擊最先用到的短網址所指向的網路位址。從 HTTP 的回應來看,script 送出 HTTP 302 Moved Temporarily 訊息,讓瀏覽器轉向“Location”欄位的網址,該網址和 HTTP 要求中經解碼後的 base64 資料所記載的網址,兩者完全相同。
▲HTTP 要求對最初傳遞網址的回應
我們送出的第二個測試 HTTP 要求,裡頭使用經 base64 編碼的資料來隱藏“fake@gmail.comhttp://yahoo.com”字串,這個字串會透過 HTTP 302 回應讓瀏覽器轉向 http://yahoo.com。這顯示電郵字串並非用來對進入伺服器的要求進行任何型式的驗證,而是可能用來讓駭客針對目標電郵追蹤成功的點擊動作。
▲測試要求確認了重導向伺服器採用base64編碼資料進行轉向動作
接著我們送出一個 HTTP 要求,採用 base64 編碼資料來隱藏“fake@gmail.comyahoo.com”字串。如圖中發現,伺服器送回一個 HTTP 200 OK回應,嘗試重組一個 HTTP 403 Forbidden 回應,試著把“403 Forbidden”寫入到瀏覽器視窗。這個錯誤顯示出伺服器上的重導向 script 會分析 base64 解碼資料中是否有 “http”字串,藉以判斷重導向位址。
▲測試要求顯示出重導向伺服器會試著找出base64解碼資料中的 “http”字串
之後我們進行後續的測試要求,希望發現 script 要求想在 base64 解碼資料中搜尋的其他字串,藉以判斷它會把瀏覽器導向什麼位址。我們發現 script 還能把瀏覽器轉向到 “https”開頭的網址。另外,這隻 script 會區分大小寫,以 “HTTP”和 “HTTPS”開頭的要求會收到同樣的 403 Forbidden 回應。最後,我們判斷這個 script 不要求 “http”與 “https”之後要附加“://”。
來自雲端的木馬攻擊
在這個攻擊散佈階段,重導伺服器透過縮短鏈結將用戶轉到 Google Drive 內的一個 Zip 壓縮檔。這個 Zip 檔案檔名為 “2nd Myanmar Industrial Human Resource Development Symposium.zip” 偽裝成第二屆緬甸產業人力資源開發座談會的文件(SHA256校驗碼: c11b963e2df167766e32b14fb05fd71409092092db93b310a953e1d0e9ec9bc3) 其中內含一個在 2016 年 7 月 13 日新加入的可執行檔。
Zip 檔案中的可執行檔,檔名為 “2nd Myanmar Industrial Human Resource Development Symposium.exe” (SHA256校驗碼: 49ac6a6c5449396b98a89709b0ad21d078af783ec8f1cd32c1c8b5ae71bec129)。它是一個 木馬檔案的下載程式,本身會把一個誘餌與木馬主體存到系統,日後再一起開啟兩者。可執行檔用 PowerPoint 圖標進行偽裝,引誘被害人點選以為是 PowerPoint 簡報的可執行檔。
▲木馬程式主體用 PowerPoint 圖標自我偽裝,誘引被害人點擊這個可執行檔
這個誘餌偽裝成一個 PowerPoint 簡報檔,內含 2016年 7月 30日在緬甸進行一場會議的詳情,標題為 “Role of JMVTI Aung San and Building of Clean and Safe Automobile Society”《日緬職業訓練所的角色以及建立潔淨安全的汽車社會》。日緬職業訓練所(JMVTI) Aung San 是一個即將成立的職業訓練中心,它是由緬甸科技部底下的亞洲環境科技促進處設立。
▲在9002木馬安裝過程中被開啟的誘餌文件
在木馬主體方面,木馬檔案下載程式會在使用者目前處在的資料夾(%USERPROFILE%)裡建立一個隨機命名的資料夾,這個資料夾用來儲存以下檔案:
- RealNetwork.exe (SHA256校驗碼: 10d40c51d85ea9ced6050b8951802aaebe81f7db13f42fe5a5589172af481a7e)•
- main.dll (SHA256校驗碼: 53671fe98a0c8c85f6f8eabfa851e27b437f6c392b46e42ddea3f0a656591b12)
- mpaplugins\MPAMedia.dll (SHA256校驗碼: f76f639f2a7b8f39abf83737c6d3e533be66398c85ec95526e4b13561e15fbae)
'RealNetwork.exe'檔案是一個合法的可執行檔,它會連到'RealNetworks, Inc.'公司,並載入'mpaplugins\MPAMedia.dll'動態鏈結檔來呼叫名為'BuildDeviceDatabase'的函式。駭客則會利用這個合法可執行檔來側載自己建立的DLL 檔,方法是將'mpaplugins\MPAMedia.dll'存入到由點滴木馬建立的隨機命名資料夾。
這個被側載的'MPAMedia.dll' DLL首先會確認系統時間是否大於2016年5月20日,這很可能是為了躲避沙箱(sandbox)的分析。之後它會載入'main.dll'檔案,初期會儲存在木馬檔案下載程式建立的隨機命名資料夾。這個木馬的整體載入過程如圖中所示。
▲ DLL側載流程概述
‘MPAMedia.dll” DLL 接著會從‘main.dll’匯出名為"stdInstall" 與"CreateFunc"的函式。'stdInstall'函式負責建立以下系統啟動時自動執行的機碼(registry key),以便長期潛伏:Software\Microsoft\Windows\CurrentVersion\Run\RealNetwork
'CreateFunc'匯出函式則會把'main.dll'檔案內的offset資料傳回到核心碼(shellcode),這個核心碼內含 9002 木馬的實際功能碼,而'MPAMedia.dll' DLL會接著建立一個執行緒負責執行木馬。9002 木馬在執行時會建立兩個互斥器(mutexes): F16ME 與 widfasdf。另外它還會建立以下機碼,用來儲存使用者資料夾(%USERPROFILE%)的路徑:
HKCU\Software\Microsoft\F6\uid
木馬會使用這個機碼存放的路徑來找到其組態設定,這個設定值會用多位元組XOR演算法以及“1pKFmjw”密鑰進行加密。下圖顯示9002木馬範例解密後的設定值十六進位傾印資料
▲ 9002目前的組態資料
使用上面的組態檔,9002 木馬就能和以下作為指令與控制(C2)伺服器的網址進行通訊:
logitechwkgame[.]com
木馬接著會用兩種不同方法向 C2 伺服器傳送網路信標。第一個方法如圖中所示,使用一種客制化協定透過 TCP 80 埠進行通訊,以 “9002”字串開頭,9002 也是該工具命名基礎。若C2伺服器有回應,木馬就會傳送系統有關資訊,連同 jackhex” 與“2016”字串一起加入組態檔案。"jackhex"這個字串也曾在一部涉及 Poison Ivy 攻擊的 C2 伺服器上被發現,這部分將在稍後簡短討論。
▲使用客制化 9002 協定發送的網路信標
第二種發送信標的方法也使用 TCP 80 埠,但這種方法使用 HTTP 要求來和 C2 伺服器聯繫。下圖顯示此木馬發出的一個 HTTP 要求範例,利用“lynx”使用者代理以及“AA”的POST 方法資料,兩者都寫死(hardcoded)在木馬的主體程式內。
▲9002木馬透過 HTTP 要求送出的網路信標
木馬主體程式產生的兩種信標,和我們先前分析過的 9002 變種‘3102’ 木馬所產生的信標,兩者相當類似。這個 9002 範例內部的功能很類似先前討論過的 3102 變種木馬,因為它們的主要功能都是載入 C2 伺服器提供的外掛程式,然後再呼叫名為“CreatePluginObj”的匯出函式。
基礎架構與Poison Ivy分層
C2伺服器 ‘logitechwkgame[.]com’接著解析IP網址'222.239.91[.]30',這個網址指向'admin.nslookupdns[.]com',以及'logitechwkgame[.]com',顯示這兩個網域和同一個駭客有關連。'admin.nslookupdns[.]com'還是一個 Poison Ivy 木馬的 C2 伺服器,該木馬曾攻擊緬甸與多個亞洲國家,Arbor Networks 的部落格曾對此進行介紹。其他關連還包括 Poison Ivy C2 'jackhex.md5c[.]net',"jackhex"並不是一個常見的字元或句字,而且曾在先前討論過9002木馬例子中討論過的信標活動裡出現過。
除了 Arbor Networks 的部落格的介紹外,我們還發現多個 Poison Ivy 例子也使用相同的互斥器,它們是由相同的父程序建立,並使用絕大部分相同的 C2 站台 。然後我們收集到的例子中缺少活動 ID,而且全部使用"version2013"密碼來對通訊資料進行加密。其他更多 Poison Ivy 例子還讓我們發現三個新的 C2 網域:
- outhmail[.]com
- mxdnsv6[.]com
- microsoftserve[.]com
此外,這些 Poison Ivy 例子中指向的相同 C2 網域還內含一些電郵位址,用來登錄以下可能有關的網域:
- gooledriveservice[.]com
- queryurl[.]com
- appupdatemoremagic[.]com
雖然目前我們從這些例子沒有獲得完整的鎖定對象資訊,不過其中幾個誘餌檔的內容是中文,顯示和最近且可能尚在進行中針對台灣機關行號發動的攻擊有關。誘餌檔的內容主要圍繞在海峽兩岸關係以及行政院陸委會(MAC),陸委會專責規劃、執行、以及監督台灣對中國(PRC)的政策。
結論
利用 Google Drive 來存放惡意檔案早已不是新的攻擊手法,但運用大眾熟知的檔案託管平台,可能讓下載木馬主體程式的內容得以混入託管服務業者的合法傳輸資料流之中。駭客仍使用魚叉式釣魚(spear phishing)作為主要攻擊手法,但由於這類技巧早已廣泛流傳,因此被鎖定的受害者也許會更加留意開啟可疑電郵附檔或鏈結的動作。隨著魚叉式釣魚的成功機率越來越低,駭客必須不斷採行與發掘新的手法以散佈惡意程式碼。運用短網址服務與重導向伺服器能進一步提高攻擊的成功率,因為要判斷電郵中內含鏈結的有效性,其難度越來越高,因為這類縮短網址服務商會掩蓋鏈結網站。
這些攻擊中使用的檔案,會被 WildFire 判斷為惡意程式碼。AutoFocus用戶可透過相關惡意程式家族標籤,Poison Ivy 木馬的詳細資訊請點此
- 本文由Palo Alto Networks提供
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!