一个Flutter框架的App渗透日记 | 进入内网

admin 2025年6月19日21:50:01评论5 views字数 3098阅读10分19秒阅读模式

免责声明:由于传播、利用本公众号李白你好所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号李白你好及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

客户安排了一个App的渗透测试,但是App抓不了包,于是展开一顿分析,最终进入内网………….

文章作者:奇安信攻防社区(nstkm

文章来源:https://forum.butian.net/share/4405

1

测试过程

1.使用Clash,打开全局代理进行抓包测试,发现验证码未加载,此时疑惑是否检测代理软件。
一个Flutter框架的App渗透日记 | 进入内网

2.使用clash透明代理将防火墙转发流量进行抓包测试,竟然抓到了相关的数据包,但是此时还是没有成功通信。

一个Flutter框架的App渗透日记 | 进入内网

3.这时还是非常纳闷为什么抓到了包还是无法访问,于是将数据包发送至repeater进行单独的服务器访问分析。

一个Flutter框架的App渗透日记 | 进入内网

4.很显然,这个数据超乎我想象的简单,也就是说它不像是APP构造的包,更不像浏览器构造XHRrequest包,尤其这个user-agent特别具有标识,这时对useragent信息进行收集,因为最初猜测可能和证书相关,最终确认是flutter框架开发的App,特征都能吻合上,so库以及useragent等特征。

一个Flutter框架的App渗透日记 | 进入内网
一个Flutter框架的App渗透日记 | 进入内网

5.请教大佬以及熟人是否做过相关分析。

一个Flutter框架的App渗透日记 | 进入内网
一个Flutter框架的App渗透日记 | 进入内网
一个Flutter框架的App渗透日记 | 进入内网

6.由于在我收集的信息里,大量的flutter证书bypass的文章,我下意识就认为ssl的问题,但是师傅说的又没错,这是一个http的包。于是震惊我中华的第二天早上,我发现这tm居然是个内网地址。

一个Flutter框架的App渗透日记 | 进入内网

7.于是我百思不得其解,初步我设想是App做成本地请求+SDK(ssl认证转发发送),于是我又尝试一些常规方法,对App源码进行分析,但是这个App源码竟然全体进行混淆,虽然没有加壳,但是这个混淆却异常的牛逼(有无师傅知道源码混淆如何还原,求求),我尝试了关键词搜索,例如okhttp分析,libssl.so分析,以及一些字符串,JSON数据包hook分析,竟然没有找到任何与这个Dart发出来的请求相关的信息。然后就只能将希望寄托于网上的flutter分析,希望足够简单能够支持我解决抓包问题。

一个Flutter框架的App渗透日记 | 进入内网
文章参考链接: https://www.ctfiot.com/217117.html
一个Flutter框架的App渗透日记 | 进入内网

8.于是拿到了so的ssl bypasshook函数。

一个Flutter框架的App渗透日记 | 进入内网

9.万幸互联网居然有对这个地址的分析,我以为十拿九稳了,将地址填充进代码测试。一个Flutter框架的App渗透日记 | 进入内网

10.如图下代码,进行hook测试,发现依旧无法成功抓包。

一个Flutter框架的App渗透日记 | 进入内网

11.此时心态有点崩溃,但是重新振作了一下,在github找寻所有的libflutter.so分析,终于找到了一个可以用的项目,这个点赞量以及项目更新时间都非常符合我心意。

一个Flutter框架的App渗透日记 | 进入内网

12.使用该脚本我成功做到抓包自由,当然该脚本细节也非常牛逼,将SO文件内存解析然后拿到导出地址来进行操作,对逆向分析flutter框架特别感兴趣的师傅可以研究一下。

https://github.com/hackcatml/frida-flutterproxy
一个Flutter框架的App渗透日记 | 进入内网

13.但是这个发出来的包还是,无法访问,但是我自作聪明的是,我有这个prod-api的公网地址,于是我用mitm给他替换成公网地址,侥幸通过了通信问题。

一个Flutter框架的App渗透日记 | 进入内网

14.我也拿到了验证码成功的登录进了系统,我以为我能狸猫换太子这样的安安静静的测试了,但是!这个App核心业务是内置了的h5应用,也就是说有一部分请求是走的webview。也就是说该hook脚本只能抓包soket的包,也是通过flutter.so发起请求的包。并不能抓到js发起请求的包。于是我又开始对webview的分析。这里直接放送代码。

Java.perform(function () {//实例化一个对象var WebView = Java.use('android.webkit.WebView');//重写WebView类的重载方法,因为setWebContentsDebuggingEnabled不是静态方法,所以需要一个对象来调用这个方法WebView.$init.overload('android.content.Context').implementation = function (a) {console.log("WebView.$init is called!1");var retval = this.$init(a);this.setWebContentsDebuggingEnabled(true);return retval;}WebView.$init.overload('android.content.Context''android.util.AttributeSet').implementation = function (a, b) {console.log("WebView.$init is called!2");var retval = this.$init(a, b);this.setWebContentsDebuggingEnabled(true);return retval;}WebView.$init.overload('android.content.Context''android.util.AttributeSet''int').implementation = function (a, b, c) {console.log("WebView.$init is called!3");var retval = this.$init(a, b, c);this.setWebContentsDebuggingEnabled(true);return retval;}//始终设置为true,打开调试WebView.setWebContentsDebuggingEnabled.implementation = function () {this.setWebContentsDebuggingEnabled(true);console.log("setWebContentsDebuggingEnabled is called!");}});// frida -U -f package_name -l .hook.js --no-pause

15.该代码可以打开CDP分析的入口,于是我用inspect打开看了一下请求网络,我发现通往其他应用的入口竟然也是内网地址。

一个Flutter框架的App渗透日记 | 进入内网

16.这时候我突然就意识到不对劲了,各种信息告诉我事情并非我想象的那样,于是我总结了一下信息,各位师傅还记得第一张图吗?是否关注到这里面有一个SanforidClient,组件里面也有大量的深信服的SDK。不会吧,因为我是第一次碰见深信服sslvpn sdk的App,但是我自认为应该没有开发那么蠢,在App里内置了一个默认的用户吧。

一个Flutter框架的App渗透日记 | 进入内网
一个Flutter框架的App渗透日记 | 进入内网

17.带着深信服Sdk的核心特征去github搜索,我从源码中关注到了认证方法。

一个Flutter框架的App渗透日记 | 进入内网

18.于是我成功拿到了认证的用户名以及密码以及服务器地址,成功拨进vpn。

一个Flutter框架的App渗透日记 | 进入内网

19.总结,也就是说,为什么抓不到包,是因为内置了深信服的sdk去通信,将流量通过sokcet或者回环也好转发至burp,由于PC并不能访问内网地址所以导致抓到了包也无法访问接口,同时也学习到了flutter的常规特征。后续如果碰到类似深信服SDK的可以直接进行相关账户找寻........

2

网安资源社区

李白你好VIP社区-网络安全资源社区
https://www.libaisec.com/
代理访问效果更佳
一个Flutter框架的App渗透日记 | 进入内网

原文始发于微信公众号(李白你好):一个Flutter框架的App渗透日记 | 进入内网

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月19日21:50:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一个Flutter框架的App渗透日记 | 进入内网https://cn-sec.com/archives/4179612.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息