
网络抓包
文章平均质量分 77
- 环境搭建/抓包原理 - Android抓包攻与防- 实践篇
- SSLSocket - r0capture分析- Socket抓包- 自编译openssl
二手的程序员
这个作者很懒,什么都没留下…
展开
-
网络抓包08 - 搜索系统调用
这里只讨论 so 自解密/动态释放的清空,一般这些步骤都是在 init 或者 init_array 阶段进行。所以我们可以等 so 加载完成之后,dump 内存中的数据即可实现 so 脱壳。至于,那些拥有函数粒度的保护,在函数执行前解密,执行后再加密回去的,就不讨论了。关注我的微信公众号:二手的程序员。原创 2024-10-15 13:33:29 · 386 阅读 · 0 评论 -
网络抓包07 - 自编译openssl
有一些项目会自己编译openssl库,进行魔改等操作。对于这样的项目,之前所讨论的通杀方案, hook SSL_read 与 SSL_write 的方案就可能行不通了,因为这两个符号不一定是导出符号了。原创 2024-10-14 10:02:29 · 1051 阅读 · 0 评论 -
网络抓包06 - Socket抓包
所以,我们可以 hook libc 的 write 与 read 方法,可以得到 SSLSocket 的数据,不过这里的数据是加密了的。之前我们分析了 SSLSocket 的调用堆栈,我们关注的是 SSL_read 与 SSL_write方法。到了 plt 里面,说明调用的是其他 so 中的方法,其实就是 libc.so 中的方法。可以看到,红色圈圈的这条调用链看名字就很可疑,实际上也确实是发送数据的调用链方法。与 sendto 对应的 recvfrom 是一样的分析过程,就不赘述了。原创 2024-10-09 12:13:29 · 720 阅读 · 0 评论 -
网络抓包05 - r0capture分析
支持两种模式,一种是 verbose,一种是 pcap。如果命令参数有 pcap,就创建 pcap 文件,将hook到的数据储存进去。至于为啥要这样写,找个系统 ssl 库,拖到 ida 里面看一下就知道了。上面分析过,从 py 文件 rpc 过来的方法叫 setssllib,当然这个方法我们也可以手动调用。其中 ssl_session_id 等值的获取API需要阅读系统源码,就不展开了。在 SSL_read 函数返回之前,将数据发送到 py 脚本。可以先看看这个项目,比较纯粹,就一个python文件。原创 2024-10-09 12:10:34 · 537 阅读 · 0 评论 -
网络抓包04 - SSLSocket
以 Android10 - OkHttp 的实现为例。因为 OkHttp 的实现与Android的版本有关。在Android 10 及以上,SSLSocket 的实现类是,这个打个断点就能看出来。原创 2024-09-29 11:33:02 · 678 阅读 · 0 评论 -
网络抓包03 - 实践篇
弄完之后,再去做请求,一般情况下会ok,如果还不行,就需要祭出 ssl pin 等hook代码了,objection 也可以一键处理,就不展开了。可以看到,它确实是一个 PKCS12 格式的文件,我们可以直接将它导入到charles里面去,为了简单,域名我选择了全匹配。VPN抓包也是失败的,祭出 ssl pin 等 hook 的代码之后,发现还是走不通。这就让人比较头大了。可以确定的是,网络请求肯定是触发了的,那么我们hook一下最底层的代码,看看调用堆栈。对于VPN抓包失败的,先上一套降龙十八掌。原创 2024-09-29 11:29:45 · 584 阅读 · 0 评论 -
网络抓包02 - Android抓包攻与防
然后在手机端安装 vpn 应用,例如,v2rayNG,因为我们的思路是让手机的流量都走 vpn,然后 vpn 连接 charles,这样,charles 也能拦截所有的请求。因为是直连,不走代理,所以charles等工具就抓不到包了,这样一定程度上保证了数据的安全,这种方式只是通过代理抓不到包,但是无法防住使用 VPN 导流进行的抓包。使用VPN抓包的原理是,先将手机请求导到VPN,再对VPN的网络进行Charles的代理,绕过了对App的代理。这个可以理解为内置证书方案的谷歌官方版,道理是一样的。原创 2024-09-23 13:33:47 · 994 阅读 · 0 评论 -
网络抓包01 - 环境搭建/抓包原理
我们安装 charles 证书的时候,只能安装在用户域,所以使用 charles 代理的时候依然无法通过证书校验,导致抓不到包。的原因就是要我们信任这个证书,这样我们使用访问 charles 代理服务器的时候,就能通过这个根证书校验它下发的公钥证书。这保证了只有浏览器和服务器可以理解他们之间传递的信息。这里就涉及到一个信任链的问题,证书上是有数字签名的,这个签名使用的第三方机构的私钥加密生成的。那么,我们如果有了第三方机构的公钥,就可以校验这个证书是不是对的,证书里面有很多信息,也可以用来校验域名之类的。原创 2024-09-23 13:26:43 · 1023 阅读 · 0 评论