2018-06-16-第五章節(jié)-網(wǎng)絡(luò)服務(wù)滲透攻擊

1.內(nèi)存攻擊

內(nèi)存攻擊的根本原因是圖靈計(jì)算機(jī)沒(méi)能嚴(yán)格區(qū)分內(nèi)存中的數(shù)據(jù)和指令而導(dǎo)致的。

A:緩沖區(qū)溢出漏洞是因?yàn)槌绦蛉狈?duì)緩沖區(qū)的邊界進(jìn)行條件檢查而引起的一種異常行為。

緩沖區(qū)溢出又分為棧溢出與堆溢出兩種類型。


棧溢出

棧溢出的基本原理在于程序使用棧這種數(shù)據(jù)結(jié)構(gòu)來(lái)控制程序運(yùn)行流程,程序先將函數(shù)返回地址壓入棧中,然后執(zhí)行結(jié)束以后再?gòu)臈V腥』睾瘮?shù)返回地址,繼續(xù)執(zhí)行指令。問(wèn)題是出現(xiàn)在當(dāng)我們向棧中的地址寫入數(shù)據(jù)時(shí),當(dāng)寫入的數(shù)據(jù)長(zhǎng)度超過(guò)棧分配的緩沖區(qū)地址空間時(shí),就會(huì)造成棧溢出。

棧溢出一般有三種利用方式:

A1.覆蓋緩沖區(qū)附近的程序變量

主要是改變程序的執(zhí)行流程和結(jié)果,從而達(dá)到攻擊者的目的。

A2.覆蓋棧中保存的函數(shù)返回地址

這種是最常用的,程序執(zhí)行完以后直接執(zhí)行惡意攻擊者的代碼去了

A3.覆蓋某個(gè)程序指針或程序異常處理結(jié)構(gòu)

只要溢出以后異常處理結(jié)構(gòu)被執(zhí)行,同樣可以讓程序流轉(zhuǎn)到任意地址。這種處理方式可以繞過(guò)操作系統(tǒng)的棧保護(hù)機(jī)制,而且異常處理結(jié)構(gòu)更接近棧底,所以從緩沖區(qū)頭部到異常處理結(jié)構(gòu)的內(nèi)存空間更大,處理起來(lái)可能更加方便。


這里順路科普一下那個(gè)現(xiàn)代操作系統(tǒng)的緩沖區(qū)溢出的安全保護(hù)機(jī)制,稱為ASLR(Address space layout random),通過(guò)對(duì)堆(heap),棧(stack)等共享地址空間的布局隨機(jī)化,從而增加攻擊者預(yù)測(cè)地址空間的難度,防止攻擊者直接定位攻擊代碼地址。


堆溢出

堆溢出的概念

圖一

堆溢出的原理

圖二

緩沖區(qū)溢出利用的思路:

主要有三步,第一步是考慮緩沖區(qū)溢出的緩沖區(qū)空間大小,第二步是通過(guò)逆向分析或者源碼分析來(lái)理解程序邏輯,最后是考慮壞字符,空字符,可能需要考慮編碼的情況等來(lái)構(gòu)造shellcode。


這里科普一些端口知識(shí):

Netbios(Network basic input output system)運(yùn)行在137,138,139端口上

圖三

SMB(Server Message Block)運(yùn)行在445端口上,也可通過(guò)139端口來(lái)接收數(shù)據(jù)

MSRPC(Microsoft remote procedure call)主要是135端口。

圖四

2.MS08-067內(nèi)存攻擊實(shí)戰(zhàn)技術(shù)

A漏洞原理:攻擊者通過(guò)msrpc over smb通道來(lái)調(diào)用server服務(wù)程序中的Netpathcanonicalize函數(shù),該函數(shù)在遠(yuǎn)程訪問(wèn)其他主機(jī)時(shí)候,會(huì)調(diào)用Netpwcanonicalize函數(shù),該函數(shù)會(huì)對(duì)遠(yuǎn)程訪問(wèn)主機(jī)的路徑進(jìn)行規(guī)范化,而該函數(shù)存在緩沖區(qū)溢出漏洞,從而導(dǎo)致遠(yuǎn)程代碼執(zhí)行。

B漏洞利用:


圖五


圖六


圖七

就這樣日進(jìn)去了。。。。

C:漏洞源碼分析

圖八

查看metasploit下面的ruby文件,可以一步步查看漏洞利用源碼。

例如描述這一部分,主要介紹了該漏洞出現(xiàn)在NetAPI32.dll中的canonicalization路徑處理函數(shù)中,該模塊主要能夠繞過(guò)一些NX(No execute,win下面是DEP技術(shù))機(jī)制,然后2003的系統(tǒng)有大概率會(huì)崩潰或者掛起。


圖九

默認(rèn)設(shè)置這個(gè)是規(guī)定了會(huì)話退出采用了退出線程的方式。

圖十

payload這里主要是規(guī)定了可用空間大小,壞字符,自定義選項(xiàng)等。


圖十一

下面規(guī)定了可針對(duì)的target,包括一些各種平臺(tái),一些初始化可能不一樣。

D:08-067漏洞原理機(jī)制分析

首先用ollydbg打開(kāi)了所謂的netapi32.dll,然后我們尋找netpwpathcanonicalize函數(shù),如下:


圖十二

然后,就是留個(gè)坑。。。二進(jìn)制安全的知識(shí)好多看不懂,匯編也看不懂,以后滲透學(xué)深了以后再來(lái)補(bǔ)補(bǔ)。。。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容