首页
社区
课程
招聘
[原创]Reqable = charles + Brida
发表于: 2023-5-21 21:21 12180

[原创]Reqable = charles + Brida

2023-5-21 21:21
12180

先上一张图,UI 效果相当炸裂,这是用 flutter 进行开发, 无论是性能上还是 UI 上体验感上都非常好.目前还在内测阶段。地址 : https://reqable.com/download/ 。小 Tip :小黄鸟也是这个作者写的哦 !!!

这个是最新的抓包工具, 目前支持抓 Web 、IOS、Android 三段抓包,平台也是全适配,Android 和 IOS 正在开发阶段,预计年底上线。

为什么要介绍这款工具呢?笔者主要是做移动端逆向,平常的抓包工具组合一般是 charles + VPN 。但是苦于不能写脚本头疼了好久,前面还用了 BurpSutie 的 Brida ,但是难用程度简直是地狱级,笔者配置花了一个晚上也没有配置好,最后只剩下放弃了。
见到这款抓包工具的时候,看到它可以写脚本,马上就行了实践,因为 reqable 的作者做 web 的测试比较多,对移动端甚少,所以算是第一个吃螃蟹的吧。
以前抓了一个包,无论是 Request 和 Response 都对 body 进行了加密,想结合着看收发包的情况,真的是抓耳挠腮。

上图便是使用 reqable 进行的 APP 抓包,前提需要把它的证书放到系统目录下。我们同样可以用 VPN 的方式进行抓包,代理端口是 9000 , VPN 和 HTTP 都可以用这个端口,后台会根据协议的类型自动进行识别并捕获流量。
接下来就是写脚本动态的进行数据解密,我们参照 Brida ,用 RPC 的方式进行解密,目标 APP 是一个颜色 APP ,内容太炸裂,这里就不放了。
定位到解密的地方,是一个静态方法,APP 的解密代码

先 Hook 拿到 Key 和 测试的数据,对 RPC 代码测试 ,成品代码:

 

js 的脚本 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function decrypt(hexdata){
    return new Promise(resolve => {
        Java.perform(function main(){
            let C1567 = Java.use("android.support.v4.\u1079");
            var key = "132f1537f85scxpcm59f7e318b9epa51"
            var value = C1567["\u1546"](key,hexdata)
            resolve(value)
        })
    })
}
 
rpc.exports = {
    decrypt: decrypt
}

reqable 的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from reqable import *
import frida
import json
 
script = None
 
def on_message(message,data):
    print(message)
 
def decryptData(script, data):
    return script.exports.decrypt(data)
 
def load():
  devices = frida.get_usb_device()
  session = devices.attach("cn.nvlee.cmpguw")
 
  filepath = r"C:\Users\Administrator\Desktop\scripts\script.js"
  with open(filepath) as f:
    jscode = f.read()
 
  script = session.create_script(jscode)
  script.on("message",on_message)
  script.load()
  return script
 
# 请求
def onRequest(context, request):
  script = load()
 
  data = json.loads(str(request.body))["data"]
  result = decryptData(script, data)
  print("request result => ", result)
 
  # Done
  return request
 
# 响应
def onResponse(context, response):
 
  script = load()
 
  data = json.loads(str(response.body))["data"]
  result = decryptData(script, data)
  print("response result => ", result)
 
  # Done
  return response

一起来看看解密的效果吧:

 

下个月这款软件就上线了,敬请期待吧


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 3
支持
分享
最新回复 (10)
雪    币: 3004
活跃值: (30866)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
6
2023-5-22 09:03
1
雪    币: 507
活跃值: (1742)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
frida attach还是怪耗时的,要追求速度的话,安卓端开个http服务做联动感觉更快
2023-5-22 09:12
0
雪    币: 5165
活跃值: (9677)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
4
Fiddler不挺好用的。。。
2023-5-22 09:19
0
雪    币: 6084
活跃值: (5490)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
5
看上去还是挺不错的,记下了,感谢分享!
2023-5-22 09:48
0
雪    币: 1447
活跃值: (2694)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
mitmproxy不好用嘛
2023-5-22 10:13
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
能否用脚本调用抓包结果?
2023-5-22 12:12
1
雪    币: 2114
活跃值: (3791)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
可以抓tcp udp吗
2023-5-24 00:15
0
雪    币: 64
活跃值: (3959)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9

那你可能还没用过这个 https://github.com/rev1si0n/lamda 

2023-5-25 16:57
1
雪    币: 2141
活跃值: (4522)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
seeeseee frida attach还是怪耗时的,要追求速度的话,安卓端开个http服务做联动感觉更快[em_63]
要依赖frida的hook调用解密,光http服务还是不行。
2023-6-26 17:04
0
雪    币: 2141
活跃值: (4522)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
fiddler调用App方法解析这方面还是不行,不过可以搭建hook rpc服务配合fiddler脚本,这个算是整合在一起了。
2023-6-26 17:06
0
游客
登录 | 注册 方可回帖
返回
//