如何解决Shellcode作为缓冲区溢出或其他漏洞的有效载荷,以root身份执行?
| 当我使用此处提供的shellcode *作为某些易受攻击程序的有效负载时,shell如何以root身份执行?我在问特权如何提升到根? shellcode似乎没有调用setuid
或任何更改用户的方法。
* http://www.tenouk.com/Bufferoverflowc/Bufferoverflow5.html
解决方法
这些示例包括以下内容:
mov $70,%al #setreuid is syscall 70
因此,他们使用的是setreuid(2)
syscall,它会设置进程的真实和有效用户ID:
int setreuid(uid_t ruid,uid_t euid);
,为了执行shellcode,您需要一个漏洞,例如缓冲区溢出。 Shellcode具有运行过程的所有权利。因此,如果您使用setuid根目录(如passwd
命令)或以root身份运行(如cupsd
守护进程)之类的二进制文件,则攻击者将具有root访问权限。内核也可能遭受缓冲区溢出的困扰,并且也可以通过这种方式获得根访问权限。
,首先,您需要为程序授予root特权(使用chown和chmod作为root)。并且您需要setreuid()作为有效负载。如果您可以让其他用户利用该程序,那将带给您root的权限。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。