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的权限。     

要回复问题请先登录注册