作者:深信服千里目安全實驗室
原文鏈接:https://mp.weixin.qq.com/s/Kkta59k7r81uIBjJvE9pCw
1.概述
"SideWinder(響尾蛇)"APT組織被認為是一個活躍于南亞地區的APT攻擊組織,該組織的主要攻擊目標是軍事,國防等行業。針對的國家包括巴基斯坦,阿富汗,中國,孟加拉,尼泊爾等國家。該組織最早在卡巴斯基在2018年的第一季度報告中被提及,卡巴斯基聲稱該組織從2012年就開始活躍,但是關于該組織的技術細節沒有公開。值得一提的是,卡巴斯基此后再也沒有涉及該組織的相關報告。一些安全廠商根據卡巴斯基的季度報告提到的內容將一些類似的攻擊歸因于"SideWinder(響尾蛇)"APT組織。
從2019年開始,多家安全廠商發布了多篇關于"SideWinder(響尾蛇)"APT組織的報告。這些報告中提到的攻擊行為都有明顯的相似之處,使用的惡意軟件特征都是相同的。"SideWinder(響尾蛇)"APT組織的攻擊一直到現在都是活躍的,它的攻擊工具也是不斷的改進。我們在分析一些列的針對印度的攻擊時,發現了和"SideWinder(響尾蛇)"APT組織的技術有相同之處。我們對“"SideWinder(響尾蛇)"APT組織做了深入的分析,于是就有了這篇文章。
2."SideWinder(響尾蛇)"APT組織相關報告
-
2018年4月,卡巴斯基發布了一篇名為“APT Trends report Q1 2018“的季度報告。在報告中提到了一個名為“Sidewinder”的APT組織,該組織主要針對的目標是巴基斯坦的軍事部門,從2012年就開始活躍。該組織使用了自己獨有的知名漏洞的利用方法(例如CVE-2017-11882),在漏洞利用執行成功后釋放一個powershell的payload。卡巴斯基聲稱擁有較少的證據證明這些惡意軟件屬于一個印度的公司。卡巴斯基沒有披露該組織的詳細細節。
-
2019年2月15日,巴基斯坦政府發布了一篇名為:Advisory - Prevention Against Cyber Espionage (Advisory No.3)的公告。在公告里提到新發現一個惡意軟件,該惡意軟件主要是通過郵件傳播。郵件中包含看起來正常的新聞內容同時包含了一個可以下載一個ZIP文件的鏈接。ZIP文件中包含一個LNK文件,點擊運行后會下載HTA文件,然后釋放credwiz.exe,duser.dll,bd.hta文件。公告中并沒有提及該惡意軟件的名字以及攻擊者。
-
2019年2月20日,巴基斯坦政府發布了一篇名為“Advisory - Prevention Against Cyber Espionage (Advisory No.4)"的公告。該公告中提到惡意軟件和2月15日的公告中的攻擊手法一樣,C2有變化。
-
2019年02月26日,騰訊御見威脅情報中心發布報告:“響尾蛇(SideWinder)APT 組織針對南亞的攻擊活動披露”。這個報告中提到的惡意軟件和巴基斯坦政府的公告中的一樣。
-
2019年03月1日,巴基斯坦政府部門發布公告Advisory - Prevention against Cyber Espionage (Advisory No. 8)。在該公告中提到了一個利用CVE-2017-11882漏洞的攻擊,后續的流程和騰訊提到的“Sidewinder”的APT組織一樣。
-
2019年05月08日,安天發布一篇名為“響尾蛇APT組織針對巴基斯坦的定向攻擊事件分析”。在報告中安天詳細的披露了攻擊的細節。
-
2019年09月06日,瑞星發布了名為“境外APT 組織“響尾蛇”對我國發起攻擊事件報告” 的報告。
-
2019年10月18日,瑞星發布了名為“境外APT組織“響尾蛇”再次 對我國發起攻擊事件報告"的報告。
-
2019年10月29日,瑞星發布了名為“APT組織“響尾蛇”對巴基斯坦攻擊事件報告"報告。
-
2019年11月11日,巴基斯坦政府發布了Prevention Against Indian APT Group Sidewinder (Advisory No. 22)的公告。在這個公告中首次稱“a suspected APT group from India“從2019年2月份就開始攻擊巴基斯坦的軍事,政府部門。
-
2020年01月01日,Gcow安全團隊發布了"游蕩于中巴兩國的魅影——響尾蛇(SideWinder)”報告。
-
2020年04月14日,騰訊安全威脅情報中心發布了一篇名為“響尾蛇(SideWinder)APT組織使用新冠疫情為誘餌的攻擊活動分析”報告。
-
2020年04月14日,巴基斯坦的政府部門發布了公告:“Prevention Against Indian APT Group- RattleSnake (Advisory No.5)” 。公告中提到的樣本和騰訊在同日發布的報告一樣。
-
2020年05月28日,奇安信威脅情報中心發布報告:“近期響尾蛇APT組織針對周邊國家和地區的攻擊活動分析”。
-
2020年07月13日,Gcow安全團隊發布報告"蛇從暗黑中襲來——響尾蛇(SideWinder) APT組織2020年上半年活動總結報告"
-
2020年12月09日,趨勢科技發布了報告“SideWinder Uses South Asian Issues for Spear Phishing, Mobile Attacks",這篇報告中提到SideWinder APT 組織針對尼泊爾政府發起攻擊。
-
2021年6月8日,奇安信情報中心發布了報告“SideWinder武器庫更新:利用外交政策針對巴基斯坦的攻擊活動分析”。在這篇報告中,“Sidewinder”APT組織開始對其樣本進行代碼混淆。
3."Sidewinder”APT組織的TTPs
"SideWinder(響尾蛇)"APT組織在初始化攻擊時時,會向目標發送一個釣魚郵件。郵件中包含一個可以下載ZIP文件的鏈接。下載下來的ZIP文件通常包含一個LNK文件或者DOC文檔。點擊這些文件后會下載一個HTA文件,HTA文件會在特定目錄釋放一個Duser.dll文件。接著將系統文件credwiz.exe拷貝到該目錄,為credwiz.exe添加一個自啟動項。然后運行credwiz.exe,credwiz.exe會加載Duser.dll。Duser.dll通常是不包含惡意代碼,它會進一步的加載執行其他惡意代碼。目前我們觀察到"SideWinder(響尾蛇)"APT組織使用的攻擊方法大致分為三種:
(1) 類型1
這種類型通常是通過郵件投遞一個包含漏洞利用的文檔。有的文檔是DOCX文件,它利用CVE-2017-0199漏洞(其實是模版注入)下載一個RTF文件,RTF文件包含一個CVE-2017-11882的利用,漏洞觸發后釋放一個名字為fina.hta文件。有的是一個僅僅利用了CVE-2017-11882漏洞的RTF文件。
釋放的HTA文件包含兩個經過base64編碼的字符串:

var ec = 'preBotHta' 聲明了要調用的的類。so字符串解碼后是一個經過序列化的DOTNET模塊,它的內部定義了一個preBotHta類。調用過程如下:

將DOTNET模塊拖到dnSpy中可以看到preBotHta的定義如下:
preBotHta類主要功能在函數work中實現,這個函數的定義如下:

work函數首先使用WMI查詢當前系統安全中心注冊的殺毒軟件的名字,如果殺軟的名字不是"360","avast","avg",就會將殺軟的名字提交給avUrl指向的鏈接。后續的代碼是在一個異常處理塊中運行,當代碼執行失敗時,異常處理過程也會向avUrl指向的鏈接提交當前系統中殺毒軟件的名字。接下來執行如下操作:
-
在注冊表HKEYCURRENTUSER\Software\Microsoft\Windows\CurrentVersion\Run 下添加一個項,以便實現開機啟動。文件路徑是%ProgramData%\drvr\srvc2\credwiz.exe。
-
將系統目錄下的credwiz.exe拷貝到%ProgramData%\drvr\srvc2\credwiz.exe。
-
解碼dllBase64并且使用gzip解壓縮解碼后的數據,搜索解壓后的數據中特殊標志并使用傳進來的參數“url”進行替換。然后將修改的數據寫入到%ProgramData%\drvr\srvc2\Duser.dll文件中。
-
credwiz.exe是一個系統文件,它會加載Duser.dll。這里使用的是 DLL Side-loading 方法來執行惡意代碼。preBotHta類和Program類中的成員變量copyexe,hijackdllname,instfolder,instpath,program保存了配置信息。
-
Duser.dll 是一個C++開發的模塊,它導出多個函數,但是都指向同一個函數。Duser.dll 執行后會定時的從preBotHta.work的第五個參數指定的URL下載javascript腳本,然后調用javascript的COM組件執行。javascript腳本主要是收集系統的信息,然后上傳。
(2) 類型2
這一種攻擊方法是在郵件附帶一個壓縮過的lnk文件,lnk文件偽裝成文檔。一個典型的lnk如下:
點擊lnk文件后,會執行mshta.exe 從https[:]//pmad-fbr.cdn-top.net/images/5512EBB0/4611/1296/20f96e/7044cf2 下載一個HTA文件。這個HTA文件包含兩個經過base64編碼的字符串:
da通常是經過gzip壓縮和base64編碼的文檔或者圖片。so是一個經過序列化的DOTNOT模塊,代碼如下:
這個文件的原始名是LinkZip.dll,它只是一個簡單的downloader。函數hta.pink的定義如下:
public void pink(string finalUrl, string avUrl, string doc, string documentName)
一個對這個函數調用的例子如下:
這個函數執行流程如下 :
-
首先解碼并解壓doc字符串,然后寫入到一個文件中,文件的名字取決于documentName。然后打開生成的文檔,用來欺騙受害者。
-
打開誘餌文檔后,會向服務器提交當前系統中安裝的殺軟。
-
接著從finalUrl中下載文件并保存在%temp%\bd.hta中,如果下載失敗次數超過10次,會通過avUrl向C2服務器提交一個"File-not-Written"錯誤。如果下載成功會調用mshta.exe執行bd.hta。
-
bd.hta是一個HTA文件,它會調用preBotHta的work函數,然后拷貝credwiz.exe,釋放Duser.dll。hta類的成員變量finalName,location保存了配置信息。Duser.dll 執行流程和類型1一樣。
(3) 類型3
這種類型攻擊方法通常是向受害者發送一個包含CVE-2017-11882漏洞利用的文檔或者LNK文件,它們執行后釋放或者下載執行邏輯相同的HTA文件。這些文件大多是經過混淆和簡單的加密的,一個典型的例子如下

解密后的文件如下:

反序列化后并調用的模塊代碼定義如下:
StInstaller.Program.work函數定義如下:
public void Work(string dll22, string dll, string url = "")
這個函數和preBotHta.work函數的執行流程有些相似,但是有些變化。目前我們觀察到有兩種類型:
-
將write.exe拷貝到指定目錄,然后在該目錄釋放propsys.dll,隨機名字的臨時文件、ite.exe.config。
-
將rekeywiz.exe拷貝到指定目錄,然后在該目錄釋放Duser.dll,隨機名字的臨時文件、ekeywiz.exe.config。
preBotHta.work使用base64算法解碼相關字符串并使用gzip解壓,修改數據中配置信息,然后生成propsys.dll或者Duser.dll。配置信息包括和C2通訊的地址和臨時文件的名。propsys.dll或Duser.dll把這個臨時文件加載到內并解密然后調用臨時文件的start函數:

釋放出來的臨時文件原始名是SystemApp.dll,這個DLL的中的SystemApp.program.start函數會創建兩個定時器,一個用于從C2服務器上獲取配置更新信息,另一個用于定時上傳收集到的信息。更新配置信息的部分代碼如下:

上傳收集的信息的代碼如下:

4."SideWinder(響尾蛇)"APT組織新的變化
2020年以后,"SideWinder(響尾蛇)"APT組織主要是使用型3的攻擊方法。類型1和類型2很少出現于公開的報告。類型3使用HTA大多經過簡單的混淆和簡單的加密,但是使用C#開發的DLL文件都沒有混淆。將這些DLL文件解碼后,使用dnSpy工具可以很輕松的分析它們。到了2021年有了變化,"SideWinder(響尾蛇)"APT組織開始對這些DLL文件中的函數和變量名字進行混淆。一個典型的例子如下:
App.dll相當于類型3中的hta.dll文件,但是如果看這個文件中的函數的名字就會發現差別很大。不少函數原始的名字已經被替換成一些隨意組合的字符串。
work函數的定義如下:
public void Work(string EncapsulatedObjectNotifyIterator, string GetDynamicInterpreterObject, string RequestMutatorProgramData, string ProgramRestoreClassShare)
這個函數原本的定義如下:
public void pink(string finalUrl, string avUrl, string doc, string documentName)
以Decompress為例,混淆前和混淆后對比如下:
前后對比可以發現,代碼基本邏輯沒有變化,但是一些函數名和變量的名字被替換了。這樣一來,代碼反編譯后的可讀性就很差了。
5.一些有意思的發現
"SideWinder(響尾蛇)"APT組織使用的C&C server 的域名通常包含"CDN",比如:s3-cdn[.]net、cdn-load[.]net、cdn-dl[.]cn、cdn-dl[.]cn。
我們對SideWinder(響尾蛇)"APT組織使用的域名的子域做了統計,發現了很多有意思的地方:
| 域名 | 子域 |
|---|---|
| d-dns[.]co | nadra[.]gov.pk.d-dns.co |
| s3-cdn[.]net | visa[.]s3-cdn.net www-coas-pk[.]s3-cdn.net coas-pk[.]s3-cdn.net |
| cdn-load[.]net | pmo[.]cdn-load.net |
| cdn-dl[.]cn | nadra-moi[.]cdn-dl.cn moi-nadra[.]cdn-dl.cn ministry-interior-gov-pk[.]cdn-dl.cn mopa-bdgov[.]cdn-dl.cn |
| cdn-in[.]net | www[.]punjabpolice.gov.pk .standingoperatingprocedureforemergencythreat .cdn-in.net punjabpolice[.]gov.pk .standingoperatingprocedureforemergencythreat .cdn-in.net |
| ap1-port[.]net | www[.]paknavy.gov.pk.ap1-port.net |
| asp-bin[.]net | paknavy[.]gov.pk.asp-bin.net |
| d01fa[.]net | hsrc-gov-pk[.]d01fa.net |
| nrots[.]net | csd-gov-pk[.]nrots.net |
| sd1-bin[.]net | www-csc-gov[.]sd1-bin.net |
| chrom3[.]net | pakbj[.]chrom3.net |
| cdn-edu[.]net | myanmarembassy[.]cdn-edu.net pk[.]cdn-edu.net |
| Filesrvr[.]net | nepalarmy[.]filesrvr.net mfa[.]filesrvr.net mfa[.]filesrvr.netmfa].]filesrvr.net mfa[.]filesrvr.net |
| gov-pok[.]net | mfada-gov-af-islamabad[.]gov-pok.net mofa-wireless-pk[.]gov-pok.net mofa[.]gov-pok.net theguardian-pk-protest-against-imran-khan[.]gov-pok.net moma[.]gov-pok.net |
| cdn-pak[.]net | mofa[.]cdn-pak.net embassy[.]cdn-pak.net mail-mofa-gov[.]cdn-pak.net fmprc[.]cdn-pak.net netmailmofagovpk[.]cdn-pak.net pakbj[.]cdn-pak.net |
有的子域被用作了C&C server,有些則沒有。多數情況下,子域會顯示可能的攻擊目標。幾個比較典型的例子如下:
-
nadra[.]gov.pk.d-dns.co,巴基斯坦國家數據庫和注冊管理局 (NADRA)的官網是:nadra[.]gov.pk。
-
pakbj[.]chrom3.net,巴基斯坦駐北京大使館的官網是:www[.]pakbj.org。
-
myanmarembassy[.]cdn-edu.net,"myanmarembassy"拆開是"myanmar embassy"意即緬甸大使館。
-
nepalarmy[.]filesrvr.net,尼泊爾陸軍的官網是:www[.]nepalarmy.mil.np。
-
myanmarembassy[.]cdn-edu.net,阿富汗外交部的網站是:www[.]mfa.gov.af。
-
fmprc[.]cdn-pak.net,中國外交部的官網是:www[.]fmprc.gov.cn
www[.]punjabpolice.gov.pk.standingoperatingprocedureforemergencythreat.cdn-in.net中有一個字符串,這個字符串拆開后是"standing operating procedure for emergency threat"。直譯過來就是"緊急威脅的標準處理流程",就是通常說的"安全應急響應"。
theguardian-pk-protest-against-imran-khan.gov-pok.net也很有意思,在衛報的官網上可以找到一個標題為"Pakistan's united opposition protests against Imran Khan's rule"的新聞。
6.總結
從2018年到如今,"SideWinder(響尾蛇)"APT組織活躍了3年的時間。這三年的時間里,該組織不斷地改進其攻擊工具。該組織的C2一個典型的特點是使用的域名中通常包含“CDN”或者"gov.pk",當然也有一些例外。其主要是針對政府、國防和軍工行業感興趣,涉及的國家大多是在南亞。雖然很多安全廠商通常是根據地緣政治來判斷該組織來自印度,但是目前沒有公開的報告提供確鑿證據。
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1720/
暫無評論