我正在尝试找到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 c,socket programming in c++或Windows socket programming之类的内容。
关于c++ - 在C(++)中寻找基本的反向Shell示例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1177257/