Android抓包,涵盖android14,15

打印 上一主题 下一主题

主题 855|帖子 855|积分 2565

Android抓包

Android抓包无非就是三种环境:
1.未校验:直接放证书就能抓
2.单向认证:通过hook技术,绕过sslping
3.双相认证:逆向分析,找证书及密钥
对于前期工作,导入证书信任,可参考下面文章,未作认证校验环境下均可以解决
常规抓包,Android14可用

1.常规使用将证书导入到/system/etc/securtiy/cacerts

Android14已经将证书位置更改为/apex下面,正常使用chmod 644将证书push到system下面已经
不再好用,可以尝试将权限更改为777,一样平常环境下都是可以抓到数据包的。

该操纵一样平常可能需要具备root和remount权限,能够将整数永久存储在system下面,暂时存储的
话,可以参考我这篇文章
https://blog.csdn.net/qq_45748106/article/details/136716949?spm=1001.2014.3001.5502
暂时创建映射apex下

上述抓包机制,终归是取巧,并非能够真实导入到系统袭人目录下。下面方法,暂时创建目录将证书映射到apex下面,不过该方法不是永久的导入到该目录,每次重启设备需要重新导入,可以做成脚本,方便使用。该方法能够将整数添加到设备的系统信任证书根目录下,真正实现系统信任机制
1.创建cmd命令方便将整数以及脚本导入到设备中

  1. adb root
  2. adb push set_ca_android14.sh脚本位置 /data/local/tmp/
  3. adb shell chmod 777 /data/local/tmp/set_ca_android14.sh
  4. adb push 工具证书位置 /data/local/tmp/
  5. adb shell /data/local/tmp/set_ca_android14.sh
  6. pause
复制代码
eg:
  1. adb root
  2. adb push E:\set_ca_android14.sh /data/local/tmp/
  3. adb shell chmod 777 /data/local/tmp/set_ca_android14.sh
  4. adb push E:\9a5ba575.0 /data/local/tmp/
  5. adb shell /data/local/tmp/set_ca_android14.sh
  6. pause
复制代码
set_ca_android14.sh脚本
  1. mkdir -p -m 700 /data/local/tmp/tmp-ca-copy
  2. cp /apex/com.android.conscrypt/cacerts/* /data/local/tmp/tmp-ca-copy/
  3. mount -t tmpfs tmpfs /system/etc/security/cacerts
  4. mv /data/local/tmp/tmp-ca-copy/* /system/etc/security/cacerts/
  5. cp /data/local/tmp/269953fb.0 /system/etc/security/cacerts/
  6. cp /data/local/tmp/9a5ba575.0 /system/etc/security/cacerts/
  7. cp /data/local/tmp/6e39a726.0 /system/etc/security/cacerts/
  8. chown root:root /system/etc/security/cacerts/*
  9. chmod 644 /system/etc/security/cacerts/*
  10. chcon u:object_r:system_file:s0 /system/etc/security/cacerts/*
  11. ZYGOTE_PID=$(pidof zygote || true)
  12. ZYGOTE64_PID=$(pidof zygote64 || true)
  13. for Z_PID in "$ZYGOTE_PID" "$ZYGOTE64_PID"; do
  14.     if [ -n "$Z_PID" ]; then
  15.         nsenter --mount=/proc/$Z_PID/ns/mnt -- \
  16.             /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
  17.     fi
  18. done
  19. APP_PIDS=$(
  20.     echo "$ZYGOTE_PID $ZYGOTE64_PID" | \
  21.     xargs -n1 ps -o 'PID' -P | \
  22.     grep -v PID
  23. )
  24. for PID in $APP_PIDS; do
  25.     nsenter --mount=/proc/$PID/ns/mnt -- \
  26.         /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts &
  27. done
  28. wait # Launched in parallel - wait for completion here
  29. echo "System certificate injected"
复制代码
其焦点原理就是将整数注入到apex下面,具体代码理解大家可以自行搜索,该文章原文来自:
准备好两个文件之后运行第一个cmd文件就行,结果:

证书注射成功,检察设备系统信任证书目录

这个是fiddler的证书,别的不在列举
万能的wireshark

3.1tcpdump+wireshark
可根据应用包名,链接adb之后,使用ps命令获取该应用的进程id
  1. ps -ef | grep packagename
复制代码
跟据应用进程id,使用netstat得该应用使用的tcp端口号
  1. netstat -anp | grep pid
  2.                 根据得到的端口号,使用tcpdump进行监听指定网卡,并指定端口,抓取数据包
  3.                 ifconfig:跟据ifconfig命令排查当前使用的网卡是哪个
  4.                 tcpdump -i 网卡名 port '(端口号 or 端口号2 or 端口号 3)' -w xxx.pacp[适用于进程多个端口进行网络数据传输]
复制代码
将pacp文件拖入wireshark举行分析,具体加解密机制,可参考此文章
  1. https://www.wsh-study.com/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/HTTP/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8tcpdump%E6%8A%93%E6%8B%8Dhttps%E5%8C%85/
复制代码
小黄鸟

虽然显示目前仅支持13及一下,但是可以通过2中脚本将小黄鸟证书导入到设备中,绕过设备对于根目录证书新人的机制,举行抓包,并且可以举行筛选指定监听的进程
好用,还可以多端互动,设备和pc端举行联动,蛮好用的·,github链接:
  1. https://github.com/MegatronKing/HttpCanary
复制代码
总结

以上抓包足以满意大部分抓包需求,对于做了证书校验的,假如是单向认证或者伪双相认证,均可以通过hook技术,绕过sslping机制举行抓包,操纵并没有什么难度;针对双向认证,一样平常就需要逆向底子,去反编译app找证书及其通讯的密钥,目前本人水平仅限于java层逆向,正在尝试native层学习so加固相关知识,后续有能力再补充双相认证机制绕过。hook绕过sslping回头整理一下发出来。
其实测试假如对于android版本并没有要求的话,完全可以采用低版本或者模拟器举行抓包,本人是工作所需,所测试任务均指定需要android14和android15,紧跟android版本,以是举行各种尝试,对于版本没有要求的完全可以采用低版本举行,方便还好用

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

花瓣小跑

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表