吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 825|回复: 17
收起左侧

[Android 求助] APP服务端证书校验求助

[复制链接]
yinsel 发表于 2024-8-8 20:40
本帖最后由 yinsel 于 2024-8-9 21:30 编辑

本想拿一个APP针对服务端证书校验练手,结果差点给练死了。这APP和常规的不一样,没加固但有混淆,尝试过frIDA自吐、r0capture大佬的脚本都不行,然后我自己逆向我把公钥证书dump出来了,但没私钥啊,我是真不知道它私钥藏哪了,找了好久的hook点都没拿到,APP里面也没翻到bks、p12、jks证书,倒是有两个不知名的bks,好像是华为什么SDK的,不清楚。

于是便向某朋友求,有个大哥5分钟搞定,但他是ios端从内存挖出来的p12证书,我寻思不是安卓呀,只能来汇聚大佬的吾爱求助了。

APP放这了,我觉得可以当个教学案例,虽然我不知道难道多大,但确实和常规的不一样。

https://wwo.lanzoul.com/iVxSz26wbk3a
密码:8yjj


已解决,但还有细节,后续会出完整过程

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

debug_cat 发表于 2024-8-9 15:09
如果随便输出一个服务器id,可以拿到这样的信息:
W/System.err: javax.net.ssl.SSLHandshakeException: server certificate subject not matched: https://22222.121:8663
W/System.err:     at org.conscrypt.SSLUtils.toSSLHandshakeException(SSLUtils.java:14)
W/System.err:     at org.conscrypt.ConscryptEngine.convertException(ConscryptEngine.java:15)
W/System.err:     at org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:39)
W/System.err:     at org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:49)
W/System.err:     at org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:18)
W/System.err:     at org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:2)
W/System.err:     at org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:70)
W/System.err:     at org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:1)
W/System.err:     at org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:91)
W/System.err:     at org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:37)
W/System.err:     at xe.c.b(RealConnection.java:66)
W/System.err:     at xe.c.f(RealConnection.java:25)
W/System.err:     at xe.c.connect(RealConnection.java:161)
W/System.err:     at xe.f.b(StreamAllocation.java:214)
W/System.err:     at xe.f.c(StreamAllocation.java:1)
W/System.err:     at xe.f.newStream(StreamAllocation.java:23)
W/System.err:     at xe.a.intercept(ConnectInterceptor.java:26)
W/System.err:     at ye.g.proceed(RealInterceptorChain.java:10)
W/System.err:     at ye.g.proceed(RealInterceptorChain.java:1)
W/System.err:     at we.a.intercept(CacheInterceptor.java:133)
W/System.err:     at ye.g.proceed(RealInterceptorChain.java:10)
W/System.err:     at ye.g.proceed(RealInterceptorChain.java:1)
W/System.err:     at ye.a.intercept(BridgeInterceptor.java:162)
W/System.err:     at ye.g.proceed(RealInterceptorChain.java:10)
W/System.err:     at ye.j.intercept(RetryAndFollowUpInterceptor.java:49)
W/System.err:     at ye.g.proceed(RealInterceptorChain.java:10)
W/System.err:     at ye.g.proceed(RealInterceptorChain.java:1)
W/System.err:     at ak.retrofit.b.intercept(AcceptLanguageInterceptor.java:22)
W/System.err:     at ye.g.proceed(RealInterceptorChain.java:10)
W/System.err:     at ye.g.proceed(RealInterceptorChain.java:1)
W/System.err:     at okhttp3.n.c(RealCall.java:116)
W/System.err:     at okhttp3.n.execute(RealCall.java:27)
W/System.err:     at ak.im.module.AKCDiscoverNode.queryDiscoverInstance(AKCDiscoverNode.kt:15)
W/System.err:     at ak.im.sdk.manager.AKCDiscoverManager$getServer$observable$1$discoverHandler$1.invoke(AKCDiscoverManager.kt:5)
W/System.err:     at ak.im.sdk.manager.AKCDiscoverManager$getServer$observable$1$discoverHandler$1.invoke(AKCDiscoverManager.kt:1)
W/System.err:     at ak.im.sdk.manager.AKCDiscoverManager.r(AKCDiscoverManager.kt:353)
W/System.err:     at ak.im.sdk.manager.AKCDiscoverManager.c(Unknown Source:0)
W/System.err:     at ak.im.sdk.manager.f.subscribe(Unknown Source:6)
W/System.err:     at io.reactivex.internal.operators.observable.ObservableCreate.subscribeActual(ObservableCreate.java:11)
W/System.err:     at bc.z.subscribe(Observable.java:14)
W/System.err:     at io.reactivex.internal.operators.observable.ObservableSubscribeOn$a.run(ObservableSubscribeOn.java:7)
W/System.err:     at bc.h0$a.run(Scheduler.java:10)
W/System.err:     at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:14)
W/System.err:     at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:1)

2024-08-09 15:06:03.238 ? W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
W/System.err:     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
W/System.err:     at java.lang.Thread.run(Thread.java:920)
W/System.err: Caused by: java.security.cert.CertificateException: server certificate subject not matched: https://2222121:8663
W/System.err:     at ak.im.module.AkeyChatX509PrivateCA.checkServerTrusted(AkeyChatX509PrivateCA.java:166)
W/System.err:     at org.conscrypt.Platform.checkServerTrusted(Platform.java:8)
W/System.err:     at org.conscrypt.ConscryptEngine.verifyCertificateChain(ConscryptEngine.java:37)
W/System.err:     at org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)
W/System.err:     at org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:17)
W/System.err:     at org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:7)
W/System.err:     at org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:22)
W/System.err:   ... 46 more
 楼主| yinsel 发表于 2024-8-9 15:42
debug_cat 发表于 2024-8-9 15:09
如果随便输出一个服务器id,可以拿到这样的信息:[md]```
W/System.err: javax.net.ssl.SSLHandshakeExcep ...

这个方法可以,但还是找不到私钥放哪了,最后我去翻org.conscrypt的源码,找到一个so层hook点,把私钥导出了,但我还是不知道从私钥哪来的,也没看见硬编码
ias想 发表于 2024-8-8 21:58
你得提取客户端的证书 我最近也遇到一个 不是同一个APP吧 有空一起交流下
ias想 发表于 2024-8-8 21:59
双证书是响应不会给你正常响应抓包
 楼主| yinsel 发表于 2024-8-8 22:02
ias想 发表于 2024-8-8 21:59
双证书是响应不会给你正常响应抓包

是啊,我就是想拿到客户端证书和私钥,也就是p12,bks,jks这类的
ias想 发表于 2024-8-8 22:08
你响应报什么错
 楼主| yinsel 发表于 2024-8-8 22:26
ias想 发表于 2024-8-8 22:08
你响应报什么错

服务器响应400,no ssl cert
ias想 发表于 2024-8-8 22:29
yinsel 发表于 2024-8-8 22:26
服务器响应400,no ssl cert

我那个是响应403
 楼主| yinsel 发表于 2024-8-8 22:43
ias想 发表于 2024-8-8 22:29
我那个是响应403

纯ip的https,我还加不了好友
moka518 发表于 2024-8-8 23:04
楼主有结果了,请更新一下帖子,俺也想知道如何处理
debug_cat 发表于 2024-8-9 15:05
这个app如何触发网络请求,因为打开之后没有服务器id,和扫描,需要什么样操作可以触发你说的抓包信息?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-10-23 02:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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