首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux内核ROP -从内核上下文返回到userland?

Linux内核ROP -从内核上下文返回到userland?
EN

Security用户
提问于 2018-01-11 12:27:32
回答 1查看 1.2K关注 0票数 6

我有一个易受攻击的Linux内核模块(32位),我可以成功地利用该模块,并从中获得了特权。基本上,我的漏洞使用一个ROP链来禁用SMEP,并直接跳转到我在userland映射的外壳代码。我在userland的外壳代码调用commit_creds(prepare_kernel_creds(0));并尝试返回到我的userland代码。

现在,我不明白如何从内核模式返回到用户模式。有几篇文章指出,我应该使用iret程序集指令返回用户模式.显然,我在外壳代码之后插入了一个iret,但它似乎不起作用。

我写到一个设备文件,并从调用跟踪:

代码语言:javascript
运行
复制
? vfs_write
? SyS_write
? do_fast_syscall_32
? entry_SYSENTER_32

我注意到这是一个快速的系统调用,它必须通过sysexit指令返回。

现在,如何在不惊扰内核的情况下返回用户地呢?我需要知道我需要执行哪个调用( iret / sysexit ),以及如何干净地执行它。

(我查阅了英特尔的手册和其他一些资源,但到目前为止对我没有什么帮助。)

EN

回答 1

Security用户

发布于 2018-01-11 18:57:16

请阅读call_usermodehelper_setup()和call_usermodehelper_exec()。使用这些调用,您可以直接从内核执行代码。

示例:

https://www.exploit-db.com/exploits/38454/

票数 -1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/177339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档