4

在内核中有 PaX 的 linux 中是否有可能溢出缓冲区。我想通过使用正确的输入更改返回地址来利用可执行文件。我使用的是 Ubuntu 10.04,我用 paxtest 对此进行了测试,但我不知道结果意味着什么。这是我系统上 paxtest 的结果:

可执行匿名映射:被杀死
可执行的 bss : 被杀死
可执行数据:被杀死
可执行堆:被杀死
可执行堆栈:被杀死
可执行匿名映射(mprotect):易受攻击
可执行 bss (mprotect):易受攻击
可执行数据(mprotect):易受攻击
可执行堆(mprotect):易受攻击
可执行共享库 bss (mprotect):易受攻击
可执行共享库数据 (mprotect):易受攻击
可执行堆栈(mprotect):易受攻击
匿名映射随机化测试:12 位(猜测)
堆随机化测试(ET_EXEC):13 位(猜测)
堆随机化测试(ET_DYN):14 位(猜测)
主要可执行随机化(ET_EXEC):12 位(猜测)
主要可执行随机化(ET_DYN):12 位(猜测)
共享库随机化测试:12 位(猜测)
堆栈随机化测试(SEGMEXEC):19 位(猜测)
堆栈随机化测试(PAGEEXEC):19 位(猜测)
返回函数(strcpy):易受攻击
返回函数(strcpy,RANDEXEC):易受攻击
返回函数(memcpy):易受攻击
返回函数(memcpy,RANDEXEC):易受攻击
可执行共享库 bss:易受攻击
可执行的共享库数据:已终止
可写文本段:易受攻击
4

1 回答 1

1

是的你可以。请参阅以下行:

    Return to function (strcpy)              : Vulnerable
    Return to function (strcpy, RANDEXEC)    : Vulnerable

唉,我的学校项目是使用 grsecurity 来防止这种攻击。PaX 并没有阻止我覆盖返回地址。

于 2011-12-02T21:50:14.063 回答