Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

远控开发——服务端

从未做过这个东西,从零开始

首先是对go语言进行学习,这个不多赘述

开发思路:模块化编程,将一个个功能分开实现,方便排查错误,保证独立性且可以反复使用

为了输出美观设定了输出色彩

简单说一下一些功能的实现

心跳功能:

这里设定每隔30秒收不到客户端的数据则自动退出连接

由一个协程来对连接进行计时,30秒内如果再次收到则刷新时间由channel进行控制

另一个协程处理心跳的channel

发送shell指令并返回结果:

这里主要用到了conn.read() 已经conn.write()

分别从conn处进行读和写,在操作执行成果给出提示,失败则直接输出error

文件的上传及下载:

这里主要是进行文件操作,

上传先是获取upload命令,然后输入文件路径,之后读出文件,并且按照相同方式发送出去

下载则是分开处理,先由客户端发送“下载”信息,之后再接收客户端发送过来的数据,并且按照设定名字+获取时间的形式来设定文件名字

截图并返图过来:

和上面接收数据形式一样发送指令到客户端,再返回过来截图

通信流量加密:

这里采用了base32+base64的形式来对我们传输的每一个数据进行加密解密

与多个客户端进行通讯:

通过循环增加连接协程,并且建立map来对这些连接进行储存,实现了自由选择对应客户端并且进行操作,

在此基础上还对数据库进行了连接,可以将一些有关信息储存进数据库

About

redrock运维安全部暑期考核

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages