黑客針對(duì)緩沖區(qū)溢出繞過IDS的方式
IDS作為企業(yè)安全防護(hù)的重量級(jí)產(chǎn)品,自然也成為了黑客試圖攻破的目標(biāo)。事實(shí)證明,繞過IDS防護(hù)進(jìn)行攻擊是完全可以實(shí)現(xiàn)的,接下來的文章里就將簡(jiǎn)述黑客攻擊時(shí)如何通過針對(duì)緩沖區(qū)溢出繞過IDS。
一些NIDS檢測(cè)遠(yuǎn)程緩沖區(qū)的主要方式是通過判斷數(shù)據(jù)包的內(nèi)容是否包括/bin/sh或者是否含有大量的NOP。針對(duì)IDS的這種檢測(cè)辦法,有的溢出程序的NOP考慮到用eb 02 代替,但這種方式目前也已經(jīng)成為一些NIDS檢測(cè)是否為緩沖區(qū)溢出時(shí)匹配的標(biāo)志。
不過,k2先生又寫了一個(gè)加密shellcode的程序ADMmutate,利用了名為多形態(tài)代碼的技術(shù),使攻擊者能夠潛在的改變代碼結(jié)構(gòu)來欺騙許多入侵檢測(cè)系統(tǒng),但它不會(huì)破壞最初的攻擊性程序。溢出程序經(jīng)它一改,就可以搖身一變,而且由于采用了動(dòng)態(tài)改變的技術(shù),每次偽裝的shellcode都不相同,本來NIDS依靠提取公開的溢出程序的特征碼來檢測(cè)報(bào)警,特征碼變了后就可以達(dá)到繞過IDS的目的。
偽裝前的shellcode格式為: [NNNNNNNNNNNNN][SSSS][RRRR]
偽裝后的shellcode格式為: [nnnnnnn][dddd][ssss][rrrr]
其中:N表示NOP,S表示shellcode,R表示返回地址; n表示經(jīng)過編碼的NOP,d為解碼器,s表示經(jīng)過編碼的shellcode,r表示返回地址。
經(jīng)過ADMmutate偽裝的shellcode可以逃過使用模式匹配并且利用字符串匹配的大部分NIDS!不過如果NIDS還依靠長(zhǎng)度,可打印字符等等綜合判斷,則ADMmutate還是不能逃脫NIDS的監(jiān)視,但是依靠長(zhǎng)度、可打印字符等判斷未必準(zhǔn)確,以此判斷會(huì)造成IDS漏報(bào)或誤報(bào)。不過,對(duì)于使用模式匹配的NIDS來說,目前仍只能通過長(zhǎng)度等簡(jiǎn)單的判斷!
【編輯推薦】
- 如何構(gòu)建入門級(jí)IDS
- IDS漏洞分析與黑客入侵手法
- 測(cè)試評(píng)估IDS的性能指標(biāo)
- 正確評(píng)估IDS性能的標(biāo)準(zhǔn)與步驟
- 黑客針對(duì)HTTP請(qǐng)求繞過IDS的八種方式