代理
代理帮助系统之间进行网络通信,作为网络通信之间的媒介。现有许多代理都能够支持重定向,包括HTRAN,ZXProxy和ZXProtMap。
代理的定义还可以拓展为P2P网络之间的信任关系,定期通信主机群或系统中的可信连接。
网络内可能有一个或多个互相信任的组织。攻击者可以利用这些关系来管理远程控制通信,减少同时出站的连接数,在连接失败时能够弹性处理,避免在受控主机之间直接通信而被怀疑。
自定义远控通信协议
使用自定义的通信协议而不是现有的标准应用层协议中封装的命令/协议。自定义协议在著名的TCP/IP或其他网络堆栈标准协议的基础上进行模仿构建。
自定义加密协议
攻击者可以使用自定义的加密协议或算法来隐藏远控通信流量。例如简单地使用固定密钥对铭文进行异或运算,这将产生一个非常弱的密文。
自定义加密方案的复杂度各有不同。对恶意样本进行逆向分析可能能够发现加密密钥和算法。一些攻击者就尝试自己实现一个众所周知加密算法的自有版本,而不是基于现有的库函数实现加密算法。
数据加密
远控数据使用基础数据加密系统进行加密。数据加密算法遵循现有的规范,包括使用ASCII, Unicode, Base64, MIME, UTF-8或其他二进制转文本,字符加密算法。一些数据加密的算法也可能导致数据压缩,例如gzip。
数据混淆
远控流量不一定被加密但一定是被隐藏的,攻击者试图使通信内容难以被发现并且通信行为与命令看起来不那么可疑、显眼。这包括许多方法,包括向协议流量中加入垃圾数据,使用隐写术,将C2通信流量与合法流量混合,使用非标准数据编码系统(例如,针对H