长老木马二代FakeDebuggerd.B分析报告

作者:董清、王欢、石浩然

 

三个月前,我们发现了潜伏手机多年的木马—长老木马(FakeDebuggerd),它通过替换系统文件/system/bin/debuggerd实现开机自启动,并获得Root权限,使得木马作者可以远程控制用户手机,进行篡改浏览器主页、软件推广等恶意行为,详情请参考我们之前的分析报告[1]

近日,我们又截获了长老木马(FakeDebuggerd)家族的最新变种—FakeDebuggerd.B,它与之前类似,也会替换系统文件/system/bin/debuggerd,在开机自启的同时获得Root权限。同时,FakeDebuggerd.B会解密用户的微信、QQ、Skype的聊天记录,并将之发送给木马作者,它还会盗取用户的WIFI密码、浏览器中保存的密码、系统中保存的同步账户的密码(Hash值),比如Google账户等;此外,FakeDebuggerd.B还会盗取用户手机的短信、通话记录、浏览器历史记录、日程信息、地理位置、基站信息、安装的程序、设备型号和IP地址等等多种信息。

FakeDebuggerd.B一般会伪装成名为“安卓更新”、“系统更新”等名字的程序,在第三方市场,诱惑用户安装。如果用户发现自己的手机里有类似的程序,我们建议用户使用最新版的长老木马专杀工具[2]对手机进行查杀。

一、        FakeDebuggerd.B行为简介

FakeDebuggerd.B感染了用户手机后,就会一直在后台默默的运行,窃取用户的各种隐私,它甚至会隐藏自己的图标,使得用户难以发觉,即使用户重启手机或者重置手机,木马依旧存在于用户手机中,这是由FakeDebuggerd.B的代码流程决定的,具体如下:

  1. 检查自己是否是系统应用(位于/system/app目录下),如果不是,则认为该部手机没有被感染,执行感染流程
  2. 感染手机,主要包括以下几部分
    1. 将病毒APK以及一些用到的so文件复制到system分区的bin或者lib目录,比较特别的是,病毒APK文件会被备份一份,一旦发现病毒APK文件被卸载,这个备份文件又会被安装到系统中。
    2. 将手机原来的/system/bin/debuggerd文件备份为/system/bin/bebugger文件,然后使用APK包中的病毒文件覆盖系统的/system/bin/debugger文件
    3. 将系统中的debuggerd进程强制结束掉,init进程会自动重启debuggerd,病毒文件就会得到运行。
    4. 病毒文件debuggerd会将正常安装的病毒程序静默卸载,然后将复制到system分区的病毒APK启动,这样病毒就成为系统程序,用常规方法不可删除它。
    5. 病毒文件debuggerd创建一个线程,运行/system/bin/bebugger文件(也就是系统原来的debuggerd文件),保证原来的debuggerd中的功能依然可用
    6. 病毒文件debuggerd创建一个线程,每隔30秒钟检查一下病毒APK程序的进程是否存在,如果若不存在,就将步骤a中备份病毒APK重新安装到手机中并启动。
    7. 病毒debuggerd创建一个线程,创建一个socket服务器对本地的57274号端口进行监听,然后再创建一个线程处理socket服务器接收到的指令,该socket服务器可以接受至少4种指令,分别是:
      • 获得手机版QQ的聊天记录数据库(聊天记录的截取和解密在APK中实现)
      • 获得微信的数据库,算出加密key,然后将数据库解密(截取聊天记录在APK中实现)
      • 获得手机版Skype的数据库(截取聊天记录在APK中实现)
      • 获得Android的同步账户的数据库、保存WIFI密码的文件、浏览器已保存的秘密的数据库(截取密码在APK中实现)
    8. 一直监控病毒会使用的几个关键so是否存在,如果不存在,则释放相应的文件
  3. 隐藏应用程序列表中病毒APK的图标
  4. 启动manifest中注册的服务,该服务是病毒的APK恶意行为的主体,病毒APK还注册了多个Broadcast Receiver,这几个receiver中都会启动这个service,同时,病毒APK还会注册一个定时器,每隔5秒钟启动一次这个服务,防止服务被杀掉。
  5. 在病毒APK的服务中,FakeDebuggerd.B实现了基于SMS message的远程控制功能,它会监视收件箱中短信,一旦收到指令,就会调用相应的处理函数,实现相应的功能,有些命令返回的结果,比如盗取的微信、QQ聊天记录,可以通过短信、邮箱或FTP等方式发送出去。

FakeDebuggerd.B支持的远程控制指令有31个,其中,有些指令的功能是一样的,区别只在于通过SMS短信还是通过邮件将指令执行的结果发送给病毒作者,有些功能并没有列在支持列表里,但是实现这些功能的代码已经存在于木马中,所以这里只是按照功能列举一下

FakeDebuggerd.B支持的指令,如下所示:

  • 窃取收件箱中指定条数的短信
  • 窃取指定条数的通话记录
  • 窃取指定条数的通讯录
  • 窃取GPS地理位置,使用百度地图的SDK来实现
  • 窃取浏览器历史记录
  • 打开/关闭WIFI
  • 打开/关闭移动网络
  • 窃取基站信息
  • 更新接收用户信息的邮箱
  • 窃取SD card文件列表
  • 更新自动下载文件安装的FTP服务器地址、端口号、用户名、密码、文件信息
  • 上传指定的文件
  • 向指定的人发送指定的短信
  • 限制用户拨打的电话的配置、列表信息
  • 窃取手机的硬件和系统信息,比如IMEI、IP地址、磁盘剩余空间等等
  • 窃取手机运行的进程的信息
  • 窃取日程信息
  • 窃取手机中安装的软件列表
  • 窃听,使用开源的avcodec lib在so中对环境进行录音
  • 盗取QQ聊天记录
  • 盗取微信聊天记录
  • 盗取Skype聊天记录
  • 盗取浏览器中保存的秘密、WIFI密码、系统同步账户的用户名和密码Hash值(如果有的话)

二、           FakeDebuggerd.B 特色分析

FakeDebuggerd.B中一个比较特殊的功能,是对流行IM工具聊天记录的盗取,目前它支持三款流行的IM — 微信、手机QQ和手机Skype。其中,除了手机Skype的聊天记录是明文存储在数据库文件中,微信和手机QQ的数据库都是加密的,虽然加密的方式不同,但都是非常容易就可以解密的。

微信的文字聊天记录是存放在一个加密的sqlite数据库中,加密方法是使用开源工具sqlcipher,加密的密钥是根据本机信息和用户信息算出来的一个值。不论是老版本(4.x)还是最新版本(5.3)的微信,使用的都是同样的方法。FakeDebuggerd.B就是使用了这种方法实现了微信数据库的解密,盗取用户的聊天记录。

image1

 image2

另外一个流行的IM工具是手机QQ,手机QQ的聊天记录使用了一种自定义的对称加密算法,密钥是根据本机信息算出的一个值,比较特别的是,较老的手机QQ版本,比如QQ2012(v3.x),和比较新的版本,比如QQ2013和最新的v4.7版,加密算法有了稍微的变化。FakeDebuggerd.B考虑到这种情况,对算法做了适配,支持目前流行的所有手机QQ版本,对用户的个人聊天记录和QQ群聊天记录进行窃取。

 image3

FakeDebuggerd.B还能盗取系统中保存的WIFI密码、浏览器中保存的密码。由于Android系统的设计缺陷,这些密码都是以明文的方式保存着系统的文本文件或者数据文件中的。木马一旦获得Root权限,很容易就能从中拿到密码。值得一提的是,在最新几个版本的Android系统中,默认浏览器被换成了Chrome, FakeDebuggerd.B还不能对Chrome中保存的密码的盗取。但是,无论PC版还是移动版的Chrome,密码都是明文存储的,黑客想要盗取是轻而易举的事情。

 image4

 image5

三、      解决方案

目前,我们已经独家发布了专杀工具,下载地址是:

http://msoftdl.360.cn/mobilesafe/shouji360/360safesis/FakedbgKiller.apk

该专杀工具可以彻底清除FakeDebuggerd长老木马,同时建议用户从正规渠道下载手机应用,比如Google Play市场、360手机助手等。如果遇到病毒反复出现等异常现象,及时向我们反馈。

四、      结语

由于各种各样的原因,手机并不是很安全的,系统的一些关键信息,比如连接WIFI的密码、浏览器中保存的密码、访问网页的历史记录等等,都是明文存储在系统中的;微信、手机QQ等应用的聊天记录虽然经过加密,但只是加密算法很简单,很早在网上都已经公开,一旦用户中了手机木马,这些隐私信息很容易就被盗取。所以,我们强烈建议用户不要将一些关键信息,比如银行卡账号、密码等,通过微信、手机QQ等方式发送,软件一定要从正规渠道下载,安装360手机卫士和360手机杀毒,对手机进行全面的防护。

五、           参考

    1. FakeDebuggerd Android rootkit分析报告 by 申迪

http://blogs.360.cn/360mobile/2014/03/06/fakedebuggerd-android-rootkit/

     2. 长老木马专杀工具

http://msoftdl.360.cn/mobilesafe/shouji360/360safesis/FakedbgKiller.apk