驚!小心!駭客正通過 Google Drive 散佈 9002 木馬程式(附入侵過程詳解)
驚!小心!駭客正通過 Google Drive 散佈 9002 木馬程式(附入侵過程詳解)
作者為:Robert Falcone 與 Jen Miller Osborn
威脅情報小組 Unit 42 最近觀察到一隻名為 9002 的木馬,它結合短網址並透過 Google Drive 上的分享檔案等的攻擊手法進行散佈。用到的其他散佈方法還包括運用被駭客控制的伺服器,裡頭運行著重導向用戶瀏覽器的 Script,這類 Script 還被用來追蹤連至目標電郵位置的成功點擊動作。
這個 9002 木馬樣本的基礎架構,較早之前還被發現曾用來向緬甸與其他亞洲國家發動攻擊,這些攻擊都運用 Poison Ivy 木馬作為主體,而且可能和最近向台灣發起持續攻擊的行動有關連。
短小精悍…
雖然目前我們還未掌握這項攻擊在遠端遙控方面的資訊,但我們相信它用到短網址(這個案例中用的是 TinyURL 短網址服務)來散佈 9002 木馬。這種短網址形式如下:
hxxp://tinyurl[.]com/zmu4dry
這種短網址鏈結會把受害者重新導向被駭客控制的伺服器,這種重導向伺服器裡頭裝著 Script 程式負責把瀏覽器重導向到另一個網址。上述的縮短鏈結指向:
hxxp://222.239.91[.]152?QGdtYWlsLmNvbWh0dHA6Ly90aW55dXJsLmNvbS9qZmo5b3V2
上面的網址內含 base64 編碼資料,我們相信伺服器之後會把這些資料進行解碼。網址中經 base64 編碼的參數會將解碼資料重新導向至:
@gmail.comhttp://tinyurl[.]com/jfj9ouv
解碼後資料內的 Gmail 位置是一位知名政界人士的合法網址,他本身是緬甸的人權鬥士。解碼後資料內的短網址 ‘hxxp://tinyurl[.]com/jfj9ouv’ 再重新導向到:
hxxps://drive.google[.]com/uc?id=0B0eVt8dSXzFuN2ltVlVkVl8zNVU&authuser=0&export=download
駭客控制的重新導向伺服器
IP 網址為 ‘222.239.91[.]152’ 的這部伺服器,依其行為來看,內部執行一個 Script,負責對送入伺服器的 HTTP 要求分析各項參數。為了更精準判斷這隻 Script 的功能,我們發送一連串 HTTP 要求至重導伺服器,試著找出網址中 base64 編碼資料的目的,以及判斷 script 中哪些字串用來重新導向瀏覽器。
我們初期的 HTTP 要求,如圖 1 所示,顯示這項攻擊最先用到的短網址所指向的網路位址。從 HTTP 的回應來看,script 送出 HTTP 302 Moved Temporarily 訊息,讓瀏覽器轉向 “Location” 欄位的網址,該網址和 HTTP 要求中經解碼後的 base64 資料所記載的網址,兩者完全相同。
圖 1:HTTP 要求對最初傳遞網址的回應
我們送出的第二個測試 HTTP 要求,裡頭使用經 base64 編碼的資料來隱藏 “[email protected]://yahoo.com” 字串,如圖 2 所示,這個字串會透過 HTTP 302 回應讓瀏覽器轉向 http://yahoo.com。這顯示電郵字串並非用來對進入伺服器的要求進行任何型式的驗證,而是可能用來讓駭客針對目標電郵追蹤成功的點擊動作。
圖 2:測試要求確認了重導向伺服器採用 base64 編碼資料進行轉向動作
接著我們送出一個 HTTP 要求,採用 base64 編碼資料來隱藏 “[email protected]” 字串。圖 3 顯示伺服器送回一個 HTTP 200 OK 回應,嘗試重組一個 HTTP 403 Forbidden 回應,試著把 “403 Forbidden” 寫入到瀏覽器視窗。這個錯誤顯示出伺服器上的重導向 script 會分析 base64 解碼資料中是否有 “http” 字串,藉以判斷重導向位址。
圖 3:測試要求顯示出重導向伺服器會試著找出 base64 解碼資料中的 “http” 字串
之後我們進行後續的測試要求,希望發現 script 要求想在 base64 解碼資料中搜尋的其他字串,藉以判斷它會把瀏覽器導向什麼位置。我們發現 script 還能把瀏覽器轉向到 “https” 開頭的網址。另外,這隻 script 會區分大小寫,以 “HTTP” 和 “HTTPS” 開頭的要求會收到同樣的 403 Forbidden 回應,如圖 3 所示。最後,我們判斷這個 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 圖標進行偽裝,如圖 4 所示,引誘被害人點選這個以為是 PowerPoint 簡報的可執行檔。
圖 4:木馬程式主體用 PowerPoint 圖標自我偽裝,誘引被害人點擊這個可執行檔
如圖 5 所示,這個誘餌偽裝成一個 PowerPoint 簡報檔,內含 2016 年 7 月 30 日在緬甸進行一場會議的詳情,標題為 “Role of JMVTI Aung San and Building of Clean and Safe Automobile Society”《日緬職業訓練所的角色以及建立潔淨安全的汽車社會》。日緬職業訓練所(JMVTI) Aung San 是一個即將成立的職業訓練中心,它是由緬甸科技部底下的亞洲環境科技促進處設立。
圖 5:在 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’ 檔案,初期會儲存在木馬檔案下載程式建立的隨機命名資料夾。這個木馬的整體載入過程如圖 6 所示。
圖 6 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” 密鑰進行加密。圖 7 顯示這個 9002 木馬範例解密後的設定值十六進位傾印資料。
圖 7 9002 目前的組態資料
使用上面的組態檔,9002 木馬就能和以下作為指令與控制(C2)伺服器的網址進行通訊:
logitechwkgame[.]com
木馬接著會用兩種不同方法向 C2 伺服器傳送網路信標。第一個方法如圖 8 所示,使用一種客制化協定透過 TCP 80 埠進行通訊,以 “9002” 字串開頭,9002 也是該工具命名基礎。若 C2 伺服器有回應,木馬就會傳送系統有關資訊,連同 jackhex 與 “2016” 字串一起加入組態檔案。”jackhex” 這個字串也曾在一部涉及 Poison Ivy 攻擊的 C2 伺服器上被發現。
圖 8:使用客制化 9002 協定發送的網路信標
第二種發送信標的方法也使用 TCP 80 埠,但這種方法使用 HTTP 要求來和 C2 伺服器聯繫。圖 9 顯示此木馬發出的一個 HTTP 要求範例,利用 “lynx” 使用者代理以及 “AA” 的 POST 方法資料,兩者都寫死(hardcoded)在木馬的主體程式內。
圖 9: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)作為主要攻擊手法,但由於這類技巧早已廣泛流傳,因此被鎖定的受害者也許會更加留意開啟可疑電郵附檔或鏈結的動作。隨著魚叉式釣魚的成功機率越來越低,駭客必須不斷採用與發掘新的手法以散佈惡意程式碼。運用短網址服務與重導向伺服器能進一步提高攻擊的成功率,因為要判斷電郵中內含鏈結的有效性,其難度越來越高,因為這類縮短網址服務商會掩蓋鏈結網站。
9002 木馬範例
C11b963e2df167766e32b14fb05fd71409092092db93b310a953e1d0e9ec9bc3
49ac6a6c5449396b98a89709b0ad21d078af783ec8f1cd32c1c8b5ae71bec129
Poison Ivy 程式碼範例
193ae4da14874aa29902052d08064395afa5e4763f949e7369157d893fa08653
ac8fc264c7ec3cf70836e1bb21f9a20174b04ad49731b8797d7d8bb95cb353e2
12759f7fd01ffdea97954be5404d7e43a3941a7388129e7b6ace85f56b500cd8
0940602e7d47941f36c975afa9d2c6b1b0d2bd15bbea6ad4baf0f828420d72bf
6bdd45cb6c021512c203cf01a051dce28449e364627e1366412c0051094f60a0
f0ab826ea65b4a9eb66528ad74c4d3e747c1ecebfca6bdafd2504e0f794195d9
e2fb4a53e54774f1645c940f905e76beb5fc729e9e968b736b8377312cb2454a
0af768b4ba8fe7aac7a7da7fd5f21e7496d5617dccdf2321f526fd1091d64a6d
fd21cd1846f25d42b1997ec1fd5ae6e14ea9b5bb0161ab7edf0ce184174e6da6
12759f7fd01ffdea97954be5404d7e43a3941a7388129e7b6ace85f56b500cd8
08dee1f5ced372716ad5c6e3f2041bcdeb25e905efc19d3749fe637d0a589ccc
269c03e205c403ab8fa1033caa1c8e3a86a1495cc33a7f3a3a3c9b8a9ea77490
3a9ab623c8a0a9f6c65e108e83c90da7620d2d6b22192c857556117587d0d038
C2 伺服器網域
logitechwkgame[.]com
jackhex.md5c[.]net
webserver.servehttp[.]com
admin.nslookupdns[.]com
outhmail[.]com
mxdnsv6[.]com
microsoftdefence[.]com
microsoftserve[.]com
gooledriveservice[.]com
queryurl[.]com
appupdatemoremagic[.]com