在我的Debian amd64系统上,我试图在示例程序上运行32位漏洞利用有效负载的测试。我知道这些有效负载工作正如我在32位虚拟机中测试过的那样。
安装所有必需的库以运行32位或64位程序。
但是,当shellcode执行int 80h
来调用exec("/bin/sh", ...)
时,系统调用失败,返回错误代码-2(ENOENT)。
修改shellcode以执行另一个32位程序会导致shellcode按预期工作。
那么,有没有办法从{32}程序exec()
64位程序?
答案 0 :(得分:0)
使用execl
库函数时可以正常工作。
从shell代码调用库函数可能很困难,但您可以尝试在正常程序中跟踪其执行情况,并了解如何编写执行相同操作的shell代码。