TCS v1.1.0 beta
用户指南
Anders
TCS Team
anderstcs@gmail.com
TCS Users’ Guide
~ 1 ~
1 TCS 简介
TCS 是一款远程管理工具,可以作为系统管理员或渗透测试人员的辅助工具使用。TCS
能够实现跨内网通信,支持 TCP、TLS、HTTP、HTTPS、UDP、P2P 等多种通信协议,可以轻松
穿透 NAT 网关、SOCKS 代理以及 Web 代理,适用于多种网络环境。TCS 的前期开发工作侧重
于远程通信的实现,系统管理功能还不够丰富,目前实现了命令行、文件管理、进程管理、
端口映射、屏幕控制等功能,其它功能将在后续版本中实现。
我们开发 TCS 的动机在于验证关于远程管理的一些实现方式是否可行,因此 TCS 很大
程度上是一个 PoC(Proof of Concept),还有很多不完善的地方,是一款尚不成熟的工具,
但并不妨碍用于技术交流研究。如果有您有任何意见和建议,可以通过电子邮件与我们取得
联系(E-Mail: anderstcs@gmail.com)。
2 TCS 部署
在 TCS 的部署模型中,由 3 个运行在不同主机上的进程协同工作完成跨网段的远程管
理功能。我们将这 3 个进程分别命名为 Manager、Gofer 和 Messenger。
Manager 运行于系统管理员本地主机,管理员可以通过 Manager 提供的图形界面向远程
主机发送命令并查看命令的执行结果。Gofer 运行于远程主机,接收 Manager 发送的命令,
执行完毕后回送结果。一般情况下,Manager 和 Gofer 不直接通信,所有数据(我们称之为
消息)都需要通过 Messenger 转发,因此 Messenger 需要运行在 Manager 和 Gofer 都能访问
的第三台主机上。
典型的 TCS 部署方式如图 2.1 所示。在这种部署方式中,内网 1 中的两个 Manager 和内
网 2 中的三个 Gofer 共享相同的身份认证信息,组成了一个管理组;Manager A 和 Manager
B 可以同时对三个 Gofer 进行管理。Manager 和 Gofer 通过各自网络的 NAT 网关连接到
Messenger;一个 Messenger 可以同时为多个管理组提供消息转发服务。
这里对管理组做一下补充说明:在 TCS 中,管理组由连接到同一个 Messenger 并且共享
相同的身份认证信息(预共享口令)的 Manager(s)和 Gofer(s)组成;管理组不需要显式创
建,在为 Manager 或 Gofer 设置预共享口令后,即视为加入由该口令标识的管理组。
图 2.1 TCS 部署
Messenger
Manager A
Manager B
Gofer Z
Gofer X
Gofer Y
内网 1
内网 2
管理组
NAT
NAT
TCS Users’ Guide
~ 2 ~
另外,TCS 还支持一种简化的部署方式,见图 2.2。在这种简化部署中,Manager 内部
集成了 Messenger,因此 Gofer 可以直接与 Manager 通信,不需要通过第三方的 Messenger
中转消息;不过这也导致一个 Gofer 只能与一个 Manager 通信,限制了远程管理的灵活性。
图 2.2 TCS 简化部署
3 TCS 通信
3.1 协议
TCS 目前实现了 6 种通信方式,即 TCP、TLS、HTTP、HTTPS、UDP 和 P2P;支持 5 种类型
的代理服务器,即 SOCKS4、SOCKS4a、SOCKS5 和 HTTP 和 HTTPS。 由于 Manager 和 Gofer 采
用了的不同的实现技术,因此对代理服务器的支持情况也存在差别。若 使用 UDP 或 P2P 通信
方式,则不支持任何代理。表 3.1 给出了 TCS 的通信和代理协议支持情况。
代理类型
连接类型
SOCKS4
SOCKS4a
SOCKS5
HTTP
HTTPS
Manager
TCP
√
TLS
√
HTTP
√
√
HTTPS
√
√
UDP
P2P
Gofer
TCP
√
√
√
TLS
√
√
√
HTTP
√
HTTPS
√
UDP
P2P
表 3.1 TCS 支持的通信与代理协议
TCS 的 6 种通信方式均支持全双工的实时消息传输,以满足 TCP 端口映射等对实时性要
求比较高的传输需求。其中第 6 种通信方式称为 P2P(Peer-to-Peer)并不是因为采用了
BitTorrent 等常见 P2P 协议,而是指在这种通信方式下所有消息直接在 Manager 和 Gofer 间
传输,不需要 Messenger 转发;Messenger 只是协助 Manager 与 Gofer 建立可穿透 NAT、跨
Manager
Gofer Y
Gofer X
Gofer Z
管理组
Messenger
NAT
TCS Users’ Guide
~ 3 ~
内网的连接,这正是混合式 P2P 网络的工作方式,如图 3.1 所示。
图 3.1 P2P 通信
3.2 加密
Manager 与 Gofer 间的消息是加密传输的。在进行通信前,需要在 Manager 和 Gofer 间
设置预共享口令(在 TCS 中我们称该预共享口令为 Passphrase),该口令有两个用途:
1) 用于身份认证。只有连接到同一个 Messenger、拥有相同的预共享口令的 Manager
与 Gofer 才能加入同一个管理组,并进行通信。
2) 用于数据加密。Manager 与 Gofer 间的所有消息都使用该口令作为密钥进行加密。
由于 Messenger 并不知晓 Manager 与 Gofer 间的预共享口令,因此只是根据消息头
中的标识字段转发消息,无法获取消息内容。为提高加密强度,请使用足够复杂的
预共享口令。
如果使用 TLS 或 HTTPS 协议进行通信,则在上述基于预共享口令加密的基础上,再由
TLS 协议对消息进行又一层加密,双重加密提高了传输的安全性。两种加密方式的区别是:
基于预共享口令的加密保护的是 Manager 与 Gofer 间的通信安全;TLS 加密保护的是 Manager
与 Messenger 或 Gofer 与 Messenger 间的通信安全。
4 Messenger
现在我们依次对 Messenger、Gofer 和 Manager 的功能、配置和使用做一下简要说明。
首先介绍 Messenger。
4.1 功能
在 TCS 中,Messenger 充当消息转发器的角色,可 以同时为多个管理组中的 Managers 和
Gofers 提供消息转发服务。TCS 对消息进行“盲转发”,根据消息头中的目标标识确定接收
者,不关心消息内容,也无法获知消息内容。Messenger 支持多种通信协议,但在启动后只
支持一种指定的协议。在 P2P 通信模式下,Messenger 并未真正转发消息,而是转发 Manager
与 Gofer 在建立端到端的连接时所需要的协商消息。在简化的 TCS 部署方式中,由于
Messenger 集成在 Manager 中,因此只能为一个管理组提供转发服务,且仅支持 TCP 通信。
Messenger
Manager
Gofer
内网 1
内网 2
管理组