再谈Burp破解

0x01 Java反编译工具

Java反编译提供了在线的反汇编方式,同时也给出几款反编译工具作为参考,罗列如下:
1. Procyon
https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler
2. CFR
http://www.benf.org/other/cfr/
3. JD
http://jd.benow.ca/
4. Fernflower
https://github.com/fesh0r/fernflower
5. JAD(非开源)
http://www.javadecompilers.com/jad

0x02 反编译BurpLoader

在Mac为了方便,我直接使用Jd-gui来载入Burploader.jar,但是很显然的能看到已经经过了混淆了。转换成字节码打开,如下:

根据乌云Drops的资料来看,混淆的算法依旧没变是Zelix KlassMaster(http://www.zelix.com/klassmaster/index.html),这个提问中同时提到了一些其他的 混淆器(http://stackoverflow.com/questions/13098606/decompiler-bytecode-and- obfuscators)。在参考链接Defcon的议题中也提到了这个混淆器的特征。我们这里用DirtyJoe(http://dirty- joe.com/)来帮反混出ZKM加密的字符串信息,使用其的Py脚本(http://dirty-joe.com/help /python_scripting.php)。
打开DirtyJoe载入Burploader.class(先解压Burploader.jar),然后宣导Method的标签栏,中间有两项没有名字 的函数clinit,往下找可以找到ZKM的加密Key.然后在Constant Pool中找到加密过的常量的值,右键选择Run Python Script,载入ZKM的解密脚本,并修正Py代码中的Key值,则可以解出加密串的内容,如图所示:

依次解出加密串,并尝试还原程序流程。我们来对比一下目前能下载到且没有混淆过的BurpLoader的代码(http://pan.baidu.com/share/link?shareid=442575&uk=2466540631),删减部分常量:

再来对比我们混淆过的,且解出了字符串的版本(这里是1.6.37的Burp)。

0x03 BurpLoader源码分析

经过对比,整理出差不多的反汇编后的代码:

从以上代码可以看出,BurpLoader的新版本破解BurpSuite的方式依旧没有发生改变,还是通过反射机制修改相关Burp类的成员变量 值来固定检测环境,同时写入Key来实现的。只不过比之前的版本,多了通过md5等方式来判断要启动的Burp主体是否是对应的版本。

0x04 使坏
原谅用了这么一个2B的小标题,Raphael Mudge牛曾在自己的Blog上写过(http://blog.cobaltstrike.com/2013/09/05/how-to-crack- cobalt-strike-and-backdoor-it/)如何破解自己的产品并加后门。事实上在BurpLoader中加上一点dirty code也是很容易的,然后再各大论坛或者某F传播出去也是能收获一批灰阔的,显而易见的例子是(http://it.rising.com.cn /dongtai/18192.html),堪比二十世纪出头灰阔圈子中各大XX联盟和XX技术小组了。最后感谢乌云Drops带来的好文章,多学习多实 践,有机会也去感受一把逆向Burp。

参考:
http://neeao.com/an-obfuscated-java-class-decompiler-algorithm
http://www.iteye.com/topic/851544
http://drops.wooyun.org/tips/2689
https://www.defcon.org/images/defcon-15/dc15-presentations/dc-15-subere.pdf
http://www.contextis.com/resources/blog/automating-removal-java-obfuscation/
https://boredliner.wordpress.com/2014/02/07/cracking-obfuscated-java-code-adwind-3/
http://www.the-playground.dk/index.php?page=zelix-klassmaster-string-encryption
http://blog.csdn.net/stevenhu_223/article/details/9286121
站内相关文章参考《对burpsuite_pro逆向的一点心得
【via@DarkRay】 注:昨天疏忽忘记给本文添加原文链接,这里向DarkRay同学道歉。:P