緩沖區(qū)漏洞利用環(huán)境配置

配置實(shí)驗(yàn)環(huán)境(轉(zhuǎn)vhttp://blog.sina.com.cn/s/blog_70dd16910100qpzh.html
第一步:sysctl -w kernel.randomize_va_space=0
在Ubuntu和其它基于Linux內(nèi)核的系統(tǒng)中,目前都使用內(nèi)存地址隨機(jī)化的機(jī)制來初始化堆棧,這將會(huì)使得猜測具體的內(nèi)存地址變得十分困難,所以在本試驗(yàn)中,用下列命令關(guān)閉內(nèi)存隨機(jī)化機(jī)制:
$ su root
Password: (enter root password)

sysctl -w kernel.randomize_va_space=0

第二步:sysctl -w kernel.exec-shield=0
對于Federal系統(tǒng),默認(rèn)會(huì)執(zhí)行可執(zhí)行程序的屏蔽保護(hù),而對于Ubuntu系統(tǒng)默認(rèn)沒有執(zhí)行這種保護(hù)機(jī)制,可執(zhí)行程序的屏蔽保護(hù)機(jī)制不允許執(zhí)行存儲(chǔ)在棧中的代碼,這會(huì)使得緩沖區(qū)溢出攻擊變得無效。所以如果在Fedora系統(tǒng)中我們需要用下面的命令關(guān)閉這種機(jī)制:
$ su root
Password: (enter root password)

sysctl -w kernel.exec-shield=0

第三步:重新建立符合鏈接
目前的系統(tǒng)為了阻止緩沖區(qū)溢出攻擊使用Shell程序,當(dāng)這些shell程序被攻擊時(shí),他們會(huì)自動(dòng)的放棄自己具有的root權(quán)限。這樣的話,即使你可以在一個(gè)Set-UID程序中嵌入了一段shell腳本,你可能也不會(huì)獲得root權(quán)限。這種保護(hù)機(jī)制都被應(yīng)用在/bin/bash中,Ubuntu中的/bin/sh是一個(gè)指向/bin/bash的符合鏈接,為了能順利進(jìn)行本次的實(shí)驗(yàn),我們讓/bin/sh指向/bin/zsh,命令如下:

cd /bin

rm sh

ln -s /bin/zsh /bin/sh

第四步:–fno-stack-protector
另外GCC編譯器也會(huì)執(zhí)行一種棧保護(hù)機(jī)制來阻止緩沖區(qū)溢出,所以我們在編譯代碼時(shí)需要用 –fno-stack-protector 關(guān)閉這種機(jī)制。
例如:
gcc -fno-stack-protector example.c

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

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

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