S2 - 通信协议
代码详见:代码
握手
在创建tcp/tls连接后client会发送一个握手报文来表明身份,其中包含一个enc字段该字段的值为配置文件中的secret的md5码
TODO补图
虚拟链接
在终端页面创建任何一个链接时,都会创建一个虚拟链接,该虚拟链接有两个端点,分别为控制端
和受控端
体现在msg接口中的from
和to
字段
在每一个虚拟链接创建时都会发起一个connect_req
请求,该请求使用connect_request结构进行包装
当受控端收到connect_req
请求后会进行相应的处理,详见代码
收到shell请求后
若给定exec参数,则拉起exec参数指定的程序,并接管pty设备
否则根据当前操作系统拉起指定程序
windows: 若当前操作系统有powershell则拉起powershell程序,否则拉起cmd程序
非windows: 若当前系统有bash则拉起bash程序,否则拉起sh程序
返回
connect_response
消息,其中包含是否成功或错误信息
收到vnc请求后
从6155~6955之间顺序挑一个端口创建一个websocket服务,用于与后续创建的子进程通信
创建子进程,
action
参数设置为vnc.worker,并传入规则名称和websocket端口号返回
connect_response
消息,其中包含是否成功或错误信息
最后更新于