吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15915|回复: 34
收起左侧

[Android 原创] 短信拦截马之加密号码分析第二弹

[复制链接]
trirocks 发表于 2015-12-31 16:25
本帖最后由 trirocks 于 2016-1-3 15:02 编辑

短信拦截马之加密号码分析第二弹
0x00 前言
新年快要到了,提前祝大家新年快乐!
在2015年的最后一个下午,有很多话想说,却又不知道从何说起,突然想起了自己早上脑子里忽然蹦出的一个念头:人们常说:“一叶障目,不见泰山”,想必是登高才能望远,多数时候环境确实没有给我们提供登高望远的机会,使得很多事情难以尽兴!但是,突然发现,有的时候,我们看的不远是因为我们处在一个不能让自己看远的道路上,比如在狭窄的山路上行车,人的视线最多也就是20米、甚至10米,这个时候你就不能望远;而在高速公路上,人的视线必须在50米开外,此时你要是只看近处则比较危险!是啊,很多时候,不是你先近就近,你想远就远的,得看你在什么路上!而路,是一个永远也讲不完的话题。。。。。。
扯远了,进入正题。
0x01 变化
书接上回,上次说到MM作者将号码以DES加密的形式隐藏在configure文件中,我们通过逆向其写入configure文件的过程,进而找到其解密过程,获取真正的控制手机号码。
前几天,又获取一个样本,这个样本的基本功能和前一个差不多,区别就是在于加密的方式不同了,而且还呈现了一些新的特性,比如更重要的控制手机号码不再写入configure文件中了,只存在于内存中,这个确实给我们分析带来了巨大不便,看来此次也是煞费苦心啊!不多说,下面直接开始分析,样本在附件,密码52pojie。

0x02 来看看MM的百宝箱
JxB打开样本,依然是从strings列表中找出好多加密后的字符串,以此双击进去,发现在com.phone.stop.db包中有大量的解密写入shared_prefs过程
[Java] 纯文本查看 复制代码
    public String p() {
       this.b.getString("send_email_account","587676AA1B91FA679F7EE717D56D6EAE42C4667D5D21F62B");
        returnC.decrypt("6219472174F9AB559585F776E78FA0FF5012D9884F775E16C24270CC152225F1",C.k);
    }

    public boolean q() {
        returnthis.b.getBoolean("has_set_send_email_account", false);
    }

    public String r() {
        this.b.getString("receive_email_account","A609DC08DE9D6D0DF062B0B68028EE05");
        returnC.decrypt("6219472174F9AB559585F776E78FA0FF5012D9884F775E16C24270CC152225F1",C.k);
    }

    public boolean s() {
        returnthis.b.getBoolean("has_set_receive_email_account", false);
    }

    public String t() {
       this.b.getString("send_email_pwd","A609DC08DE9D6D0DF062B0B68028EE05");
        returnC.decrypt("A609DC08DE9D6D0DF062B0B68028EE05", C.k);
    }
[align=left]
深入到C.decrypt函数,发现是AES加密算法,而且密钥是明文,大喜过望!
[Java] 纯文本查看 复制代码
private static final String CipherMode = "AES/ECB/PKCS5Padding";
    public staticString k;

    static final{
        C.k = "sdtyffdftesfyfdw";
然而,用AES解密工具试了一下不行。

1

1
0x03换一个方向
通过对AES加密算法进行深入研究,发现AES密钥有128、192、256三种长度,但是这个apk用的是哪一种呢?继续分析,发现C类中有一个Createkey函数比较可疑,深入分析一下。
      
[Java] 纯文本查看 复制代码
private static SecretKeySpec createKey(String arg11) {[/align]        byte[] v2;
        byte[] v6_2;
        String v0 = arg11;
        String v6 = v0;
        if(v6 == null) {
            v6 = "";
            v0 = v6;
        }
        super(32);
        String v3 = v6;
        v3.append(v0);
        while(v3.length() < 32){
            v3.append("0");
        }

        if(v3.length() > 32){
            v3.setLength(32);
        }

        v6 = v3;
        try {
            v6_2 = ((StringBuffer)v6).toString().getBytes("UTF-8");
            v2 = v6_2;
        }
        catch(UnsupportedEncodingExceptionv6_1) {
            v6_1 = v6_1;
            v6_1.printStackTrace();
        }

        super(v2, "AES");
        return v6_2;
    }
仔细分析发现,该函数是生成密钥的主要过程,而且对于长度小于32字节的密钥,尾部加上一些0使得长度为32字节,由此,大胆输入解密密钥,果然如此。

2

2

熟悉ASCII码的朋友,一看就知道怎么回事了,而且最后添加的5个05正是AES/ECB/PKCS5Padding的特征,只是这样的解密还看的不爽!那就自己写个解密函数。
0x04解密函数
其实对C类进行仔细的分析,自己写个解密函数还是比较靠谱的,但是本菜实现比较懒(直说编程比较弱就行了,我听见了好多声音!哈哈!),建一个java工程,将反编译的C类拷过去,调试修改一下,注意其中要下载oracle的关于AES密钥长度的补丁,详细请看http://www.cnblogs.com/AloneSword/p/3487809.html。为了安全起见,就不放出源码了,防止有心的朋友进行恶意利用,这里声明,本渣只进行技术讨论,其他种种,本渣概不参与和负责!
看雪有个朋友直接写了个python脚本,佩服!这就不剽窃了!
0x05后记
首先感谢提供AES加解密工具的网友,虽然我们未曾谋面,谢意一定送出!有需要的网友搜索一下去下载,某不敢剽窃产权!
多的也不说啥了,祝大家新的一年工作顺利,步步高升!

短信拦截马之加密号码分析-52破解-第二弹.doc

115.5 KB, 下载次数: 140, 下载积分: 吾爱币 -1 CB

拦截马样本.rar

209.8 KB, 下载次数: 294, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 4威望 +1 热心值 +4 收起 理由
那时花开789 + 1 虽然不懂,但是支持了
The_wolf + 1 不错 虽然写的不是很深入 但是真的挺好的
zoomin + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
qtfreet00 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

小小乖乖 发表于 2016-1-5 16:23
楼主辛苦了,看了楼主的帖子有跟着楼主一步一步的做但是 我用 587676AA1B91FA679F7EE717D56D6EAE42C4667D5D21F62B   迷钥用的是32字节 sdtyffdf  tesfyfdw 00000000 00000000 解密出来的结果是 BF 2F 0A 72 10 40 DD D1 D5 67 9A 32 BF 07 74 52  所有结果都和楼主不一样。希望楼主在百忙之中帮忙下。小白不胜感激。
a983190574 发表于 2016-1-2 03:17

楼主! 我最近要打官司 要收集证据 但研究两天了 给他简单的 修改包名 包括软件名字 和简单的修改 但还是不行 看到你的帖子只能求助你了 把剩下的吾爱币 全给你了 希望能帮到我
II8888 发表于 2015-12-31 19:39
xtvfhpgu2511 发表于 2015-12-31 21:45
顶一个、相当厉害
a983190574 发表于 2016-1-1 02:34
楼主我想请假下 拦截马怎么过杀毒软件?
qtfreet00 发表于 2016-1-1 07:45 来自手机
a983190574 发表于 2016-1-1 02:34
楼主我想请假下 拦截马怎么过杀毒软件?

你想要干嘛
abcshijian 发表于 2016-1-1 07:56
谢楼主分享啊
7angle 发表于 2016-1-1 19:06
楼主可否发个QQ有些问题请教一下
a983190574 发表于 2016-1-2 11:19
楼主 楼主 我用APK改之易  还有那个手机MT编辑器  都不会阿  想请教下阿  你什么时候在线阿
20840833 发表于 2016-1-2 21:19
a983190574 发表于 2016-1-2 11:19
楼主 楼主 我用APK改之易  还有那个手机MT编辑器  都不会阿  想请教下阿  你什么时候在线阿

收集证据 和过杀毒软件有关系吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表