首页
社区
课程
招聘
[原创]windows C/C++ SOCKET-TCP 远程CMD命令执行
发表于: 2021-7-4 21:26 13965

[原创]windows C/C++ SOCKET-TCP 远程CMD命令执行

2021-7-4 21:26
13965

1、背景

远程cmd命令执行,字面意思就是在一台机器上面,远程发送cmd命令到另一台机器上执行。

 

关于远程cmd命令执行,师傅们在网上各显神通,有msf和cobalt strike的,还有wmi等等的,关于powershell,微软在7.1版本及之后也开始支持了更多花式远程操作

 

windows远程执行cmd命令的各方式2ed-CSDN博客远程cmd

 

运行远程命令 - PowerShell | Microsoft Docs

 

在此,结合结合windows C语言网络基础编程知识,手动用TCP实现了一个client-server的远程cmd程序。

 

思路如下:

2、服务器server端

服务器端只需要负责发送cmd命令到客户端执行,同时接收客户端的执行输出结果。在这里由于客户端和服务器端都是在windows上进行开发测试,也只同时上线一个客户端,就采用了开启一个子线程专门负责接收返回结果。如果是上线多个客户端,可以采用select模型,或者在linux上也可以采取poll和epoll去处理多个客户端的问题。

 

[注意]看雪招聘,专注安全领域的专业人才平台!

最后于 2021-7-4 23:42 被For@*编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (3)
雪    币: 117
活跃值: (3582)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
github.com/terrylao/WinCat 
windows 版的netcat. 
2021-7-5 23:43
0
雪    币: 99
活跃值: (2823)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
调用cmd搞复杂了,只要把si.hStdInput, si.hStdOutput, si.hStdError设置成socket的handle,CreateProcess后就可以远程执行cmd命令了,完全不需要pipe中转。
2021-7-6 08:44
1
雪    币: 828
活跃值: (1267)
能力值: ( LV7,RANK:118 )
在线值:
发帖
回帖
粉丝
4
TeLeMan 调用cmd搞复杂了,只要把si.hStdInput, si.hStdOutput, si.hStdError设置成socket的handle,CreateProcess后就可以远程执行cmd命令了,完 ...
这确实可以,但后面进行功能扩展的时候,可能就有点吃力了,pipe设计主要是为了后续作为一个单独的小模块来使用的
2021-7-6 13:44
0
游客
登录 | 注册 方可回帖
返回