高度机密:“黑暗幽灵”(别名 DCM)木马的前世今生
https://www.v2ex.com/t/271590
DCM 木马的前世
首先我要证实一下大家的猜测:这个木马确实和 G0V 有关系,属于一款特殊用途的专用木马。我不便透露具体客户的身份。
这个木马的项目开始时间大概是 2011 年,目的是作为当时一个在役的木马(以下简称旧马)的继任者。之所以需要一个旧马的继任者,是因为旧马是基于一款开源的远程控制软件(以下简称原型远控)修改而成的,它主要有以下几方面的缺点:
* 免杀
原型远控在黑客圈子里比较知名,基于它的木马变种非常多。因此杀毒软件对它的查杀力度很大,免杀难度相对较高,保持的时间也较短,经常需要更新。
* 隐蔽
旧马沿用了原型远控的 TCP 反弹连接协议,因此主控端需要具有 IP 地址,某些应用环境下必须是公网 IP 地址,因此具有泄漏木马使用者身份的风险
* 功能
原型木马设计更像灰鸽子,被控端上线以后接受控制端发送的命令,然后将结果发送回控制端。旧马虽然努力改变这一设计,但受限于原型木马的框架,大的功能改动显得力不从心。
由于原型木马的先天缺陷,导致了旧马各方面难以弥补的不足,因此一个新的继任木马的需求也就被提出来了。
DCM 木马的诞生
这个继任者的设计理念包括一下几点:
* 无进程无窗口
该木马的受害者不能明显察觉到任何异样
* 长期免杀
杀毒软件与防火墙不能发现和拦截,包括木马的安装过程,以及安装成功以后的长期运行
* 不泄漏使用者信息
必须保障该木马控制者身份的绝对安全,任何情况下都不能泄漏控制者的 IP 地址、域名或者其他任何有价值的身份信息。即使样本被杀毒软件厂商获取并分析,也无法得知控制者的确切身份。
* 完全自动化
无需人工介入,根据事先的配置设置,全自动窃取信息并回传。没有网络连接的情况下要保存获取的信息,发现可用网络连接后进行回传。
经过几个月的设计与开发,这个继任者木马诞生了。
该木马的功能与特点已经没有必要在这里赘述了,网上的分析文章写的清清楚楚,总结下来就是自动记录并发送被感染电脑上的一切隐私内容。
DCM 木马的感染方式
其实该木马本身是不会主动传播的,它的设计就是潜伏并回传数据。它的传播是依赖另外几套系统来实现的(以下统称传播系统),而且这些传播方式也并不局限与传播 DCM 木马。这些传播系统的传染方式当然也不仅局限于分析文章里所提到的替换正常软件自动更新文件的方式。此外,该木马仅用于特定目标人群的”定点打击“,并不会大量传播。
* 正规软件的自动更新
在网上的分析文章里已经写了,通过替换正常软件的自动更新网络数据,使这些软件下载木马并执行。很多正规软件都直接运行在管理员模式下,还帮木马省去了提权的麻烦。
* 下载可执行文件捆绑
被列入”定点打击“的电脑如果下载了不超过一个预设大小的 EXE 文件,则传播系统会将木马捆绑在这些正常的 EXE 文件上,而且并不会破坏原有可执行文件。用户一旦运行了下载的 EXE 文件就会被感染。
* 压缩文件感染
被列入”定点打击“的电脑如果下载了一个符合某些条件的压缩文件,则传播系统会根据配置将木马插入压缩文件中,替换掉压缩文件中的可执行文件,或者替换掉整个压缩文件,从而实现感染目标主机的目的。
* 浏览器劫持感染
这个感染方式比较极端,只有少量情况下会使用。当该感染方式启动时,用户电脑无法正常浏览部分甚至全部网站,浏览器会被重定向到一个钓鱼页面,要求用户安装”浏览器插件”或者“必要更新”一类的内容,从而诱导甚至强迫用户安装木马。
DCM 木马相关的其他木马项目
毫无疑问 DCM 是针对 Windows 平台的木马,然而这并不表示其他平台就是安全的。但出于自身安全的原因,我在此不便透露更多细节。
--------------------
前一篇文章发出来以后,很多人说里面所有的内容都是已经公开的信息,那么我就来披露一些未公开的非敏感信息吧。
从 DCM 木马的通信方式上来说, 2011 年时该木马构造一个 DNS 数据包,包头是 DNS 查询 microsoft.com 的子域名, payload 则是另一个
封装的数据包,其中包括文件名、文件大小、分片序号以及 LZMA 压缩后的实际数据内容。木马会将该数据包发往微软的一个 IP 地址,并
根据网络上行带宽控制发送速度。由于目标 IP 地址并不是一个有效的 DNS 服务器,所以木马不会收到任何回复数据。之所以发往微软的
IP 地址,是因为以下几方面考虑:
* 国外 IP
选择一个国外的 IP 地址会确保数据包通过城市出口,省出口以及中国的互联网国际出口,因此大幅提高我们截取到这些 DNS 数据包的成
功率,而且当用户携带被感染的笔记本电脑等便携式设备到其他没有布防的省市时,我们仍然可以从国际出口的 UDP 53 上行数据中截获
所需的数据。
* 降低可疑度
Windows 操作系统自身原本就会发送大量的关于 microsoft.com 域名的 DNS 请求,包括自动更新、错误报告等诸多功能,都会发往微软。
因此我们也伪装成相似的 DNS 请求,从而降低数据包的可疑度,即使触发了防火墙的报警,用户仍然有很大概率选择放行。
* 微软不是中国的“敌对势力”
起始最初我们曾经设置将数据发往 Google ,但我们的客户认为 Google 是“境外敌对势力”,将这些敏感数据发往 Google 是绝不可接受的。
于是经过讨论,我们认为微软本身作为操作系统的开发者,原本就有大量的隐私数据被发往微软,也不在乎再加一点。而且一旦此事真的
被大家发现了,安全专家开始关注这个木马(就像现在这样),微软还可以成为一个合理的“怀疑对象”,顺理成章的把我们的责任推到
微软的头上。
数据包的重组则依赖于多层网络探针设备,我前面已经说过了,这个木马的背后是一个国家机关,因此我们可以得到这些 DNS 数据包的
渠道是非常广泛的。以一个家庭用户为例,有以下节点可供我们获取这些数据:
* 运营商提供的宽带路由器或 Modem
部分型号是有预留后门的,可以直接远程激活。即使你家中的路由和 Modem 没有后门,在确实必要的情况下我们会干扰你的网络,迫使你
主动联系运营商进行维修,然后我们派人伪装成运营商工作人员去“维修”你家中的设备甚至直接建议你更换设备(设备老化之类的借口)
除此之外,我们还会在局域网内通过主动的扫描以及被动的监听等方式,来采集局域网内设备的信息,尤其是无线设备的信息。
* 小区交换机
很多小区有自己的电话交换机,我们会直接在电话交换机柜里加装小型低功耗设备,将你的网络数据镜像出来,并储存在设备的硬盘中
或转发到其他 IP 地址。如果使用转发模式,可能会复用你的宽带网络,反正用户在你家里抓包是绝对看不到任何异常的。
* ISP 机房
不用解释了,大家都知道怎么回事。 ISP 机房的好处是设备的功耗和体积没有限制,可以做更多的事。缺点是插拔电话线时会导致用户的
网络暂时中断,而且 ISP 机房又只在工作时间向我们开放,所以偶尔可能会被用户察觉到网络和电话突然中断几十秒到几分钟。
* 当地的公安机房
ISP 会将部分数据镜像给公安机关,主要是 TCP 80 上行和 UDP 53 上行,因为这两个端口的上行数据量都不大,而且包含了我们所关心的
大部分信息。这也是 DCM 木马选择使用 DNS 数据包的原因之一。
* 城市出口
一线二线的大城市的互联网出口几乎都有我们的设备,但 2011 年时中小城市的覆盖率则相对较低,现在的覆盖率恐怕已经包含了大部分
互联网发达的三级城市了。
* 省出口
国内所有的省级互联网出口都有大量的网络探针设备,其中有一部分是我们的,也有一些是其他机关部门的。
* 国际出口
其实国际出口我们是没有办法直接访问的,只是特例有需要的情况下可以拿到镜像数据而已,但这可以作为最后一个机会。
这里面有些层级是会暂时或长期地保留数据的,比如公安机房和国际出口,数据会被选择性的存储下来,供日后查阅。
不过那篇分析文章里找到 IP 地址是百度之类的国内 IP ,估计和最近几年的政策变动有关系。也许微软也成为了境外“敌对势力”之一,
从微软的 OneDrive 服务被墙就可以看出,中国对于微软也是不信任或者不完全信任的态度。
回复