1. 程式人生 > >永恆之藍挖礦蠕蟲WannaMine特徵、行為分析及清除

永恆之藍挖礦蠕蟲WannaMine特徵、行為分析及清除

背景介紹

永恆之藍是指2017年5月13日起,全球範圍內爆發的基於Windows網路共享協議進行攻擊傳播的蠕蟲惡意程式碼,不法分子通過改造之前洩露的NSA黑客武器庫中“永恆之藍”攻擊程式發起的網路攻擊事件。英國、俄羅斯、整個歐洲以及中國國內多個高校校內網、大型企業內網和政府機構專網中招,被勒索支付高額贖金才能解密恢復檔案。

永恆之藍挖礦蠕蟲WannaMine就是利用永恆之藍漏洞進行傳播,與WannaCry勒索病毒不同的是,其不再勒索,而是長期潛伏挖礦,會悄悄的耗盡計算機資源。

病毒清除方法

1. 修復漏洞,杜絕再次感染

1.1 執行以下指令碼禁用445及部分埠,杜絕被再次感染

netsh ipsec static delete policy name = SECCPP 

netsh ipsec static add policy name = SECCPP  description=安全策略201705
netsh ipsec static add filteraction name = Block action = block
netsh ipsec static add filterlist name = SECCPF
netsh ipsec static add filter filterlist = SECCPF srcaddr=Any dstaddr = Me dstport = 135 protocol = TCP
netsh ipsec static add filter filterlist = SECCPF srcaddr=Any dstaddr = Me dstport = 137 protocol = TCP
netsh ipsec static add filter filterlist = SECCPF srcaddr=Any dstaddr = Me dstport = 138 protocol = TCP
netsh ipsec static add filter filterlist = SECCPF srcaddr=Any dstaddr = Me dstport = 139 protocol = TCP
netsh ipsec static add filter filterlist = SECCPF srcaddr=Any dstaddr = Me dstport = 445 protocol = TCP
netsh ipsec static add filter filterlist = SECCPF srcaddr=Any dstaddr = Me dstport = 137 protocol = UDP
netsh ipsec static add filter filterlist = SECCPF srcaddr=Any dstaddr = Me dstport = 138 protocol = UDP
netsh ipsec static add rule name=SECCPR policy=SECCPP filterlist=SECCPF filteraction=Block
netsh ipsec static set policy name = SECCPP assign = y  
pause
exit

1.2 安裝微軟針對遠端程式碼執行漏洞的補丁

2. 永恆之藍wannacry勒索蠕蟲相關程序及檔案清除

執行以下指令碼進行清除:

@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )


cd /d "C:/Windows/"

taskkill /im mssecsvc.exe /f
taskkill /im tasksche.exe /f
del mssecsvc.exe /q
del qeriuwjhrf /q
del tasksche.exe /q

taskkill /im mssecsvc.exe /f
taskkill /im tasksche.exe /f
del mssecsvc.exe /q
del qeriuwjhrf /q
del tasksche.exe /q

3. 永恆之藍WannaMine挖礦蠕蟲相關程序及檔案清除

執行以下指令碼進行清除:

@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

sc stop wmassrv
sc delete wmassrv
taskkill /IM spoolsv.exe /f
taskkill /IM rundll32.exe /f

wmic process get ProcessId,executablepath | findstr "C:\Windows\SpeechsTracing" > 1.txt
for /f "delims=" %%i in ("1.txt") do (for /f "tokens=2" %%m in (%%i) do (taskkill /PID %%m /f))
del 1.txt

del C:\Windows\system32\wmassrv.dll
del C:\Windows\system32\HalPluginsServices.dll
del C:\Windows\System32\EnrollCertXaml.dll
del C:\Windows\SpeechsTracing\spoolsv.exe
del C:\Windows\SpeechsTracing\Microsoft\*.exe
rd /s /q C:\Windows\SpeechsTracing

永恆之藍挖礦蠕蟲WannaMine特徵、行為分析

該文章對蠕蟲原理進行了專業描述,可論證上述結論的正確性:WMAMiner挖礦蠕蟲分析

永恆之藍挖礦蠕蟲WannaMine特徵

特徵1:出現以下檔案及目錄

C:\Windows\system32\HalPluginsServices.dll
C:\Windows\System32\EnrollCertXaml.dll
C:\Windows\SpeechsTracing
C:\Windows\SpeechsTracing\Microsoft\

特徵2:出現兩個spoolsv.exe程序

在這裡插入圖片描述
出現一個非system32目錄的svchost.exe程序
在這裡插入圖片描述

特徵3:開啟工作管理員時CPU佔用下降,關閉後cpu佔用又升高,升高時會有一個rundll32.exe程序啟動

如下:
在這裡插入圖片描述

蠕蟲行為分析及清除指令碼

步驟1:使用ProcessMon檢視spoolsv、rundll32程序都是被以下程序啟動

在這裡插入圖片描述

步驟2:檢視 netsvcs 配置的自啟動服務列表發現有一個新增的wmassrv

在這裡插入圖片描述

步驟3:檢視該服務資訊

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

步驟4:到此猜測如果把該服務關了是否spoolsv.exe等程序就不會再被建立,進行嘗試

發現關了該服務後,手動殺掉spoolsv.exe rundll32.exe程序都不會再自動啟動。至此回憶該服務為其偽裝的守護服務。

步驟5:編寫指令碼停服務、刪除服務、殺程序,及相關檔案(務必以管理員許可權)

@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

sc stop wmassrv
sc delete wmassrv
taskkill /IM spoolsv.exe /f
taskkill /IM rundll32.exe /f

wmic process get ProcessId,executablepath | findstr "C:\Windows\SpeechsTracing" > 1.txt
for /f "delims=" %%i in ("1.txt") do (for /f "tokens=2" %%m in (%%i) do (taskkill /PID %%m /f))
del 1.txt

del C:\Windows\system32\wmassrv.dll
del C:\Windows\system32\HalPluginsServices.dll
del C:\Windows\System32\EnrollCertXaml.dll
del C:\Windows\SpeechsTracing\spoolsv.exe
del C:\Windows\SpeechsTracing\Microsoft\*.exe
rd /s /q C:\Windows\SpeechsTracing

步驟6:重啟機器檢測,再未發現異常症狀

確認採用上述指令碼可徹底清除挖礦蠕蟲。

上述指令碼可用於快速清除挖礦蠕蟲,為了安全起見,還是應該及時打系統補丁並安裝防毒軟體,希望本文對你有用。