APP渗透抓不到包--Frida

Posted 向阳-Y.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APP渗透抓不到包--Frida相关的知识,希望对你有一定的参考价值。

android检测代理

应用程序检测到使用代理后就会抓包异常
IS_ICS_OR_LATER

相关文章:
https://www.it610.com/article/1280480273930141696.htm

解决方法:
使用VPN原理的软件进行抓包:
黄鸟 postaman charles

证书校验

单向认证:

特征:抓包可以抓到,但是报错,400、ssl
解决方法:Xposed+JustTrustMe

双向认证(rsa算法):

特征:略
解决方法:证书+密码


Frida入门

小技巧:
这串代码可以在notepad++中直接运行python脚本,x.py指的是要执行的py路径

cmd /k python "c://x.py" & ECHO & PAUSE & EXIT

frida-ps -U 可以查看apk的包名称

首先安装python的frida模块

方案一(推荐安装低版本frida,兼容性好):

pip install frida==12.8.0
pip install frida-tools==5.3.0
pip install objection==1.8.4

如果在这一步一直卡着安装不成功就试试方案二
方案二:
https://pypi.org/project/frida/#files下载frida-12.7.16-py3.7-win-amd64.egg。
并把它放到E:\\Program Files\\Python37\\Lib\\site-packages中。
此时执行pip install frida就OK了

测试:
打开powershell,
输入frida-ps -U,此时无报错说明成功

连接模拟器

我这里使用的是逍遥模拟器,21503是逍遥模拟器的默认端口
(夜神:adb connect 127.0.0.1:62001)

adb connect 127.0.0.1:21503
adb shell
adb push 文件路径 /data/local/tmp
cd /data/local/tmp/
ls
chmod 777 frida-server-15.1.22-android-x86   //赋予frida执行权限
./frida-server-15.1.22-android-x86           //运行frida,此时frida就已经跑起来了

这里的文件路径是frida的本地文件路径,frida下载地址:https://github.com/frida/frida/releases,下载好后进行解压,得到文件【注意!这里的frida版本要和pip安装的版本对应上】

手机端下载 frida-server-版本-android-arm64.xz
模拟器下载 frida-server-版本-android-x86.xz

最后转发一下端口:

adb forward tcp:27042 tcp:27042

注意:

如果开了两个模拟器则需要匹配使用哪一个模拟器:
adb devices #列出模拟器列表
adb -s 模拟器名 shell

Frida模板【普通方法】

import frida,sys
jscode="""
Java.perform(function()
    var utils = Java.use('包名.类名')
    utils.函数.implementation = function(函数值1,函数值2)  //如果是构造方法这里还能utils.$init.inplementation
        console.log("Hook Start...");
        send("Success!");
        return this.函数(函数值1,函数值2);  //同理,这里就写return this.$init(函数1,函数2)
    
);
"""

def message(message,data):
    if message["type"] == 'send':
        print("[*] 0".format(message['payload']))
    else:
        print(message)
process = frida.get_remote_device().attach('app包名')
script=process.create_script(jscode)
script.on("message",message)
script.load()
sys.stdin.read()

Frida模板【构造方法】

构造方法指的是new一个对象

import frida,sys
jscode="""
Java.perform(function()
    var utils = Java.use('包名.类名')
    utils.$init.implementation = function(函数值1,函数值2) 
        console.log("Hook Start...");
        send("Success!");
        return this.$init(函数值1,函数值2);  
    
);
"""

def message(message,data):
    if message["type"] == 'send':
        print("[*] 0".format(message['payload']))
    else:
        print(message)
process = frida.get_remote_device().attach('app包名')
script=process.create_script(jscode)
script.on("message",message)
script.load()
sys.stdin.read()

Frida模板【重载方法】

add(1,2)
add(1,2,3)
重载就是函数名字一样,例如:

import frida,sys
jscode="""
Java.perform(function()
    var utils = Java.use('包名.类名')
    utils.函数.overload("类型").implementation = function(函数值1,函数值2) //类型指的是int,java.lang.String等
        console.log("Hook Start...");
        send("Success!");
        return this.函数(函数值1,函数值2);  
    
);
"""

def message(message,data):
    if message["type"] == 'send':
        print("[*] 0".format(message['payload']))
    else:
        print(message)
process = frida.get_remote_device().attach('app包名')
script=process.create_script(jscode)
script.on("message",message)
script.load()
sys.stdin.read()

Frida模板【构造对象参数】

需要hook的代码段如下:

import frida,sys
jscode="""
Java.perform(function()
    var utils = Java.use('包名.类名')
    utils.函数.overload("com.xiaojianbang.app.Money").implementation = function(obj) //因为这里的类型为对象,所以写上对象的路径
        console.log("Hook Start...");
        send("Success!");
        send(obj.getInfo())
        var mon = mon.$new(1000,'港币')     //自己构造一个对象
        return mon.getInfo()
    
);
"""

def message(message,data):
    if message["type"] == 'send':
        print("[*] 0".format(message['payload']))
    else:
        print(message)
process = frida.get_remote_device().attach('app包名')
script=process.create_script(jscode)
script.on("message",message)
script.load()
sys.stdin.read()

以上是关于APP渗透抓不到包--Frida的主要内容,如果未能解决你的问题,请参考以下文章

失败案例之安全抓包测试

新版小黄鸟怎么静态注入

APP渗透抓包

frida-某资讯app逆向的过程

frida-某资讯app逆向的过程

探讨下app的包为什么抓不到