分析移动伪基站程序

样本来源

通过10086发送的诈骗短信

文件与自动分析报告

恶意软件分析 & URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析

分析工具

  • jadx
  • 魔盾行为分析

分析过程

第一次使用魔盾这个东西,感觉是挺好用的。

首先,关注包名,这肯定不是中国移动的,有这东西的可以卸载了。

之后看MainActivity能看到

那么,就是com.phone2.stop.activity.MainActivity,所以去跟进这个类

能看到执行了几个函数然后初始化了一个字符串,跟进分析


C0058h.m510a

这个函数里面

调用StringBuffer,然后自认为很聪明的初始化了4个字符h~mx,从自动分析的报告上看到这个地方是des密钥,虽然还没看到哪里是des,但是至少说明这个app还有分析的价值,那就继续往后看吧


getPackageManager().setComponentEnabledSetting(getComponentName(), 2, 1)

这里是开了个啥,但是我并不会写apk所以只能先搁置,大概理解为开启了某个权限


C0058h.m511a

检查是否

是否初始化手机号码,之后

所以在第一次启动的时候没有初始化手机号,那么就会返回false执行if中的语句

取得手机号,同理应该也是默认手机号

然后C0002f.m9a(C0051a.m360a(context).mo740d()),能发现使用了函数mo740d()这个是获取默认手机号,然后传入m9a()这个函数是使用DES加密获取到的手机号然后存入sharedpreferences,这时的DES的key为123456

然后在这里就有个巨大的bug,我也不清楚程序员是咋想的

能看到上图的m580a这个函数,是相当于hexdecode函数,传入的数据即为获取到的数据,也就是手机号,那么在手机号的情况下手机号为11位不满足偶数位,他也没有填充,而且如下图所示,除了手机号用了这个方法,邮箱号和邮箱密码也用了同样的算法,那么邮箱号中特殊字符如@就是没法转换的,所以这里一定会报错的鸭

写了个程序,可以自己测一下

import java.io.*;
class test  
{
        public static void main (String[] args) throws java.lang.Exception
        {
                System.out.println(bytesToHex(m580a("165")));
        }

        public static byte[] m580a(String str) {
        byte[] bytes = str.getBytes();
        int length = bytes.length;
        byte[] bArr = new byte[(length / 2)];
        for (int i = 0; i < length; i += 2) {
            bArr[i / 2] = (byte) Integer.parseInt(new String(bytes, i, 2), 16);
        }
        return bArr;
    }

    public static String bytesToHex(byte[] bytes) {  
        StringBuffer sb = new StringBuffer();  
        for(int i = 0; i < bytes.length; i++) {  
            String hex = Integer.toHexString(bytes[i] & 0xFF);  
            if(hex.length() < 2){  
                sb.append(0);  
            }  
            sb.append(hex);  
        }  
        return sb.toString();  
    }
}

所以每次还是获取的默认值?想保存的数据一个都没存进去?这程序员可能思维跟我们不一样吧。。。。。。

反正依次调用的函数为:

  • 初始化接收短信的手机号[是一个沈阳的手机号]
  • 初始化发邮件的邮箱号[是163邮箱]
  • 初始化收邮件的邮箱号[和发邮件的是同一个]
  • 初始化发邮件邮箱密码
  • 初始化endtime?[这里有点迷的就是难道这个东西还会自己停的嘛]

之后判断是否发送手机信息[phone_info],如果没有发过就通过手机号发送手机信息

也就是通过SMS发送手机基本信息到接收短信的手机号上

发送之前还会把一部分关键词改个写法,估计是bypass基站检测吧,但是换句话说,基站检测有这么弱的吗?

发送之后马上调用函数C0002f.m12b

删除刚刚发送的SMS信息


C0008d.m72a

随之调用这个函数启动多线程

这里的C0008d.m75d是发送所有手机短信到接收邮箱,当短信同时包含

这两个东西的时候就不发了?

然后C0008d.m76e是发送通讯录联系人到接收邮箱,当联系人包含

这两个任意之一的时候也不发了?

有张三没李四,有悟空没八戒。。。。。。。。。我的思维是跟不上的


在MainActivity的最后是

貌似就跟他写的一样就是询问提高这个程序的权限吧

然后会在如下图所示的函数回调得到的结果,并且发送结果


调用m445b创建启动服务

应该是启动服务吧,写的bootservice

启动的服务会监听短信接收动作,并且在自己启动的时候启动第二个服务SecondService

看事件函数onDestroy里有启动自己的操作,估计就是不让这么轻易的关闭这个服务,而且在SecondService里面也能看出这个第二个服务是个deamon,专门保护第一个服务的


在第一个启动的服务里会调用两个函数,m321am322b

也就是这两个函数注册了监听短信的操作

到此为止应该就是差不多分析完了,这里面还有邮箱账号密码,有兴趣自己

诈骗信息公示

  • 手机号:1653**98033
  • 邮箱:1653*****33@163.com
以上就是蓝域安全网为您带来的,分析移动伪基站程序大家以后一定不要轻易的下载第三方程序

然后今天是中元节,要不 我我 蓝域小编跟个风??各位中元节嗨皮?如果 有女孩子怕怕的
请联系小编,嘿嘿嘿?

本篇文章链接地址:http://www.yemogege.cn/nxxg-jswz/337.html

版权保护: 本文由admin所发布,转载请保留本文链接: http://www.yemogege.cn/nxxg-jswz/337.html

免责声明:蓝域安全网所发布的一切渗透技术视频文章,逆向脱壳病毒分析教程,以及相关实用源码仅限用于学习和研究目的
请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除! 

侵权删帖/违法举报/投稿等事物联系邮箱:yemogege@vip.qq.com 网站地图