天天看點

技術報告:APT組織Wekby利用DNS請求作為C&C設施

*本報告翻譯自paloalto networks技術報告archcenter,作者josh grunzweig, mike scott and bryan lee,僅供業界學習,不用于任何商業用途。如有疏忽或翻譯錯誤敬請指出。

最近幾周paloalto networks的研究人員注意到,apt組織wekby對美國的部分秘密機構展開了一次攻擊。wekby這些年一直活躍在醫療、電信、航空航天、國防和高科技等多個領域。它會在漏洞出現的第一時間就對其大加利用,就像在hackingteam的zero-day漏洞事件中表現的那樣。

wekby使用的惡意軟體是httpbrower惡意軟體家族的一員,這種惡意軟體利用dns請求作為指令和控制機制(C&C)。此外,它還使用各種模糊處理技術,使得技術人員在分析過程中屢屢受阻。根據樣本中看到的那些中繼資料,palo alto網絡公司将其命名為pisloader惡意軟體。

基礎設施

pisloader惡意軟體家族通過http從下面url中進行傳播。這個url至今還處于活躍狀态。

示例中還有在此域下的其他url:

md5:e4968c8060ea017b5e5756c16b80b012

sha256: 8ffbb7a80efa9ee79e996abde7a95cf8dc6f9a41f9026672a8dbd95539fea82a

大小:126976位元組

編譯時間:2016年4月28日00:38:46

這份已經發現的檔案是最常見的poison lvy惡意軟體家族的一種,下面是它的配置資料:

指令和控制位址:intranetwabcam [.]com

指令和控制端口:80

密碼:管理者

互斥鎖:) !voqa.i5

在這次攻擊中所有使用過的域名都是在攻擊之前剛剛被注冊的。所包含的域如下:

另外,研究員們還發現了下面的ip:

攻擊之初

下面是最初發現的攻擊,在之後的分析中也一直在被引用:

md5:e8d58aa76dd97536ac225949a2767e05

sha256:da3261c332e72e4c1641ca0de439af280e064b224d950817a11922a8078b11f1

編譯時間:2016年4月27日14:37:34

這個特定檔案具有以下的中繼資料屬性。pisloader這個名字也是來源于此。

最初的注入攻擊中包含的代碼非常簡單,主要任務是通過運作系統資料庫項進行設定,并安裝執行嵌入式的windows可執行檔案。如果遇到混淆,攻擊者會立刻将字元串拆分為更小的子字元串,然後使用“strcpy”和“strcat”調用來重新進行建構。他們也會使用同樣的技術來生成從未使用過的垃圾字元串,目的是為了阻止樣品的檢測和分析。下面的反編譯代碼會解釋得更加清楚,我們已經在其中添加了注釋,以顯示完全生成的字元串。

在上述的反編譯代碼中,我們看到pisloader生成了下面的字元串,之後會用來設定運作系統資料庫項。

cmd.exe/cregaddhkcusoftwaremicrosoftwindowscurrentversionrun /v lsm /t reg_sz /d"%appdata%lsm.exe"/f

這一特定指令會用%appdata%lsm.exe值來設定hkcusoftwaremicrosoftwindowscurrentversionrunlsm系統資料庫項。此項設定之後,惡意軟體會用一個單位元組054的xor值解密兩組資料。由此産生的資料将會寫入%appdata%lsm.exe 檔案路徑。

在寫如此檔案之後,惡意軟體會執行剛編寫的 lsm.exe檔案,其中包含pisloader的有效攻擊荷載。

有效攻擊荷載

下面是已發現的、并在随後的分析中加以引用的案例:

md5: 07b9b62fb3b1c068837c188fefbd5de9

sha256:456fffc256422ad667ca023d694494881baed1496a3067485d56ecc8fefbfaeb

大小 ︰ 102400 位元組

編譯時間 ︰ 2016年4月27日 13:39:02

攻擊者使用了面向傳回程式設計(rop)技術,以及大量垃圾程式及指令對有效荷載進行了模糊化處理。在下面的示例中,用紅色标記的都是沒有任何用處的代碼。此類代碼可以作為垃圾處理,直接忽略。真正行使功能的代碼是綠色部分,這些代碼中有兩個函數偏移量在傳回指令之後被堆放到堆棧中。這個傳回指令會先将執行代碼指向空函數,空函數會反過來将執行代碼指向“next-function”。有效荷載運作的時候會使用這種技術,這樣會使得靜态分析變得更加困難。

在忽略了垃圾代碼之後,惡意軟體實際上是非常簡單的。開始它會随機生成一個10位元組長的字母數字作為标頭。其餘的資料會進行base32編碼,之後删除填充。此資料會用于填充子域,而這個子域就是之後的dns請求中用于txt記錄的地方。

這種利用dns作為c&c攻擊的做法一直沒有被惡意攻擊者廣泛采用過,除了下面這些:

· frameworkpos

· c3pro-raccoon

· feederbot

· morto

· 新型plugx

與此同時,這一做法也使得pisloader可以繞過某些安全産品(如果無法繞過,這些安全産品就會發現其中的異常)。

pisloader會定期發送一個信标,其中包含被用作有效荷載的4位元組随機大寫字元串。下面的示例中顯示了這一點:

對于pisloader預估響應之外的所有響應,惡意軟體都會不予理睬。是以攻擊者會設定下面的dns,因為如果沒有設定額外标明,惡意軟體就沒有辦法進行分辨。

· 響應

· 所需的遞歸函數

· 可用的遞歸函數

“問題”和“回答資源記錄”字段必須被設定為01值。另外,響應查詢子域必須與原始dns請求比對。

攻擊者還将遠端指令和控制(c&c)伺服器靜态嵌入到惡意軟體中去。在案例中我們還發現了“ns1.logitech-usa[.]com”主機。

c&c伺服器會用一個txt文檔進行響應,而文檔的加密方式與初始請求類似。在響應中,第一個位元組會被忽略,剩下的資料是用的base32編碼方法。下面是示例:

下面是惡意軟體支援的相關指令以及它們的描述:

· sifo——收集受害者系統資訊

· 驅動器——列舉受害者計算機上的驅動器

· 清單——列舉提供目錄中的檔案資訊

· 上傳——将檔案上傳到受害者計算機

· 打開——生成指令外殼程式

下面是正在使用這些指令的一些情況。我們使用了一個模拟的dns伺服器來生成指令并接收結果資料。

發送“驅動器”指令:

發送“打開”指令:

發送“sifo”指令:

列舉c盤内容:

此外,大量指令都與httpbrowser類似。這些指令的格式化響應也是一緻的。在一份已知的httpbrowser樣例中發現了與作為讨論樣本的pisloader類似的中繼資料,而且用來生成這些指令的代碼可以通過github獲得。這也讓我們更加确信,pisloader就是這個惡意軟體家族的一員。

結論

wekby使用更進階的惡意軟體繼續将矛頭對準各種高機密組織機構。pisloader惡意軟體家族使用了各種新技術(将dns作為c2協定)和各種反分析政策(利用面向傳回程式設計)。

為此,palo alto網絡采用了以下措施來保護使用者避免這種威脅:

· 能夠正确識别所有pisloader産品的wildfire

· 專門為這一系列惡意軟體設計的pisloader自動對準标記

· 攻擊中所使用到的所有域名、ip都已經被标記為惡意

· 已經建立了用于檢測pisloader dns通信的ips規則

本文轉自d1net(轉載)

繼續閱讀