APP攻防-资产收集篇&反证书检验&XP框架&反代理VPN&数据转发&反模拟器

简介: APP攻防-资产收集篇&反证书检验&XP框架&反代理VPN&数据转发&反模拟器

常见问题


没有限制过滤的抓包问题:

1、抓不到-工具证书没配置好

2、抓不到-app走的不是http/s

有限制过滤的抓包问题:

3、抓不到-反模拟器调试

4、抓不到-反代理VPN

5、抓不到-反证书检验


做移动安全测试时,设置好了代理,但抓不到数据包

反抓包Demo:https://github.com/AndroidAppSec/vuls

反调试Demo:https://github.com/lamster2018/EasyProtector


防护手段

1、反模拟器:禁用模拟器进行调试访问

部分监测可以通过虚拟机中修改模拟机配置进行绕过

虚拟的机型手机号等信息

2、反证书检验:SSL证书绑定(单向校验和双向校验)

单项校验-客户端校验服务端的证书。

//使用OkHttp进行SSL证书固定(SSL Pinning)
public class SSLPinningActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sslpinning);
    }
    //配置了两个CertificatePinner,分别用于验证特定的域名和相应的证书指纹。
    //对"www.baidu.com"和"www.sohu.com"两个域名的证书指纹。这意味着应用将只信任这些网站使用指定证书指纹的SSL证书。如果服务器返回的SSL证书不匹配指定的证书指纹,请求将会失败。
    public void okhttp3(View view) {
        CertificatePinner leafCertPinner = new CertificatePinner.Builder()
                .add("www.baidu.com", "sha256/M9Hz16jmJjXzPUkH8FUKG2GZLd/55sT6yCNiQgwfNtk=")
                .add("www.sohu.com", "sha256/MQ==")
                .build();
        CertificatePinner intermediateCertPinner = new CertificatePinner.Builder()
                .add("*.baidu.com", "sha256/IQBnNBEiFuhj+8x6X8XLgh01V9Ic5/V3IRQLNFFc7v4=")
                .build();
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .certificatePinner(leafCertPinner)
                .certificatePinner(intermediateCertPinner)
                .build();
        Request.Builder builder = new Request.Builder();
        Request request = builder.get().url("https://www.baidu.com/").build();
        Call call = okHttpClient.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                e.printStackTrace();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(SSLPinningActivity.this, "请求失败", Toast.LENGTH_LONG).show();
                    }
                });
            }
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                final int code = response.code();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(SSLPinningActivity.this, "请求成功" + code, Toast.LENGTH_LONG).show();
                    }
                });
            }
        });
    }
}

这是使用真机进行测试

首先刷入Magisk面具

然后使用Lsposed 或者Xposed加载JustTrustme模块进行绕过客户端证书校验

这样基本上就绕过了客户端对服务端SSL证书的检测

其中涉及的操作包括:(可能哪一步操作不慎手机就变成了转🧱)


  1. 使用pixel或者小米等机型进行刷机,一般root后系统会出现magisk APP
  2. 然后使用magisk对刷机包中的boot文件进行修补,进行手机fastboot后进行刷入,这样magisk才算完整
  3. 后面使用PC端进行抓包的时候需要将证书(Charles或者Burp)导入到手机上
  4. android 7之前证书可以直接导入到系统区,android 7之后版本系统只信任系统证书(现在手机基本上都是android12+),需要借助到move cert模块进行移动(move cert github上的zip不能直接导入magisk中) 可以参考https://blog.csdn.net/puppyinasock/article/details/130207403

用户证书目录:/data/misc/user/0/cacerts-added

系统证书目录:/etc/security/cacerts

  1. 导入move cert模块后重启手机,用户区证书就自动移动到系统证书目录下

d865da483b9c6cd0aba85aeabc1d271f_c2ad47199cd64e46b1f2c963b8fa27a6.png

  1. 导入证书后可以抓到https的包,绕过证书需要在Lsposed上导入JustTrustMe模块(Lsposed是在Magisk上导入的)


注:Magisk更多用于对系统的修改、Xposed/LSPosed(android8.0以上的替代品)更多用于对用户软件的修改

差不多就这么多操作,不过操作起来却是挺复杂的


双向认证-客户端不仅仅要校验服务端的证书,

也会在app内放一张证书;服务端也会检验客户端里的证书。


3、反代理VPN:代理检测、VPN检测、发包框架强制不走代理

配置代理后无法访问,数据异常等

连接VPN节点后无法访问,数据异常等

配置代理后正常访问且无任何异常,但无数据包

使用系统代理打开后显示

示例检测代码:

代码通过调用System.getProperty(“http.proxyHost”)和System.getProperty(“http.proxyPort”)方法来获取HTTP代理的主机名和端口号。如果返回的值不为null,表示设备已经设置了HTTP代理。


绕过手段:

1、用APP工具设置-Postern&SocksDroid

2、用PC工具设置-Proxifier

3、逆向删反代码重打包

相关文章
|
5月前
|
存储 安全 Linux
【Azure App Service】在App Service中查看CA证书
在 Azure App Service 中,使用自签名或私有 CA 证书的远程服务可能会导致 SSL 握手失败。解决方法包括使用受信任 CA 签发的证书,或通过 App Service Environment 加载自定义根证书,实现安全连接。
133 3
|
7月前
《仿盒马》app开发技术分享-- 确认订单页(数据展示)(29)
上一节我们实现了地址的添加,那么有了地址之后我们接下来的重点就可以放到订单生成上了,我们在购物车页面,点击结算会跳转到一个 订单确认页面,在这个页面我们需要有地址选择、加购列表展示、价格计算、优惠计算、商品数量展示等信息。
205 3
|
6月前
|
移动开发 前端开发 JavaScript
鸿蒙NEXT时代你所不知道的全平台跨端框架:CMP、Kuikly、Lynx、uni-app x等
本篇基于当前各大活跃的跨端框架的现状,对比当前它们的情况和未来的可能,帮助你在选择框架时更好理解它们的特点和差异。
652 0
|
4月前
|
JSON 自然语言处理 数据格式
使用Tabs选项卡组件快速搭建鸿蒙APP框架
ArkUI提供了很多布局组件,其中Tabs选项卡组件可以用于快速搭建鸿蒙APP框架,本文通过案例研究Tabs构建鸿蒙原生应用框架的方法和步骤。
434 5
使用Tabs选项卡组件快速搭建鸿蒙APP框架
|
4月前
|
运维 iOS开发 Windows
windows电脑备案ios APP获取公钥和证书指纹Sha-1值的方法
在阿里云进行APP备案、在备案IOS端的环节的时候,发现需要我们将p12证书安装在电脑上,再用xcode或或钥匙串访问来获取这个证书的公钥和sha-1值。 但是大部分开发uniapp应用的同学们,或者进行发布的运维人员的电脑都是windows,无法按照阿里云的教程来获取ios的公钥和sha-1。备案就被卡主了。 这里介绍下另一个方法,就是使用香蕉云编来在线上传证书获取。如下图所示,打开香蕉云编后,找到下图这个功能
713 0
|
11月前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
8474 80
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
7月前
|
安全 测试技术 开发者
银行转账模拟器手机版app, 银行转账凭证生成器app,用autojs实现效果【逼真效果】
本内容展示了一套基于Auto.js的银行APP自动化测试脚本和框架,用于学习和研究移动应用测试技术。脚本涵盖登录、转账等功能测试
《仿盒马》app开发技术分享-- 兑换订单列表框架(75)
上一节我们针对订单兑换的业务逻辑进行了完善,成功的在兑换物品之后修改了用户信息的修改,新增了积分消费的记录。这一节我们实现订单创建之后进入的列表展示页框架。
132 0
|
7月前
|
BI 开发工具 开发者
App全渠道统计方案:如何用一个工具整合所有获客渠道数据?
还在为地推、社群、广告等不同获客渠道的数据分散而烦恼吗?本文将教您如何用一个工具整合所有渠道数据,实现精准的渠道归因与效果分析。
239 0
|
8月前
|
测试技术 Linux 网络安全
【App Services】App Service报错远程证书无效 - "The remote certificate is invalid according to the validation procedure"
在开发环境中,新部署的应用(App Service)无法与 Salesforce 的远程端点建立 SSL/TLS 连接,报错显示证书无效。经分析,防火墙启用了 SSL Inspection,插入了私有 CA 签发的中间证书,导致 App Service 无法验证。解决方案包括禁用 SSL Inspection、设置 `WEBSITE_LOAD_ROOT_CERTIFICATES` 环境变量或临时禁用代码中的 SSL 验证(仅限测试环境)。
234 8