白象(又名Hangover、Patchwork、摩诃草等)组织是一个主要针对我国、巴基斯坦等亚洲地区国家进行网络间谍活动的APT组织,攻击目标以政府机构、科研教育领域为主。自2016年起,该组织一直持续使用攻击武器BADNEWS开展攻击活动,其主要特点包括:
ㆍ各个样本的整体执行逻辑、通信交互内容无明显变化;
ㆍ各个样本支持的控制指令无明显变化,包含执行任意命令、截图、键盘记录、服务端更新、下载文件、执行文件以及列目录操作;
ㆍ样本的通信加密算法一直在进行更新,从RC4+Base64到AES+Base64,再到XOR+RC4+Base64;
ㆍ样本使用的通信协议,从最开始的明文协议HTTP,到加密协议HTTPS;
从上述特点中可以看出,近两年BADNEWS针对加密通信方式进行了更新迭代,从协议层面、加密算法层面、密钥层面这三方面发力,加强了该攻击武器在流量侧的隐蔽性。
观成安全研究团队在近期捕获了BADNEWS新样本,分析发现该样本使用了HTTPS加密协议进行C&C通信,内层HTTP载荷中又组合使用了XOR+RC4+Base64加密算法和编码,进一步提高传输信息的隐蔽性。结合近两年我们分析过的11个BADNEWS公开样本,对该木马的加密协议、算法和密钥进行了对比和总结,这11个样本的基本信息如下表:
早期,BADNEWS样本均使用HTTP协议进行通信(23年5月开始使用HTTPS),请求的URL为随机生成的不规则字符串,URL后缀为“php”。虽然使用的明文通信协议,但是样本使用HTTP的请求体来传输加密数据。样本运行后会先发送上线包,上线包中会将UUID和主机信息上传到C&C服务器。
图 1 上线包(HTTP)
将上线包的正文数据提取,经过解密后可以看到明文数据,其中包含了UUID和受害机的主机信息。
图 2 上线包UUID解密
图 3 上线包 主机信息解密
随后样本会持续发送心跳包,等待接收攻击者下发的控制指令,心跳间隔约5s。
图 4 心跳请求(HTTP)
白象组织从23年5月开始使用HTTPS作为BADNEWS的通信协议,将原有的HTTP加密数据隐藏在了HTTPS加密协议之后。观成安全分析人员对BADNEWS产生的大量HTTPS加密流量进行分析后,总结出了以下特征。
1. 上线流量特征
BADNEWS样本(HTTPS)在上线时存在发送两次上线包的行为,第一次上线包为受害主机的UUID,第二次上线包为主机信息。服务端对两次上线包有不同的响应,两次响应载荷长度相差1;
图 5 上线包(HTTPS)
2. 心跳流量特征
如果服务器没有下发控制指令,BADNEWS会重复交替发送两种心跳包。第一种心跳包内容为加密后的受害机UUID值,该心跳包用于获取控制指令。第二种心跳包内容较第一种心跳包少一层URL编码并改变了固定字符串。第一种心跳包之间间隔为2~6秒。
图 6 心跳请求(HTTPS)
3. 证书特征
近期披露的BADNEWS(HTTPS)服务器都使用了“Let's Encrypt”颁发的免费证书。
图 7 证书截图