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、逆向删反代码重打包

目录
打赏
0
5
5
0
36
分享
相关文章
【Azure 应用服务】如何来检查App Service上证书的完整性以及在实例中如何查找证书是否存在呢?
【Azure 应用服务】如何来检查App Service上证书的完整性以及在实例中如何查找证书是否存在呢?
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
1061 14
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
135 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
1月前
|
【Azure App Service】对App Service中CPU指标数据中系统占用部分(System CPU)的解释
在Azure App Service中,CPU占比可在App Service Plan级别查看整个实例的资源使用情况。具体应用中仅能查看CPU时间,需通过公式【CPU Time / (CPU核数 * 60)】估算占比。CPU百分比适用于可横向扩展的计划(Basic、Standard、Premium),而CPU时间适用于Free或Shared计划。然而,CPU Percentage包含所有应用及系统占用的CPU,高CPU指标可能由系统而非应用请求引起。详细分析每个进程的CPU占用需抓取Windows Performance Trace数据。
96 40
APP备案使用证书查看公钥和md5
【10月更文挑战第19天】首先有了一个证书,文件后缀是keystore
386 13
APP备案使用证书查看公钥和md5
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
200 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
uni-app x 跨平台开发框架
uni-app x 是一个强大的跨平台开发框架 uni-app x 是一个庞大的工程,它包括uts语言、uvue渲染引擎、uni的组件和API、以及扩展机制。
132 1
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法

热门文章

最新文章

  • 1
    MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
    310
  • 2
    原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
    38
  • 3
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    13
  • 4
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    24
  • 5
    【Azure App Service】基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?
    6
  • 6
    【Azure Function】Function App出现System.IO.FileNotFoundException异常
    1
  • 7
    【Azure Logic App】使用MySQL 新增行触发器遇见错误 :“Unknown column 'created_at' in 'order clause'”
    3
  • 8
    阿里云APP备案流程图以及备案所需材料整理,跟着教程一步步操作
    10
  • 9
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    10
  • 10
    1688APP 原数据 API 接口的开发、应用与收益
    16
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等