原來這就是席捲烏克蘭的勒索病毒用的後門
導語:6月27日晚,烏克蘭境內多個政府組織和重要企業的電腦遭遇惡意軟體攻擊,致使多地出網路中斷和電腦故障,政府無法正常辦公,企業無法正常運營。
6月27日晚,烏克蘭境內多個政府組織和重要企業的電腦遭遇惡意軟體攻擊,致使多地出網路中斷和電腦故障,政府無法正常辦公,企業無法正常運營。事後,ESET把這次攻擊的惡意軟體檢測為Diskcoder.C也就是我們這兩天常聽的ExPetr,PetrWrap,Petya或NotPetya。Diskcoder.C像典型的惡意軟體一樣能夠加密計算機上的數據並勒索價值300美金的比特幣。
ESET將這次攻擊歸因於「TeleBots」組織,並發現了有關烏克蘭其他類似攻擊的詳細信息。本文介紹了DiskCoder.C攻擊期間使用的初始分布向量的詳細信息。
ESET在一篇博文中稱,「2016年下半年,ESET研究人員識別出一款獨特的惡意工具集,針對烏克蘭金融行業的高價值目標實施網路攻擊。我們認為,攻擊者使用這些工具的主要目標是進行網路破壞。而發起此次攻擊的惡意軟體TeleBots及其背後團伙與BlackEnergy黑客組織存在眾多相似之處。BlackEnergy2015年12月與2016年1月曾對烏克蘭的能源行業發起網路攻擊。事實上,我們認為BlackEnergy組織已經變身TeleBots組織。」
Diskcoder.C的變異過程
烏克蘭國家警察網路部在其Facebook帳戶上表示:「如ESET和其他信息安全公司分析的那樣,攻擊者利用本國的合法會計軟體M.E.Doc來傳播DiskCoder.C。」
不過到目前為止,關於其具體的傳播細節,官方還沒有公布。而在ESET的研究中,他們發現一個M.E.Doc非常隱秘的後門,這使得攻擊者可以輕鬆將DiskCoder.C注入到M.E.Doc的合法模塊中,否則攻擊者似乎不太可能通過訪問M.E.Doc源代碼的方式進行注入。
後門模塊的文件名為ZvitPublishedObjects.dll,它是使用.NET Framework編寫的,文件大小是5MB,其中包含很多可以由其他組件調用的合法代碼,比如M.E.Doc可執行文件主要的主執行模塊ezvit.exe。
ESET的專家們檢查了2017年發布的所有M.E.Doc更新,並發現至少有三個更新包含後門模塊,它們分別是:
01.175-10.01.176,於2017年4月14日發布n
01.180-10.01.181,於2017年5月15日發布n01.188-10.01.189,於2017年6月22日發布
Win32 / Filecoder.AESNI.C事件發生在10.01.180-10.01.181更新三天後,DiskCoder.C在10.01.188-10.01.189更新五天後爆發。有趣的是,從2017年4月24日至2017年5月10日出現了四個更新,以及從2017年5月17日至2017年6月21日出現了七個軟體更新,在這些更新中並沒有包含後門模塊。
由於5月15日更新中確實包含了後門模塊,而5月17日的更新卻沒有包含該更新,這就可以解釋為什麼Win32/Filecoder.AESNI.C事件的感染率非常低,因為5月17日的更新是攻擊者未預料到的事,而當他們在5月18日推送出了Win32/Filecoder.AESNI.C後,大部分M.E.Doc的用戶的後門模塊已經被更新。分析文件的PE編譯時間表明,這些文件是在更新當天或更新的前一天同時進行期編譯的,下圖就是5月15日更新後推送的模塊的編譯時間戳。
下圖則顯示了使用ILSpy .NET反編譯器在有無後門兩種情況下的模塊列表之間的區別,其中左側為帶有後門的反向模塊,右側為非後門的反向模塊:
後門的主要類命名為MeCom,它位於ZvitPublishedObjects.Server命名空間中,如下圖所示為具有惡意代碼的MeCom類,如ILSpy .NET反編譯器:
MeCom類是由ZvitPublishedObjects.Server命名空間中UpdaterUtils的IsNewUpdate方法調用。通過定期調用IsNewUpdate方法,以檢查是否有新的更新可用。可以看出從5月15日起的後門模塊的注入方式就發生了變化,因為相比於6月22日的功能更加豐富。
在烏克蘭開展商業活動時,每個組織都會獲得一個單獨的法人實體標識符,稱為EDRPOU號碼(Код?ДРПОУ)。這對攻擊者來說是非常重要的,一旦攻擊者擁有EDRPOU號碼,他們就可以確定正在使用具有後門的M.E.Doc的確切組織。一旦攻擊對象確定,攻擊者就可以根據攻擊目標來制定對應的網路攻擊策略。
在烏克蘭, 由於M.E.Doc是企業最常用的會計軟體,因此企業的EDRPOU號碼可以在使用M.E.Doc的設備上的應用程序數據中被找到。在IsNewUpdate方法中注入的代碼會從應用程序數據中收集所有EDRPOU值,由於一個M.E.Doc實例可同時為多個組織執行會計操作,因此後門代碼會收集所有可能的EDRPOU值,下圖就是收集EDRPOU號碼的代碼:
除了收集EDRPOU號碼,攻擊者還會利用後門從M.E.Doc應用程序收集代理和電子郵件設置,其中就包括用戶名和密碼。我們建議使用M.E.Doc軟體的所有用戶趕緊更改代理密碼和電子郵件帳戶。
惡意代碼使用Cred和Prx值將收集的信息寫入HKEY_CURRENT_USER SOFTWARE WC密鑰的Windows註冊表中。因此,如果這些值存在於計算機上,則後門模塊很可能就在該計算機上運行。
該後門非常的隱蔽,不使用任何外部伺服器作為C&C,僅使用M.E.Doc軟體的常規更新檢查請求進入官方M.E.Doc伺服器http://upd.me-doc.com[.]ua。這種偽裝的請求與合法請求的唯一區別是後門代碼將收集的信息發送到Cookie,下圖就是在Cookie中包含EDRPOU號碼的後門模塊的HTTP請求:
雖然截至目前,ESET的專家還沒有對M.E.Doc伺服器進行取證分析。但是,正如他們之前分析那樣,有跡象表明伺服器遭到入侵。因此,完全有理由推測,攻擊者部署的伺服器軟體允許他們區分來自受損和不受影響的計算機的請求,下圖就是請求添加Cookie的後門代碼:
當然,攻擊者也增加了控制受感染設備的能力。請求添加Cookie的後門代碼會接收一個二進位的BOB(binary large object,二進位大對象)官方M.E.Doc伺服器,並使用3DES演算法進行解密,最後使用GZip進行解壓縮,最後可以得到一個一次包含多個命令的XML文件。這個遠程控制功能使得後門同時成為一個功能齊全的網路間諜和網路攻擊的平台,下圖就是解密傳入惡意軟體操作員命令的後門代碼:
下表顯示了可能的命令:
應該注意的是命令5,之所以惡意軟體開發者將其命名為AutoPayload,是因為它完全符合了最初在「patient zero」設備上執行DiskCoder.C的方式,下圖就是用於執行DiskCoder.C惡意軟體的AutoPayload方法:
結論
本文分析顯示,該後門為一個完美的攻擊計劃和惡意操作創造了良好的條件。假設攻擊者可以訪問M.E.Doc應用程序源代碼,則他們有時間學習代碼,並加入了一個非常隱蔽的後門。完整的M.E.Doc安裝的大小約為1.5GB,ESET的專家目前還沒有辦法驗證是否還存在除了MeCom之外的其他注入後門。
另外有待考證的是,這個後門使用了多長時間? 除了DiskCoder.C或Win32 / Filecoder.AESNI.C以外,還有哪些命令和惡意軟體使用了此後門就行過傳播?有沒有其他的軟體更新參與過傳播?
特別感謝我的同事FrédéricVachon和Thomas Dupuy在這項研究中的幫助。
IOCs
1.ESET檢測名稱:
MSIL / TeleDoor.A
2.惡意軟體開發者濫用的合法伺服器:
http://upd.me-doc.com[.]ua
3.SHA-1哈希:
7B051E7E7A82F07873FA360958ACC6492E4385DD
7F3B1C56C180369AE7891483675BEC61F3182F27
3567434E2E49358E8210674641A20B147E0BD23C
本文翻譯自:Analysis of TeleBots』 cunning backdoor ,如若轉載,請註明來源於嘶吼: Petya最新進展之利用M.E.Doc後門 更多內容請關注「嘶吼專業版」——Pro4hou
推薦閱讀:
※零日競賽:Google和360如何改變內核漏洞挖掘領域的規矩?
※俄羅斯黑客接連被美國當局判刑27年和14年監禁,緣由何因?
※如何針對PC端的應用軟體進行安全測試?
※想報考信息安全專業與留在沿海地區上大學的計劃有衝突該怎麼選擇?
※行業安全:最全家用智能設備安全性測試報告