TA的每日心情 | 无聊 2017-9-11 15:40 |
---|
签到天数: 425 天 [LV.9]以坛为家II
|
本帖最后由 wuyan 于 2016-2-28 14:06 编辑
上一帖http://www.ihonker.org/thread-7445-1-1.html。看到90大大说发帖有奖,我这个帖子压了10天了。发出来,很不容易,现在在蹭网,乡下没网苦逼。
在上一篇文章,我们说到过的那个钓鱼网站。对上传进行了分析,里面提到的那个10086.apk,大家还记得吧。上次没啥时间,这次回家好好分析了下apk,当然咯,后面有彩蛋。
拿到apk第一件事情,就是运行看下他的行为,然而很无情地被360给杀掉了。于是关了360了,在电脑上安装一个安卓模拟器。
安装完是一个中国移动图标的应用,当我们点击打开的时候,神奇的一慕出现了。
申请屏幕控制权限,点击激活之后,发现.....................
toast了一个字符串,骚年别急,你真的以为他是卸载了?但是我们的确看不见app了
这种低劣的欺骗手段怎么能骗得了我,果断打开apkkiller分析,apkkiller里面集成了dex2jar,adb,apktool等工具,还是蛮顺手的。
载入之后发现不能还原成java,那没办法,我们硬着头皮上就是了。
3个activity,7个receiver,3个service,以及后面许许多多的权限 READ_SMS(读短信),SEND_SMS(发短信)。首先看下配置信息:
1.隐藏方式
看到程序的入口,第一个运行的activity,里面做了什么?我们进去看下,(当然是smali代码,不是java,代码相当长,逆向大哥可以去看看,只截取关键代码)
里面一个函数a值得注意,
调用getPackManger方法获取一个tPackManger实例,然后调用了MyApplication类里面的b函数,用tPackManger调用getComponentEnabledSetting方法。
把结果传回V2,当v2等于0的时候,跳到cond_0
Cond_0里面主要是setComponentEnabledSetting,里面传入参数,我们查看官方api得知他们的含义
跟踪参数
V2,v3的值分别是 1,2。结合api,我么可得知
那么还原的源代码大概就是
p.setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
里面还有一些goto逻辑,不是很复杂,分析出来的大致代码是
PackageManager packageManager = getPackageManager();
ComponentName componentName = new ComponentName(this, StartActivity.class);
int res = packageManager.getComponentEnabledSetting(componentName);
if (res == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
|| res == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) { packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
} else { packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
PackageManager.DONT_KILL_APP);
}
一段隐藏图标的代码,此后还开启了一个后台服务和一系列BroadcastReceiver(广播接收器)。
总结下mainactivity的主要事件就是隐藏图标,并toast”手机版本不兼容........,,以卸载”来迷惑用户,其实在后台偷偷的开启了一个服务,服务是在后台看不见的,会偷偷的运行。
2.行为分析
跟进服务,跟踪到
干,果然是contentprovider用来获去短信内容,包括
等等,发送人,内容等等信息。同样的还会获取手机联系人。继续
为每件业务开了独立线程。当然还有Mainservice里面也是获取各个铭感信息,并且申请权限。
还有这么多广播接收器,看字面意思就知道检测短信,网络,电话等等实时的变化。后面还有很多很多类,
(邮件的一些设置)
其中一些比较铭感的字符引起我注意,顺藤摸瓜,继续跟踪
这个类里面主要是作者的测试代码,包括判断安卓版本之类的,还有
,果然最后还是被我找到了惊喜。
其中还有一些接收控制者指令做对应的操作,代码比较冗余,不能转化成java,特别费体力,就没看了。
3.总结
这是一款安卓木马,主要收集本机的一些信息,比如短信,手机联系人等等发送到控制者的163邮箱。同时还接受控制者的指令(控制方式为接受短信,然后自动删除控制者发出的指令短信),比如锁屏之类的。其实抓个包,也许就能看到邮箱的密码。(ps:邮箱我并没有登陆成功,可能上次服务器被搞之后,作者改了,不过查到号码是重庆人。
一次格盘钓鱼网站之后引发的深思(续集).docx
(2.69 MB, 下载次数: 12)
再上传附件吧,辛苦的打赏下。
|
评分
-
查看全部评分
|