這次比特幣勒索事件之後,樣本很快就在網路上放出了。
有很多人想在自己電腦或是在虛擬機器測試這個勒索程式,然而由於這些使用者疏忽了一些問題,最終還讓自己宿主機的文件被加密了,實在是得不償失。
雖說絕大多數病毒都不會穿透虛擬機器感染宿主機,但是有些病毒畢竟會通過局域網傳染出去,所以這方面也必須要控制。
那麼,這篇文章就是寫給那些想測試病毒的吃瓜群眾的,專業人員可以繞行。
前提是你的宿主機是Windows系統,如果宿主機是macOS或Linux的話,那麼僅僅需要保證不要和其它Windows電腦在一個局域網內。
本教程使用VMware虛擬機器來介紹如何建立一個足夠安全的惡意軟體測試環境。如果你使用的是其它的虛擬機器,我無法給出對應的操作方法,歡迎各位在評論區補充。
如果哪個步驟操作存在疏忽,輕則無法測試,重則會導致宿主機的重要檔全部加密,由此產生的風險和損失作者並不承擔責任。請各位在測試的時候一定要小心謹慎,避免發生意外。
打開網路連接,禁用VMware Network Adapter VMnet8這個網路連接。
VMnet8的用途是,如果虛擬機器採用的是NAT方式網路連接,通過VMnet8這個網路連接可以將宿主機和虛擬機器劃入一個局域網裡。如果禁用了VMnet8,虛擬機器仍然能連接外網,但無法再和宿主機直接通過局域網聯繫了。
相關內容可以參考這篇VMware官網對此的介紹:https://www.vmware.com/support/ws3/doc/ws32_network8.html(雖然是很古老的VMware 3.2但對現在的VMware Workstation 12一樣適用)
然後就是在虛擬機器內安裝系統。
為了避免在後續測試出現不必要的問題,請勿安裝來路不明的Ghost裝機版Windows系統。
請只使用來自可靠來源(比如MSDN)的Windows安裝鏡像檔。
虛擬機器內的網路連接請設置成NAT。
至於如何在虛擬機器內安裝系統,相信玩過虛擬機器的人應該都會,這裡不做詳細介紹。但是,請不要使用VMware的簡易安裝功能,也不要在裝完系統之後安裝虛擬機器增強外掛程式(如VMware Tools)。至於原因,後面會做詳細說明。
裝完系統之後,你並不需要去啟動系統,畢竟你只是用來測試,測試完成之後你就可以銷毀整個虛擬機器了。
使用其它高級的文字編輯器(不要用記事本,可以用寫字板)打開你的虛擬機器的vmx文件,在任意處加上這兩行:
monitor_control.restrict_backdoor = "TRUE"
disable_acceleration = "TRUE"
然後保存。
然後虛擬機器設置裡勾上“
虛擬化Intel VT-x/EPT或AMD-V/RVI
”。這還要求你的主機板BIOS設置裡開啟了相關的虛擬化技術,能否開啟隨廠商決定,近年的電腦一般都能開啟。
因為有些軟體或惡意程式如果發現是在虛擬機器內運行或是檢測到虛擬機器增強外掛程式相關進程會拒絕啟動,這麼處理之後就可以在虛擬機器內運行本不允許在虛擬機器內運行的程式。(雖然WannaCry並不會檢測這個)
然後是把你想要放進虛擬機器的東西複製進虛擬機器。在沒有虛擬機器增強外掛程式的前提下,你有三種方法:
使用UltraISO之類的軟體將你想複製進去的檔做成ISO鏡像,然後載入進虛擬機器;
將你想複製進去的東西複製進一個U盤,然後用虛擬機器載入U盤(不是所有虛擬機器軟體都支援U盤);
關閉虛擬機器,使用能編輯虛擬硬碟鏡像的工具將檔複製進硬碟鏡像。
總而言之,複製進來之後,我們就可以準備測試了。如果你使用的是VMware Workstation Pro的話,你可以在測試之前做一個快照,以便為了測試下一個病毒之前還原回之前的狀態。我這裡用的是Player,這裡就只好關機備份虛擬硬碟鏡像了。
這裡我測試的正是WannaCrypt勒索程式樣本。為了確保各位不去輕易作死,這裡恕不提供樣本的下載,也請各位不要在評論區分享這個樣本。
桌面上的Malware Defender是一款HIPS防禦軟體,在高強度保護下會攔截一切操作,並會向使用者告知軟體執行了什麼樣的操作且詢問是否允許。很遺憾的是,該軟體僅支援32位元Windows系統,且這樣的軟體並不適合日常的安全防護。你們可以根據你們的需要選擇是否要在虛擬機器安裝這樣的軟體來分析惡意軟體的工作流程。
全部準備好之後,
打開Malware Defender,調成正常模式。
然後打開惡意程式樣本(如果這個時候你插上了U盤,請立即將U盤拔出虛擬機器),就會問你是否要確定運行,並且會逐步分析每個步驟發生了什麼。
回答了是否放行之後,你可以觀察到檔是不是被跟著加密了。
但無論如何,不會穿透出虛擬機器。
這就是在虛擬機器內測試一個惡意程式的基本方法,但同時完全不會影響到宿主機本身的正常運作。
在虛擬機器內操作惡意軟體,就像是嘗試拆定時炸彈一樣,稍有不慎就會爆炸,波及到不必要的部分。所以請各位在測試之前,做好充分的防護工作。
對於一些想試圖研究出解決方案的人來講,還可以配合很多更強大的調試工具來進行破解。由於能力和精力有限,作者無法給出任何指導。