Petya勒索蠕蟲完全分析報告

xjc1027 8年前發布 | 61K 次閱讀 安全相關

Petya勒索蠕蟲完全分析報告

Petya勒索蠕蟲完全分析報告

第一章 前言

2017年6月27日晚,烏克蘭、俄羅斯、印度、西班牙、法國、英國以及歐洲多國遭受大規模Petya勒索病毒襲擊,該病毒遠程鎖定設備,然后索要贖金。其中,烏克蘭地區受災最為嚴重,政府、銀行、電力系統、通訊系統、企業以及機場都不同程度的受到了影響,包括首都基輔的鮑里斯波爾國際機場(Boryspil International Airport)、烏克蘭國家儲蓄銀行(Oschadbank)、船舶公司(AP Moller-Maersk)、俄羅斯石油公司(Rosneft)和烏克蘭一些商業銀行以及部分私人公司、零售企業和政府系統都遭到了攻擊。

此次黑客使用的是Petya勒索病毒的變種,,使用的傳播攻擊形式和WannaCry類似,但該病毒除了使用了永恒之藍(MS17-010)漏洞,還罕見的使用了黑客的橫向滲透攻擊技術。在勒索技術方面與WannaCry等勒索軟件不同之處在于,Petya木馬主要通過加密硬盤驅動器主文件表(MFT),使主引導記錄(MBR)不可操作,通過占用物理磁盤上的文件名、大小和位置的信息來限制對完整系統的訪問,從而讓電腦無法啟動,故而其影響更加嚴重。如果想要恢復,需要支付價值相當于300美元的比特幣。

由于這次攻擊有很強的定向性,所以目前歐洲被感染的受害者較多。目前國內感染量較少,但是考慮到其橫向攻擊傳播能力,未來存在較高風險在國內傳播。

第二章 Petya老樣本簡介

2016年4月,敲詐勒索類木馬Petya被安全廠商曝光,被稱作是第一個將敲詐和修改MBR合二為一的惡意木馬。木馬Petya的主要特點是會先修改系統MBR引導扇區,強制重啟后執行MBR引導扇區中的惡意代碼,加密受害者硬盤數據后顯示敲詐信息,并通過Tor匿名網絡索取比特幣。

Petya與其他流行的勒索軟件的不同點在于,Petya不是逐個加密文件,而是通過攻擊磁盤上的低級結構來拒絕用戶訪問完整的系統。這個敲詐勒索木馬的作者不僅創建了自己的引導加載程序,還創建了一個32個扇區長的小內核。

Petya的木馬釋放器會將惡意代碼寫入磁盤的開頭。被感染的系統的主引導記錄(MBR)將被加載一個小型惡意內核的自定義引導加載程序覆蓋,然后該內核會進一步加密。 Petya的敲詐信息顯示其加密了整個磁盤,但這只是木馬作者放出的煙霧彈,事實上,Petya只是加密了主文件表(MFT),使文件系統不可讀,來拒絕用戶訪問完整的系統。

Petya勒索蠕蟲完全分析報告

圖 1 Petya的敲詐信息

第三章 Petya新樣本詳細介紹

此次Petya病毒的新樣本類型為DLL,有一個導出序號為1的函數。當這個函數被調用時,首先嘗試提升當前進程的權限并設置標記,查找是否有指定的安全軟件,后面會根據是否存在指定的安全軟件跳過相應的流程。繞過安全軟件的行為監控。

接下來修改磁盤的MBR,并將生成的Key,IV,比特幣支付地址以及用戶序列號寫入磁盤的固定扇區。然后創建計劃任務于1小時后重啟。遍歷局域網可以連通的ip列表,用于后續的局域網攻擊。釋放并執行抓取密碼的進程,釋放psexec進程用于后續執行遠程命令。對系統的網絡資源列表進行過濾,篩選本地保存的憑據,使用保存的憑據連接,成功后執行遠程命令,進行局域網感染。

下一步生成隨機ip,連接445端口進行永恒之藍漏洞攻擊。然后遍歷磁盤,對指定擴展名的文件進行加密。執行完所有流程后,清除日志并強行重啟。

Petya勒索蠕蟲完全分析報告

圖 2 總體流程圖

第四章 Petya勒索蠕蟲感染傳播趨勢分析

自6月27日在歐洲爆發的起,Petya勒索病毒在短時間內襲擊了多國。

根據360互聯網安全中心的監測,對每一個小時的遠程攻擊進程的主防攔截進行了統計。從6月28號0點至6月28日晚上7點整,平均每小時攻擊峰值在5000次以內。上午10點攻擊攔截達到最高峰,后緩慢波動,在14點達到一個小高峰,然后攻擊頻率開始緩慢下降。由此可見,Petya的攻擊趨勢并不呈現幾何級增長的趨勢,而是緩慢下降的,并不具備進一步泛濫的趨勢。

Petya勒索蠕蟲完全分析報告

圖 3 攻擊頻率

除烏克蘭、俄羅斯、印度、西班牙、法國、英國以及歐洲多國遭受大規模的Petya攻擊外,我國也遭受了同樣的攻擊。針對我國的攻擊,主要集中在北京、上海、廣州、深圳、香港等大城市,根據360互聯網安全中心的監測,在全中國八十多個城市攔截到了攻擊。

Petya勒索蠕蟲完全分析報告

圖 4 Petya國內感染情況

第五章 Petya橫向移動及傳播技術分析

一、提升權限,設置執行標記

首先,Petya病毒會嘗試提升當前進程的3種權限:SeShutdownPrivilege、SeDebugPrivilege和SeTcbPrivilege,根據是否成功設置標記,后面執行相應的流程時會判斷此標記,以防沒有權限時系統報錯。

Petya勒索蠕蟲完全分析報告

然后,通過CreateToolhelp32Snapshot枚舉系統進程,判斷是否有指定的安全軟件,并設置標記。

Petya勒索蠕蟲完全分析報告

枚舉過程中,通過將進程名稱進行異或計算得出一個值,將該值與預設的值進行比較,此處病毒是在尋找特定名稱的進程,通過對算法進行逆向還原,我們找出預設值對應的進程名稱:

進程名稱 殺毒軟件
0x2E214B44:   avp.exe 卡巴斯基
0x651B3005:   NS.exe 諾頓
0x6403527e: ccSvcHst.exe 諾頓

當存在NS.exe(諾頓)或ccSvcHst.exe(諾頓)進程時,不執行漏洞感染流程。

當存在avp.exe(卡巴斯基)進程時,不執行MBR感染流程。

二、MBR修改

獲取分區類型,當為MBR格式時執行修改MBR流程。

Petya勒索蠕蟲完全分析報告

隨后,Petya將修改機器的MBR,具體流程如下:

  • 通過微軟的CryptoAPI生成長度為 60 字節的隨機數

Petya勒索蠕蟲完全分析報告

  • 對生成的隨機數對58進行取模,取模后的值作為下述數組的索引

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz,生成勒索界面顯示的序列號

  • 將病毒內置的MBR寫入,長度為0x13個扇區

Petya勒索蠕蟲完全分析報告

  • 將隨機生成的key,IV,硬編碼的比特幣支付地址以及用戶序列號寫入磁盤第0x20個扇區

Petya勒索蠕蟲完全分析報告

三、設置重啟計劃任務

創建計劃任務,設定當前時間1小時后重啟計算機。

Petya勒索蠕蟲完全分析報告

Petya勒索蠕蟲完全分析報告

重啟之后將執行病毒的MBR,加密扇區。

四、遍歷IP

首先,Petya檢查被感染的機器是否為Sever或者域控服務器

Petya勒索蠕蟲完全分析報告

當檢測到主機為服務器或者域控時,會枚舉該主機DHCP已分配的IP信息,保存在列表中用于網絡攻擊。

Petya勒索蠕蟲完全分析報告

五、釋放并運行資源

進程首先從資源中解壓縮ID為1的資源,在系統的%TEMP%目錄下生成一個臨時文件。

Petya勒索蠕蟲完全分析報告

隨后程序啟動線程嘗試連接特定的命名管道并讀取數據,隨后將該臨時文件作為進程啟動,并且等待1分鐘。

Petya勒索蠕蟲完全分析報告

對啟動的臨時文件進行分析,其代碼功能與mimikatz,一款Windows下抓取密碼的工具類似,Petya通過命名管道從該工具進程中獲取本機賬戶密碼。

Petya勒索蠕蟲完全分析報告

之后程序加載資源序號3并且解壓縮,首先獲取系統文件夾目錄,若失敗則獲取%APPDATA%目錄,并將解壓后的資源命名為dllhost.dat寫入到該目錄下。

Petya勒索蠕蟲完全分析報告

dllhost.dat的本質為PsExec.exe,是一款屬于sysinternals套件的遠程命令執行工具,帶有合法的簽名。

六、枚舉網絡資源

接下來,病毒遍歷所有連接過的網絡資源,從中篩選類型為TERMSRV的憑據保存。

Petya勒索蠕蟲完全分析報告

Petya勒索蠕蟲完全分析報告

接下來嘗試使用保存的憑據連接網絡資源

Petya勒索蠕蟲完全分析報告

連接成功則執行下列命令:

Petya勒索蠕蟲完全分析報告 Petya勒索蠕蟲完全分析報告

該命令將在目標主機上執行rundll32。exe調用自身dll的第1個導出函數,完成局域網感染功能。

七、使用永恒之藍漏洞攻擊

接下來,啟動線程進行永恒之藍漏洞攻擊。

Petya勒索蠕蟲完全分析報告 Petya勒索蠕蟲完全分析報告

病毒使用異或的方式加密了部分數據包,在內存中重構后發送數據包,這樣就避免了殺毒軟件的靜態查殺。

Petya勒索蠕蟲完全分析報告

八、文件加密

Petya采用RSA2048 + AES128的方式對文件進行加密,程序中硬編碼RSA公鑰文件,每一個盤符會生成一個AES128的會話密鑰,該盤符所有文件均對該AES Key進行加密。

九、清除日志并重啟

執行完加密文件和網絡傳播流程后,病毒將清除Windows系統日志并強制重啟。重啟后將執行病毒寫入的MBR并加密磁盤。加密完成后顯示勒索信息并等待用戶輸入key。

Petya勒索蠕蟲完全分析報告 Petya勒索蠕蟲完全分析報告

第六章 Petya勒索加密技術分析

一、篡改MBR

當系統重啟后,執行病毒的MBR,偽裝成CHKDSK進行加密磁盤,加密完成后彈出敲詐信息對用戶進行敲詐。

Petya勒索蠕蟲完全分析報告

圖 5 Petya敲詐信息

下面,我們來對修改后的MBR進行分析:

  • 讀取第20個扇區判斷是否已經加密,執行相應流程

Petya勒索蠕蟲完全分析報告

  • 加密流程,讀取病毒配置信息, 病毒加密用的key存在第0x20個扇區

Petya勒索蠕蟲完全分析報告

  • 設置已經加密的標志位,并把配置信息中的key清0, 寫回磁盤第20扇區

Petya勒索蠕蟲完全分析報告

  • 使用用戶輸入的key嘗試解密

Petya勒索蠕蟲完全分析報告

二、加密文件

勒索木馬Petya采用RSA2048 + AES128的方式對文件進行加密,程序中硬編碼RSA公鑰文件,針對每一個盤符都會生成一個AES128的會話密鑰,該盤符所有文件均用該AES Key進行加密。

根據后綴名對相關文件進行分類,涉及的文件格式如下表:

Petya勒索蠕蟲完全分析報告

Petya的加密流程如下圖:

Petya勒索蠕蟲完全分析報告

圖 6 加密流程

  1. 啟動加密文件線程:

Petya勒索蠕蟲完全分析報告

Petya勒索蠕蟲完全分析報告 Petya勒索蠕蟲完全分析報告

  1. 遞歸枚舉目錄并加密

 

Petya勒索蠕蟲完全分析報告

  1. 寫入Readme .txt文件

Readme .txt文件中包含比特幣支付地址。

Petya勒索蠕蟲完全分析報告

第七章 Petya勒索殺毒軟件攻防分析

在提權階段,Petya會通過CreateToolhelp32Snapshot枚舉系統進程,判斷是否有指定的安全軟件,并設置標記。枚舉過程中,通過將進程名稱進行異或計算得出一個值,并將該值與預設的值進行比較,可見此處Petya是在尋找特定名稱的進程。

通過分析,我們確認Petya主要針對殺毒軟件諾頓和卡巴斯基進行了反檢測處理。

  • 當存在exe(諾頓)或ccSvcHst.exe(諾頓)進程時,不執行漏洞感染流程。
  • 當存在exe(卡巴斯基)進程時,不執行MBR感染流程。

第八章 緩解措施建議

針對Petya勒索軟件,360追日團隊提醒廣大用戶警惕防范,我們建議用戶采取以下措施以保障系統安全:

  1. 保證系統的補丁已升級到最新,修復永恒之藍(ms17-010)漏洞。
  2. 臨時關閉系統的WMI服務和刪除admin$共享,阻斷蠕蟲的橫向傳播方式。具體操作為,右鍵exe”以管理員身份運行”,輸入如下命令:
1 net stop winmgmt
2  
3 net share admin$ /delete
  1. 如若不幸中招,也可以采取一些措施來減小損失。

由于在感染Petya的過程中,病毒會先重啟電腦加載惡意的磁盤主引導記錄(MBR)來加密文件,這中間會啟用一個偽造的加載界面。中招者如果能感知到重啟異常,在引導界面啟動系統前關機或拔掉電源,隨后可以通過設置U盤或光盤第一順序啟動PE系統,使用PE系統修復MBR或者直接轉移硬盤里的數據,可以在一定程度上避免文件的損失。

第九章 總結

Petya勒索病毒早已被安全廠商披露,其早期版本只對MBR和磁盤分配表進行加密,并提示虛假的勒索信息,聲稱其已對受害者系統進行了全盤加密,進而索要贖金。而此次Petya新變種卷土重來,肆虐歐洲大陸在于其利用了已知的Office漏洞、永恒之藍SMB漏洞、局域網感染等網絡自我復制技術,使得病毒可以在短時間內呈暴發態勢。另一方面,Petya木馬主要通過加密硬盤驅動器主文件表(MFT),使主引導記錄(MBR)不可操作,通過占用物理磁盤上的文件名、大小和位置的信息來限制對完整系統的訪問,從而讓電腦無法啟動,相較普通勒索軟件對系統更具破壞性。

由于這次攻擊有很強的定向性,所以目前歐洲被感染的受害者較多,國內感染量較少。這得益于自5月份WannaCry勒索病毒爆發后,中國用戶已經安裝了相關漏洞的補丁,故而并沒有為Petya勒索病毒的泛濫傳播提供可乘之機。但是考慮到其橫向攻擊傳播能力,未來存在較高風險在國內傳播。360追日團隊在此提醒廣大用戶及時更新系統補丁,安裝360安全產品,增強終端防護能力。目前360安全產品可全面查殺Petya勒索病毒。

 

360追日團隊(Helios Team)

360 追日團隊(Helios Team)是360公司高級威脅研究團隊,從事APT攻擊發現與追蹤、互聯網安全事件應急響應、黑客產業鏈挖掘和研究等工作。團隊成立于2014年12月,通過整合360公司海量安全大數據,實現了威脅情報快速關聯溯源,獨家首次發現并追蹤了三十余個APT組織及黑客團伙,大大拓寬了國內關于黑客產業的研究視野,填補了國內APT研究的空白,并為大量企業和政府機構提供安全威脅評估及解決方案輸出。
聯系方式
郵箱:360zhuiri@#

微信公眾號:360追日團隊

掃描二維碼關微信公眾號

Petya勒索蠕蟲完全分析報告

 

 本文由用戶 xjc1027 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!