錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務(wù)項目 服務(wù)報價 維修流程 IT外包服務(wù) 服務(wù)器維護(hù) 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù)技術(shù)文章
任意代碼保護(hù)與內(nèi)核代碼注入的那些事兒

作者: 佚名  日期:2018-06-24 20:06:47   來源: 本站整理

 

寫在前面的話
類似 WannaCry 和 Slingshot 這樣的惡意軟件最常用的一種攻擊技術(shù)就是內(nèi)核代碼注入,在近期剛剛發(fā)布的 Windows 10 Creators 更新中,微軟引入了一種針對遠(yuǎn)程代碼執(zhí)行的新型緩解技術(shù)-任意代碼守護(hù)衛(wèi)士(ArbitraryCode Guard)。在這篇文章中,我們將詳細(xì)介紹Arbitrary Code Guard的工作機(jī)制,并利用內(nèi)核代碼注入攻擊來測試這項緩解技術(shù)的有效性。
Arbitrary Code Guard(任意代碼守護(hù)衛(wèi)士)
微軟將Arbitrary Code Guard(ACG)作為一個可選功能添加進(jìn)了Windows操作系統(tǒng)中,它可以用來檢測和防止下列情況的出現(xiàn):
1.   現(xiàn)有代碼被惡意修改;
2.   向一個數(shù)據(jù)段中寫入并執(zhí)行代碼;
為了實現(xiàn)這兩個目標(biāo),ACG會強(qiáng)制執(zhí)行這條規(guī)則:內(nèi)存不能同時擁有寫入權(quán)限(W)和執(zhí)行權(quán)限(X)。
ACG配合上代碼完整性保護(hù)機(jī)制(Code Integrity Guard),Windows就可以防止攻擊者將不安全或不可信的代碼加載進(jìn)內(nèi)存之中了。
下面給出的是一份代碼注入樣本,它會將進(jìn)程內(nèi)存的狀態(tài)修改為ACG想要防止出現(xiàn)的狀態(tài):

我們可以看到,這些注入了代碼的頁面同時擁有執(zhí)行和寫入屬性。
ACG的工作流程
當(dāng)系統(tǒng)為特定進(jìn)程創(chuàng)建好緩解方案時,會以下列注冊表路徑向注冊表中添加一個鍵:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options
接下來,Windows會在進(jìn)程創(chuàng)建的過程中完成緩解方案的相關(guān)設(shè)置,下面給出的是進(jìn)程創(chuàng)建過程中的調(diào)用棧:
nt!PspAllocateProcess+0xb4b
nt!NtCreateUserProcess+0x723
nt!KiSystemServiceCopyEnd+0x13
ntdll!NtCreateUserProcess+0x14
KERNELBASE!CreateProcessInternalW+0x1b3f
KERNELBASE!CreateProcessW
下面給出的是PspAllocateProcess函數(shù)的部分代碼:

其中,下面這兩個函數(shù)主要負(fù)責(zé)加載緩解選項:
 PspReadIFEOMitigationOptions
 PspReadIFEOMitigationAuditOptions
這些函數(shù)會從注冊表中讀取下列鍵值:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options
我們可以在進(jìn)程監(jiān)視器中看到以下活動:

接下來,MitigationsFlagsValues的值將會存儲在EPROCESS結(jié)構(gòu)體中:

ACG如何檢測和屏蔽動態(tài)代碼?
正如之前的介紹,ACG會監(jiān)控內(nèi)存的分配情況,并防止同時擁有寫入和執(zhí)行權(quán)限,當(dāng)我們嘗試分配虛擬內(nèi)存時,調(diào)用棧如下:
nt!MiArbitraryCodeBlocked+0x30
nt!MiAllocateVirtualMemory+0x96d
nt!NtAllocateVirtualMemory+0x44
nt!KiSystemServiceCopyEnd+0x13
ntdll+0xa05c4
此時將會調(diào)用MiArbitraryCodeBlocked函數(shù),該函數(shù)的功能如下圖所示:

我們可以看到,這個函數(shù)負(fù)責(zé)檢測EPROCESS中的緩解選項,并判斷是否允許分配虛擬內(nèi)存。下面給出的是這個函數(shù)的流程圖:

該函數(shù)主要實現(xiàn)了下面三件事情:
1.   獲取EPROCESS,檢測是否啟用了緩解選項,并將MitigationsFlags分配進(jìn)EPROCESS(偏移量0×828)。
2.   檢測ETHREAD中的CrossThreadFlags(0x6d0),以確定線程是否擁有內(nèi)存分配權(quán)限或繞過緩解方案。
3.   跟蹤緩解結(jié)果,返回狀態(tài)TATUS_DYNAMIC_CODE_BLOCKED(0xC0000604)。
內(nèi)核代碼注入
接下來我們一起看一看,如果我們嘗試向內(nèi)核注入代碼時,ACG的表現(xiàn)如何。這里我們會使用惡意軟件常用的兩種內(nèi)核代碼注入技術(shù):
1.   創(chuàng)建一個新的線程并加載一個動態(tài)鏈接庫文件(DLL);
2.   使用一個異步程序調(diào)用(APC)來向現(xiàn)有線程中加載一個DLL;
在這兩種技術(shù)中,下面幾個步驟是通用的:
1.   綁定目標(biāo)進(jìn)程;
2.   獲取Ntdll地址;
3.   獲取LdrLoadDll地址;
4.   通過shellcode分配虛擬內(nèi)存;
5.   通過shellcode調(diào)用LdrLoadDll;
在使用新的線程實現(xiàn)shellocde注入時,我們需要使用NtCreateThreadEx并在shellcode中調(diào)用LdrLoadDll。另一方面,如果我們想要使用一個APC來注入shellocde,我們則需要在相應(yīng)線程中使用APC函數(shù)并通過shellcode調(diào)用LdrLoadDll。
在這兩種注入方法中,我們需要在分配虛擬內(nèi)存時同時分配寫入和執(zhí)行權(quán)限,并執(zhí)行shellcode。正如之前所說的,ACG可以通過防止同時分配寫入和執(zhí)行權(quán)限來屏蔽代碼注入。下面給出的是負(fù)責(zé)分配虛擬內(nèi)存的代碼:


在調(diào)用ZwAllocateVirtualMemory之后設(shè)置斷點(diǎn)(MiArbitraryCodeBlocked)。,我們將能夠在windbg中看到下列信息:

返回值為STATUS_DYNAMIC_CODE_BLOCKED,因此這兩種代碼注入技術(shù)都無法繞過ACG。
總結(jié)
對于防止用戶模式或內(nèi)核模式下的代碼注入來說,ACG是一種非常好的選擇,但ACG目前只是一種可選項,因此如果目標(biāo)設(shè)備(進(jìn)程)沒有開啟ACG的話,攻擊者仍然能夠?qū)崿F(xiàn)代碼注入。


熱門文章
  • 機(jī)械革命S1 PRO-02 開機(jī)不顯示 黑...
  • 聯(lián)想ThinkPad NM-C641上電掉電點(diǎn)不...
  • 三星一體激光打印機(jī)SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數(shù)和判...
  • IIS 8 開啟 GZIP壓縮來減少網(wǎng)絡(luò)請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機(jī)始終停留在開機(jī)界面...
  • 常見打印機(jī)清零步驟
  • 安裝驅(qū)動時提示不包含數(shù)字簽名的解...
  • 共享打印機(jī)需要密碼的解決方法
  • 圖解Windows 7系統(tǒng)快速共享打印機(jī)的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護(hù),上門維修電腦,黑屏藍(lán)屏死機(jī)故障排除,無線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 日韩精品成人无码专区免费| 无码中文人妻在线一区| 亚洲av无码成人精品区| 无码毛片一区二区三区中文字幕 | 久久人妻av无码中文专区| 人妻丰满AV无码久久不卡| 色国产色无码色欧美色在线| 国产激情无码一区二区三区| 无码精品国产dvd在线观看9久| 亚洲精品人成无码中文毛片 | 少妇人妻偷人精品无码AV| 永久免费av无码入口国语片| 国产精品无码AV天天爽播放器| 国产精品免费无遮挡无码永久视频| 亚洲色在线无码国产精品不卡| 国产做无码视频在线观看浪潮| 国语成本人片免费av无码| 欧洲Av无码放荡人妇网站| 亚洲精品人成无码中文毛片| 亚洲AV无码男人的天堂| 亚洲日韩国产精品无码av| 亚洲AV中文无码乱人伦下载| 亚洲国产av无码精品| 无码aⅴ精品一区二区三区| 成人无码区免费A片视频WWW| 亚洲AV日韩AV永久无码久久 | 无码aⅴ精品一区二区三区| 亚洲毛片无码专区亚洲乱| 无码中文人妻视频2019| 无码人妻久久一区二区三区免费| 小泽玛丽无码视频一区| 日韩精品无码人妻一区二区三区| 无码熟妇人妻AV影音先锋| 亚洲中文字幕无码av永久| 亚洲真人无码永久在线观看| 亚洲精品天堂无码中文字幕| 无码中文字幕色专区| 无码人妻精品一区二区蜜桃百度 | 无码专区人妻系列日韩精品少妇 | 无码一区二区三区在线观看| 无码性午夜视频在线观看|