内网抓包微信聊天记录
很多人以为微信聊天记录是内网加密的,内网抓包肯定拿不到明文。抓包这个判断只对了一半。微信微信确实在传输层做了加密,聊天但如果你能在内网里控制网关或者做一个中间人,记录事情就变得有意思了。内网 先说我自己的抓包实验环境。一台普通家用路由器,微信刷了OpenWrt,聊天局域网里有一台Linux机器跑着tcpdump,记录手机连的内网是同一个WiFi。目标很简单:看看能不能从流量里还原出微信的抓包文字消息。 直接抓包,微信看到的聊天是一堆TLS流量,目标IP大多是记录腾讯的服务器,端口443。用Wireshark打开,全是Application Data,没法直接读。这是预期内的,微信从很早就全量走TLS了。 但TLS有个前提——证书校验。如果客户端不严格校验证书,或者你能让客户端信任你的证书,中间人就能解密。微信在证书校验上做得比较硬,普通代理方式走不通。我试过用mitmproxy挂透明代理,微信直接断连,聊天界面转圈,发不出去消息。 换一个思路。微信在局域网内有一些不走TLS的通信,比如早期版本的文件传输走HTTP,现在基本也加密了。但有一个东西经常被忽略:微信PC端和手机端之间的本地同步。同一局域网下,手机微信和PC微信可以通过本地网络直连传输文件或同步消息。这部分流量有时候是明文或者弱加密的。 我实际抓到的有价值流量来自一个旧版本安卓微信的语音消息缓存。语音消息在发送前会先写到本地缓存目录,然后上传。上传走TLS,但本地缓存文件在未root的手机上拿不到。不过在抓包时我发现,语音消息的缩略图或者某些元数据请求偶尔会走HTTP,里面带有文件路径和部分内容摘要。这不算完整聊天记录,但能拼出一些信息碎片。 真正能拿到完整文字记录的场景,几乎都依赖终端侧的手段,而不是网络侧。比如: 手机root后直接读 PC端微信的聊天记录存在 那内网抓包到底能做什么?能拿到的东西比想象中少,但也不是完全没有。比如: 微信登录时的一些辅助请求,偶尔会暴露账号绑定的手机号前缀或设备型号。朋友圈的图片和视频CDN地址如果走HTTP(现在很少了),能直接下载。公众号文章的阅读请求里带有文章ID和用户openid的哈希,能关联出谁读了什么。 我印象最深的一次,是在一个企业内网里抓到微信企业版的打卡请求。那个请求走的是HTTP POST,body里直接带了员工ID、打卡时间和地理位置。这不是聊天记录,但性质类似——你以为加密了,实际上某个接口忘了上TLS。 所以结论很直接:想在内网抓包拿到微信文字聊天记录,在当前的微信版本下基本不可行。TLS加上证书绑定,中间人攻击的门槛很高。能拿到的是元数据、部分媒体文件、以及个别没做好加密的辅助接口。真正要拿聊天内容,要么动终端,要么有腾讯的配合。网络侧的路,早就被堵死了。 如果你只是想监控自己孩子的微信,别折腾抓包了。直接拿手机看,比什么都快。/data/data/com.tencent.mm/MicroMsg/下的SQLite数据库,这是最直接的。数据库本身有加密,但密钥可以从内存里dump出来。这个过程跟抓包没关系。Documents/WeChat Files/下,也是加密的SQLite。网上有工具可以解密,前提是你有登录状态下的密钥。
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-