一、病毒概述
WannaCry是一種勒索病毒,于2017年5月迅速傳播,并影響了全球超過230,000個計(jì)算機(jī)。該病毒會加密受害者的文件,并要求支付比特幣贖金以解密文件。雖然該病毒已被解密,但其病毒樣本仍然具有重要研究價值。
二、WannaCry病毒樣本獲取
獲取WannaCry病毒樣本的方法有多種。下面介紹其中兩種獲取方式。
1. VirusTotal
VirusTotal是一個提供在線病毒檢測和文件分析的平臺,用戶可以上傳或提交未知的文件以便進(jìn)行檢測。WannaCry病毒樣本就可以在該平臺上進(jìn)行獲取。
import virus_total_apis
def get_wannacry_vt():
api = virus_total_apis.PublicApi('')
response = api.get_file_report('')
return response
以上代碼使用了virus_total_apis包來獲取VirusTotal API并獲得文件報(bào)告。用戶需要替換和
2. 惡意網(wǎng)址庫
許多惡意網(wǎng)址庫維護(hù)這最新的勒索軟件,包括WannaCry病毒樣本。用戶可以像訪問任何網(wǎng)站一樣訪問這些惡意網(wǎng)址庫以獲取WannaCry病毒樣本。
import requests
def get_wannacry_url():
response = requests.get('https://urlhaus.abuse.ch/downloads/CURRENT_URLS_BERUSHUB.TXT')
urls = response.text.split('\n')[8:-16]
random_url = random.choice(urls)
return random_url
以上代碼使用了requests包來獲取動態(tài)惡意網(wǎng)址庫。該例子在urls列表中選擇一個隨機(jī)的URL,并返回該URL以獲取WannaCry病毒樣本。
三、WannaCry病毒樣本分析
WannaCry病毒樣本可以分析其代碼和行為來獲得更多信息。下面介紹兩種分析方式。
1. 反匯編
反匯編是將機(jī)器代碼轉(zhuǎn)換為人類可讀代碼的過程。通過反匯編WannaCry病毒樣本可觀察其內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。
import lief
def disassemble_wannacry():
binary = lief.parse('wannacry.exe')
for section in binary.sections:
if section.name == '.text':
disasm = lief.PE.Atom.disassemble(section.content, binary.entrypoint)
for instr in disasm:
print(str(instr))
以上代碼使用了lief包來將WannaCry病毒樣本加載到Python中,并使用反匯編來分析其代碼。
2. 動態(tài)分析
動態(tài)分析是通過執(zhí)行病毒樣本來監(jiān)視其行為的過程。使用動態(tài)分析可以獲得更多關(guān)于WannaCry病毒樣本行為的信息。
import angr
def run_wannacry():
binary = angr.Project('wannacry.exe')
state = binary.factory.entry_state()
simulation = binary.factory.simulation_manager(state)
simulation.run()
final_state = simulation.deadended
return final_state
以上代碼使用angr包來執(zhí)行WannaCry病毒樣本,并使用模擬管理器來監(jiān)視其執(zhí)行。最后返回程序的最終狀態(tài)。
四、結(jié)論
通過多種方式獲取和分析WannaCry病毒樣本可以獲得更多關(guān)于該病毒的細(xì)節(jié)和行為。研究人員可以使用這些信息來開發(fā)新的反病毒技術(shù)以及更好地了解病毒攻擊的本質(zhì)。