【黑客免杀攻防】读书笔记6 - PE文件知识在免杀中的应用
0x1 PE文件與免殺思路
基于PE文件結構知識的免殺技術主要用于對抗啟發式掃描。
通過修改PE文件中的一些關鍵點來達到欺騙反病毒軟件的目的。
- 修改區段名
1.1 移動PE文件頭位置免殺
工具:PeClean
SizeOfOptionalHeader字段來描述擴展頭的大小,恒定值為0xE0。
某些程序直接使用0xE0對PE文件進行處理,對于修改過的程序會被識別為非PE文件。
1.2 導入表移動免殺
通過修改程序里導入表ThunkValue值實現。
- 1)通過ThunkValue的偏移地址,找到API函數名
- 2)將原地址的API函數名移動到其他空白處
- 3)00填充掉原地址的API函數名
- 4)修改ThunkValue值為新移動的地址
1.3 導出表移動免殺
通過修改導入表中API函數名的相對偏移地址實現。
- 獲取API函數名的RAV(相對虛擬地址)
- 將API函數名移動到新位置
- 將API函數名相對偏移地址填寫回原先記錄的地方
0x2 PE文件與反啟發式掃描
其它非與PE文件相關的啟發式掃描請參考第16章“免殺技術前沿”內容。
2.1 最后一個區段為代碼段
啟發特征:最后一個區段為代碼段。這會引發“異常的入口點”。如果入口點被定位在了非正常的代碼段上,則會被啟發式掃描引擎查殺。
2.2 可疑的區段頭部屬性
蠕蟲在感染一個文件時有三種方案,這些方案都要求會修改代碼段具有可寫屬性。
- 1 增加一個新的可執行區段
- 2 現有的代碼段中插入惡意代碼
- 3 將惡意代碼分別穿插到不同的區段中,并修改相應區段的屬性
啟發特征:一個正常的可執行程序如果出現多個具有可執行屬性的區段,就會制造出這些特征。
2.3 可疑的PE選項頭的有效尺寸值
啟發特征:這一項啟發特征是基于 “移動PE文件頭免殺”建立起來的。用于試圖修改選項頭大小而隱藏更多敏感數據的惡意程序。
2.4 可疑的代碼節名稱
啟發特征:如果產生了編譯器廠商之外的區段名,則啟發特征判定為惡意程序。
2.5 多個PE頭部
啟發特征:可執行文件中含有需要釋放的DLL或者SYS。
注:一般情況下將其中包含的可執行文件加密即可避免出現這個特征。
2.6 導入表項存在可疑導入
啟發特征:
- 無效導入表
- 偏移形式調用API
- 特定惡意行為的API序列
注:黑客一般會使用自己實現的GetProcAddresss函數,以便用散列值尋找并調用相關敏感API
0x3 隱藏導入表
隱藏導入表思路
- 簡單異或加密
- 導入表單項移除
- 重構導入表
- 利用HOOK方式打亂其調用
3.1 操作原理與先決條件
原理:
- 1)手工將指定導入項的IAT(Import Address Table)刪除掉
- 2)在啟動初期用正確的值填充IAT
條件限制:
- OriginalFirstThunk字段是一個以0x00000000結尾的32位數組,將INT填充為0x00000000刪掉后,
會導致在此IAT項后面所有由此DLL導入的函數失效。
3.2 修改PE文件
簡單的例子
3.3 構造我們的反匯編代碼
沒看懂RegisterClassExW的起始地址是怎么得到的。
0x4 小結
PE免殺入門技巧
對PE免殺入門技巧的啟發式掃描規則
反啟發式掃描PE免殺技巧
0x5 參考文章
《黑客免殺攻防》第八章 PE文件知識在免殺中的應用
http://blog.csdn.net/dalerkd/article/details/41144251
轉載于:https://www.cnblogs.com/17bdw/p/7377097.html
總結
以上是生活随笔為你收集整理的【黑客免杀攻防】读书笔记6 - PE文件知识在免杀中的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS实现上下左右对称的九九乘法表
- 下一篇: 2016猴年春节有感