TheMoon : 一个僵尸网络的老皇历和新变种

TheMoon 是一个恶意代码家族的代号。早在2014年2月，该恶意代码家族就引起了安全研究人员的普遍关注。在当时，TheMoon是一个针对 Linksys 路由器的、有类似蠕虫式传播行为的僵尸网络。由于其感染传播能力较强，安全社区里的讨论较多。


2014～2017年期间，又陆续有各安全厂商对TheMoon恶意代码家族做了分析。报告反应了当时 TheMoon 家族的演化情况。


从2017年开始，我们也对 TheMoon 家族做了持续跟踪，并注意到以下的新发现：


 * 感染阶段： TheMoon 集成了最近的一组漏洞利用代码，提高其感染能力；
 * 运营阶段： TheMoon 的代理网络，由正向代理改为反向代理，避免被安全研究人员探测度量；
 * 样本特征： TheMoon 开始使用压缩外壳，提高安全研究人员分析的难度


下文仅仅是我们对 TheMoon 恶意代码家族监控结果的概括描述，详细的技术分析文档可见 TheMoon-botnet.pdf


2017年以前的 TheMoon


2014-02-13 ，这是我们能查到的 TheMoon 相关最早记录。当时，SANS 安全研究机构的博士 Johannes B. Ullrich 报告发现 了该恶意代码，并在随后给出了更新 。TheMoon家族的一些关键特点，在最初被发现的这个阶段就已经确定下来了：


 * 攻击目标：最初是 Linksys E1000 系列路由器，后续发展也是以 IoT 设备、特别是家用路由器为主。设备目标常见是 MIPS 架构
 * 蠕虫式的感染传播：被感染的设备，会在一个较短的时间窗口期内提供二进制下载。这种蠕虫式的感染，这使得其传播能力大大增强
 * 简单的自我保护：会设定 iptables 规则限制漏洞利用端口的访问，仅允许作者控制的几个IP地址所在地址段访问，减少被其他攻击者利用相同漏洞的风险
 * 命名来源：样本文件内嵌了几张图片，加上文件中的一些其他字符串 "lunar", "moon", "planets"，这些共同的信息指向一部2009年的电影 "Moon"，这是这个家族被命名为 TheMoon 的原因。


由于该恶意代码家族被定位是蠕虫，这引起了安全社区的广泛讨论。几天之内，相关的设备漏洞和利用代码就被各大安全厂商收录，例如 securityfocus， packetstormsecurity, flexerasoftware， vulnerabilitycenter， exploit-db， IBM X-force，等等。


2015-07-16，阿里安全的谢君，在

解密“智魁”攻击行动——针对路由器蠕虫攻击事件分析报告 中，分析了该恶意代码家族当时的变种。这个阶段 TheMoon 家族表现出来的新特征包括：


 * socks代理：开始利用被感染节点搭建 Socks 代理网络；上述代理网络是主动式的，被感染节点上开启的代理节点有特征可循，文章中根据该特征，对全网扫描并给出了度量；
 * 感染手段：开始使用华硕路由器漏洞 CVE-2014-9583，UDP 9999 ，以及 TP-Link路由器漏洞。2014年版本所使用的原有 Linksys 漏洞仍然在利用。
 * 文中还列出了若干打码后的 C2 服务器IP地址


虽然文章中通篇没有提及 TheMoon 的名字，但是恶意代码的二进制特征一致，可以判定是 TheMoon 家族。另外，文章中还将攻击行为追溯到具体人，但是这部分的归因过程没有给出具体分析过程，故而这部分的结论待考。


2016-10-20 Fortinet 的 Bing Liu 在 TheMoon A P2P botnet targeting Home Routers 中分析了当时的 TheMoon 恶意代码变种。文中提及了一些新特性：


 * P2P 特性：代码中集成了P2P 特性（但不成熟，也未启用）
 * C2通信协议：详细的分析了恶意代码的 C2 通信协议
 * 下载服务器：hxxp://78.128.92.137/.nttpd
 * 若干硬编码的 NTP IP 地址：
   
   * 207.46.232.182 (未显式标注)
   * 82.68.206.125
   * 194.25.252.5
   * 129.6.15.28
   * 129.6.15.28
   
 * 若干硬编码的 C2 IP 地址：
   
   * 185.53.8.22 (未显式标注)
   * 185.56.30.189
   * 217.79.182.212
   * 85.114.135.20
   * 95.213.143.220
   * 46.148.18.154
   


值得一提是，尽管这份恶意代码中集成了 P2P 特性，但相关代码是不成熟的，未能遵循应用密码学最佳实践，存在被接管的可能性。这部分代码特性并未启用，作者与 bot 的通信仍主要主要基于硬编码的 C2 IP

地址。


2017年以来我们观测到的 TheMoon 家族


从 2017年4月 以来，我们开始持续观察到 TheMoon 家族。我们监控到的新变化包括：


 * 样本特征：TheMoon 开始使用压缩外壳，提高安全研究人员分析的难度
 * 感染手段：集成了至少 6 种 IoT 设备漏洞利用手段，扩大感染基数
 * 代理网络：从正向改为反向。感染节点通过咨询上联节点得知需要访问的网页和参数，感染节点上不再直接开放端口。这样我们也无法通过全网扫描的方式来度量僵尸网络的规模。
 * 代理流量：代理网络中流传的流量大致分为有明文和密文两部分，流量均不高。明文部分，经人肉筛选，和色情、赌博、挖矿等内容有关，另有一小部分看起来像门户网站；密文部分的流量推测与电商或者在线邮箱有关。时间分布不明显，似乎24小时都有流量发生。
 * P2P 机制：仍然存在，仍然存在被接管可能，仍然没有启用


C2 IP 地址方面，我们累计观察到以下 IP 地址被攻击者以年为单位长期占用：


 * 149.202.211.227
 * 173.208.219.26
 * 173.208.219.42
 * 173.208.219.50
 * 173.208.219.58
 * 185.53.8.22
 * 185.56.30.189
 * 185.56.30.189
 * 208.110.66.34
 * 217.79.182.212
 * 46.148.18.154
 * 69.197.128.34
 * 85.114.135.20
 * 91.215.158.118
 * 95.213.143.220


值得一提的是之前其他文章中披露的 C2 IP 地址已经被作者放弃使用，但是 185.53.8.22 这个IP地址没有被显式披露，作者就一直使用并未放弃。


感染过程中至少使用了6种 IoT 设备漏洞利用，相关的设备类型和漏洞利用如下：


 * Linksys E-series 的 漏洞利用 ，这是 2014 年首次被批露时使用的漏洞
 * ASUS WRT UDP 9999的 漏洞利用，这是 TheMoon从2015年至2017年主要使用的漏洞利用
 * D-Link 850L的 漏洞利用
 * D-Link 815的 漏洞利用
 * VIVOTEK Network Cameras的 漏洞利用
 * D-Link DIR-890L D-Link DIR-645的 漏洞利用


详细技术分析文档


TheMoon-botnet.pdf


IoC


样本MD5和下载URL


2017-04-02 7bca40bba278b0021a87bcbc35b2e144  hxxp://domstates.su/nmlt1.sh
2017-04-02 70461da8b94c6ca5d2fda3260c5a8c3b  hxxp://domstates.su/.nttpd
2017-04-02 c8f17d7403ac5ff2896a713a7175ed19  hxxp://domstates.su/archi.txt
2017-04-06 bc56979a0b381a791dd59713198a87fb  hxxp://domstates.su/nmlt1.sh
2017-04-06 bc56979a0b381a791dd59713198a87fb  hxxp://domstates.su/archi.txt
2017-04-09 11f060ffd8a87f824c1df3063560bc9e  hxxp://domstates.su/.nttpd,19-mips-le-t1
2017-04-09 c0c1d535d5f76c5a69ad6421ff6209fb  hxxp://domstates.su/.nttpd,17-mips-be-t2
2017-04-09 4d90e3a14ebb282bcdf3095e377c8d26  hxxp://domstates.su/.nttpd,18-arm-le-t1 
2017-08-11 106d9eb6a7c14f4722898b89ccacb17e  hxxp://domstates.su/nmlt1.sh
2017-08-11 6f2fabf40ad39a5738e40dbe2c0a1b53  hxxp://domstates.su/.nttpd,20-mips-le-t1
2017-08-11 b731e5136f0ced58618af98c7426d628  hxxp://domstates.su/.nttpd,19-arm-le-t1 
2017-10-03 9c79b0a54e70cf0a65ba058e57aee6f1  hxxp://domstates.su/nmlt1.sh
2017-10-03 27002860c26c2298a398c0a8f0093ef6  hxxp://domstates.su/.nttpd,19-arm-le-t1 
2017-10-03 54631bbc01b934ee3dbcafdc6055599c  hxxp://domstates.su/.nttpd,18-mips-be-t2
2017-10-05 e2673d513125bcae0865ccf0139cef0c  hxxp://domstates.su/nmlt1.sh
2017-10-05 b8e16a37997ada06505667575f8577d6  hxxp://domstates.su/.nttpd,19-arm-le-t1 
2017-10-05 98c678ee656325b0aee1fe98f2ca6f55  hxxp://domstates.su/.nttpd,18-mips-be-t2
2017-10-09 96219e644bf69ff7359ecc5e9687bcd0  hxxp://domstates.su/nmlt1.sh
2017-10-09 f9d87043d2e99098f35a27237925992f  hxxp://domstates.su/.nttpd,20-arm-le-t1-z
2017-10-09 089d304877930d3dfe232a2e98e63f6f  hxxp://domstates.su/.nttpd,19-mips-be-t2-z
2017-10-14 275cc8ed50368fa72e46551e41824683  hxxp://domstates.su/nmlt1.sh
2017-10-14 7fa47de462e743607eb9a2f93b7193ce  hxxp://domstates.su/.nttpd,20-mips-be-t2-z
2017-10-16 810ea41f35f9fe40855900db9406d7a0  hxxp://domstates.su/nmlt1.sh
2017-10-21 dbf24da7b27c12ae65c98675eb435c81  hxxp://domstates.su/nmlt1.sh
2017-11-12 8ad5b160dd7a976044d6a2dd631efc4b  hxxp://domstates.su/nmlt1.sh
2017-11-12 20f9f7ae0c6d385b0bedcdd618c478dc  hxxp://domstates.su/.nttpd,21-arm-le-t1-z
2017-11-12 53494b8867654d06ea1b5aec0ed981c1  hxxp://domstates.su/.nttpd,21-mips-be-t2-z
2017-11-12 016cc0097560bbbb07b4891256600eb8  hxxp://domstates.su/d8ug.sh 
2017-11-27 2ceb4822e1e0f72e8b88968165d9a99f  hxxp://domstates.su/nmlt1.sh
2017-11-27 057d56b7de1e9460bd13c5c6eafd4559  hxxp://domstates.su/.nttpd,21-mips-le-t1




C2 IP


149.202.211.227
173.208.219.26
173.208.219.42
173.208.219.50
173.208.219.58
185.53.8.22
185.56.30.189
185.56.30.189
208.110.66.34
217.79.182.212
46.148.18.154
69.197.128.34
85.114.135.20
91.215.158.118
95.213.143.220