(翻译)FakeKaKao木马分析

这是暑假时看到的一篇病毒分析文章,觉得里面有很多东西值得学习,刚好这几天有空就将它翻译了出来。有不对的地方请大家指正!

FakeKaKao木马分析

Virus Bulletin是一个关于流氓软件垃圾邮件防护、侦测以及移除的杂志。它经常给出一些关于最新病毒威胁的分析,发表探索反病毒领域的最新进展,采访反病毒的专家,并且评估现存的反病毒产品。

1 假冒的KaKaoTalk安全插件分析

Android/FakeKaKao木马将自己伪装成一个KaKaoTalk安全插件,以诱导用户安装。一旦用户安装了这个插件,它就会监视收发的短信,发送垃圾短信,收集敏感信息并提交到远程服务器。更加严重的是,它组合了反调试和反模拟器跟踪的功能,这样就使得一些安全软件失效。并不同于其他恶意软件,此木马的dex文件主要作为一个加载器存在。在本文中,通过剖析此恶意软件的行为,我们将会看到一些调试和分析的方法。

1.1 APP加载器

加载器注册了3个组件:MainActivity, ActionReceiver以及MoriService。MainActivity用于启动一个精心设计的用户接口来误导用户,如图1所示:

ActionReceiver用于接收android.intent.action.USER_PRESENT广播,当设备被唤醒的时候,系统会发送此广播。为了确保尽可能早地接收到此广播,该恶意软件将此Receiver的intent filter权限值设为0x7fffffff。当一个广播到达的时候,MoriService组件就会在后台启动,此服务的调用方法在本地库libEglsv1.so中。为了顺利地运行此恶意软件,它请求了如下权限:


• READ_SMS

• READ_CONTACTS

• READ_PHONE_STATE

• SEND_SMS

• WRITE_EXTERNAL_STORAGE

• WRITE_SMS

• INTERNET

• RECEIVE_SMS

1.2 反调试和JNI初始化

启动了的service首先加载libEglsv1.so到恶意软件的进程地址空间。当一个库被初始化的时候,它就会尝试检测它是否正在被调试或运行在模拟器中。如果发现了两者之一,就会设置一个反调试和模拟器的标记,用于过后的操作:


• strace

• ltrace

• android_server

• gdbserver

• gdb

• tcpdump

• ro.kernel.qemu

• /system/bin/qemu-props

• /system/bin/qemud

完成初始化工作之后,它会通过RegisterNatives注册6个native方法。然后调用SetJNIEvn方法来初始化JNI环境变量,此变量用于调用其他的native方法。但是,如果反调试标记为真,那么剩下的native方法就什么也不做,以防止安全人员的分析。图2展示了native方法的注册过程:

1.3 C&C通讯

恶意软件收集被感染设备的用户私密信息,然后使用AES-192算法加密这些信息。在将这些加密信息发送到远程服务器之前,它先从加密的config.js文件中提取远程服务器的列表,这个文件包含在APK文件中,也使用AES-192加密。更加巧妙的是,它不仅仅加密了这个配置文件,还使用调用uncompress API解压远程服务器列表。图3展示了解密后的服务器列表:

在上图中,我们可以看到两个服务器信息条目:第一个用于网络测试;另一个才是真正的C&C服务器信息。

收集到的信息将会被分割为两部分,我们将之称为ID部分和MD部分。ID部分包含如下信息:


• id IMEI

• token product brand and model

• target build version

• rd flags existence of /system/bin/su or /system/xbin/su

• fo  compromised phone number

MD部分包含如下信息:


• md same as id

• fo  compromised phone number

• ds  contact name and number list

恶意软件首先向远程服务器发送ID部分,用以注册受感染的设备。如果服务器返回数据‘0’,那么它就会发送MD部分。如果返回为‘1’,就不会发送。图4展示了一个样例:

然后,它从远程服务器中请求过滤规则。这些规则用于过滤接收到的短信和SMS数据库。恶意软件使用下述的关键字来筛选信息:


• plist  matches phone number of message

• klist  matches message content

• blist  matches nickname of message

• allmsgs  spam message content

• snumber  specific phone number by malware

• smsg  message which is sent to snumber

• allmsg  another spam message content

• checked  flag, sends spam message or not

• unlock   flag, stores the contact  list or not

图5a和5b展示了一个过滤规则的事例:

恶意软件会记录此service每次启动的时间,当service下一次启动的时候,它就会重新发送收集到的信息,并且如果交互时间间隔大于30分钟的话,还会请求新的过滤规则。

1.4 监视短信

为了监视短信,软件会首先通过registerReceiver注册一个新的广播receiver。然后它将receiver的intent fileter的权限值设为0x7fffffff,以确保其拥有最高的接收优先级,进而在第一时间处理短信。无论短信什么时候达到,软件都会使用上面提到的规则进行过滤——比如,匹配电话号码,搜寻消息内容等。软件还将调用abortBroadcast方法来防止它感兴趣的消息被发送给其他低优先级的receiver。

为了监视SMS数据库的变化,软件通过registerContentObserver注册了一个内容观察者。无论数据库什么时候发生了变化,它都会采用类似于检测短信的方式检测每一条消息。

无论匹配的消息来自于receiver还是observer,软件都会加密它们并发送至远程服务器。并且只要receiver或observer被触发,软件都会重新发送收集到的信息,并请求新的过滤规则。

1.5 发送短信

是否发送垃圾短信是由过滤规则中的关键字"checked", "allmsgs", "allmsg"的值决定的。如果"checkes"值不为0,并且"allmsgs"或"allmsg"不为空,软件就会向联系人列表中的每一位联系人发送垃圾短信。发送垃圾短信的间隔时间是40秒。如果受感染的设备号码为空,它会就发送关键字"smsg"的内容到有关键字"snumber"指定的号码中。另外,它也会从本地数据库中删除自己的发送短信记录,以销毁证据。

1.6 自我保护机制

在这一部分,软件尝试将FOTAKILL.apk安装到/system/app/folder目录下。FOTAKILL是一个第三方应用程序,用来阻止FOTA(Firmwate Over-The-Air 更新服务)。其实FOTA的初衷是用来防止更新固件后清除用户已经获得的特权,如root权限。为了安装这个APK,软件通过getuid来检测用户的UID。如果UID是root,它就会读取/data/system/packeges.list文件,这个文件记录了设备上所有已经安装了的APK信息。如果此列表包含任意下述安全相关的字符串,它就会通过"pm disable"命令来关闭这些软件:


• com.avira.android

• com.antivirus

• com.kms

• com.wsandroid.suite

• com.qihoo360.mobilesafe

• com.ijinshan.duba

• com.tencent.qqpimsecure

• com.anguanjia.safe

• com.lbe.security

• com.netqin.mobileguard

• com.avast.android.mobilesecurity

• com.estsoft.alyac

• com.lookout

• com.zoner.android.antivirus

• com.symantec.mobilesecurity

• com.drweb.pro

• com.drweb

• com.drweb.pro.market

• com.symantec.mobilesecurity

• com.symantec.monitor

1.7 分析方法

众所周知,在Android平台使用native编码的一个坏处就是它会增加应用程序的复杂度。此软件就是使用了这个特性通过增加逆向分析的难度,从而达到保护自己的目的。调试native库的一个通用方法就是attach调试器到目标进程。但是,在这个案列中,我们可能无法attach到进程,因为此应用程序已经运行过了我们想要下断点的地址。所以,我们需要知道如何在我们想要调试地址下第一个断点。最简单有效的方式就是使用一条单指令进入无限循环状态。在我们想下断点的地址处,可以使用一个无条件跳转指令代替我们原来的指令。鉴于native库是基于ARM架构的,所以更改后的指令格式如下:


Set


Formate


Byte code


THUMB


1110  0XXX  XXXX  XXXX


FE  E7


ARM


1110 1010 XXXX....XXXX


FE  FF  FF  EA


译者注:将自己想要下断点地方的指令换成上面的 byte code即可完成  {B 自己}指令,这就实现无条件无限跳转了。

不用重打包修改后的 APK,我们只需要使用adb替换掉当前库即可。下面分析人员就可以逐步分析病毒了。

时间: 2024-11-03 22:41:32

(翻译)FakeKaKao木马分析的相关文章

火眼病毒木马分析

1,木马分析 最近服务器中招了,破windows. 找到了一个木马分析云端软件.火眼,网站是: https://fireeye.ijinshan.com/ 可以分析不知道是不是木马病毒. 金山出品的,挺有意思的.估计是在服务器上面开了一个虚拟机,然后对虚拟机进行监控,再分析下. 分析windows 执行文件的报告,很详细直观. 2,可以分析apk文件 这个比较有意思,可以分析下apk文件是否安全. apk软件运行效果: 这个比较好了,现在手机apk软件这么多,要是随便下载了一个万一有病毒就虾米了

蝗虫手机木马分析报告

一.主包分析 包名:com.example.xxshenqi 应用名:XX神器 MD5:5956C29CE2E17F49A71AC8526DD9CDE3 主要恶意行为:遍历联系人后群发短信,使恶意木马再次扩散传播:伪造钓鱼页面,诱骗用户注册填写个人信息,导致隐私泄露:安装恶意子包. 权限: 程序入口 点击应用图标启动 遍历手机中的通讯录,获得联系人姓名及号码,并向这些号码发送内容为“[联系人]看这个http://cdn.yyupload.com/down/4279193/XXshenqi.apk

蝗虫手机木马分析

一.主包分析 包名:com.example.xxshenqi 应用名:XX神器 MD5:5956C29CE2E17F49A71AC8526DD9CDE3 主要恶意行为:遍历联系人后群发短信,使恶意木马再次扩散传播:伪造钓鱼页面,诱骗用户注册填写个人信息,导致隐私泄露:安装恶意子包. 权限: 程序入口 点击应用图标启动 遍历手机中的通讯录,获得联系人姓名及号码,并向这些号码发送内容为“[联系人]看这个http://cdn.yyupload.com/down/4279193/XXshenqi.apk

云控木马分析

附件地址 http://yunpan.cn/cweSZX8T4k9Tz  访问密码 a865 先跑跑流程: 发先会创建一个spoolsc.exe,并且创建该进程以及修改注册表,访问网络操作,以及删除自身 木马分析: 通过GetModuleFileNameA()函数获取当前被加载文件路径(即木马的路径) 1: 00402466 56 push esi 2: 00402467 57 push edi 3: 00402468 68 04010000 push 0x104 4: 0040246D 68

[翻译]mongodb日志分析工具mtools之mplotqueries

mtools是一组非常好用的mongodb日志分析工具,里面最复杂的命令是mplotqueries,上网查了一下,还没有人翻译过.英文不好,费了好大的劲翻完,翻的不好,但没有办法,我英文水平就这么多~ 原文地址:https://github.com/rueckstiess/mtools/wiki/mplotqueries ----------------------------------------------------------------------------------------

反病毒攻防研究第007篇:简单木马分析与防范part1

一.前言 病毒与木马技术发展到今天,由于二者总是相辅相成,你中有我,我中有你,所以它们之间的界限往往已经不再那么明显,相互之间往往都会采用对方的一些技术以达到自己的目的,所以现在很多时候也就将二者直接统称为"恶意代码".这次我打算用两篇文章的篇幅来讨论病毒与简单的木马相互结合的分析与防范方法.本篇也就是第一篇,讨论的是利用只有服务器端的木马程序实现"病毒"的启动.而在下一篇中,我会讨论既有服务器端又有客户端的木马程序与"病毒"相结合的分析与防范.

孟加拉央行SWIFT攻击事件恶意木马分析(转)

第一章 分析概述 该恶意木马样本为运行于winodws平台上的PE文件(名称:evtdiag.exe).文件大小为64KB,编译时间是2016年2月5日. 经分析,该样本为定制的攻击SWIFT客户端程序的恶意木马程序,未做加壳和代码混淆处理,主要功能是与本地的SWIFT客户端软件Alliance交互.该木马以windows服务形式运行,通过遍历读取SWIFT客户端软件Alliance安装目录下的配置文件和交易记录文件,从而获取Alliance的重要授权等配置文件.通过监控Alliance软件的收

"Chinad"木马分析

  摘要 事件起因: 前一段时间国外网站曝出一个中国的受害者来执行DDOS的一个木马-Chind,在该木马准备长攻击前,会先检测用户是否使用360,如果检测到就会停止攻击.这里就对该木马行为进行详细报告 木马危害: 该木马长期潜伏在用户电脑中,使用户变肉鸡,在适当时候会对指定目标进行攻击(攻击时间由发起者决定),对被攻击目标进行DOS攻击.大量的肉鸡同时对一个目标发送大量数据,会导致被攻击目标网络瘫痪,而对于中招用户来说一旦被攻击的网站对攻击事件进行追查,能查到的直接源头就是这些无辜的中招用户

Rombertik木马分析

1: start /d "C:\Documents and Settings\Administrator\Application Data\rsr" yfoye.exe 木马行为分析: 1.先跑跑行为-发现会创建几个文件 2.新生成文件分析 yfoye.bat –启动yfoye程序 1: start /d "C:\Documents and Settings\Administrator\Application Data\rsr" yfoye.exe fgf.vbs