新版burp-loader-keygen-2.jar
2019-10-15 17:26:15 Author: mp.weixin.qq.com(查看原文) 阅读量:5 收藏

之前写过一篇:


《浅析旧版burp-loader-keygen.jar》

http://scz.617.cn:8/misc/201909271517.txt

本文是其后续。


surferxyz的keygen一直支持到Burp 2.0.11beta,终于在2.1版时失效。这是因为2.1版Burp注册算法有变,包括但不限于:


1)License格式有变,包含SHA256签名,旧版keygen没有生成相应字段。

2)不再调用库函数进行关键的大数运算,而是自己实现大数模幂、大数比较,相当于inline展开。这使得旧版keygen针对compareTo()的修改不会起作用。


总的来说,2.1版注册算法整体结构与更早版本相比没有变化,比如DES密钥、大数n等等都沿用旧值。


提供一个新版keygen:

http://scz.617.cn/private/burp-loader-keygen-2.jar
http://scz.617.cn:8/private/burp-loader-keygen-2.jar


burp-loader-keygen-2.jar不是从源码编译来的,是在burp-loader-keygen.jar基础上直接修改而得。


新版keygen与如下版本Burp精确匹配:


这个版本Burp在网上能下到,请自行搜索并校验哈希


新版keygen用法如下:


jdk1.8.0_221\bin\java -jar burp-loader-keygen-2.jar

jdk1.8.0_221\bin\java -noverify -Xbootclasspath/p:burp-loader-keygen-2.jar -jar burpsuite_pro_v2.1.jar


其实可以继续使用旧版keygen生成注册数据,但loader必须用新版:


jdk1.8.0_221\bin\java -jar burp-loader-keygen.jar

jdk1.8.0_221\bin\java -noverify -Xbootclasspath/p:burp-loader-keygen-2.jar -jar burpsuite_pro_v2.1.jar


如有其他疑问,参看旧版keygen的使用说明:

https://www.52pojie.cn/thread-691448-1-1.html

简单说说思路。


既然无法通过Patch compareTo()完成RSA签名校验,干脆动态修改Burp注册流程中的RSA签名校验代码,就跟x86上暴破一样。


为什么动态修改而不是静态Patch?因为需要修改的代码不是以.class文件形式存在于jar包中,是动态释放到内存中、动态加载进来的。并不是说绝对不可能静态Patch,但那样动静太大,要改的地方较多。

如何动态修改?请用任意一款Java反编译器查看burp-loader-keygen-2.jar,未做任何混淆。我在ClassLoader.defineClass()中动态修改了目标class的7个字节,以此绕过Burp的RSA签名校验。和surferxyz一样,我未做混淆,请自行围观jar包,一般来说7个字节的修改不足以实现明显恶意行为。在哈希匹配的前提下,我为新版keygen的行为背书,相信我个人道德底线的,请放心使用,存疑的,就不要冒这种险了。


为什么用"-Xbootclasspath/p:"?仅仅是最大程度重复旧版keygen套路。如果觉得不爽,换成ClassFileTransformer或其他什么技术手段也是可以的。

不清楚Burp是否有反破解暗桩存在,使用者风险自负。只在Windows+Java 1.8.0_221上测试过,其他OS、其他Java版本如有问题,不要找我,请自行Patch ClassLoader。

关于Spider模块到哪里去了,参看:

https://portswigger.net/blog/burp-2-0-where-are-the-spider-and-scanner

旧版keygen可以通杀1.7至2.0.11beta,新版keygen只能用于2.1,目前看,很难再有通杀型loader,后续只能"case by case"。


发现Burp 1.6版注册流程中直接出现了"burpr0x!"的byte[]形式,看来旧版keygen的"burpr0x!"源自于此。我在前一篇文章中猜测过是否源自暴力穷举,想多了。


需要说明的是,2.1版Burp已有larry_lau的破解,一直以来不断有人质疑之,未分析过他的helper,不做评价。


前几天有网友私下提供了:


一是人家没说可以再分享,二是这个版本我不太想剁。等有下面这个版本时或许会继续提供匹配的新版keygen:

提供keygen是将之视为Java逆向工程挑战,有购买能力者建议购买正版Burp。

从技术原理上讲,可以不需要keygen、利用loader直接破解成功,之所以搞成现在这种略显复杂的的局面,就是简单地想向旧版keygen的作者致敬,也向所有"永远充满好奇心的人们"致敬。

http://scz.617.cn/misc/201910151519.txt

http://scz.617.cn:8/misc/201910151519.txt


文章来源: http://mp.weixin.qq.com/s?__biz=MzUzMjQyMDE3Ng==&mid=2247484189&idx=1&sn=6be19582eb15dcc4c9c2b6cadd7adc0e&chksm=fab2c022cdc549344b5f26220306dc088a3fe708768853858dfe5ffe90b597ab00b50ec1038b&mpshare=1&scene=24&srcid=&sharer_sharetime=1571131575405&sharer_shareid=5191b3dcb328f693d5261ba6bca8d267#rd
如有侵权请联系:admin#unsafe.sh