转载

解密“智魁”攻击行动

一次有组织精心打造利用一系列路由器漏洞、后门、密码破解进行渗透攻击行为。阿里安全研究团队将对整个事件的攻击链条和利益关系进行详细分析,包括威胁情报分析的部分结果。

解密“智魁”攻击行动

事件背景

近日阿里安全研究实验室捕获一种专门针对家庭路由器的蠕虫样本,为此我们小组进行了将近一个多月的跟踪和分析工作,布设专门针对此次攻击事件的密罐,捕捉样本和定位核心攻击向量,乃至威胁情报收集和全球受害节点的评估,我们对此次事件命名为“智魁行动”。

这是一次有组织精心打造利用一系列路由器漏洞、后门、密码破解进行渗透攻击行为。本报告将对整个事件的攻击链条和利益关系进行详细分析,包括威胁情报分析的部分结果。

捕捉过程

早在5月份我们在捕捉到”蜥蜴”黑客组织的DDoS攻击样本的时候,就已经发现智魁积极活跃中,我们的蜜罐系统捕捉到一些通过Telnet服务的口令猜解的攻击渗透片断。

解密“智魁”攻击行动

最终我们通过改造蜜罐系统完整的捕捉到这一攻击行为,如下图所示。

解密“智魁”攻击行动

解密“智魁”攻击行动

以上网络行为的功能我简单解释一下,telnet登录进来受害者设备里面后通过echo的方式把数据写入到.drop文件中,并且修改.drop文件为可执行,运行的结果写入到.nttpd文件中去,然后删除.drop,之所以这样做的意图有几点,一是针对很多嵌入式设备并不内嵌wget和tftp工具,如何下载恶意文件到设备里面可谓是煞费苦心,通过echo的方式把数据写入到文件里面,二是有检测自己是否在沙盒里面,echo通过判断是否有回应来确认自己是否在沙盒里面。写入到.drop文件里面的数据只有620字节,他只是一个下载者,并不真正具有恶意应用的功能,从下图可知这是一个MIPS硬件体系的小字节序的程序。

解密“智魁”攻击行动

解密“智魁”攻击行动

解密“智魁”攻击行动

该程序通过syscall的方式直接调用API,Linux O32 syscalls编号参考链接,通过连接远程IP的3894端口进行数据收取,该IP并不是C&C通信服务器,而是另一个被感染的受害者的IP,如下图所示。

解密“智魁”攻击行动

接受完数据后写入到.nttpd中,删除.drop文件,运行.nttpd进入驻留模式和C&C服务器进行通信,真正功能性的部分才算开始,下面我们将介绍智魁的整个系统架构和攻击向量,感染模型。

智魁DNA

通过上述的捕捉过程我们其实已经了解到智魁部分的传播感染过程,Telnet服务密码破解并植入恶意代码,而且是针对MIPS小字节序的硬件设备,通过一些手段我们最终捕捉到的样本如下:

.nttpd  42008Bytes  md5sum:  5aa0a6851af8ae8f16965e88dd43ce7f                      .nttpd  42072Bytes  md5sum:  7ca9f378ca7650d79b478595df2d2681 .dis    87724Bytes  md5sum:  7f5c0f1b66276eb9f800a172a43cdb8e .dis    87980Bytes  md5sum:  3cd420d189bfebc1f6a7a0740b854cf1 .sox    67940Bytes  md5sum:  6c4136738317cd62f5b1c8b1429c1c2c .tel     89556Bytes  md5sum:  e99336a14f792948a9f76a4577b7cf13

C&C服务器列表(远程命令与控制服务器)

解密“智魁”攻击行动

功能解析:

.nttpd(daemon) 驻留进程,负责心跳功能和C&C指令执行 .dis(distribute) 利用路由器漏洞入侵新的节点,负责传播感染路由器植入.nttpd .tel(telnet)     利用telnet服务进行密码猜解,负责传播感染路由器植入.nttpd .sox(socks)     把受害节点做成socks代理,当成垃圾邮件分发的中转站

解密“智魁”攻击行动

所有的样本使用同一套代码框架,代码精简,模块化功能强,运行起来后都删除自身样本实体,所有的样本基于uclibc库,使用buildroot开发,所以样本在glibc环境下是无法运行的。

解密“智魁”攻击行动

任务线程栈模型

解密“智魁”攻击行动

接下来我们将详细描述各个模块的功能和行为。

3.1.nttpd行为分析

.nttpd是一个驻留进程(daemon),主要功能是接受C&C指令执行相应的操作,主要功能和行为如下:

解密“智魁”攻击行动

(1) 修改本地iptables策略,允许C&C节点和本地受害者节点通信,不允许23端口通信,防止反复感染。

解密“智魁”攻击行动

(2) 监听本地UDP端口4193,并和C&C节点UDP 4193端口进行心跳和指令接受操作,一般指令是从C&C节点的TCP 3593端口下载.sox样本到本地执行,把受害者作为一个socks代理转发垃圾邮件。

解密“智魁”攻击行动

解密“智魁”攻击行动

3.2.sox行为分析

.sox是通过.nttpd和C&C节点下发的功能性样本,主要功能就是把受害节点变成一个socks代理,供垃圾邮件服务器通过它转发垃圾邮件,它主要的功能如下。

(1) 本地监听UDP 3209端口和C&C进行通信,告之受害节点已经成为socks代理,本地监听一个TCP端口用于socks代理通信,该TCP端口不固定,生成算法与受害者IP有关,生成算法如下:

把IP地址拆分成两个无符号短整型数a和b

if a^b<10000: c=((a^b)+10000)&0xffff elif a^b>65001:      c=65000 else:   c=10000

(2) 释放可执行文件.sox.rslv用于socks解析域名。

(3) C&C节点主动请求连接本机的socks端口进行www.google.com网站的代理访问,判断受害节点是否能够访问google网站。

解密“智魁”攻击行动

(4) 接下来就开始进入真正的垃圾邮件模式,垃圾邮件服务开始让受害都转发垃圾邮件,主要传播的是色情和广告网站。

解密“智魁”攻击行动

我们收集到的垃圾邮件服务器列表如下:

解密“智魁”攻击行动

3.3.dis行为分析

.dis是整个智魁系统的传播和感染的模块,也是使用攻击向量最多的模块,利用路由器的漏洞来随机扫描感染有漏洞的路由器节点,.dis运行后zlib解压里面的数据写入到.dis文件并运行起来,它功能模块如下。

解密“智魁”攻击行动

(1)监听本地TCP端口3344,如果有tftp进程并杀掉。

(2)释放文件.dis.infosrv到本地,其实也就是.nttpd。

(3)利用华硕路由器漏洞CVE-2014-9583入侵新的节点。

该漏洞详情可参考地址https://github.com/jduck/asus-cmd,华硕路由器的infosrv服务监听UDP 9999端口,存在一个可以远程执行任意命令的漏洞,如下所示利用该漏洞受害者将从攻击者的TCP 3344端口下载.nttpd并执行。

解密“智魁”攻击行动

(4)利用Linksys路由器远程执行任意命令的漏洞入侵新的节点。

关于该漏洞的详情可以参考地址 https://exchange.xforce.ibmcloud.com/vulnerabilities/91196

解密“智魁”攻击行动

解析上述请求如下:

解密“智魁”攻击行动

通过该漏洞可以让受害者设备从攻击者TCP 3344端口下载.nttpd到本地并执行,并且关闭80和8080端口的访问。

(5)利用TP-Link路由器后门进行远程任意代码执行。

TP-Link路由器后门详情请参考http://sekurak.pl/tp-link-httptftp-backdoor/。通过http Get请求如下链接userRpmNatDebugRpm26525557/start_art.html,路由器将会从请求者的设备上的tftpd服务去下载nartout并执行,这个nartout其实就是.nttpd

解密“智魁”攻击行动

(6)漏洞利用成功后的IP地址结果会写入文件.dis.discov,并且允许受害者IP访问攻击者的TCP 3344端口进行.nttpd驻留程序下载,这样做的目的为了样本的隐蔽性,被攻击节点想从攻击者节点下载样本是不允许的,被感染的节点植入.nttpd后将通过iptables禁止80,8080端口访问。

3.4.tel行为分析

.tel样本也是传播感染模块,不过方式跟.dis漏洞利用不一样,主要是通过telnet服务密码猜解来达到恶意代码植入的目的,这个密码字典的使用比较有意思,有简单的,也有非常复杂的,我们猜测这个密码表的来源可能是利用了路由器的rom0的漏洞收集得来,网上有开放的工具可以自动化的扫描这些路由器并收集里面的密码。.tel样本使用的密码表如下:

解密“智魁”攻击行动

我们之前提到的.nttpd样本的捕捉就是通过这个telnet服务密码猜解的方式捕捉到的,实现过程如下。

解密“智魁”攻击行动

(1)tnbf任务(telnet brute force)telnet服务暴力破解随机产生IP。

破解成功后,通过echo的方式写入620字节的数据到.drop文件,并且把攻击者IP写入,受害者直接从这个IP下载.nttpd并执行。

解密“智魁”攻击行动

(2)攻击者监听3894端口,.drop运行起来后就从攻击者监听的3894端直接下载.nttpd恶意样本。

(3).tel.discov存储暴力猜解Telnet密码成功的节点,它们是可以从攻击者的3894端下载.nttpd样本的,其它的IP是不行的。

(4)修改iptables策略禁止外界访问受害者telnet服务。

情报收集

通过已知的一些样本信息和C&C节点信息,配合阿里大数据分析,我们发现了一些关于智魁行动的一些线索,得出包括其生命周期以及组织活动相关结论。

4.1.生命周期

通过阿里云安全大数据分析团队的协作,我们发现其中几条关于C&C节点活跃的记录,从而得出了相应的结论。

1.     2015年1月购置服务器

2.     2015年1月底上线v1测试版

3.     2015年4月中上线v1正式版并开始大规模活动

4.     2015年4月底v1的攻击payload和样本被人提交上VirusTotal

5.     2015年5月底完成v2版的开发并开始分发感染

阿里云安全大数据中心在4月27号发现了一条C&C http GET请求的记录,该链接是

http:// 10x.xxx.xxx.xx/xxxxx/rev12.sh,通过分析发现其上线的时间戳是2015年1月26日。

解密“智魁”攻击行动

这个rev12.sh的内容如下,用于下载恶意样本。

解密“智魁”攻击行动

下载的.sox的样本应该是在2015年4月17日左右上线的。

解密“智魁”攻击行动

这两个样本至今只有一家能够检测出是恶意的。

解密“智魁”攻击行动

而与此同时在4月30号晚上,也有人在VirusTotal上提交了这两个样本,这正是利用了Link sys路由器的一个远程命令执行的漏洞进行感染进行恶意样本下载执行。

解密“智魁”攻击行动

4.2.组织追踪

通过我们在阿里云数据上面的记录发现一些网络连接行为,可以确认该组织在山西省晋城市活动的痕迹。

1. 智魁的C&C节点频繁与在阿里云上一台主机的固定端口频繁连接,怀疑这个IP 12X.XX.XXX.XXX跟这个组织有关联。这个IP在阿里云上面,购买者地址在山西运城市,但后来经过分析,这是一个游戏服务器,排除与之可能关联。

2. 经过流量分析,我们定位该组织成员曾经于2015年6月2号下午2点16分出现在山西省晋城市黄花街附近,并于6月份上旬在上海逗留。

3. 最终定位该组织成员姓名余XX,家住河南省信阳市浉河区。

4.全球受害节点分布和受害厂商列表

智魁行动的受害设备多为使用雷凌ralink WIFI系列SoC芯片组(2011年被MTK联发科收购),路由器产商华硕使用的最多。

解密“智魁”攻击行动

5.1.受害节点分布

我们提供蠕虫的识别特征,通过阿里安全扫描器团队的一轮扫描的结果显示,被入侵和被控制的节点分布如下:

解密“智魁”攻击行动

5.2.受害厂商列表

部分受害厂商列表(排名不分先后):

1. 华硕

2. Linksys

3. TP-Link

4. 西默科技

5. 同洲电子

6. Totolink

7. 星网锐捷

检测与防御

通过一些手段我们是可以很好的防御此类蠕虫的攻击的。

6.1 防御建议

(1)更新路由器的固件,修改telnet服务的默认登录密码,使其强度增大。

(2)检测路由器是否存在以上提及的漏洞,如果有且没有更新固件修补,请设置防火墙访问策略,过滤对公网对9999,80,8080端口的访问。

(3)如果确认被感染,重启路由器将是清除蠕虫最快的办法,然后进行上述补救措施。

6.2检测建议

现在暂时只能通过检测.sox通信协议的方式进行远程扫描检测。

结论

这是我们迄今为止捕捉到的一个真正意义上针对嵌入式智能设备攻击的真实案例,利用多种攻击向量对路由器进行渗透入侵,并且通过分发垃圾邮件来获利,从其样本的代码风格和整个架构上看是一个非常有经验的组织所为,而且有和跨国黑客组织合作的可能。

关于作者

谢君,资深安全专家,就职于阿里巴巴安全研究实验室,负责嵌入式设备、智能家居、物联网设备等智能设备的安全研究,监测、分析攻击威胁并提供解决方案。

*本文作者:阿里安全-谢君,转载须注明来自FreeBuf黑客与极客(FreeBuf.COM)

正文到此结束
Loading...