亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法:經(jīng)典的進(jìn)程注入、Process HollowingProcess Doppelg?nging

    惡意軟件使用進(jìn)程注入的主要目的大致是為了躲避殺軟的檢測(cè)或者進(jìn)行提權(quán)操作。這里我們將主要針對(duì)第一種情況下的3種手段進(jìn)行詳細(xì)的討論。

    一:經(jīng)典的進(jìn)程注入(DLL注入)

    這是最為經(jīng)典的手段,流程也十分簡(jiǎn)潔明了即:

    OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    二:Process Hollowing

    這是一種相當(dāng)古老的手段了,中文一般譯為”創(chuàng)建傀儡進(jìn)程”,使用該手法創(chuàng)建的進(jìn)程可以偽裝為任意的合法進(jìn)程,比如偽裝為IE,在內(nèi)存中使用process hacker查看時(shí)其圖標(biāo)資源、描述、數(shù)字簽名均為IE的值。這樣應(yīng)急響應(yīng)人員在進(jìn)行排查的時(shí)候可能難以發(fā)現(xiàn)。

    用簡(jiǎn)潔的語(yǔ)言概括該手法,即惡意進(jìn)程首先創(chuàng)建一個(gè)掛起狀態(tài)的進(jìn)程,然后取消其原先的內(nèi)存映射并替換成事先準(zhǔn)備的惡意代碼,在對(duì)修改后的映像文件進(jìn)行重定向后再恢復(fù)該進(jìn)程的運(yùn)行狀態(tài)。

    實(shí)現(xiàn)思路:

    1、通過(guò)CreateProcess創(chuàng)建目標(biāo)進(jìn)程,傳入?yún)?shù)CREATE_SUSPENDED使進(jìn)程掛起

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    2、通過(guò)NtQueryProcessInformation獲取目標(biāo)進(jìn)程內(nèi)存中映像文件的基地址。(PEB塊數(shù)據(jù)結(jié)構(gòu))

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    3、通過(guò)NtUnmapViewOfSection清空目標(biāo)進(jìn)程的內(nèi)存數(shù)據(jù)(section),傳入?yún)?shù)為進(jìn)程句柄和映像文件的基地址

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    4、通過(guò)VirtualAllocEx申請(qǐng)新的內(nèi)存(起始地址為之前映像文件的基地址,大小則為payload的大小)

    5、通過(guò)WriteProcessMemory向內(nèi)存寫(xiě)入payload

    6、將寫(xiě)入內(nèi)存中的payload進(jìn)行基址重定向

    7、通過(guò)GetThreadContext獲取目標(biāo)線程的上下文,將上下文的eax寄存器修改為正確的代碼入口點(diǎn)

    8、通過(guò)SetThreadContext設(shè)置入口點(diǎn)

    9、通過(guò)ResumeThread喚醒進(jìn)程,執(zhí)行payload

    對(duì)抗思路:

    從實(shí)現(xiàn)思路中可以看出,步驟1、4、5、6、7、8、9是常規(guī)的創(chuàng)建一個(gè)進(jìn)程然后自己注入的手段。只有步驟2、3是比較特殊的。用常規(guī)的檢測(cè)手段如Hook關(guān)鍵函數(shù)進(jìn)行判斷即可檢測(cè)。

    三:Process Doppelg?nging

    這是一種比較新的注入手段,首次提出于2017年的歐洲black hat大會(huì)。該手段在原理及表現(xiàn)上與Process Hollowing是類似的,利用Process Doppelg?nging創(chuàng)建的進(jìn)程在內(nèi)存中使用process hacker查看時(shí)其圖標(biāo)資源、描述、數(shù)字簽名均為指定的目標(biāo)程序。

    該手法利用了windows事務(wù)(TxF)的特性,在事務(wù)中使用惡意文件覆蓋合法文件,此時(shí)不提交事務(wù)(即覆蓋不會(huì)在磁盤上發(fā)生),然后創(chuàng)建一個(gè)section(當(dāng)前事務(wù)的拷貝)。在獲得了section的句柄后,就將事務(wù)回滾,防止惡意文件在磁盤上真正地覆蓋合法文件。之后就使用內(nèi)存中section的句柄進(jìn)行進(jìn)程創(chuàng)建操作。而創(chuàng)建的進(jìn)程是擁有合法可執(zhí)行文件的信息的。

    可以看到,由于需要在事務(wù)中覆蓋文件,所以該手法需要對(duì)目標(biāo)文件有寫(xiě)權(quán)限。

    實(shí)現(xiàn)思路:

    1、創(chuàng)建一個(gè)TxF事務(wù)對(duì)象(NtCreateTransaction)

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    2、以事務(wù)API打開(kāi)合法可執(zhí)行文件,即在事務(wù)對(duì)象中加入文件(CreateFileTransacted)

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    3、打開(kāi)惡意文件并為其分配內(nèi)存空間(CreateFile、GetFileSizeEx -> NtAllocateVirtualMemory -> ReadFile)

    4、用內(nèi)存中的惡意文件覆蓋事務(wù)中的合法可執(zhí)行文件(WriteFile)

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    5、創(chuàng)建當(dāng)前事務(wù)的section(NtCreateSection)

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    6、回滾事務(wù),使剛剛的覆蓋恢復(fù)成合法可執(zhí)行文件(NtRollbackTransaction)

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    7、使用內(nèi)存中的section來(lái)創(chuàng)建進(jìn)程對(duì)象(NtCreateProcessEx)

    Mitre ATT&CK矩陣中的三種進(jìn)程注入手法

    8、獲取惡意文件的入口點(diǎn),創(chuàng)建進(jìn)程參數(shù)塊,然后將進(jìn)程塊寫(xiě)入進(jìn)程內(nèi)存中(NtQueryInformationProcess -> RtlInitUnicodeString -> RtlCreateProcessParametersEx)

    9、更新PEB中的進(jìn)程參數(shù)塊,為目標(biāo)進(jìn)程對(duì)象創(chuàng)建線程,執(zhí)行惡意代碼(NtCreateThreadEx)

    對(duì)抗思路:

    從步驟上看,Hook關(guān)鍵函數(shù)(如NtCreateThreadEx)進(jìn)行判斷即可檢測(cè)該手法。

    總結(jié)

    從上述3種手法的演變上可以看到幾點(diǎn)趨勢(shì)。

    第一點(diǎn),內(nèi)存中的隱蔽能力越來(lái)越強(qiáng),由最開(kāi)始的毫無(wú)隱蔽性可言,到現(xiàn)在可以做到在內(nèi)存中表現(xiàn)得與合法程序一致。

    第二點(diǎn),payload釋放到內(nèi)存中的手段越來(lái)越難以檢測(cè),最初payload是直接拷貝到內(nèi)存中的,現(xiàn)在攻擊者可以利用一些特性(如TxF)來(lái)進(jìn)一步隱蔽釋放過(guò)程。

    第三點(diǎn),最終階段的關(guān)鍵函數(shù)幾乎沒(méi)有變化,即使payload的釋放越來(lái)越隱蔽,但是最終還是要釋放到內(nèi)存中并且調(diào)用執(zhí)行的。通過(guò)對(duì)有限的關(guān)鍵函數(shù)進(jìn)行Hook,應(yīng)該就能dump出最終的payload。

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)