【安卓安全】透明代理定向抓APP包
创始人
2025-05-29 21:56:45
0

参考了以下大佬的文章:
https://blog.seeflower.dev/archives/207/
https://blog.mythsman.com/post/62791fb4b5467000017d5c6e/
https://mp.weixin.qq.com/s/0iCDSK_uSfbJdKA_9fzVnA

工具:iptables + redsocks2 + Charles

前期准备

配置charls证书

要使用charles抓https的流量,就需要正确配置证书,并将证书设置为系统证书,这里开始踩了坑,我只是配置了用户证书,在安卓7之后的版本中,一般的直接安装证书,只是安装到用户证书,而要想实现抓app包,只能是系统证书。
help这里可以下载保存SSL证书
证书下载保存后 为cer或pem后缀,此时不能直接装在手机里,需要进行一些转换。
进入到安卓系统证书目录:/system/etc/security/cacerts
证书文件
可以看到都是一串字符加上 .0 这样的后缀,这里前面的字符生成是有讲究的
证书的名称可以用openssl获取,用命令计算出证书的名字:
Cer格式
openssl x509 -inform DER -subject_hash_old -in 1.cer
Pem格式
openssl x509 -inform PEM -subject_hash_old -in 1.pem
计算文件名
这串字符就是前面的名字了,之后直接重命名就行了,网上有文章还要用命令,没必要,而且会出错。
重命名
之后把该文件push到手机上,这个时候直接放在 /system/etc/security/cacerts 目录下是失败的,会显示该目录只读(root后)。此时需要新的挂载点

# 创建一个临时目录,保存当前证书
mkdir /sdcard/tmp/
# 复制现有证书到临时目录
cp /system/etc/security/cacerts/* /sdcard/tmp/
# 创建内存挂载
mount -t tmpfs tmpfs /system/etc/security/cacerts
# 将现有证书复制回 tmpfs 挂载
mv /sdcard/tmp/* /system/etc/security/cacerts/
# 更新 perms 和 selinux
chown root:root /system/etc/security/cacerts/* 
chmod 644 /system/etc/security/cacerts/* 
chcon u:object_r:system_file:s0 /system/etc/security/cacerts/*

ok了
这下证书就配置完成了
后面不出意外的话就能抓到并解密https了
一会儿这里要记得打开

查询UID

打开相应应用,使用ps -ef命令查询到应用uid
UID
通常是u0_a236这样的,那么后面的命令,uid相关的可以写成u0_a236,也可以写成10236这样。

iptables + redsocks2转发

https://mp.weixin.qq.com/s/P0ESUUXBmq2aQnrqDHsDaw

下面就要改iptables了,首先可以保存下配置文件(重启也可恢复
iptables-save > /data/local/tmp/iptables.rules
恢复iptables
iptables-restore /data/local/tmp/iptables.rules
下面的命令将uid为10428所请求的在0-65535端口上的tcp流量,转发到127.0.0.1:16666,但是排除了来自127.0.0.1的请求
iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10428 --dport 0:65535 -j DNAT --to-destination 127.0.0.1:16666
透明代理直接设置为Charles的透明代理地址,对于https将会出现invalid first line in request错误,只有http的请求数据会被正常解析

https://blog.mythsman.com/post/62791fb4b5467000017d5c6e/

接下来下载并配置redsocks转发流量
可直接下载编译好的:https://fh0.github.io/assets/android-redsocks2.tgz

创建配置文件,名为redsocks.conf,内容如下:

base {log_debug = off;log_info = on;log = stderr;daemon = off;redirector = iptables;
}redsocks {bind = "127.0.0.1:16666";relay = "192.168.1.14:8889";type = socks5;autoproxy = 0;timeout = 13;
}

其中bind就是透明代理地址,relay就是Charles的代理地址
注意这里配置文件最好在linux环境下生成,我在win生成的配置文件失败了

现在把redsocks.conf和redsocks2_arm push到/data/local/tmp
然后在root用户下运行redsocks2_arm64即可

adb push redsocks2_arm64 /data/local/tmp/redsocks
adb shell chmod +x /data/local/tmp/redsocks
adb shell
su
cd /data/local/tmp
./redsocks

如果是只想对特定端口抓包,那么应该使用-m multiport --dports 80,443这样来限定一个或者多个端口

iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10428 -m multiport --dports 80,443 -j DNAT --to-destination 127.0.0.1:16666

结束了?

按理来说应该可以了,但是我抓的这个app
竟然还做了证书检测!
搞了半天 我一直以为是我配置错了 下面绕过检测就行了
objection直接就有命令
objection -g 12313213 explore -s 'android sslpinning disable'
这样就成了
前面红色是没开objection

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...