作者:
聚鋒實驗室
·
2016/04/14 10:11
作者:Mr.Right、Gongmo、K0r4dji
申明:文中提到的攻擊方式僅為曝光、打擊惡意網路攻擊行為,切勿模仿,否則後果自負。
0x00 前言
近期,越來越多的人被一種惡意軟體程式勒索,電腦上的多種重要檔案都被加密而無法開啟,並且無計可施,只能乖乖支付贖金,以對檔案解密。
網上關於該類病毒的詳細分析案例很多,在此不再詳述。本文分享主要透過WireShark從流量分析判斷勒索郵件、再進行深入分析。
0x01 截獲郵件樣本
透過監控某政府郵件伺服器發現,近期大量使用者收到此詐騙勒索郵件,郵件的發件人一般為陌生人,收件人指向明確,且帶有跟收件人名稱一致的ZIP附件,郵件內容一般為“請檢查附件的XX,為了避免罰款,你必須在X小時內支付。”的詐騙威脅內容。
解壓ZIP附件可發現病毒檔案。
0x02 WireShark分析
對於郵件協議的分析,我們首先按OSI七層模型對其資料進行建模,對網路協議的每層進行分析,最後彙總其安全性。(同樣適用於其它協議)
(一) 物理層分析
暫不做分析。
(二) 鏈路層分析
由於該流量接入點為郵件伺服器邊界出口,所以多為SMTP資料。該資料鏈路層幀格式為以太幀(Ethernet II),共14位元組,前12位元組表示兩端的MAC地址,後兩位元組0x0800表示後接IPV4協議。
此層資料無異常。
(三) 網路層分析
從網路層資料開始,我們就會逐漸發現異常。當然,這個資料在網路層對我們有用的也就是源、目的IP地址。源地址10.190.3.172為郵件伺服器地址,目的地址191.102.101.248 (哥倫比亞)為發件方地址。
簡單做幾個測試,就發現有異常:
191.102.101.248並未開放TCP25埠;
191.102.101.248與elynos.com無關;
初步判斷髮件人的郵箱是偽造的。
(四) 傳輸層分析
我們簡單統計一下該資料的TCP25埠,發現在包數量等於28的附近區域,有大量不同IP發來的郵件,且位元組長度也基本相等,可以初步判斷大量郵箱收到差不內容的異常郵件。
提取一封follow tcpstream,可看出,也是一封勒索郵件。
(五) 會話層分析
SMTP協議在會話層一般分析要素包括:認證過程、收發關係、加密協商、頭部協商等。
將一封郵件的會話Follow TCPStream,可以看出郵件的發件人是來自外部的“陌生人”。
我們將部分郵件收發關係進行彙總,可以看出雖然發著同樣的勒索郵件,但其發件人地址為了躲避垃圾郵件過濾,偽造了大量的郵箱地址及域名。
(六) 表示層分析
在表示層分析要素一般包括編碼和列表等,由於此郵件屬於正常通訊郵件,在表示層無異常因素。
(七) 應用層分析
針對此案例,應用層分析目標包括:郵件正文內容安全、郵件附件安全、是否為垃圾郵件等。
1.指向性:收件人郵箱名為:[email protected]
,郵件正文稱呼為“dear voice5”,郵件附件名稱為“voice5_*.zip
”,可看出此勒索郵件為騙取點選率,進行了簡單的社工。
2.郵件正文:
“Please check the bill in attachment.
In order to avoid fine you have to pay in 48 hours.”
明顯的詐騙威脅內容。
3.將此郵件內容Save一下,可得到附件內容。透過分析,可確認附件為敲詐勒索病毒。(本文不詳述)
0x03 勒索病毒分析
(注:本章節不全屬於Wireshark分析範疇)
(一)病毒初始化檔案
1)病毒檔案一共是6個,其中紅框中的3個檔案是隱藏檔案,js檔案是引導使用者開啟的檔案。為了防止防毒軟體查殺病毒,病毒檔案首先是按照pe結構分開的,js命令把pe檔案組合在一起,構成一個完成的bin檔案。
2)組合好的病毒檔案會放到c:\User\Username\Appdata\Local\temp
目錄下,然後後臺執行。如下圖紅色框中
在IDA中開啟bin檔案。大段大段的加密資料檔案。如下圖所示:
(二)病毒行為
1)病毒解密還原後,才能正常執行。病毒檔案經過了很多的亦或乘除等演算法,透過VirtualAlloc在記憶體中存放一段程式碼,然後呼叫RtlDecompressBuffer進行解壓,並在記憶體裡還原始碼。所有API函式都是動態呼叫的。下圖是其中的一小部分還原資料的內容。
2)在記憶體解密,申請分頁,並擁有執行能力。
3)病毒會在HEKY_CURRENT_USER下建立一個屬於使用者的key值。
4)病毒會判斷系統版本:從Win2000,xp 一直到最新的Win10以及Win Server 2016;
由於我們的虛擬機器是win7;所以這裡判斷出是win7 zh代表中國。
病毒開始構造一個連線,準備發往作者的伺服器。構造如下:
Id=00&act=00&affid=00&lang=00&corp=0&serv=00&os=00&sp=00&x64=00;
很明顯這是在獲取系統的一些資訊,包括ID號,版本號,語言等。
病毒準備提交的網址:
下面的IP地址;都要嘗試連線一次。
透過wireshark擷取的資料我們發現:有些IP地址的php網頁已經丟失了。
除此之外,病毒嘗試連線部分c&c伺服器網址,部分如下:
5)如果病毒c&c伺服器沒有返回資訊;則病毒一直處於等待狀態。
6)感染檔案。首先迴圈便遍歷掃描檔案。
下圖是病毒要修改的檔案格式:
檔名生成部分演算法:
檔名被修改過程分為兩部分,前半部分代表系統的key值,後半部分透過演算法生成。檔名改名加密演算法的區域性過程,從”0123456789ABCDEF”當中隨機選取一個字元充當檔名的區域性。隨機函式採用CryptGenRandom()
。
檔案內容加密總體流程:
首先檔案以只讀形式開啟,防止其他檔案訪問其內容,接著透過AES-128演算法加密器內容,最後置換檔案。完成檔案加密。
檔案內容:經過AES-128位演算法加密。
開啟檔案
把加密後的資料寫回檔案:
然後透過API函式替換檔案。
8)桌面背景被換為:
0x04 總結
此類勒索郵件標題、正文、附件內容基本相同,只是針對收件人名稱稍作修改。
為躲避郵件過濾系統,傳送者郵箱使用和偽造了大量不同的IP和郵箱地址。
雖然此勒索病毒最終需要透過針對附件樣本的分析才能判斷確認,但基於流量分析可以發現諸多異常,完全可以在流量通訊層面進行歸納阻斷。
隨著大量比特幣病毒流入國內,各種敲詐勒索行為日漸增多,對應這種病毒,我認為防範大於修復。因為比特幣病毒對檔案的加密演算法部分相對複雜,還原的可能性較小。並且每臺機器又不一致。所以,我們儘量做好預防才是根本。以下是幾點需要我們提高警覺性的:(1)及時更新防毒軟體。(2)注意防範各種不明確的郵箱附件。(3)及時備份重要資訊到其他儲存介質。
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!