0×01.钓鱼短信
前几天仿冒中国电信的钓鱼程序,似乎风风火火,今天给大家分析一个中国移动的钓鱼程序。
首先通过冒充10086发送短信,引导进入网站,进去后除领取选项别的都不能点,然后引导输入关键信息,
页面为用积分换取RMB的信息
此处选择银行卡,但可以填入任何错误的信息,当然很有可能部分用户会填写真正的信息。
填写完储蓄卡信息后,就会让你下载apk,进行激活。
0×02:安装APK
在应用中,无法删除此软件
在设备管理器里,可以看到软件已经激活了。
0×03:APP分析
1.首先看AndroidManifest.xml中定义了两个receive:
1、第一个用于监听“android.app.action.DEVICE_ADMIN_ENABLED”,即监听设备管理器激活状况
2、第二个“android.provider.Telephony.SMS_RECEIVED”,即监听收到的短信。
整个APK的结构比较简单,只有两个receive的程序
由于代码不能用jd-gui打开,只能看smali了,MainActivity中没有太多内容,主要定义了手机号。
2. 监听“android.app.action.DEVICE_ADMIN_ENABLED”的是FssAdmin.smali,其中存在两个函数onDisabled和onEnabled
onDisabled函数的作用是“当从设备管理器里面把单选框勾除时,发送短信提示:软件被取消激活;服务终止!”
onEnabled函数的作用是“当从设备管理器里面勾上单选框时,短信提示:
软件打开并激活成功;服务开始!到期时间2015-10-1 00:00:00”
3.监听“android.provider.Telephony.SMS_RECEIVED”的代码是SmsReceive.smali,
关键代码和注解如下
当然还使用了abortBroadcast()来阻断手机接收短信,因为在AndroidManifes.xml中定义了程序的优先级是1000,所以终止后,手机是不会收到短信的。
最终就是将短信发送出去了
现在,我们梳理下次钓鱼程序的流程:
发送钓鱼信息诱使手机用户访问钓鱼网站—>部分用户贪便宜,填写了真正的银行卡信息—>APK劫持发送到用户手机上的短信—>黑客此时已经拥有了账号、密码和手机验证码,从而顺利登录网站。
总结:地球太黑暗,到处都是黑客。大家保重!