导语:趋势科技发现了新一轮针对日本、韩国、中国、台湾和香港的网络攻击XLoader,使用DNS欺骗来分发和安装恶意Android app。
一、简介
3月初以来,我们发现了新一轮的网络攻击,目前针对日本,韩国,中国,台湾和香港。这些攻击使用DNS(域名系统)缓存中毒/ DNS欺骗,应用诸如暴力或字典攻击等技术来分发和安装恶意Android应用。趋势科技将其检测为ANDROIDOS_XLOADER.HRX。
这些恶意软件伪装成合法的Facebook或Chrome应用程序。它们是从受污染的DNS域名分发的,这些域名向未知的受害者设备推送通知。恶意应用程序可以窃取个人身份信息和财务数据并安装其他应用程序。XLoader还可以通过设备管理员权限劫持受感染的设备(即发送短信)和维持自我保护/持久性机制。
图1. 伪装的Facebook和Chrome应用的屏幕截图(突出显示)
图2. XLoader感染链
二、感染链
与我们之前在3月底发布的报告一样,攻击链涉及通过破坏和覆盖路由器的DNS设置,将互联网流量转移到攻击者指定的域名。假警报将通知并敦促用户访问恶意域名并下载XLoader。
图 3. 伪造/受控域名上虚假通知的屏幕截图
三、技术分析
XLoader首先从Assets/db中加载加密的payload作为test.dex以释放必要的模块,然后请求设备管理员权限。一旦被授予权限,它将从启动程序应用程序列表中隐藏图标,然后启动后台服务继续运行。后台服务使用反射技术(一种允许检查和修改基于Java的程序内部属性的功能)来调用payload中的com.Loader.start方法。
图4. 通过反射技术调用主恶意模块的代码片段
1.监控广播事件
XLoader会动态地在payload中注册许多广播接收器(用于监控在系统和应用程序之间发送的广播事件)。注册的广播接收器可使XLoader触发其恶意例程。下面是广播操作列表:
· android.provider.Telephony.SMS_RECEIVED
· android.net.conn.CONNECTIVITY_CHANGE
· android.intent.action.BATTERY_CHANGED
· android.intent.action.USER_PRESENT
· android.intent.action.PHONE_STATE
· android.net.wifi.SCAN_RESULTS
· android.intent.action.PACKAGE_ADDED
· android.intent.action.PACKAGE_REMOVED
· android.intent.action.SCREEN_OFF
· android.intent.action.SCREEN_ON
· android.media.RINGER_MODE_CHANGED
· android.sms.msg.action.SMS_SEND
· android.sms.msg.action.SMS_DELIVERED
2.为钓鱼创建web服务器
XLoader创建临时Web服务器来接收广播事件。它还可以在受感染设备上创建一个简单的HTTP服务器来欺骗受害者。每当受影响的设备接收到广播事件(即,如果安装了新软件包或设备的屏幕处于打开状态)窃取个人数据(例如银行app的输入数据)时,它就会显示钓鱼网页。钓鱼网页翻译为韩文、日文、中文和英文,这些资料在payload中进行了硬编码。根据设备上设置的语言,显示的方式会有所不同。
图5. 钓鱼网页屏幕截图(日语)
3.XLoader作为间谍软件和银行木马
XLoader还可以收集与设备中安装的应用程序使用相关的信息。其数据窃取功能包括在收到与SMS相关的广播事件后收集SMS并秘密录制电话。XLoader还可以劫持受影响设备上安装的财务或游戏相关app的帐户。
图6. XLoader记录电话的代码片段
XLoader也可以启动攻击者指定的其他软件包。可能的攻击情况涉及使用重新打包的或恶意版本替换合法应用程序。通过监控软件包安装的广播事件,XLoader可以启动它们。这使得它可以在用户不知情和明确同意的情况下启动恶意app。
对XLoader工程进行了逆向,发现它似乎针对的是韩国的银行和游戏开发公司。XLoader还可以阻止受害者访问设备的设置或使用该国的知名防病毒(AV)app。
XLoader还可以加载多个恶意模块,接收并执行来自其远程命令和控制(C&C)服务器的命令,如下所示:
图7. XLoader恶意模块截图
下面是模块及其功能的列表:
· sendSms——发送短信/彩信到指定的地址
· setWifi——启用或禁用Wi-Fi连接
· gcont——收集设备上的所有联系人
· lock——目前只是设置(pref)文件中的输入锁定状态,但可以用作屏幕锁定勒索软件
· bc——收集来自Android设备和SIM卡的所有联系人
· setForward——目前尚未实施,但可用于劫持受感染的设备
· getForward——目前尚未实现,但可用于劫持受感染的设备
· hasPkg——检查设备是否安装了指定的app
· setRingerMode——设置设备的振铃模式
· setRecEnable——将设备的振铃模式设置为静音
· reqState——获取详细的手机连接状态,包括激活的网络和Wi-Fi(带或不带密码)
· showHome——强制设备回到主屏幕
· getnpki——从名为NPKI的文件夹中获取文件/内容(包含与金融交易相关的证书)
· http——使用HttpURLConnection访问指定的网络
· onRecordAction——模拟拨号音
· call——呼叫指定的号码
· get_apps——获取设备上安装的所有应用程序
· show_fs_float_window——全屏显示网络钓鱼窗口
值得注意的是,XLoader滥用WebSocket协议(在许多浏览器和Web应用程序中支持)通过ws(WebSockets)或wss(WebSockets over SSL / TLS)与其C&C服务器进行通信。作为XLoader C&C的URL隐藏在三个网页中,XLoader连接到的C&C服务器因地区而异。
WebSocket协议的滥用为XLoader提供了客户端和服务之间的持久连接,数据可以随时传输。XLoader滥用MessagePack(数据交换格式)来封装窃取数据,并通过WebSocket协议实现更快更高效的传输。
图8. 一个隐藏了与C&C相关URL的网页截图
图9. XLoader解析C&C URL的代码片段
四、缓解措施
如果Android设备使用移动数据连接,XLoader不会下载恶意应用程序。尽管如此,用户应该保持适当的安全性,以减轻可能利用家庭或商业路由器安全漏洞的威胁。例如,采用更强大的凭据,使其不易受到未经授权的访问。定期更新并修补路由器的软件和固件以防止漏洞,并启用其内置的防火墙。
对于系统管理员和信息安全专业人员来说,配置路由器更能抵抗像DNS缓存中毒这样的攻击,可以帮助缓解类似的威胁。每天用户都可以通过检查路由器的DNS设置来完成相同的操作,即使DNS高速缓存中毒等威胁也使用社交工程,故此用户也应该更加谨慎,以防止可疑或未知的消息具有恶意软件的迹象。
我们已与Google合作,确保Google Play Protect能够主动捕获此类应用。在Google Play中找不到这些应用的实例。
五、IoC
ANDROIDOS_XLOADER.HRX (SHA-256):