安全文库

【安全報告】XShellGhost事件技術回顧報告


【安全報告】XShellGhost事件技術回顧報告

2017-09-15 18:59:12 閱讀:11428次 點贊(0) 收藏 來源: 安全客

作者:360CERT


【安全報告】XShellGhost事件技術回顧報告


0x00 背景介紹


8月份,NetSarang公司(NetSarang Computer, Inc. 是一家致力於全球安全連接解決方案領域的研發的公司,產品和服務覆蓋全球90多個國家。)與安全廠商卡巴斯基聯合發布聲明, ”在2017年7月18日發布的全線產品在內的版本,均被植入了一份後門性質的惡意代碼,該後門可能可以被攻擊者直接利用”。

該事件被稱為“XShellGhost”事件,“XShellGhost”被定性為因入侵感染供應鏈廠商引發的大範圍安全事件,將直接導致使用NetSarang系列軟件用戶成為被遠程控制的受害者。

360CERT獲悉此事件后對該事件展開了分析,確認NetSarang公司在2017年7月18發布的Xmanager, Xshell, Xftp, Xlpd等產品中的nssock2.dll模塊中被植入了惡意代碼。

本報告是360CERT對事件中所使用的攻擊技術的一個回顧和總結。


0x01 事件概述


8月7日,NetSarang公司發布安全公告,稱其最近更新(7月18日)的Xmanager Enterprise、Xmanager、Xshell、Xftp、Xlpd五款軟件存在安全漏洞,並表示8月5日已經發布了修復版本。

隨後,經安全研究人員分析發現NetSarang公司在7月18日發布的nssock2.dll模塊中被植入了惡意代碼,直接影響到使用該系列軟件的用戶。

8月16日,NetSarang公司與安全廠商卡巴斯基聯合發布聲明,披露了惡意代碼的相關信息。NetSarang公司並未解釋漏洞的成因,外部分析可能是在產品發布生命周期被攻擊,導致7月18日的版本被植入後門。


0x02 官方聲明


長期以來為應對層出不窮的網絡攻擊,NetSarang公司採取了一系列的方法和舉措來強化自身產品線的安全性,避免被惡意代碼感染、商業間諜組織滲入的情況發生。

遺憾的是,在2017年7月18日發布的全線產品在內的版本,均被植入了一份後門性質的惡意代碼,該後門可能可以被攻擊者直接利用。

我們深知,客戶和用戶的安全是我們公司最高的優先級和根本,更是我們的職責所在。當今世界,通過攻擊商業、合法性質的軟件來獲利或蓄意攻擊其用戶的攻擊團伙和組織正在日益增長是一個真切的現實問題,在這裡,NetSarang會和其它計算機軟件行業里的公司一樣,認真的應對這一挑戰。

NetSarang致力於保護用戶的隱私安全,且已經整合了一套堅實的體系來保證不會再有類似的具有安全缺陷的產品被輸送到用戶手中。NetSarang會繼續評估和改進我們的安全,這不僅僅是為了打擊來自世界各處的網絡間諜團伙,更是為了讓公司的忠實用戶能夠繼續信任我們。"

目前Kaspersky的產品已經支持檢測名為“Backdoor.Win32.ShadowPad.a”的ShadowPad樣本。

Kaspersky實驗室建議用戶儘快更新到NetSarang產品軟件的最新版本,在最新版本中惡意代碼已經被移除,此外建議檢測系統是否有對應的惡意域名訪問記錄。相關的C2域名和後門惡意代碼技術信息已經在相關的技術報告中提及。

註:更多信息可以見[參考7]


0x03 事件影響面


1.影響面

該事件屬於重大網絡安全事件,實際影響範圍廣。

安全預警等級:橙色預警

2.影響版本

根據官方安全通告,確定涉及如下版本:

Xmanager Enterprise 5.0 Build 1232

Xmanager 5.0 Build 1045

Xshell 5.0 Build 1325

Xshell 5.0 Build 1322

Xftp 5.0 Build 1218

Xlpd 5.0 Build 1220


0x04 惡意代碼技術細節


1.整體流程

受害者在安裝,啟動了帶有後門的客戶端后,nssock2.dll模塊中的攻擊代碼會以Shellcode形式在後台被調用解密執行。

該Shellcode分為多加密塊,基於插件模型架構,各模塊之間負責不同功能且協調工作、相互調用,實際分析后發現中間存在大量對抗設計,隱秘性較強,該後門還包含了如下幾個特點:

無自啟動項,無獨立落地文件

存在花指令和部分加密函數設計

多種通信協議的遠程控制

主動發送受害主機基本信息

通過特定的DGA(域名生成算法)產生的DNS域名傳送至遠程命令控制服務器

C&C服務器可動態下發任意代碼至用戶機器執行

整體流程如下圖所示:

【安全報告】XShellGhost事件技術回顧報告

後門的整體流程大致分為以下9個步驟:

1.    Xshell啟動後會加載動態鏈接庫nssock2.dll。

2.    在DllMain執行前由全局對象構造啟動引子代碼。

3.    引子代碼主要功能就是解密shellcode1並跳轉到入口處執行。

4.    shellcode1(loader)加載shellcode2。

5.    shellcode2中將搜集用戶信息構造DNS TXT包傳送至根據年份和月份生成的DGA域名,同時接收解密shellcode3的key並寫入註冊表,一旦註冊表中查詢到對應的值隨即解密shellcode3並執行。

6.    Shellcode3(loader)主要負責加載Root模塊並跳轉到入口處執行。

7.    Root被加載後接着分別加載Plugin,Config,Install,Online和DNS模塊。

8.    Install模塊會創建svchost.exe並把Root模塊注入,實現持久化運行。

9.    Online模塊會根據其配置初始化網絡相關資源,向指定服務地址發送信息,並等待雲端動態下發代碼進行下一步攻擊。 

2.Shellcode1(Loader)

該後門是基於插件模式開發的,Root模塊提供了插件的基本框架,各插件之間會相互調用,而在各個插件加載時都會多次用到同一個loader,loader中的代碼中加入了化指令進行干擾,具體實現細節為如下8個步驟:

【安全報告】XShellGhost事件技術回顧報告

1.    獲取kernel32基地址。

2.    獲取所需相關函數地址(Loadlibary、GetProcAddress、VirtualAlloc、Sleep)。

3.    申請空間,解密數據存儲到申請的空間。

4.    修復重定位。

5.    填寫導入表。

6.    在函數頭部判斷是否下了INT3斷點。

7.    加密IAT項,手法比較簡單,僅是將原API地址求補。

8.    跳向shellcode入口

3.Shellcode2

Shellcode2主要作用就是將搜集的數據傳出,並接收服務端傳來的key解密shellcode3,執行後門的核心部分,Shellcode2實現細節如下:

【安全報告】XShellGhost事件技術回顧報告

1.    Shellcode2首先創建工作線程。

2.    工作線程首先獲取VolumeSerialNumber值並且異或0xD592FC92 這個值用來創建註冊表項。

3.    創建註冊表項,位置為HKEY_CURRENT_USER/SOFTWARE/-[0-9](步驟2生成的數值)。

4.    通過RegQueryValueExA查詢步驟3創建註冊表中Data鍵的值。

5.    如果註冊表Data已經存放key會直接用key解密shellcode3並執行。

6.    不存在key則繼續執行下面的循環,當不滿足時間條件時循環每隔10秒獲取一次時間, 滿足時間條件時進入主流程執行步驟7。

7.    主流程首先根據當前時間生成DGA域名 ,當前8月時間為nylalobghyhirgh.com

部分年份-月份生成的域名對應關係如下:

【安全報告】XShellGhost事件技術回顧報告

8.    接着根據獲取的當前網絡、hostName 、DomainName 、UserNmae用特定算法生成字符串構造DNS_TXT數據包並向8.8.8.8 | 8.8.4.4 | 4.2.2.1 | 4.2.2.2 | 當前時間DGA域名 發送,然後等待服務器返回數據(解密Shellcode3的key)。此外,通過對12個域名分析NS解析情況后發現, 7月開始被註冊解析到qhoster.net的NS Server上,所以猜測這個惡意代碼事件至少是從7月開始的。

【安全報告】XShellGhost事件技術回顧報告

9.    當接收到服務器的數據包後設置註冊表Data數據,然後解密Shellcode3,Shellcode3依然是一個loader,該loader加載Root模塊,其loader功能同上述的細節相同。

4.Module Root

Root模塊是後門的關鍵部分,為其它模塊提供了基本框架和互相調用的API,其中會加載五個模塊分別為:Plugin、Online、Config、Install、DNS。

【安全報告】XShellGhost事件技術回顧報告

將自身函數表地址共享給其他模塊使用,主要這些API主要涉及到一些模塊加載、加解密等功能。

【安全報告】XShellGhost事件技術回顧報告

搜索5個模塊Plugin、Online、Config、Install、DNS中的Install模塊,還是可以通過跟上文一樣,使用同樣的Loader加載。

具體流程上:

1.    解密后可以一個個dump下來

【安全報告】XShellGhost事件技術回顧報告

2.    嘗試調用Install模塊(0x67):

【安全報告】XShellGhost事件技術回顧報告

5.Module Install

Install負責把RootModule的Code注入到傀儡進程中和Online模塊的初始化。

【安全報告】XShellGhost事件技術回顧報告

相關細節操作:

1.    提升自身進程相關權限

【安全報告】XShellGhost事件技術回顧報告

2.    調用config模塊讀取配置信息

【安全報告】XShellGhost事件技術回顧報告

3.    根據不一樣的配置信息走不一樣的流程,如果都不等於的話將會注入winlogon.exe或者運行scvhost.exe並注入Root模塊,啟動執行Online模塊。

【安全報告】XShellGhost事件技術回顧報告

6.Module Config

Config模塊主要負責配置信息的存儲和讀取功能,當模塊初始化函數傳入的參數為100時,會保存一些默認配置信息到磁盤中,同時Config模塊也提供了將配置信息發送到CC服務器的接口。

【安全報告】XShellGhost事件技術回顧報告

當插件入口函數參數 a2==100時會執行加密配置信息寫入到磁盤,具體存儲位置根據磁盤的VolumeSerialNumber生成。

如%ALLUSERSPROFILE%/XXX/XXXX/XXXX/XXX(其中X由運算生成),存儲的內容如下:

【安全報告】XShellGhost事件技術回顧報告

7.Module Plugin

Plugin模塊為後門提供插件管理功能,包括插件的加載、卸載、添加、刪除操作,管理功能完成後會通過調用Online的0x24項函數完成回調,向服務器返回操作結果。模塊的輔助功能為其它插件提供註冊表操作。

【安全報告】XShellGhost事件技術回顧報告

具體行為上:

1.    創建線程調用config模塊的第三個導出函數,遍歷註冊表項SOFTWARE/Microsoft/<MachineID>。

【安全報告】XShellGhost事件技術回顧報告

2.    使用RegNotifyChangeKeyValue函數監測插件註冊表鍵值是否被更改,被更改后則解密並加載模塊。

【安全報告】XShellGhost事件技術回顧報告

8.Module DNS

DNS模塊的主要功能是使用DNS協議處理CC通信過程。DNS數據包有三種類型,分別代表上線,數據和結束。

【安全報告】XShellGhost事件技術回顧報告

0類(上線)

【安全報告】XShellGhost事件技術回顧報告 

【安全報告】XShellGhost事件技術回顧報告

1類(數據):

【安全報告】XShellGhost事件技術回顧報告

【安全報告】XShellGhost事件技術回顧報告

3類(結束):

【安全報告】XShellGhost事件技術回顧報告

【安全報告】XShellGhost事件技術回顧報告

此外,

1.    該模塊會調用GetAdaptersAddresses獲取適配器的DNS,最多收集0x10個DNS。

【安全報告】XShellGhost事件技術回顧報告

2.    在模塊入口函數100編號對應的初始化過程中,模塊會開啟線程等待其他插件數據到來,當收到數據時將數據通過DNS發送到CC服務器。

【安全報告】XShellGhost事件技術回顧報告

【安全報告】XShellGhost事件技術回顧報告

9.Module Online

Online模塊是本次攻擊的網絡通信管理模塊。該模塊會讀取配置文件,收集系統信息,並且能夠調用DNS,HTTP,SSL等模塊通信,不過在代碼中暫時只有前面所述的DNS模塊。

【安全報告】XShellGhost事件技術回顧報告

收集併發送的系統信息包括註冊表中的處理器信息,gethostbyname()獲取的host信息,GlobalMemoryStatus()獲取的內存信息,GetSystemTime()獲取的時間信息,GetDiskFreeSpaceEx()獲取的磁盤空間信息,EnumDisplaySettingsW()獲取的顯示器信息,GetSystemDefaultLCID()獲取的系統語言信息,RtlGetVersion()獲取的系統版本信息,GetSystemMetrics()獲取的分辨率等信息,GetNetworkParams()獲取的網絡信息,GetNativeSystemInfo()獲取的SYSTEM_INFO信息,LookupAccountSidW()獲取的用戶名信息等等。

【安全報告】XShellGhost事件技術回顧報告

0x16E1337函數首先讀取配置文件,然後每隔1秒調用0x16E1995函數,0x16E1995函數還會調用0x16E1E9A函數,如果0x16E1E9A函數返回20000則函數邏輯徹底結束。

【安全報告】XShellGhost事件技術回顧報告

在0x16E1995函數中調用InternetCrackUrlA分解配置信息中的URL(www.noteped.com)並根據字符串前面的協議類型採取不同的連接方式,每個協議對應一個ID,同時也是協議插件的ID,目前取得的樣本中使用的DNS協議對應ID為203。其它幾個網絡模塊(TCP、HTTP、UDP、HTTPS、SSL)雖然在代碼當中有所體現,但是在shellcode當中尚未主動運行。

【安全報告】XShellGhost事件技術回顧報告

此外,還調用了0x16E2D3F函數,試圖調用Plugin模塊設置註冊表項Software/Microsoft/Windows/CurrentVersion/Internet Settings/SecureProtocols以修改IE瀏覽器的安全設置。

【安全報告】XShellGhost事件技術回顧報告

還會根據指定的參數使用HTTP-GET/HTTPS-GET/FTP來下載文件。

【安全報告】XShellGhost事件技術回顧報告


0x05 修復建議


NetSarang官方已經在以下幾個軟件的最新Builds版本中完成了安全修復。我們建議受影響的用戶,及時更新到對應的修復版本:

Xmanager Enterprise Build 1236

Xmanager Build 1049 

Xshell Build 1326

Xftp Build 1222

Xlpd Build 1224


0x06 總結


XShellGhost事件暗示着信息安全領域中又一個“潘多拉魔盒”已經被打開了,它表明了安全人員長期以來擔心的基礎軟件、供應鏈被攻擊后帶來的大範圍影響已經真實的發生了。

360CERT在實際分析跟蹤中,除了看到XShellGhost中所使用的一系列精巧攻擊技術外,更重要是看到了背後攻擊組織在實施攻擊道路上的決心。

在未來,安全人員擔心的種種安全風險會不可避免的慢慢出現,但同時我們也在慢慢的看到,一方面基礎軟件廠商正在以積極的態度通過聯合安全廠商等途徑來加強和解決自身的產品安全,另一方面安全廠商之間也已經在威脅情報和安全數據等方面方面進行更為明確化,縱深化的整合。


0x07 時間線


2017-08-07 NetSarang官方發布安全更新

2017-08-14 360CERT發布《nssock2.dll惡意代碼預警》

2017-08-16 360CERT發布《NetSarang 關於nssock2.dll惡意代碼事件聲明》

2017-09-07 360CERT完成《XshellGhost事件技術回顧報告》


0x08 參考


1.360天眼實驗室:Xshell被植入後門代碼事件分析報告(完整版)              

http://bobao.360.cn/learning/detail/4278.html

2.360追日團隊:Xshellghost技術分析——入侵感染供應鏈軟件的大規模定向攻擊

http://bobao.360.cn/learning/detail/4280.html

3.ShadowPad in corporate networks

https://securelist.com/shadowpad-in-corporate-networks/81432/

4.Security Exploit in July 18, 2017 Build

https://www.netsarang.com/news/security_exploit_in_july_18_2017_build.html

5.ShadowPad: popular server management software hit insupply chain attack

https://cdn.securelist.com/files/2017/08/ShadowPad_technical_description_PDF.pdf

6.nssock2.dll惡意代碼預警|影響Xshell,Xmanager等多款產品

https://cert.360.cn/warning/detail?id=07450801f090579304c01e9338cb0ffb

7.NetSarang 關於nssock2.dll惡意代碼事件聲明

https://cert.360.cn/warning/detail?id=38b82e99cf9538cd8cab0fe7d98f2c69


【安全報告】XShellGhost事件技術回顧報告 【安全報告】XShellGhost事件技術回顧報告

本文由 安全客 原創發布,如需轉載請註明來源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/4425.html