伴随着手机的全面普及和移动互联网的发展,以移动终端为平台的攻防对抗也愈演愈烈。针对日益升级的恶意代码检测技术,恶意攻击者的反查杀手段相应也在不断变化应对。早在2015年,安天移动安全就发现一例利用C#编写以逃避查杀的恶意代码,并对其进行了技术分析。

  近日,安天移动安全联合猎豹移动安全实验室又捕获一例类似的病毒,该病毒使用MonoDroid框架进行开发(MoniDroid是以C#语言和部分.Net基类库为核心,使用mono虚拟机为Android平台开发应用的代码框架),MonoDroid框架开发的特点是开发者编写的逻辑代码都会最终编译在dll文件中,而不是常规的dex文件中,因而常规的反病毒检测手段对这类应用一般都会失效。此外,该病毒使用了知名应用Telegram的Bot进行通信,相较于传统的C&C域名通信具有极强的隐蔽性。安天移动安全团队联合猎豹移动安全实验室对其进行了深入分析并发布技术报告,全文如下。

一、样本信息

二、静态分析

  首先从AM文件中,可以看到该病毒申请了一系列与窃密行为相关的权限:

  此外,在AM文件中还看到其注册了各种receiver用来监听系统消息。

  深入查看一个用来接收当有电话打入时的receiver,在该类中我们并未发现一些实际功能代码。在onReceiver函数中,其直接将Context和Intent转交给了一个native方法n_onReceive,然而尴尬的是在这个类中,我们并没有看到有loadLibrary的so文件,而这其实利用的是Mono框架实现的。

  在dex文件中其他的几个类也都存在类似的情况:

  MainActivity也是如此:

  从以上静态分析中,可以了解到该病毒dex文件中基本没有实质性的代码,这里的原因主要来源于MonoDroid框架允许开发者在.Net平台使用C#进行开发,而这意味着我们基本不可能在dex文件中有所得。

三、恶意行为分析

  该病毒的核心恶意模块为google.tools.dll文件,通过对该文件进行反编译后获得该病毒的核心恶意行为。该病毒的整体攻击流程如下图所示:

Step1:自我隐藏并初始化Telegram Bot

  当用户安装应用后,该病毒首先通过MainActivity的onResume()方法,弹出虚假提示框告知用户该程序无法运行并自动卸载,卸载完成后自动隐藏图标,为后续的恶意行为不被发现做好铺垫。而这也是当前常见的恶意代码自我隐藏的主要方式。 隐藏完毕后,该病毒启动下述服务,首先进行了语言识别,针对非英文语言环境会默认显示波斯语。

  mainservice中包含部分组件设置、绑定以及Telegram Bot API(后文简称TBA)模块的初始化相关的行为:

  值得一提的是,该病毒设置了定时器对相关核心恶意服务是否存活进行监控,如果挂掉了,就重启之。

  此外,该病毒还另外注册了两个Telegram的消息回调函数。在这里再次暴露了其通过利用知名应用Telegram提供的框架实现某些重要功能的意图:

Step2:远程控制设备

  在此之前我们也曾发现过一些使用TBA进行通信的样本,本次发掘的样本基本采用纯TBA进行通信,该病毒的远控的行为设计的十分完备,关键操作(文件增删、关键服务的启闭、关机重启被控端、卸载自身等)都需要主控端二次确认操作,分发起操作和确定操作两步。在文件管理功能方面基本上做到了PC端的远控的水平,集合了文件预览、上传、下载、移动、重命名等诸多功能。对于被控端的短信,来电等内容,在主控端可以做到“消息实时推送“级别的接收响应,另外这些功能都可以通过主控端随时进行开闭操作。同时主控端可以控制被控端设备的关机、重启(该功能需要被控端是已经被root的设备,该病毒自身不拥有提权功能),主控端可以随时发起被控端卸载该病毒、实时开启摄像头拍照、实时屏幕截图(需root)、获取实时地理位置信息。

  总的来说这款病毒在软控功能上设计的十分完善,主控端和被控端的可以进行灵活的交互,这点大大区别于其他普通的Android病毒,这在一定程度上得益于TBA提供的各种完善的网络传输方法。

  android.os.CTRLCB类的CTRLMESS()方法中包含了所有控制指令,整理如下。基本上所有上述指令中具体相关功能都在android.os.DoWork中有所实现。

Step3:Root模块检测

  由于远控行为中包括的远程开机、重启、屏幕截图等功能的实现需要设备的Root权限,因此在相关功能执行前,该病毒会先进行Root模块的检测,确认设备是否已经Root。如果已Root,则通过申请Root权限进行相关恶意行为的实施:

Step4:设置定时操作

  该病毒还特别创建了定时操作线程,按照规定的时间间隔进行恶意行为的执行,定时操作分别为:每小时执行对所窃取的隐私信息存放的缓存空间的释放工作;每五秒执行一次,检查采集地理位置的Service是否还在工作:

  而上述定时执行的线程还负责对获取到的隐私信息的定时上传:

Step5:监控亮屏行为激活守护主恶意服务

  亮屏动作的捕获主要是为了实现对主恶意服务mainservice的存活守护,结合上述的定时执行线程以及定时服务探活和激活的逻辑,都足以看出该病毒开发者对保护自我服务的“用心”:

Step6:其他隐私信息窃取

  (1)窃取手机图片

  通过onStartComand方法,启动一个服务去定时获取手机存储中的所有图片类型的文件:

  该病毒专门对此服务设置了定时器去进行“服务守护”,如果服务挂掉,重启之。

  **(2)监听短信模块 **

  从+98编码可以看出,该病毒的活动范围为某中东地区。此外,该病毒还会监听短信发送行为:

  **(3)窃取通话录音记录 **

  **(4)利用相机拍照 **

  **(5)获取通讯录 **

  **(6)窃取来电记录 **

  监视网络变化,上传通话记录,守护恶意服务:

  **(7)获取地理位置 **

四、事件分析

  从我们捕获到的样本上来看,该病毒基本上都是伪造的工具类应用,包名google.tools、System.OS也非常普遍,我们很难从这些地方发掘出可能的攻击对象和目标群体属性。 但是根据在应用中出现的波斯语设置以及在短信监听中出现的+98国际区号的线索,我们推测出,该病毒的活跃地区应该是某中东国家。此外,在分析的过程中我们发现了一个疑似主控端Telegram的账号主页:https://telegram.me/Qhack。该主页账号指向的是Telegram的某位用户账号“Qhack”。我们在Telegram上搜索这个用户,结果如下:

  从第二张图片中,我们可以发现这个账号在1小时前还在线,但是个人信息中并没有什么内容,因此推测这可能只是一个用来作为主控端的僵尸账号。 通过样本关联,我们在这批样本的其中一个签名下关联到一种不同的样本,但是都是使用MonoDroid框架编写,类名、方法名命名极为相似,都有伪装卸载后台隐藏图标启动恶意服务的行为,但是编写较为粗糙,虽然也进行了部分隐私信息的窃取,但并未如前面所分析的使用Telegram进行通信,而只是简单的使用http的方式进行通信,通信的IP为148.251.203.5、148.251.32.113,其中一个样本名为“电报技巧”(Telegram的译名就叫“电报”),同样也是活跃在阿拉伯语的使用地区,推测这类样本可能是早期的产物。

  一代样本:

  二代样本:

  从技术手法上来看,使用C#开发Android应用不多见,推测攻击者可能是精于Windows开发的技术人员,当然也不排除是故意为了混淆视听或是规避杀软检测而为之。从代码结构上来看,其模块划分比较明确,组织结构安排的也较为合理,同时其通信过程完全使用TBA,与TBA配合的远控行为逻辑和功能设计也颇有特色,从这些角度看来该攻击组织具备相当不错的技术水平。

五、总结

  该病毒采用C#编写,通过将逻辑代码编译在dll文件中而不是常规的dex文件中来规避常规的恶意代码检测机制。此外,该病毒使用了知名应用Telegram的Bot进行通信,进一步增强了其隐蔽性。这说明恶意开发者有一定的反查杀意识和能力。在此基础上,该病毒建立起了一套完整的远程控制体系,涵盖了各种远程控制恶意行为,包括对各种设备硬件信息采集、文件管理(文件和文件夹预览、移动、删除、重命名、上传、下载)、短信实时监控、通话记录实时监控,以及截屏、通话录音、图片、账户、和地理位置实时获取、远控摄像头拍照等等,极大程度上侵犯了用户的个人隐私信息安全,具有非常强的危害性。

  对此,安天移动安全联合猎豹移动安全实验室已实现对该病毒的检测查杀,建议用户安装猎豹安全大师等集成安天移动反病毒引擎的安全产品,定期进行病毒检测,保护个人信息安全。

原文出处: http://blog.avlsec.com/2017/12/5020/tba/

移动端C#病毒“东山再起”,利用知名应用通信实现远控隐私窃取相关推荐

  1. DocuSign网站用户资料泄露,病毒团伙利用邮件疯狂作恶

    本文讲的是DocuSign网站用户资料泄露,病毒团伙利用邮件疯狂作恶, 一.综述 近期,火绒安全实验室发出警报,著名的美国数字文档签署平台 DocuSign的用户正在遭受病毒邮件的攻击,该平台在全球拥 ...

  2. 热门游戏遭病毒团伙利用,中招者电脑被远程操控

    最近,宅宅听说一个朋友和游戏里认识了两个月队友奔现脱单了,还有这种操作?闲(xiang)来(zhao)无(dui)事(xiang)的宅宅准备找几个网游玩玩. 打开某个2017热门网游排行榜,宅宅发现排 ...

  3. 新Astaroth***病毒可利用杀毒软件窃取数据

    一种新的Astaroth***病毒被赋予了利用杀毒软件和服务中易受***的进程的能力.Cybereason的Nocturnus研究团队周三在一篇博客文章中表示,这种病毒能够利用网络安全软件中的模块来窃 ...

  4. 利用知名站点欺骗挂马

    利用知名站点欺骗挂马 网络上有许多"钓鱼(Pushing)"式攻击,通过各种手段诱骗上网者浏览恶意的网站,导致各种网银或游戏帐号密码丢失.同样的,钓鱼式攻击也被用在欺骗性传播网页木 ...

  5. ping 命令_命令PING背后发生了什么,记得Windows XP拒绝利用PING命令通信吗

    首先了解PING命令,PING是Windows.Unix和Linux系统下的一个命令,当小伙伴们检查网络情况的时候,先使用的命令肯定是PING命令.PING也属于一个通信协议,是TCP/IP协议的一部 ...

  6. 删除网络信息服务器端,网络安全:手动清除gh0st远控服务端

    手动清除gh0st远控服务端 为什么我们要手动清除***呢? 我们在做免杀或者在对gh0st大的修改的时候或者后门被意外破坏,不能用客户端自带的清除,这个时候就需要手动来清除.特别是我们在对一台肉鸡进 ...

  7. java远控_利用Java实现远程控制

    利用 Java 实现远程控制 摘 要: 介绍了远程控制地原理 , 详细地叙述了利用 Java 实现远程控制软件地程序设计方法和要点 , 并给出了要点地具体实现方法 . 关键词: 远程控制: Java ...

  8. ryu---北向接口(利用socket对外通信)

    一.原理 最近有人问ryu控制器如何实现与应用层(如web.app等)的通信,实际上,实现通信就需要利用SDN的北向接口,关于SDN的北向接口,各种文章的解释不一,难以理解.实质上,北向接口实现的功能 ...

  9. 移花接木大法:新型“白利用”华晨远控木马分析

    360安全卫士 · 2015/05/28 5:11 0x00 前言 "白利用"是木马对抗主动防御类软件的一种常用手法.国内较早一批"白利用"木马是通过系统文件r ...

最新文章

  1. mysql zerofill 性能_比较详细的MySQL字段类型说明
  2. 注册表收藏夹任你玩(4招)
  3. MongoDB和Redis区别
  4. 网络工程师人手必备!常用网络命令合集请收下
  5. 龙芯2k按键中断驱动_外部中断按键驱动
  6. 【渝粤题库】国家开放大学2021春3607矿井瓦斯灾害防治题目
  7. makefile之通配符(4)
  8. NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目
  9. [单选题]对下面的表达式描述正确的是: (T/t)(M/m)
  10. 实用工具网站(经纬度、短链接、图片格式转换、长微博、图片压缩、uuid、繁体字、md5破解)
  11. Atitit 开发效率的提升艺术 艾提拉著 目录 1. 主要几个层次上简化开发 2 1.1. 管理创新 2 1.2. 开发体系方法使用简单方法 2 1.3. 技术选型使用简单框架模式 2 1.4.
  12. 无向图的邻接表表示法
  13. 黑客帝国「缸中之脑」真的可以,这100万个「活体人脑细胞」5分钟学会打游戏...
  14. 如何用计算机求一个正数的算术平方根,《用计算器求一个正数的算术平方根》教学设计...
  15. html微信投票,微信投票报名h5系统制作
  16. sudo: /etc/sudoers.d 可被任何人写
  17. 永磁同步电机矢量控制(四)——速度环 PI 参数整定(二)
  18. 战地1如何修改服务器,战地1修改服务器地址
  19. python同花顺自动交易软件下载_GitHub - touzi-platform/THSTrader: 量化交易。同花顺免费模拟炒股软件客户端的python API。(Python3)...
  20. 基于Qt的酒店管理系统(毕业设计)

热门文章

  1. SAP 质检使用非物料基本单位
  2. (转)Sql中的constraint
  3. AD 画图 镜像翻转元器件
  4. python input()与raw_input()
  5. 梯度下降法和随机梯度下降法的区别
  6. Python进阶_wxpy学习:异常chu'li
  7. Python:Selenium错误小结
  8. xhost display 详解
  9. Ubuntu 14.04 分区方案
  10. android 实训的背景,Android实训项目作业.doc