-
-
[原创]超积分兑换木马2.5倍,新型短信劫持木马幽默王解析
-
发表于: 2014-12-26 16:37 7338
-
阿里钱盾--梦遗
前期积分兑换短信木马非常猖狂,央视曾因此过广泛报道提醒用户,近日阿里钱盾又发现了一款功能相似的短信劫持和转发的木马“幽默王”,但其日传播量是前期爆发的积分兑换服务和假冒掌上营业厅的2.5倍和1.5倍。 目前阿里钱盾已经第一时间实现该病毒的查杀。以下是病毒的整体解析
主体行为分析
1、 图标为一个典型的安卓程序默认图标
2、 程序运行后的截图如下
从其Manifest.xml中可以看到,程序执行的入口是在类WebActivity中
WebActivity的onCreate方法如下:
findViews方法的本质,是加载了百度搜索的首页,以此用来迷惑用户,以便木马在后台运行程序。
3、 回头看manifest.xml文件的其他内容,发现该程序静态注册了如下action的过滤
从图中不难看出,除了对短信的发送进行监听之外,还监听了开机启动完成广播,以及一个发送短信的监听。所有这些功能都是在SMSReceiver中实现的。该方法主要有如下功能:
1) 先判断是否是系统启动完成的action,如果是,写入事件日志,并启动程序。
2) 如果不是系统启动完成的action,则继续判断是否是短信接收的action,如果不是,最后再判断是否是自定义的短信发送action。通过分析发现,若此时的action为SENT_SMS_ACTION,则判断发送返回状态,根据不同的返回结果,将事件写入到日志。日志的格式为:yyyy-MM-dd HH:mm:ss.SSS.txt,例如2014-01-01 02:32:32.650.txt,这样文件名就不会重复。注意:程序这里对需要过滤的action的字符串进行了base64加密处理,这样在程序中不出现明文,也算是逃避杀毒软件特征码查杀的一种方式。
加密后的action及其他信息如下:
3) 如果步骤2中,不是短信发送的操作,此时程序会转到另一个流程,会做4件事情:a. 启动一个线程,将手机中的所有短信,发送到远程服务器。b. 拦截接收短信广播,并将接收到的短信内容发送到多个手机号。c. 再次将拦截到的短信发送到远程服务器。d. 将要发送到远程服务器的数据插入到本地数据库中。如下面3副图片所示
目的手机号码及服务器地址:
发送线程及程序SMSManager分析
发送线程主要是从本地数据库中读取之前存入的需要发送的信息,然后将其发送出去。该操作在类SubmitDateThread中实现,其执行入口代码截图如下:
SMSManager的send方法,实质上也是调用了上述所说的发送线程,这不过这里是延迟发送的一个过程。
其他行为及服务分析
1、 动态注册短信监听服务,相关的两个类为SMSApplication和SMObserver,一旦监听到有短信变动,就将该短信插入到本地数据库,随后发送到指定的远程服务器,另外,也发送到其他的几个手机号码。
2、 重启服务。重启服务是在类RestartService中实现的。入口代码调用了两个方法:startFreeToKillService和initData
第一个方法实现了免杀服务,第二个方法实现了一些数据的初始化操作,比如是否是首次启动等。而所谓的免杀,其实是让设置程序在前台运行,以便在低内存的时候,不会被系统干掉。
前期积分兑换短信木马非常猖狂,央视曾因此过广泛报道提醒用户,近日阿里钱盾又发现了一款功能相似的短信劫持和转发的木马“幽默王”,但其日传播量是前期爆发的积分兑换服务和假冒掌上营业厅的2.5倍和1.5倍。 目前阿里钱盾已经第一时间实现该病毒的查杀。以下是病毒的整体解析
主体行为分析
1、 图标为一个典型的安卓程序默认图标
2、 程序运行后的截图如下
从其Manifest.xml中可以看到,程序执行的入口是在类WebActivity中
WebActivity的onCreate方法如下:
findViews方法的本质,是加载了百度搜索的首页,以此用来迷惑用户,以便木马在后台运行程序。
3、 回头看manifest.xml文件的其他内容,发现该程序静态注册了如下action的过滤
从图中不难看出,除了对短信的发送进行监听之外,还监听了开机启动完成广播,以及一个发送短信的监听。所有这些功能都是在SMSReceiver中实现的。该方法主要有如下功能:
1) 先判断是否是系统启动完成的action,如果是,写入事件日志,并启动程序。
2) 如果不是系统启动完成的action,则继续判断是否是短信接收的action,如果不是,最后再判断是否是自定义的短信发送action。通过分析发现,若此时的action为SENT_SMS_ACTION,则判断发送返回状态,根据不同的返回结果,将事件写入到日志。日志的格式为:yyyy-MM-dd HH:mm:ss.SSS.txt,例如2014-01-01 02:32:32.650.txt,这样文件名就不会重复。注意:程序这里对需要过滤的action的字符串进行了base64加密处理,这样在程序中不出现明文,也算是逃避杀毒软件特征码查杀的一种方式。
加密后的action及其他信息如下:
3) 如果步骤2中,不是短信发送的操作,此时程序会转到另一个流程,会做4件事情:a. 启动一个线程,将手机中的所有短信,发送到远程服务器。b. 拦截接收短信广播,并将接收到的短信内容发送到多个手机号。c. 再次将拦截到的短信发送到远程服务器。d. 将要发送到远程服务器的数据插入到本地数据库中。如下面3副图片所示
目的手机号码及服务器地址:
发送线程及程序SMSManager分析
发送线程主要是从本地数据库中读取之前存入的需要发送的信息,然后将其发送出去。该操作在类SubmitDateThread中实现,其执行入口代码截图如下:
SMSManager的send方法,实质上也是调用了上述所说的发送线程,这不过这里是延迟发送的一个过程。
其他行为及服务分析
1、 动态注册短信监听服务,相关的两个类为SMSApplication和SMObserver,一旦监听到有短信变动,就将该短信插入到本地数据库,随后发送到指定的远程服务器,另外,也发送到其他的几个手机号码。
2、 重启服务。重启服务是在类RestartService中实现的。入口代码调用了两个方法:startFreeToKillService和initData
第一个方法实现了免杀服务,第二个方法实现了一些数据的初始化操作,比如是否是首次启动等。而所谓的免杀,其实是让设置程序在前台运行,以便在低内存的时候,不会被系统干掉。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [原创]2015移动安全挑战赛圆满结束 20264
- [原创]阿里巴巴发布首份移动安全年度报告 9862
- [原创]超积分兑换木马2.5倍,新型短信劫持木马幽默王解析 7339
- [原创]阿里聚安全技术分享之APK无源码调试 60181
- [分享]聚安全—移动安全沙龙上海专场 7997
谁下载
谁下载
谁下载
谁下载
谁下载
谁下载
谁下载
谁下载
看原图
赞赏
雪币:
留言: