緩沖區(qū)溢出攻擊及其防范實(shí)例
實(shí)驗(yàn)環(huán)境實(shí)驗(yàn)環(huán)境如圖5-21所示。入侵者(192.168.1.20):對(duì)192.168.1.2028進(jìn)行緩沖區(qū)溢出攻擊。被入侵者(192.168.1.2028)是開啟DNS服務(wù)的所有版本的Window
實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)環(huán)境如圖5-21所示。入侵者(192.168.1.20):對(duì)192.168.1.2028進(jìn)行緩沖區(qū)溢出攻擊。被入侵者(192.168.1.2028)是開啟DNS服務(wù)的所有版本的Windows 2000 Server或Windows 2003 Server SP1,在本次測(cè)試中使用Windows 2003 Server SP1。
緩沖區(qū)溢出攻擊過程
第1步:入侵者下載并且執(zhí)行dns.exe命令。入侵者從網(wǎng)上下載dns.exe工具,可以通殺Windows 2000 Server、Windows 2003 Server SP1系統(tǒng),將其復(fù)制到C:Documents and SettingsAdministrator,在DOS窗口執(zhí)行dns.exe命令。
第2步:尋找漏洞。執(zhí)行dns.exe -s 192.168.1.2028命令,對(duì)主機(jī)進(jìn)行掃描,顯示出被入侵主機(jī)(192.168.1.2028)開放的端口以及操作系統(tǒng),最主要的是顯示“1047: Vulnerability”,意思就是1047端口存在漏洞。
第3步:實(shí)施溢出。執(zhí)行dns.exe -t 2003chs 192.168.1.2028 1047命令,其中-t2003chs的意思是操作系統(tǒng)的型號(hào),-t 2003chs即簡體中文版的2003系統(tǒng),如果是2000的系統(tǒng)就使用“-2000all”參數(shù),192.168.1.2028就是目標(biāo)IP地址,1047就是剛才掃描出存在漏洞的端口。
第4步:成功入侵。執(zhí)行telnet 192.168.1.2028 1100命令,結(jié)果顯示已經(jīng)成功入侵對(duì)方的電腦,并且得到了管理員的權(quán)限。
第5步:在被入侵電腦上執(zhí)行操作。
第6~11步介紹在被入侵電腦中開3389端口(遠(yuǎn)程桌面)的方法。
第6步:創(chuàng)建用來下載的VBS腳本tony.vbs。
第7步:在入侵者的電腦上上傳wrsky.exe。
第8步:在被入侵電腦上下載wrsky.exe。
第9步:在被入侵電腦執(zhí)行wrsky.exe命令。
第10步:重新設(shè)置被入侵電腦的管理員密碼。
第11步:打開被入侵電腦的遠(yuǎn)程桌面服務(wù)。
第12步:遠(yuǎn)程桌面連接被入侵計(jì)算機(jī)。
緩沖區(qū)溢出攻擊的防范措施
(1)關(guān)閉不需要的特權(quán)程序。
(2)及時(shí)給系統(tǒng)和服務(wù)程序漏洞打補(bǔ)丁。
(3)強(qiáng)制寫正確的代碼。
(4)通過操作系統(tǒng)使得緩沖區(qū)不可執(zhí)行,從而阻止攻擊者植入攻擊代碼。
(5)利用編譯器的邊界檢查來實(shí)現(xiàn)緩沖區(qū)的保護(hù),這個(gè)方法使得緩沖區(qū)溢出不可能出現(xiàn),從而完全消除了緩沖區(qū)溢出的威脅,但是代價(jià)比較大。
(6)在程序指針失效前進(jìn)行完整性檢查。
(7)改進(jìn)系統(tǒng)內(nèi)部安全機(jī)制。