當前位置:
首頁 > 最新 > 經濟損失超1億?揭秘真實APT事件

經濟損失超1億?揭秘真實APT事件

XX公司在2017年底,發生核心數據和核心代碼泄露,經濟損失超過1億,自己難以追根溯源,在此期間找了很多安全廠商與技術專家,都未能分析出作案場景。

深信服EDR安全團隊,聯合安全感知、安全服務團隊,對此事件進行深入追蹤。經過長時間艱苦奮戰,結合100G的審計日誌,終於在眾多可疑PC機、伺服器中,理順了它們之間如何一步步被滲透的。

這是一起有組織有預謀的APT攻擊事件,黑客為此潛伏了長達半年之久。

0x01 流量分析

安全人員兵分多路,有人負責在域控伺服器上抓DNS流量包,想通過流量分析找問題主機。

經過篩選分析,安全人員發現主機172.16.166.130會向域控伺服器192.168.0.197(同時也是內網DNS伺服器)發起如下DNS請求流量:

解析域名為 46dobn3fnbb907iq0bq14c7ar7z.ppxxu.ru

.ru表明這是一個俄羅斯的域名地址

46dobn3fnbb907iq0bq14c7ar7z看上去是隨機的

經過抽樣分析(截取部分域控上的DNS流量),發現不僅主機172.16.166.130會訪問類似上述的域名地址,以下內網主機也有相同行為(整理部分主機到記事本中):

規律很明顯,域名指向俄羅斯,父域名主要為ppxxu.ru,子域名通通為27個字元的隨機字元串,即域名規律如下:

[27 random characters].ppxxu.ru

因此推導出如下結論:如果ppxxu.ru是黑客註冊並控制的站點,則XX公司被同一幫黑客所攻陷,且極可能形成了一對多的殭屍網路。

接下來就調查分析ppxxu.ru的背景:

經過Virustotal查詢,發現ppxxu.ru是一個最近註冊的俄羅斯域名,如下圖所示,註冊時間是2016年11月24日,過期時間為2017年11月24日。可見,這個域名非常短命的,申請者並沒有打算拿這個域名來做長期維護。

據此猜測,黑客應該是在攻陷內網主機後,再註冊申請了該域名,等過期了再換新的域名。這樣做的好處是,可以防止長時間使用某一特定域名而被發現。

上述截圖詳情可參考:

https://virustotal.com/en/domain/ppxxu.ru/information/

接下來,使用微步在線威脅情報進行分析,發現有Banker的病毒樣本與ppxxu.ru通信過,通信時間為2017年4月25日,另一樣本的通信時間為2016年12月10日。

需要注意的是,ppxxu.ru的註冊時間是2016年11月24日,過期時間為2017年11月24日,上述通信時間剛好落在這個時間段內。

上述截圖詳情可參考:

https://x.threatbook.cn/domain/ppxxu.ru

到此,我們又可推導出如下結論:種種跡象表明,ppxxu.ru並非是正常業務所需要訪問的域名,相反,倒是有病毒會去訪問它,因此,推斷ppxxu.ru就是黑客控制的伺服器,它被用來與XX公司內部主機進行通信。

接下來,就是到相應主機上,去進行閉環分析:證明相關內網主機確實有毒,而且和上述分析是一致的!

我們第一個檢查的主機是172.16.166.130,該主機屬於XX公司員工DDD的個人工作電腦,windows7操作系統。

首先,在172.16.166.130上使用Wireshark進行抓包,發現短時間內大量DNS流量,且指向ppxxu.ru,和域控伺服器上抓到的流量保持一致。

DDD的個人電腦查殺結果如下:

我們將其放大來看!請注意,C:windowssystem32sens.dll已經被替換了,即sens.dll原本是一個正常系統文件,病毒將自己替換為該文件以隱藏自身。

關於sens.dll文件的介紹如下(截取自百度百科,和微軟官網相差不大):

通常病毒劫持sens.dll的目的和危害如下,如盜號、竊密、篡改網頁等:

最後,我們將系統正常的sens.dll替換回去,病毒體清除掉,再重啟系統,最後使用Wireshark抓包觀察DNS流量,再也沒發現有請求解析ppxxu.ru的流量!

接下來,再抽查多台主機,驗證步驟、思路和第一台類似,不再贅述。檢出結果證明,這些主機都被同一個病毒所感染,且指向同一個C&C伺服器。

0x02 樣本分析

為了更深入了解黑客行為,安全專家對病毒樣本進行深入逆向分析,發現病毒樣本有多個,且有明確的分工合作。

sens.dll(偽裝系統文件)分析

sens.dll為偽裝的系統文件,該文件改寫正常sens.dll的導出函數,sends.dll載入後先運行惡意代碼,載入stoopper.dll,然後跳轉回原程序執行。

jusched.exe(鍵盤記錄器載入程序)分析

jusched.exe運行後載入stor32.dll,調用stor32.dll的導出函數initThread。

stor32.dll(鍵盤記錄器分析)

1、stor32.dll載入後,調用initThread函數,如果參數為1,創建全局鉤子記錄鍵盤按鍵,如果參加為2,卸載該全局鉤子。

執行鉤子回調函數fn,記錄按鍵信息並存入文件\..\LocalLow\NTUSER.DAT

stoopper.dll分析

1. 該病毒通過sens.dll正常樣本文件動態載入病毒文件stoopper.dll後通過傳入參數(0x252841)調用其導出函數index,執行病毒文件的真實代碼。

2. 病毒文件將關鍵字元串通過彙編代碼放到棧上,再利用gs:[60]寄存器找到Kernel32.dll文件的載入基址,最後手動遍歷導出表找到關鍵的三個函數地址(LoadLibraryW,GetProcAddress,FreeLibrary),再創建線程進行下一步操作。

這個後門木馬功能強大,實現如圖所示功能(可以看到,黑客可以竊取數據、記錄鍵盤按鍵、竊聽音頻設備等等,中毒主機完全是肉機,被長期監控):

3. 申請堆解密病毒的關鍵函數字元串後便利用之前的三個關鍵函數動態載入系統dll文件,並手動填寫IAT地址。

4. 解密完關鍵字元串後便開啟子線程進行真正的惡意行為。

5. 提升當前用戶許可權,先提升至SeDebugPrivilege(調試程序)用戶許可權,再提升許可權至SeTcbPrivilege(充當操作系統的一部分)用戶許可權。

6. 拼接網址並使用DnsQuery_A函數查詢DNS信息,DNS伺服器將提供一個會話ID並建立加密通信連接。

7. 獲取用戶名,獲取計算機名,獲取系統版本等敏感信息。

8. 創建兩個線程,一個用於發送數據,一個用於接收數據。

9. 接收控制指令,如果控制指令為1,獲取聲音設備數量、性能,發送到控制伺服器;如果控制指令為2,接收數據,創建線程,打開控制電腦的聲音設備,與控制伺服器建立socket通信,監聽控制電腦聲音輸入。

10、關聯域名:

e3sgcs1nagllfjajp0uojr7be5z.ppxxu.ru(域名前綴為動態生成) 俄羅斯

ns2.ppxxu.ru 俄羅斯

ns1.ppxxu.ru 俄羅斯

ostin.su 前蘇聯

11、關聯IP:

37.46.128.158 俄羅斯

13.186.173.240:80 美國

0x03 日誌分析

審計日誌主要以Linux為主,包括但不限於以下日誌類型:

我們可以嘗試從審計日誌入手,去了解黑客的行為。目前,發現的黑客行為如下圖所示:

偷數據,這一點不需要再多說明。

刪日誌,主要是刪審計日誌,通常是清空日誌,抹掉黑客操作痕迹。

==來自192.168.0.112的審計日誌,history -c清history操作日誌,有些cat 空文件覆蓋舊文件==

刪文件,主要是刪殘留的數據包、黑客工具等等,避免落下證據。

==來自192.168.0.65的審計日誌,mod.zip是黑客工具==

改路由,主要是為了使內網伺服器之間可達。

改iptable,主要是為了避免主機之間跳轉出現拒絕。

==來自192.168.0.65的審計日誌==

探測內網,偷數據前的前期準備。

==來自192.168.0.65的審計日誌,使用nmap持續探測==

看到這裡,是否對以上黑客行為產生疑問?既然黑客有刪審計日誌的動作,為什麼我們還是有審計日誌。

這其實是XX公司伺服器的日誌緩存與備份功能,即伺服器的日誌會定時備份出來。所以,黑客刪的是本地日誌。

這一對抗的結果是,黑客雖然無法把日誌都刪除了,但也破壞了不少日誌,使當前的日誌不完整,我們只能儘可能的一點點拼湊證據鏈。

0x04 黑客肖像

首先,結論是:攻擊團伙是俄羅斯黑客,基於以下證據。

1.ppxxu.ru是俄羅斯域名,ostin.su是前蘇聯域名

ppxxu.ru、ostin.su是從病毒樣本提取出來的

.ru是俄羅斯頂級域名,.su是前蘇聯頂級域名,俄羅斯與前蘇聯的關係,這裡就不廢話了。

2.病毒樣本有俄文字元

病毒樣本裡面拿到的字元串,可以看到有大量俄文字元,語義是正確的,右邊是使用翻譯後的中文意思(我們自己備註的)。

3.審計日誌發現俄文字元

==來自192.168.0.112的審計日誌,365981行有俄文字元==

審計日誌為什麼會有俄文字元呢?其實這並不是黑客故意留下的。

黑客擁有一個標準的俄文鍵盤,與我們習慣的中英輸入法切換不同,俄羅斯人用的是俄英輸入法切換。

我們看到黑客敲的俄文字元如下:

ршыещкн(這個字元串在俄文中是沒有任何意義的)

其實他想敲的是history命令,忘了切換成英文輸入,結果就變成了對應的俄文字元。當他意識到後,又馬上切換回英文,然後再輸入「history」(審計日誌365982行可證明)。

==俄文鍵盤,英俄字元對應關係==

4.XX公司一直有被俄羅斯黑客攻擊的「傳統」

XX公司自己反饋,俄羅斯黑客幾年前,曾公開點名「搞他們」。

近幾年,也斷斷續續遭受其攻擊。

5.滲透細膩,攻擊工作量大,一個人難以完成

不得不說,黑客的滲透是十分細膩的,基本上實現了重要目標的全覆蓋(研發關鍵人物和伺服器)。為了適應XX公司環境,又分別編譯了32、64位的病毒樣本,且支持Windows和Linux系統。為了不被查殺,又專門做了免殺處理。為了防止病毒被逆向,又加了大量混淆代碼。

0x05 現場還原

還原現場還是比較複雜的,總體的情形如圖所示:

首先,在核心數據未泄露之前,XX公司的多台PC機、伺服器就已經被種了同一種後門木馬,C&C伺服器均指向ppxxu.ru,即黑客可操控的內網主機還是很多的。

另外,公共燒錄機被種了SMB爆破蠕蟲,一直在嘗試橫向移動。

核心數據泄露當天,2017年10月22日(周日)。

如上圖所示,步驟如下(對應圖中編號):

①、01點45分,黑客通過運維機[172.16.191.33],登錄堡壘機[192.168.0.172]

②、01點45分,通過堡壘機[192.168.0.172],登錄打包伺服器[192.168.0.145],

③、02點29分,黑客通過伺服器[192.168.0.26]登錄到伺服器[192.168.0.65]。

④、02點29分,通過伺服器[192.168.0.65],登錄打包伺服器[192.168.0.145]。

⑦、02點48分,伺服器[192.168.0.26]telnet到37.*.*.225(IP來自摩爾多瓦共和國)。

==來自192.168.0.145的審計日誌,證明①==

==來自192.168.0.145的審計日誌,證明②==

==來自192.168.0.65的審計日誌,證明③、④==

==來自192.168.0.65的審計日誌,證明⑤==

==來自安全感知的檢測日誌,證明⑦ ==

0x06 總結回顧

「世界上有兩種公司,一種是被黑客攻擊過的,一種是還不知道自己被攻擊的。」


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 千里目安全實驗室 的精彩文章:

IIS深入淺出之短文件漏洞知多少
預警:新型Sigrun勒索病毒來襲

TAG:千里目安全實驗室 |