吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 48524|回复: 351
收起左侧

[Android 原创] 意外发现的Android硬核https抓包, 在多个app亲测ok, 自定义ssl也无用哦~

    [复制链接]
ogli324 发表于 2021-3-30 16:53
本帖最后由 ogli324 于 2021-4-21 14:35 编辑

前提条件

一台root手机
frida环境一套
还要会搜索(回复比较慢)

开启抓包

1. 手机中执行 tcpdump
tcpdump -i any -s 0 -w /sdcard/Download/capture.pcap

2. 手机没有tcpdump的
下载地址https://www.androidtcpdump.com/android-tcpdump/downloads
adb push tcpdump /data/local/tmp/ (如果遇到权限不够的,先push到sdcard/ 再移动过去)

2.1在手机中执行给权限
chmod 777 tcpdump

2.2继续执行1
./tcpdump -i any -s 0 -w /sdcard/Download/capture.pcap

hook app拿到sslkey

frida -U -f package -l ./sslkeyfilelog.js --no-pause

// frida 命令选项 更多关于frida信息 可以查看frida官方信息 https://frida.re/docs/home/
C:\Users\User>frida -h
Usage: frida [options] target

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -D ID, --device=ID    connect to device with the given ID
  -U, --usb             connect to USB device
  -R, --remote          connect to remote frida-server
  -H HOST, --host=HOST  connect to remote frida-server on HOST
  -f FILE, --file=FILE  spawn FILE
  -F, --attach-frontmost
                        attach to frontmost application
  -n NAME, --attach-name=NAME
                        attach to NAME
  -p PID, --attach-pid=PID
                        attach to PID
  --stdio=inherit|pipe  stdio behavior when spawning (defaults to “inherit”)
  --runtime=duk|v8      script runtime to use (defaults to “duk”)
  --debug               enable the Node.js compatible script debugger
  -l SCRIPT, --load=SCRIPT
                        load SCRIPT
  -P PARAMETERS_JSON, --parameters=PARAMETERS_JSON
                        Parameters as JSON, same as Gadget
  -C CMODULE, --cmodule=CMODULE
                        load CMODULE
  -c CODESHARE_URI, --codeshare=CODESHARE_URI
                        load CODESHARE_URI
  -e CODE, --eval=CODE  evaluate CODE
  -q                    quiet mode (no prompt) and quit after -l and -e
  --no-pause            automatically start main thread after startup
  -o LOGFILE, --output=LOGFILE
                        output to log file
  --exit-on-error       exit with code 1 after encountering any exception in
                        the SCRIPT
function startTLSKeyLogger(SSL_CTX_new, SSL_CTX_set_keylog_callback) {
    console.log("start----")
    function keyLogger(ssl, line) {
        console.log(new NativePointer(line).readCString());
    }
    const keyLogCallback = new NativeCallback(keyLogger, 'void', ['pointer', 'pointer']);

    Interceptor.attach(SSL_CTX_new, {
        onLeave: function(retval) {
            const ssl = new NativePointer(retval);
            const SSL_CTX_set_keylog_callbackFn = new NativeFunction(SSL_CTX_set_keylog_callback, 'void', ['pointer', 'pointer']);
            SSL_CTX_set_keylog_callbackFn(ssl, keyLogCallback);
        }
    });
}
startTLSKeyLogger(
    Module.findExportByName('libssl.so', 'SSL_CTX_new'),
    Module.findExportByName('libssl.so', 'SSL_CTX_set_keylog_callback')
)
// https://codeshare.frida.re/@k0nserv/tls-keylogger/

将抓包文件拿到pc

将/sdcard/Download/capture.pcap pull 到pc

保存frida输出的打印信息到sslkey.txt(还没做到一键傻瓜化)

// 格式是这样紫的, 不要参杂别的哟~
CLIENT_RANDOM 557e6dc49faec93dddd41d8c55d3a0084c44031f14d66f68e3b7fb53d3f9586d 886de4677511305bfeaee5ffb072652cbfba626af1465d09dc1f29103fd947c997f6f28962189ee809944887413d8a20
CLIENT_RANDOM e66fb5d6735f0b803426fa88c3692e8b9a1f4dca37956187b22de11f1797e875 65a07797c144ecc86026a44bbc85b5c57873218ce5684dc22d4d4ee9b754eb1961a0789e2086601f5b0441c35d76c448
CLIENT_RANDOM e1c1dcaaf73a8857ee60f5b38979084c3e95fdebd9791bbab985a8f954132426 41dcf3d5e41cb469494bf5014a1ecca9f40124f5728895265fadd38f8dc9d5ac15c5fa6588c1ea68f38476297fe76183
CLIENT_RANDOM 66c4f37afb2152e3837c8a7c48ce51e8307e6739e1fe3efc542887bbcae4f02a bbafe4881084570af01bed59f95bfcf7bc49d2e55acbc7fe33c1e06f8ff0bc2e747c2c428e7cd13f1c77c2141085f951
CLIENT_RANDOM 8d0d92154ee030486a2b13f9441f85ef33c5e06732fbb06a1ac81fe34b6f2ce3 8270b34eee784e7f7de45f39af36f26e6abf99bb52fa8350945e3ebf79dc1c53a0693c24b0780ce3a54d39fd4b5b5149
CLIENT_RANDOM b5d58899346db525f14312cfb52c1247ed7adb710ae43428bd331ce27d77dbc1 9effd5b469ef6fdf7a056ea50fc3ff0fdf9fa40ae709805bea8678ddce404f211ed534623876a5c616f3e7bc43121f48
CLIENT_RANDOM af1b3f9ba0b4c27756c93595eb54cac6f0d8c6e9e4f0fcb1a36c45f0cd12060d 696a6fff39bf6c9863901a2145703de948c37e1abf6b4c03628118bee11c292239304ee020c71ff31a293fc6b9439364
CLIENT_RANDOM e2a3d8e6b638976aa27c8cf031be5e6b03cf7ffa573be101816d5103025d404b 2b006379423d7252c864a129b6c5a693b75d477dc5d3f894af5f02db755c4f6dd54470b659882871c62ce002792e211a
CLIENT_RANDOM 1c8cfe911e2111d80dc81c275c791c04467e8d7bca16963acec6a20051429981 bf08334d973d44d80c8f4542c2356a5fd9e0d390afde0374179cc81dd82aaa15aae52604988e9c9616ad0795c79c81ed

打开.pcap文件 进入Wireshark

// Wireshark快速过滤
(http.request or tls.handshake.type eq 1) and !(ssdp)
// 快速参考
// https://www.jianshu.com/p/5525594600db

设置Wireshark tls

[b]编辑--> 首选项--> Protocols--> TLS
1.png
3.png
4.png

选择到tls 后将之前的sslkey.txt导入下。 再使用下前面的过滤命令, 正常情况下, 现在就能正常看到了。
5.png

Wireshark 番外篇

[b]编辑-->首选项-->外观-->布局
设置完这个, 就也和我一样能看到教学图了, 一下子友好很多。
2.png
6.png

pc浏览器sslkey 番外篇

// 一样要把key导入哟, 不然Wireshark怎么会知道呢?
chrome.exe --ssl-version-max=tls1.3  --ssl-key-log-file="./ssl_keys.txt"

致敬大佬

@菱志漪 其实要感谢菱志漪大佬,没有他遇到的问题,我就不会深入去看研究这个问题,还要感谢@肉师傅, 没有陈老师通俗易懂的讲解, 我压根找不到北。 【手动撒花~~~】
错误补充

---2021-4-21更新
需要在在安卓8.0, frida版本12.8.0, 其他版本没测试过, 如果遇到错误, 就跟我一样。 感谢@wddzz 提供的问题。
微信截图_20210421143348.png

参考内容

Wireshark Tutorial: Display Filter Expressions
https://unit42.paloaltonetworks.com/using-wireshark-display-filter-expressions/

HTTPS Traffic Without the Key Log File
https://unit42.paloaltonetworks.com/wireshark-tutorial-decrypting-https-traffic/

The First Few Milliseconds of an HTTPS Connection
http://www.moserware.com/2009/06/first-few-milliseconds-of-https.html

Sniffing HTTPS Traffic in Chromium with Wireshark
https://adw0rd.com/2020/12/2/chromium-https-ssl-tls-sniffing-with-wireshark/en/


免费评分

参与人数 147吾爱币 +127 热心值 +128 收起 理由
Mahoo + 1 + 1 鼓励转贴优秀软件安全工具和文档!
jiajiea + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
guiguiaiwowo + 1 + 1 我很赞同!
stacey0728 + 1 + 1 谢谢@Thanks!
jesse龙宇 + 1 牛13!!!!前几天有个app一直抓不到,差点气死我
HunterVv + 1 + 1 我很赞同!
larf + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
junjia215 + 1 热心回复!
lyousan + 1 + 1 热心回复!
银狮白猫 + 1 我很赞同!
jockin + 1 用心讨论,共获提升!
Xiao_xiao_ye + 1 用心讨论,共获提升!
zqs123 + 1 + 1 我很赞同!
cumber + 1 + 1 其实在手机下个网络监控的app就搞定了
darklure + 1 + 1 谢谢@Thanks!
winroot + 1 + 1 谢谢@Thanks!
gijoe343 + 1 我很赞同!
mtmakemoney + 1 谢谢@Thanks!
梦想总要有的 + 1 + 1 nb啊
违规名称36 + 1 + 1 谢谢@Thanks!
GODCF + 1 + 1 我很赞同!
flygg + 1 Wireshark还可以改布局的,真妙
极地企鹅 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
He_Sumver + 1 + 1 用心讨论,共获提升!
tony118 + 1 + 1 我很赞同!
debug_cat + 1 + 1 谢谢@Thanks!
chenwangjun + 1 + 1 用心讨论,共获提升!
Right_Hai + 1 + 1 我很赞同!
w599421343 + 1 可以
miner123 + 1 热心回复!
nisosaikou + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
loveolx + 1 + 1 谢谢@Thanks!
banhave + 1 用心讨论,共获提升!
zsq + 1 + 1 谢谢@Thanks!
努力加载中 + 1 + 1 谢谢@Thanks!
浅戨 + 1 我很赞同!
xeonfeng + 1 + 1 热心回复!
yesoh86 + 1 谢谢@Thanks!
cswei1928 + 1 + 1 谢谢@Thanks!
fengbolee + 1 + 1 用心讨论,共获提升!
淡凡 + 1 我很赞同!
csotour + 1 + 1 热心回复!
wddzz + 1 + 1 用心讨论,共获提升!
jshon + 1 热心回复!
qPHPMYSQL + 1 谢谢@Thanks!
pdcba + 1 + 1 我很赞同!
晚安说给自己听 + 1 + 1 我很赞同!
wjcwqc + 1 谢谢@Thanks!
ZhiYing520 + 1 + 1 用心讨论,共获提升!
5ud0 + 1 + 1 我很赞同!
qq499212485 + 1 + 1 谢谢@Thanks!
541911010324 + 1 + 1 谢谢@Thanks!
linwm + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
yep96 + 1 + 1 谢谢@Thanks!
anlovedong + 1 + 1 谢谢@Thanks!
2010litong + 1 + 1 辛苦辛苦
kibaamor + 1 + 1 谢谢@Thanks!
zouyu0008 + 1 + 1 用心讨论,共获提升!
一天 + 1 我很赞同!
liuyunfz + 1 + 1 用心讨论,共获提升!
evill + 1 + 1 谢谢@Thanks!
52pojie666z + 1 + 1 用心讨论,共获提升!
innovator + 1 + 1 谢谢@Thanks!
qfl222 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zhicx + 1 + 1 谢谢@Thanks!
时光飞逝0824 + 1 + 1 谢谢@Thanks!
erebusx + 1 我很赞同!
wrm123 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ALCATEL + 1 + 1 用心讨论,共获提升!
吾爱时尚 + 1 我很赞同!
Huangyc + 1 + 1 谢谢@Thanks!
我这个昵称好啊 + 1 用心讨论,共获提升!
hhhhie + 1 + 1 用心讨论,共获提升!
fxl + 1 + 1 谢谢@Thanks!
根号下萌 + 1 + 1 谢谢@Thanks!
wxrfirstblood + 1 谢谢@Thanks!
Relic + 1 谢谢@Thanks!
rekaytang + 1 + 1 我很赞同!
wanleya + 1 热心回复!
8343923 + 1 + 1 我很赞同!
24K叶生 + 1 用心讨论,共获提升
bjchen + 1 + 1 我很赞同!
Doughnut + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
不谙世事的骚年 + 1 + 1 我很赞同!
liuqimin + 1 + 1 用心讨论,共获提升!
Wellnemo + 1 + 1 用心讨论,共获提升!
mzj21 + 2 + 1 我很赞同!
coconutxxx + 1 + 1 用心讨论,共获提升!
xyhnb + 1 我很赞同!
e.wgs + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
brightwill + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qsws3344 + 1 + 1 谢谢@Thanks!
往復不息 + 1 + 1 热心回复!
tubefox + 1 我很赞同!
谁在等我 + 1 + 1 用心讨论,共获提升!
-白衬衫- + 1 谢谢@Thanks!
mcwindy + 1 + 1 热心回复!
hzwsuki + 1 + 1 我很赞同!
深蓝浅蓝 + 1 + 1 谢谢@Thanks!
Ah0NoR + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| ogli324 发表于 2021-4-16 10:59
本帖最后由 ogli324 于 2021-4-16 11:04 编辑

我好像发现很多都不知道这个https基本得原理, 我找了一篇能大致讲明白的, 有需要就去看看。

即时通讯安全篇(八):你知道,HTTPS用的是对称加密还是非对称加密?
http://www.52im.net/thread-2866-1-1.html

162757sylvv33ak33nlwyu.png

免费评分

参与人数 2吾爱币 +2 热心值 +1 收起 理由
RobinMaas + 1 + 1 用心讨论,共获提升!
tinfengyee + 1 谢谢@Thanks!

查看全部评分

 楼主| ogli324 发表于 2021-7-30 09:10
liulop3000 发表于 2021-7-29 11:38
大佬,我想问问, 因为现在的很多手机都不让ROOT ,而部分APP回限制不让再模拟器上运行, 这样的问题应该如 ...

其实攻防对抗就是 见招拆招啦 如果检测root/虚拟机,你就对应的干掉她, 都是按照特征检测  也可以直接编译一个aosp系统, 来直接硬碰硬。
 楼主| ogli324 发表于 2021-8-13 09:11
rookiejames 发表于 2021-8-12 19:21
大佬,我试了一些app,有些能hook到sslkey,但是个别的就是hook不到,我用fiddler也抓不到包,无论怎么改模拟 ...

通常hook不到sslkey的原因有几种
1、 被反调试了, 提前识别到, 直接不发请求。
2、不是使用的系统库, 所以也找不到。
3、不是走的http, 使用了tcp/udp更下一层的通信, 你的fd也不会有的。
 楼主| ogli324 发表于 2021-8-13 11:17
liulop3000 发表于 2021-7-29 11:38
大佬,我想问问, 因为现在的很多手机都不让ROOT ,而部分APP回限制不让再模拟器上运行, 这样的问题应该如 ...

emem, 消息跑后面去了 没注意到。

这个问题大致有几种情况
1、app本身就有某种缺陷导致不能再pc上的模拟器运行 解决办法 安装一个手机版本的模拟器
2、app真真实实的检测虚拟机, 你可以用真机, 也可以分析app并修改app(hook也算一种) 或者寻找他检测没到的虚拟机

总结而言其实最好用真机、不管是技术层面,还是踩坑层面, 少走弯路, 把有限的精力放到核心的问题上 【人生苦短,我用真鸡 /狗头 保命】
律己 发表于 2021-4-10 10:23
太难了,放弃
 楼主| ogli324 发表于 2023-12-19 17:01
feixiang5339 发表于 2023-12-18 15:42
因为抓到的包里面,其他的好几个请求的refer是请求A,但是找不到请求A。我是一开始app运行就在tcpdump的 ...

这是两回事,A有可能本身就是代码写死的东西,比如小程序之类的。可以验证的方式就是清空app数据 整个重新来一遍。
 楼主| ogli324 发表于 2023-12-5 13:42
feixiang5339 发表于 2023-12-4 15:34
楼主大大,请我问一下,我要抓安卓 app的sslkey,只要启动了这个就白屏不进入app,是不是姿势不对?@ogli32 ...

可能是遇到了反调试?

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
feixiang5339 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

HuanInJa 发表于 2022-11-6 23:19
ogli324 发表于 2021-8-13 09:11
通常hook不到sslkey的原因有几种
1、 被反调试了, 提前识别到, 直接不发请求。
2、不是使用的系统库 ...

有没有一种可能,下次启动,SSL Session重新创建,所以又白抓SSLKeylog了
 楼主| ogli324 发表于 2021-3-30 20:12
xianyucoder 发表于 2021-3-30 19:40
给 南山大佬 打 call

大佬好~
fqfqfqfqfq 发表于 2021-4-12 08:18
技术帖子,支持
泳诗 发表于 2021-3-30 16:58
很好的抓包思路,谢谢分享
cob 发表于 2021-3-30 17:02
感谢大佬的讲解
LearningPawn5 发表于 2021-3-30 17:16
第一次知道Wireshark还可以改布局的学习了
武汉小Liz 发表于 2021-3-30 17:23
这个操作高端了,学习了
yeah1 发表于 2021-3-30 17:25
小白,我看不懂
jiklop 发表于 2021-3-30 17:40
很好的抓包思路,谢谢分享
13169456869 发表于 2021-3-30 17:40
感谢分享!!!
VNRKDOEA 发表于 2021-3-30 17:44
直接舔爆
 楼主| ogli324 发表于 2021-3-30 17:51

来吧, 今晚等你。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-26 20:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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