對ie 的攻擊分好幾類, 有修改主頁, 彈出窗口, 惡意插件, 網(wǎng)頁木馬等. 其中一些是利用了ie 的腳本的自帶功能, 而另外一些要對ie 實施攻擊后才能做到, 主要手段有利用第三方軟件漏洞, ie 堆噴射等, 文章 [ [JavaScript中的堆風(fēng)水]|[ http://www.team509.com/download/Heap%20Feng%20Shui%20in%20JavaScript_en_cn.htm ] ] 對堆噴射進(jìn)行了介紹, 主要是利用覆蓋函數(shù)返回地址或者對象的虛函數(shù)表來執(zhí)行shellcode, 主要涉及到ie & 系統(tǒng)的內(nèi)存管理.
一般shellcode 基本只完成攻擊動作, 具體的對系統(tǒng)的后續(xù)攻擊肯定離不了下載執(zhí)行 exe 文件等動作, 并且在攻擊ie 也會有各種癥狀, 可以根據(jù)這些基本實現(xiàn)惡意代碼.
1. 根據(jù)ie 癥狀
當(dāng)ie 訪問惡意頁面的遭受攻擊時, 其重要表現(xiàn)是
a. 內(nèi)存使用
b. cpu 使用率
所以實時監(jiān)測這些參數(shù)可以基本判斷是否有攻擊
2. 根據(jù)行為
shellcode 如果被執(zhí)行, 那么肯定會進(jìn)行木馬下載執(zhí)行等步驟. 一般純shellcode 里面的內(nèi)容不會很多, 所以不可能完成很多復(fù)雜的攻擊.
win32 創(chuàng)建進(jìn)程的API調(diào)用串是:
WinExec/ShellExecuteA/CreateProcessA->CreateProcessInternalA->CreateProcessInternalW->ZwCreateProcessEx
或
CreateProcessW->CreateProcessInternalW->ZwCreateProcessEx
win32 要執(zhí)行下載的API 主要是wsock32.dll 的
recv , recvfrom
所以對上述API 進(jìn)行攔截, 一般可以檢測到是否有ie 是否被攻擊, 但是這個只能在攻擊成功后, shellcode 執(zhí)行后才能被檢測到
3.
攔截一些操作注冊表, 創(chuàng)建窗口等API , 可以做到防止被修改主頁, 彈出窗口等
利用ms 的Detours 可以很容易的實現(xiàn)對系統(tǒng) API 的hook
http://blog.csdn.net/hu0406/archive/2008/03/05/2150358.aspx
http://blog.csdn.net/hu0406/archive/2008/03/05/2150351.aspx
http://www.moon-soft.com/doc/2288.htm
http://blog.csdn.net/dedodong/archive/2006/10/07/1323925.aspx
[ [JavaScript中的堆風(fēng)水]|[ http://www.team509.com/download/Heap%20Feng%20Shui%20in%20JavaScript_en_cn.htm ] ] ie 堆噴射
[ [也聊inline-hook]|[ http://blog.tom.com/tigerkings941220/article/9211.html ] ] 介紹了 進(jìn)程自身保護(hù)(通過攔截LoadLibraryW)和IE漏洞防護(hù)(通過攔截CreateProcessInternalW)
[ [maxthon2(遨游2) mxsafe.dll對網(wǎng)頁木馬的防護(hù)以及繞過]|[ http://hi.baidu.com/54nop/blog/item/b52cff6e713964d980cb4a9e.html ] ] 討論了maxthon2 防止網(wǎng)頁木馬的策略( 攔截 ZwCreateProcessEx/ZwCreateProcess, ZwWriteVirtualMemory, LoadLibraryExW, CreateProcessInternalW )以及對抗策略, 其實這個只是hook & unhook 的游戲了..
[ [小議PE病毒技術(shù)]|[ http://blog.vckbase.com/windowssky/archive/2007/04/17.html ] ] 介紹了 pe 病毒 & win32 進(jìn)程加載內(nèi)部
[ [360安全衛(wèi)士程序員志愿者]|[ http://blog.csdn.net/dedodong/archive/2006/10/07/1323925.aspx ] ] 通過攔截 NtCreateProcessEx/NtCreateProcess 實現(xiàn)了"""編寫一個程序,在此程序中運(yùn)行a.exe,并使得a.exe認(rèn)為是由explorer.exe運(yùn)行它的"""
[ [阻擊惡意軟件--清除和保護(hù)你的網(wǎng)站的小技巧]|[ http://www.googlechinawebmaster.com/labels/badware.html ] ] google 上的對惡意軟件(badware) 的介紹
[ [StopBadware Blog]|[ http://blogs.stopbadware.org/articles/2007/11 ] ]